{"version":3,"sources":["../src/base64.ts","../src/features/connect/request.ts","../src/helpers.ts","../src/shared/AccountAuthenticatorInput.ts","../src/shared/AccountInfo.ts","../src/shared/PublicKey.ts","../src/shared/AccountInput.ts","../src/shared/DappInfo.ts","../src/shared/EntryFunctionArgument.ts","../src/shared/ExtendedNetwork.ts","../src/shared/Signature.ts","../src/shared/TransactionPayloadInput.ts","../src/WalletRequest.ts","../src/UserResponse.ts","../src/WalletResponse.ts","../src/features/connect/response.ts","../src/features/disconnect/request.ts","../src/features/disconnect/response.ts","../src/features/getConnectedAccounts/request.ts","../src/features/getConnectedAccounts/response.ts","../src/features/isConnected/request.ts","../src/features/isConnected/response.ts","../src/features/signAndSubmitTransaction/request.ts","../src/features/signAndSubmitTransaction/response.ts","../src/shared/AptosSignInInput.ts","../src/features/signIn/request.ts","../src/shared/AptosSignInOutput.ts","../src/features/signIn/response.ts","../src/features/signMessage/request.ts","../src/features/signMessage/response.ts","../src/features/signTransaction/request.ts","../src/features/signTransaction/response.ts","../src/messages/common.ts","../src/messages/prompt.ts","../src/PopupWalletRequest.ts","../src/WalletRequestBody.ts"],"sourcesContent":["// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nexport function base64ToBytes(base64: string) {\n  const binaryString = atob(base64);\n  return Uint8Array.from(binaryString, (m) => m.charCodeAt(0));\n}\n\nexport function bytesToBase64(bytes: Uint8Array) {\n  const binaryString = String.fromCharCode(...bytes);\n  return btoa(binaryString);\n}\n\nexport function base64urlToBytes(base64: string) {\n  return base64ToBytes(base64.replace(/-/g, '+').replace(/_/g, '/'));\n}\n\nexport function bytesToBase64url(bytes: Uint8Array) {\n  return bytesToBase64(bytes)\n    .replace(/\\+/g, '-')\n    .replace(/\\//g, '_')\n    .replace(/=+$/, '');\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  Deserializer,\n  Ed25519PrivateKey,\n  Network,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport { isSupportedNetwork } from '../../helpers';\nimport { DappInfo, shelbynet } from '../../shared';\nimport {\n  deserializeWalletRequestWithArgs,\n  SerializedWalletRequest,\n  serializeWalletRequestWithArgs,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface ClaimOptions {\n  asset?: string;\n  network: Network;\n  secretKey: Ed25519PrivateKey;\n}\n\nexport interface ConnectRequest\n  extends WalletRequest<\n    ConnectRequest.RequestName,\n    ConnectRequest.SupportedVersions\n  > {\n  args: ConnectRequest.Args;\n}\n\nexport namespace ConnectRequest {\n  export const name = 'connect' as const;\n  export type RequestName = typeof name;\n\n  export const supportedVersions = [1, 2, 3, 4] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n  export const currentVersion = 4 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region Args\n\n  export type Args = {\n    claimOptions?: ClaimOptions;\n    dappEd25519PublicKeyB64?: string;\n    dappId?: string;\n    // Whether to display paired accounts under the specified wallet first\n    preferredWalletName?: string;\n  };\n\n  export function serializeArgs(serializer: Serializer, value: Args) {\n    serializer.serializeOptionStr(value.dappId);\n    serializer.serializeOptionStr(value.dappEd25519PublicKeyB64);\n    serializer.serializeOptionStr(value.preferredWalletName);\n\n    serializer.serializeBool(value.claimOptions !== undefined);\n    if (value.claimOptions) {\n      serializer.serialize(value.claimOptions.secretKey);\n      serializer.serializeStr(value.claimOptions.network);\n      serializer.serializeOptionStr(value.claimOptions.asset);\n      if (!isSupportedNetwork(value.claimOptions.network)) {\n        throw new Error(`Unsupported network '${value.claimOptions.network}'`);\n      }\n    }\n  }\n\n  export function deserializeArgs(\n    deserializer: Deserializer,\n    version: SupportedVersions,\n  ): Args {\n    if (version === 1) {\n      return {};\n    }\n\n    const dappId = deserializer.deserializeOption('string');\n    const dappEd25519PublicKeyB64 = deserializer.deserializeOption('string');\n    const preferredWalletName =\n      version >= 3 ? deserializer.deserializeOption('string') : undefined;\n\n    const hasClaimOptions =\n      version >= 4 ? deserializer.deserializeBool() : false;\n    let claimOptions: ClaimOptions | undefined;\n    if (hasClaimOptions) {\n      const secretKey = deserializer.deserialize(Ed25519PrivateKey);\n      const network = deserializer.deserializeStr();\n      const asset = deserializer.deserializeOption('string');\n\n      if (!isSupportedNetwork(network) || network === shelbynet.name) {\n        throw new Error(`Unsupported network '${network}'`);\n      }\n\n      claimOptions = { asset, network, secretKey };\n    }\n\n    return {\n      claimOptions,\n      dappEd25519PublicKeyB64,\n      dappId,\n      preferredWalletName,\n    };\n  }\n\n  // endregion\n\n  export function serialize(\n    dappInfo: DappInfo,\n    args: ConnectRequest.Args = {},\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    return serializeWalletRequestWithArgs(\n      { args, dappInfo, name, version: currentVersion },\n      serializeArgs,\n    );\n  }\n\n  export function deserialize(\n    request: SerializedWalletRequest<RequestName, SupportedVersions>,\n  ): ConnectRequest {\n    return deserializeWalletRequestWithArgs(request, (d) =>\n      deserializeArgs(d, request.version),\n    );\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, SupportedVersions> {\n    return (\n      request.name === name &&\n      supportedVersions.includes(request.version as SupportedVersions)\n    );\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  Deserializer,\n  Network,\n  NetworkToChainId,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport { ExtendedNetwork, shelbynet } from './shared';\n\nexport type SerializeFn<T> = (serializer: Serializer, value: T) => void;\nexport type DeserializeFn<T> = (deserializer: Deserializer) => T;\n\nexport function chainIdToNetwork(chainId: number): ExtendedNetwork {\n  if (chainId === NetworkToChainId.mainnet) {\n    return Network.MAINNET;\n  }\n  if (chainId === NetworkToChainId.testnet) {\n    return Network.TESTNET;\n  }\n  // At the time of this change, shelbynet's chain id is 59.\n  // In the future, shelbynet will be in the 100-124 range\n  if ((chainId >= 50 && chainId < 100) || (chainId >= 100 && chainId < 125)) {\n    return shelbynet.name;\n  }\n  return Network.DEVNET;\n}\n\nexport function isSupportedNetwork(\n  network: string,\n): network is ExtendedNetwork {\n  return [\n    Network.MAINNET,\n    Network.TESTNET,\n    Network.DEVNET,\n    shelbynet.name,\n  ].includes(network as ExtendedNetwork);\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  AccountAuthenticator,\n  Deserializer,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\n\nexport interface AccountAuthenticatorInput {\n  address: AccountAddress;\n  authenticator: AccountAuthenticator;\n}\n\nexport function serializeAccountAuthenticatorInput(\n  serializer: Serializer,\n  value: AccountAuthenticatorInput,\n) {\n  serializer.serialize(value.address);\n  serializer.serialize(value.authenticator);\n}\n\nexport function deserializeAccountAuthenticatorInput(\n  deserializer: Deserializer,\n): AccountAuthenticatorInput {\n  const address = deserializer.deserialize(AccountAddress);\n  const authenticator = deserializer.deserialize(AccountAuthenticator);\n  return { address, authenticator };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  Deserializer,\n  PublicKey,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport { deserializePublicKey, serializePublicKey } from './PublicKey';\n\nexport interface AccountInfo {\n  address: AccountAddress;\n  name?: string;\n  publicKey: PublicKey;\n}\n\nexport function serializeAccountInfo(\n  serializer: Serializer,\n  value: AccountInfo,\n) {\n  serializer.serialize(value.address);\n  serializePublicKey(serializer, value.publicKey);\n  serializer.serializeStr(value.name ?? '');\n}\n\nexport function deserializeAccountInfo(\n  deserializer: Deserializer,\n): AccountInfo {\n  const address = deserializer.deserialize(AccountAddress);\n  const publicKey = deserializePublicKey(deserializer);\n  const name = deserializer.deserializeStr();\n  return {\n    address,\n    publicKey,\n    ...(name.length > 0 ? { name } : undefined),\n  };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AnyPublicKey,\n  Deserializer,\n  Ed25519PublicKey,\n  MultiEd25519PublicKey,\n  MultiKey,\n  PublicKey,\n  Serializer,\n  SigningScheme,\n} from '@aptos-labs/ts-sdk';\n\nexport function serializePublicKey(serializer: Serializer, value: PublicKey) {\n  if (value instanceof Ed25519PublicKey) {\n    serializer.serializeU32AsUleb128(SigningScheme.Ed25519);\n  } else if (value instanceof MultiEd25519PublicKey) {\n    serializer.serializeU32AsUleb128(SigningScheme.MultiEd25519);\n  } else if (value instanceof AnyPublicKey) {\n    serializer.serializeU32AsUleb128(SigningScheme.SingleKey);\n  } else if (value instanceof MultiKey) {\n    serializer.serializeU32AsUleb128(SigningScheme.MultiKey);\n  } else {\n    throw new Error('Unexpected public key type');\n  }\n  serializer.serialize(value);\n}\n\nexport function deserializePublicKey(deserializer: Deserializer): PublicKey {\n  const signingScheme = deserializer.deserializeUleb128AsU32();\n  switch (signingScheme) {\n    case SigningScheme.Ed25519:\n      return deserializer.deserialize(Ed25519PublicKey);\n    case SigningScheme.MultiEd25519:\n      return deserializer.deserialize(MultiEd25519PublicKey);\n    case SigningScheme.SingleKey:\n      return deserializer.deserialize(AnyPublicKey);\n    case SigningScheme.MultiKey:\n      return deserializer.deserialize(MultiKey);\n    default:\n      throw new Error(`Unknown signing scheme: ${signingScheme}`);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  Deserializer,\n  PublicKey,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport { deserializePublicKey, serializePublicKey } from './PublicKey';\n\nexport interface AccountInput {\n  address: AccountAddress;\n  publicKey?: PublicKey;\n}\n\nexport function serializeAccountInput(\n  serializer: Serializer,\n  value: AccountInput,\n) {\n  serializer.serialize(value.address);\n  serializer.serializeBool(value.publicKey !== undefined);\n  if (value.publicKey) {\n    serializePublicKey(serializer, value.publicKey);\n  }\n}\n\nexport function deserializeAccountInput(\n  deserializer: Deserializer,\n): AccountInput {\n  const address = deserializer.deserialize(AccountAddress);\n  const hasPublicKey = deserializer.deserializeBool();\n  const publicKey = hasPublicKey\n    ? deserializePublicKey(deserializer)\n    : undefined;\n  return { address, publicKey };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\n\nexport interface DappInfo {\n  domain: string;\n  imageURI?: string;\n  name: string;\n}\n\nexport function serializeDappInfo(serializer: Serializer, value: DappInfo) {\n  serializer.serializeStr(value.domain);\n  serializer.serializeStr(value.name);\n  serializer.serializeBool(value.imageURI !== undefined);\n  if (value.imageURI !== undefined) {\n    serializer.serializeStr(value.imageURI);\n  }\n}\n\nexport function deserializeDappInfo(deserializer: Deserializer): DappInfo {\n  const domain = deserializer.deserializeStr();\n  const name = deserializer.deserializeStr();\n  const hasImageUri = deserializer.deserializeBool();\n  const imageURI = hasImageUri ? deserializer.deserializeStr() : undefined;\n  return { domain, imageURI, name };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  Deserializer,\n  EntryFunctionArgumentTypes,\n  FixedBytes,\n  Serializer,\n  SimpleEntryFunctionArgumentTypes,\n} from '@aptos-labs/ts-sdk';\n\nexport type EntryFunctionArgument =\n  | EntryFunctionArgumentTypes\n  | SimpleEntryFunctionArgumentTypes;\n\n/* eslint-disable @typescript-eslint/no-shadow */\nexport enum EntryFunctionArgumentVariant {\n  Undefined,\n  Array,\n  String,\n  Uint8Array,\n  AccountAddress,\n  FixedBytes,\n}\n\n/* eslint-enable @typescript-eslint/no-shadow */\n\nexport function serializeEntryFunctionArgument(\n  serializer: Serializer,\n  argument: EntryFunctionArgument,\n) {\n  // undefined | null -> undefined\n  if (argument === undefined || argument === null) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Undefined);\n    return;\n  }\n\n  // Array -> Array\n  if (Array.isArray(argument)) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Array);\n    serializer.serializeU32AsUleb128(argument.length);\n    for (const subArgument of argument) {\n      serializeEntryFunctionArgument(serializer, subArgument);\n    }\n    return;\n  }\n\n  // boolean | number | bigint | string -> string\n  if (\n    typeof argument === 'string' ||\n    typeof argument === 'number' ||\n    typeof argument === 'boolean' ||\n    typeof argument === 'bigint'\n  ) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.String);\n    serializer.serializeStr(argument.toString());\n    return;\n  }\n\n  // Uint8Array -> Uint8Array\n  if (argument instanceof Uint8Array) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Uint8Array);\n    serializer.serializeBytes(argument);\n    return;\n  }\n\n  // ArrayBuffer -> Uint8Array\n  if (argument instanceof ArrayBuffer) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Uint8Array);\n    serializer.serializeBytes(new Uint8Array(argument));\n    return;\n  }\n\n  // MoveVector -> Array\n  if ('values' in argument) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Array);\n    serializer.serializeU32AsUleb128(argument.values.length);\n    for (const subArgument of argument.values) {\n      serializeEntryFunctionArgument(serializer, subArgument);\n    }\n    return;\n  }\n\n  // AccountAddress -> AccountAddress\n  if ('data' in argument) {\n    serializer.serializeU32AsUleb128(\n      EntryFunctionArgumentVariant.AccountAddress,\n    );\n    serializer.serialize(argument);\n    return;\n  }\n\n  // Empty MoveOption -> undefined\n  if (argument.value === undefined) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.Undefined);\n    serializer.serialize(argument);\n    return;\n  }\n\n  // FixedBytes -> FixedBytes\n  if (argument.value instanceof Uint8Array) {\n    serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.FixedBytes);\n    serializer.serializeBytes(argument.value);\n    return;\n  }\n\n  // Bool | U8 | U16 | U32 | U64 | U128 | U256 | MoveString -> string\n  serializer.serializeU32AsUleb128(EntryFunctionArgumentVariant.String);\n  serializer.serializeStr(argument.value.toString());\n}\n\nexport function deserializeEntryFunctionArgument(\n  deserializer: Deserializer,\n): EntryFunctionArgument {\n  const variant =\n    deserializer.deserializeUleb128AsU32() as EntryFunctionArgumentVariant;\n\n  switch (variant) {\n    // undefined | null | empty MoveOption\n    case EntryFunctionArgumentVariant.Undefined: {\n      return undefined;\n    }\n    // Array | MoveVector\n    case EntryFunctionArgumentVariant.Array: {\n      const length = deserializer.deserializeUleb128AsU32();\n      const args: (\n        | EntryFunctionArgumentTypes\n        | SimpleEntryFunctionArgumentTypes\n      )[] = [];\n      for (let i = 0; i < length; i += 1) {\n        const argument = deserializeEntryFunctionArgument(deserializer);\n        args.push(argument);\n      }\n      return args;\n    }\n    // Uint8Array | ArrayBuffer | FixedBytes\n    case EntryFunctionArgumentVariant.Uint8Array: {\n      return deserializer.deserializeBytes();\n    }\n    // AccountAddress\n    case EntryFunctionArgumentVariant.AccountAddress: {\n      return deserializer.deserialize(AccountAddress);\n    }\n    // Bool | U8 | U16 | U32 | U64 | U128 | U256 | MoveString\n    case EntryFunctionArgumentVariant.String: {\n      return deserializer.deserializeStr();\n    }\n    // FixedBytes (custom serialization)\n    case EntryFunctionArgumentVariant.FixedBytes: {\n      const bytes = deserializer.deserializeBytes();\n      return new FixedBytes(bytes);\n    }\n    default: {\n      throw new Error('Unexpected variant');\n    }\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Network } from '@aptos-labs/ts-sdk';\n\nconst devnetBaseUrl = 'https://api.devnet.aptoslabs.com';\nconst shelbynetBaseUrl = 'https://api.shelbynet.aptoslabs.com';\n\nexport const shelbynet = {\n  // This is not reliable and might change in future releases, but it's useful to keep around as \"unique id\" for\n  // the frontend\n  chainId: 59,\n  faucetUrl: 'https://faucet.shelbynet.shelby.xyz',\n  indexerUrl: `${shelbynetBaseUrl}/v1/graphql`,\n  name: 'shelbynet' as const,\n  nodeUrl: `${shelbynetBaseUrl}/v1`,\n  // Note: using devnet's keyless services, so we don't have to spin up separate ones\n  pepperUrl: `${devnetBaseUrl}/keyless/pepper/v0`,\n  proverUrl: `${devnetBaseUrl}/keyless/prover/v0`,\n};\n\nexport type ExtendedNetwork = Network | typeof shelbynet.name;\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AnySignature,\n  Deserializer,\n  Ed25519Signature,\n  MultiEd25519Signature,\n  MultiKeySignature,\n  Serializer,\n  Signature,\n  SigningScheme,\n} from '@aptos-labs/ts-sdk';\n\nexport function serializeSignature(serializer: Serializer, value: Signature) {\n  console.log('serializeSignature', value);\n  if (value instanceof Ed25519Signature) {\n    serializer.serializeU32AsUleb128(SigningScheme.Ed25519);\n  } else if (value instanceof MultiEd25519Signature) {\n    serializer.serializeU32AsUleb128(SigningScheme.MultiEd25519);\n  } else if (value instanceof AnySignature) {\n    serializer.serializeU32AsUleb128(SigningScheme.SingleKey);\n  } else if (value instanceof MultiKeySignature) {\n    serializer.serializeU32AsUleb128(SigningScheme.MultiKey);\n  } else {\n    throw new Error('Unexpected signature type');\n  }\n  serializer.serialize(value);\n}\n\nexport function deserializeSignature(deserializer: Deserializer) {\n  const signingScheme = deserializer.deserializeUleb128AsU32();\n  switch (signingScheme) {\n    case SigningScheme.Ed25519:\n      return deserializer.deserialize(Ed25519Signature);\n    case SigningScheme.MultiEd25519:\n      return deserializer.deserialize(MultiEd25519Signature);\n    case SigningScheme.SingleKey:\n      return deserializer.deserialize(AnySignature);\n    case SigningScheme.MultiKey:\n      return deserializer.deserialize(MultiKeySignature);\n    default:\n      throw new Error(`Unknown signing scheme: ${signingScheme}`);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  Deserializer,\n  deserializeFromScriptArgument,\n  Hex,\n  InputGenerateTransactionPayloadData,\n  MoveFunctionId,\n  parseTypeTag,\n  ScriptFunctionArgumentTypes,\n  Serializer,\n  TypeArgument,\n  TypeTag,\n} from '@aptos-labs/ts-sdk';\nimport {\n  deserializeEntryFunctionArgument,\n  EntryFunctionArgument,\n  serializeEntryFunctionArgument,\n} from './EntryFunctionArgument';\n\nexport enum TransactionPayloadInputVariant {\n  EntryFunction,\n  Script,\n  Multisig,\n}\n\n// region Utils\n\nfunction serializeTypeArguments(\n  serializer: Serializer,\n  typeArguments: TypeArgument[],\n) {\n  serializer.serializeU32AsUleb128(typeArguments.length);\n  for (const typeArgument of typeArguments) {\n    const typeTag =\n      typeof typeArgument === 'string'\n        ? parseTypeTag(typeArgument, { allowGenerics: true })\n        : typeArgument;\n    serializer.serialize(typeTag);\n  }\n}\n\nfunction deserializeTypeArguments(deserializer: Deserializer) {\n  const typeArguments: TypeTag[] = [];\n  const typeArgumentsLength = deserializer.deserializeUleb128AsU32();\n  for (let i = 0; i < typeArgumentsLength; i += 1) {\n    const typeTag = deserializer.deserialize(TypeTag);\n    typeArguments.push(typeTag);\n  }\n  return typeArguments;\n}\n\nfunction serializeEntryFunctionArguments(\n  serializer: Serializer,\n  functionArguments: EntryFunctionArgument[],\n) {\n  serializer.serializeU32AsUleb128(functionArguments.length);\n  for (const functionArgument of functionArguments) {\n    serializeEntryFunctionArgument(serializer, functionArgument);\n  }\n}\n\nfunction deserializeEntryFunctionArguments(deserializer: Deserializer) {\n  const functionArgumentsLength = deserializer.deserializeUleb128AsU32();\n  const functionArguments: EntryFunctionArgument[] = [];\n  for (let i = 0; i < functionArgumentsLength; i += 1) {\n    const functionArgument = deserializeEntryFunctionArgument(deserializer);\n    functionArguments.push(functionArgument);\n  }\n  return functionArguments;\n}\n\n// endregion\n\nexport function serializeTransactionPayloadInput(\n  serializer: Serializer,\n  value: InputGenerateTransactionPayloadData,\n) {\n  if ('multisigAddress' in value) {\n    serializer.serializeU32AsUleb128(TransactionPayloadInputVariant.Multisig);\n    serializer.serializeStr(value.function);\n    serializeEntryFunctionArguments(serializer, value.functionArguments ?? []);\n    serializeTypeArguments(serializer, value.typeArguments ?? []);\n    const multisigAddress = AccountAddress.from(value.multisigAddress);\n    serializer.serialize(multisigAddress);\n  } else if ('function' in value) {\n    serializer.serializeU32AsUleb128(\n      TransactionPayloadInputVariant.EntryFunction,\n    );\n    serializer.serializeStr(value.function);\n    serializeEntryFunctionArguments(serializer, value.functionArguments ?? []);\n    serializeTypeArguments(serializer, value.typeArguments ?? []);\n    // TODO: possibly serialize ABI?\n  } else {\n    serializer.serializeU32AsUleb128(TransactionPayloadInputVariant.Script);\n    const bytecode = Hex.fromHexInput(value.bytecode);\n    serializer.serializeBytes(bytecode.toUint8Array());\n    serializer.serializeU32AsUleb128(value.functionArguments.length);\n    for (const argument of value.functionArguments) {\n      argument.serializeForScriptFunction(serializer);\n    }\n    serializeTypeArguments(serializer, value.typeArguments ?? []);\n  }\n}\n\nexport function deserializeTransactionPayloadInput(\n  deserializer: Deserializer,\n): InputGenerateTransactionPayloadData {\n  const variant = deserializer.deserializeUleb128AsU32();\n  switch (variant) {\n    case TransactionPayloadInputVariant.Multisig: {\n      const functionId = deserializer.deserializeStr() as MoveFunctionId;\n      const functionArguments = deserializeEntryFunctionArguments(deserializer);\n      const typeArguments = deserializeTypeArguments(deserializer);\n      const multisigAddress = deserializer.deserialize(AccountAddress);\n      return {\n        function: functionId,\n        functionArguments,\n        multisigAddress,\n        typeArguments,\n      };\n    }\n    case TransactionPayloadInputVariant.EntryFunction: {\n      const functionId = deserializer.deserializeStr() as MoveFunctionId;\n      const functionArguments = deserializeEntryFunctionArguments(deserializer);\n      const typeArguments = deserializeTypeArguments(deserializer);\n      return {\n        function: functionId,\n        functionArguments,\n        typeArguments,\n      };\n    }\n    case TransactionPayloadInputVariant.Script: {\n      const bytecode = deserializer.deserializeBytes();\n      const functionArgumentsLength = deserializer.deserializeUleb128AsU32();\n      const functionArguments: ScriptFunctionArgumentTypes[] = [];\n      for (let i = 0; i < functionArgumentsLength; i += 1) {\n        const argument = deserializeFromScriptArgument(deserializer);\n        functionArguments.push(argument as ScriptFunctionArgumentTypes);\n      }\n      const typeArguments = deserializeTypeArguments(deserializer);\n      return {\n        bytecode,\n        functionArguments,\n        typeArguments,\n      };\n    }\n    default: {\n      throw new Error('Unexpected variant');\n    }\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { DeserializeFn, SerializeFn } from './helpers';\nimport { DappInfo, deserializeDappInfo, serializeDappInfo } from './shared';\n\nexport interface WalletRequest<\n  RequestName extends string,\n  Version extends number,\n> {\n  dappInfo: DappInfo;\n  name: RequestName;\n  version: Version;\n}\n\nexport interface WalletRequestWithArgs<\n  RequestName extends string,\n  Version extends number,\n  TArgs,\n> extends WalletRequest<RequestName, Version> {\n  args: TArgs;\n}\n\nexport interface SerializedWalletRequest<\n  RequestName extends string = string,\n  Version extends number = number,\n> {\n  data: Uint8Array;\n  name: RequestName;\n  version: Version;\n}\n\nexport function serializeWalletRequest<\n  RequestName extends string,\n  Version extends number,\n>({\n  dappInfo,\n  name,\n  version,\n}: WalletRequest<RequestName, Version>): SerializedWalletRequest<\n  RequestName,\n  Version\n> {\n  const serializer = new Serializer();\n  serializeDappInfo(serializer, dappInfo);\n  const data = serializer.toUint8Array();\n  return { data, name, version };\n}\n\nexport function deserializeWalletRequest<\n  RequestName extends string,\n  Version extends number,\n>({\n  data,\n  name,\n  version,\n}: SerializedWalletRequest<RequestName, Version>): WalletRequest<\n  RequestName,\n  Version\n> {\n  const deserializer = new Deserializer(data);\n  const dappInfo = deserializeDappInfo(deserializer);\n  return { dappInfo, name, version };\n}\n\nexport function serializeWalletRequestWithArgs<\n  RequestName extends string,\n  Version extends number,\n  TArgs,\n>(\n  {\n    args,\n    dappInfo,\n    name,\n    version,\n  }: WalletRequestWithArgs<RequestName, Version, TArgs>,\n  serializeArgsFn: SerializeFn<TArgs>,\n): SerializedWalletRequest<RequestName, Version> {\n  const serializer = new Serializer();\n  serializeDappInfo(serializer, dappInfo);\n  serializeArgsFn(serializer, args);\n  const data = serializer.toUint8Array();\n  return { data, name, version };\n}\n\nexport function deserializeWalletRequestWithArgs<\n  RequestName extends string,\n  Version extends number,\n  TArgs,\n>(\n  { data, name, version }: SerializedWalletRequest<RequestName, Version>,\n  deserializeArgsFn: DeserializeFn<TArgs>,\n): WalletRequestWithArgs<RequestName, Version, TArgs> {\n  const deserializer = new Deserializer(data);\n  const dappInfo = deserializeDappInfo(deserializer);\n  const args = deserializeArgsFn(deserializer);\n  return { args, dappInfo, name, version };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { DeserializeFn, SerializeFn } from './helpers';\n\nexport interface UserApproval<TApprovalArgs> {\n  args: TApprovalArgs;\n  status: 'approved';\n}\n\nexport interface UserDismissal {\n  status: 'dismissed';\n}\n\nexport type UserResponse<TApprovalArgs> =\n  | UserApproval<TApprovalArgs>\n  | UserDismissal;\n\nexport function makeUserApproval<TApprovalArgs>(\n  args: TApprovalArgs,\n): UserApproval<TApprovalArgs> {\n  return { args, status: 'approved' };\n}\n\nexport function makeUserResponseSerializeFn<TArgs>(\n  serializeArgs: SerializeFn<TArgs>,\n): SerializeFn<UserResponse<TArgs>> {\n  return (serializer: Serializer, value: UserResponse<TArgs>) => {\n    serializer.serializeBool(value.status === 'approved');\n    if (value.status === 'approved') {\n      serializeArgs(serializer, value.args);\n    }\n  };\n}\n\nexport function makeUserResponseDeserializeFn<TArgs>(\n  deserializeArgs: DeserializeFn<TArgs>,\n): DeserializeFn<UserResponse<TArgs>> {\n  return (deserializer: Deserializer) => {\n    const isApproved = deserializer.deserializeBool();\n    return isApproved\n      ? { args: deserializeArgs(deserializer), status: 'approved' }\n      : { status: 'dismissed' };\n  };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { DeserializeFn, SerializeFn } from './helpers';\n\nexport interface WalletResponseWithArgs<TResponseArgs> {\n  args: TResponseArgs;\n}\n\nexport interface SerializedWalletResponse {\n  data: Uint8Array;\n}\n\nexport function serializeWalletResponse<TArgs>(\n  args: TArgs,\n  serializeFn: SerializeFn<TArgs>,\n): SerializedWalletResponse {\n  const serializer = new Serializer();\n  serializeFn(serializer, args);\n  const data = serializer.toUint8Array();\n  return { data };\n}\n\nexport function deserializeWalletResponse<TArgs>(\n  { data }: SerializedWalletResponse,\n  deserializeFn: DeserializeFn<TArgs>,\n): WalletResponseWithArgs<TArgs> {\n  const deserializer = new Deserializer(data);\n  const args = deserializeFn(deserializer);\n  return { args };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { FinalizedPairingData, SerializedDate } from '@identity-connect/api';\nimport {\n  type AccountInfo,\n  deserializeAccountInfo,\n  serializeAccountInfo,\n} from '../../shared';\nimport {\n  makeUserResponseDeserializeFn,\n  makeUserResponseSerializeFn,\n  UserResponse,\n} from '../../UserResponse';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface ConnectResponse\n  extends WalletResponseWithArgs<ConnectResponse.Args> {}\n\nexport namespace ConnectResponse {\n  export const supportedVersions = [1, 2] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n  export const currentVersion = 2 as const;\n\n  // region ApprovalArgs\n\n  export interface ApprovalArgs {\n    account: AccountInfo;\n    pairing?: SerializedDate<FinalizedPairingData>;\n  }\n\n  function serializeApprovalArgsV1(\n    serializer: Serializer,\n    value: ApprovalArgs,\n  ) {\n    serializeAccountInfo(serializer, value.account);\n  }\n\n  function serializeApprovalArgs(serializer: Serializer, value: ApprovalArgs) {\n    serializeAccountInfo(serializer, value.account);\n    serializer.serializeOptionStr(\n      value.pairing !== undefined ? JSON.stringify(value.pairing) : undefined,\n    );\n  }\n\n  function deserializeApprovalArgs(deserializer: Deserializer): ApprovalArgs {\n    const account = deserializeAccountInfo(deserializer);\n    const serializedPairing = deserializer.deserializeOption('string');\n    const pairing =\n      serializedPairing !== undefined\n        ? JSON.parse(serializedPairing)\n        : undefined;\n    return { account, pairing };\n  }\n\n  // endregion\n\n  // region ResponseArgs\n\n  export type Args = UserResponse<ApprovalArgs>;\n\n  const serializeArgsV1 = makeUserResponseSerializeFn(serializeApprovalArgsV1);\n  const serializeArgs = makeUserResponseSerializeFn(serializeApprovalArgs);\n  const deserializeArgs = makeUserResponseDeserializeFn(\n    deserializeApprovalArgs,\n  );\n\n  // endregion\n\n  type _Response = ConnectResponse;\n\n  export function serialize(\n    args: Args,\n    version: SupportedVersions = currentVersion,\n  ): SerializedWalletResponse {\n    return serializeWalletResponse(\n      args,\n      version === 1 ? serializeArgsV1 : serializeArgs,\n    );\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { DappInfo } from '../../shared';\nimport {\n  deserializeWalletRequest,\n  SerializedWalletRequest,\n  serializeWalletRequest,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface DisconnectRequest\n  extends WalletRequest<\n    DisconnectRequest.RequestName,\n    DisconnectRequest.CurrentVersion\n  > {}\n\nexport namespace DisconnectRequest {\n  export const name = 'disconnect' as const;\n  export type RequestName = typeof name;\n\n  export const currentVersion = 1 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  export function serialize(\n    dappInfo: DappInfo,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    return serializeWalletRequest({ dappInfo, name, version: currentVersion });\n  }\n\n  export function deserialize(\n    request: SerializedWalletRequest<RequestName, CurrentVersion>,\n  ): DisconnectRequest {\n    return deserializeWalletRequest(request);\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, CurrentVersion> {\n    return request.name === name && request.version === currentVersion;\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface DisconnectResponse\n  extends WalletResponseWithArgs<DisconnectResponse.Args> {}\n\nexport namespace DisconnectResponse {\n  export type Args = {};\n  type _Response = DisconnectResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, () => {});\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, () => ({}));\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { DappInfo } from '../../shared';\nimport {\n  deserializeWalletRequest,\n  SerializedWalletRequest,\n  serializeWalletRequest,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface GetConnectedAccountsRequest\n  extends WalletRequest<\n    GetConnectedAccountsRequest.RequestName,\n    GetConnectedAccountsRequest.CurrentVersion\n  > {}\n\nexport namespace GetConnectedAccountsRequest {\n  export const name = 'getConnectedAccounts' as const;\n  export type RequestName = typeof name;\n\n  export const currentVersion = 1 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  export function serialize(\n    dappInfo: DappInfo,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    return serializeWalletRequest({ dappInfo, name, version: currentVersion });\n  }\n\n  export function deserialize(\n    request: SerializedWalletRequest<RequestName, CurrentVersion>,\n  ): GetConnectedAccountsRequest {\n    return deserializeWalletRequest(request);\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, CurrentVersion> {\n    return request.name === name && request.version === currentVersion;\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport {\n  type AccountInfo,\n  deserializeAccountInfo,\n  serializeAccountInfo,\n} from '../../shared';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface GetConnectedAccountsResponse\n  extends WalletResponseWithArgs<GetConnectedAccountsResponse.Args> {}\n\nexport namespace GetConnectedAccountsResponse {\n  // region Args\n\n  export type Args = AccountInfo[];\n\n  function serializeArgs(serializer: Serializer, args: Args) {\n    serializer.serializeU32AsUleb128(args.length);\n    for (const account of args) {\n      serializeAccountInfo(serializer, account);\n    }\n  }\n\n  function deserializeArgs(deserializer: Deserializer): Args {\n    const length = deserializer.deserializeUleb128AsU32();\n\n    const accounts: AccountInfo[] = [];\n    for (let i = 0; i < length; i += 1) {\n      accounts.push(deserializeAccountInfo(deserializer));\n    }\n\n    return accounts;\n  }\n\n  // endregion\n\n  type _Response = GetConnectedAccountsResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { DappInfo } from '../../shared';\nimport {\n  deserializeWalletRequest,\n  SerializedWalletRequest,\n  serializeWalletRequest,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface IsConnectedRequest\n  extends WalletRequest<\n    IsConnectedRequest.RequestName,\n    IsConnectedRequest.CurrentVersion\n  > {}\n\nexport namespace IsConnectedRequest {\n  export const name = 'isConnected' as const;\n  export type RequestName = typeof name;\n\n  export const currentVersion = 1 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  export function serialize(\n    dappInfo: DappInfo,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    return serializeWalletRequest({ dappInfo, name, version: currentVersion });\n  }\n\n  export function deserialize(\n    request: SerializedWalletRequest<RequestName, CurrentVersion>,\n  ): IsConnectedRequest {\n    return deserializeWalletRequest(request);\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, CurrentVersion> {\n    return request.name === name && request.version === currentVersion;\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface IsConnectedResponse\n  extends WalletResponseWithArgs<IsConnectedResponse.Args> {}\n\nexport namespace IsConnectedResponse {\n  // region Args\n\n  export type Args = boolean;\n\n  function serializeArgs(serializer: Serializer, value: Args) {\n    serializer.serializeBool(value);\n  }\n\n  function deserializeArgs(deserializer: Deserializer): Args {\n    return deserializer.deserializeBool();\n  }\n\n  // endregion\n\n  type _Response = IsConnectedResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  Deserializer,\n  InputGenerateTransactionPayloadData,\n  Serializer,\n  TransactionPayload,\n} from '@aptos-labs/ts-sdk';\nimport { isSupportedNetwork } from '../../helpers';\nimport {\n  AccountAuthenticatorInput,\n  DappInfo,\n  deserializeAccountAuthenticatorInput,\n  deserializeTransactionPayloadInput,\n  ExtendedNetwork,\n  serializeAccountAuthenticatorInput,\n  serializeTransactionPayloadInput,\n} from '../../shared';\nimport {\n  deserializeWalletRequestWithArgs,\n  SerializedWalletRequest,\n  serializeWalletRequestWithArgs,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface SignAndSubmitTransactionRequest\n  extends WalletRequest<\n    SignAndSubmitTransactionRequest.RequestName,\n    SignAndSubmitTransactionRequest.SupportedVersions\n  > {\n  args: SignAndSubmitTransactionRequest.Args;\n}\n\nexport namespace SignAndSubmitTransactionRequest {\n  export const name = 'signAndSubmitTransaction' as const;\n  export type RequestName = typeof name;\n\n  export const supportedVersions = [1, 2, 3, 4] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n  export const currentVersion = 4 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region Args\n\n  export interface Args {\n    expirationTimestamp?: number;\n    feePayer?: AccountAuthenticatorInput;\n    gasUnitPrice?: number;\n    maxGasAmount?: number;\n    network?: ExtendedNetwork;\n    payload: TransactionPayload | InputGenerateTransactionPayloadData;\n    signerAddress?: AccountAddress;\n  }\n\n  export function serializeArgs(serializer: Serializer, value: Args) {\n    if (value.network !== undefined && !isSupportedNetwork(value.network)) {\n      throw new Error(`Unsupported network '${value.network}'`);\n    }\n\n    serializer.serializeBool(value.signerAddress !== undefined);\n    if (value.signerAddress !== undefined) {\n      serializer.serialize(value.signerAddress);\n    }\n\n    serializer.serializeOption(value.network);\n\n    if ('bcsToBytes' in value.payload) {\n      serializer.serializeBool(true);\n      serializer.serialize(value.payload);\n    } else {\n      serializer.serializeBool(false);\n      serializeTransactionPayloadInput(serializer, value.payload);\n    }\n\n    serializer.serializeU64(value.expirationTimestamp ?? 0);\n    serializer.serializeU32AsUleb128(value.gasUnitPrice ?? 0);\n    serializer.serializeU32AsUleb128(value.maxGasAmount ?? 0);\n    serializer.serializeU32AsUleb128(value.feePayer ? 1 : 0);\n    if (value.feePayer) {\n      serializeAccountAuthenticatorInput(serializer, value.feePayer);\n    }\n  }\n\n  export function deserializeArgs(\n    deserializer: Deserializer,\n    version: SupportedVersions,\n  ): Args {\n    const hasSignerAddress = version >= 3 && deserializer.deserializeBool();\n    const signerAddress = hasSignerAddress\n      ? deserializer.deserialize(AccountAddress)\n      : undefined;\n\n    const network =\n      version === 1\n        ? deserializer.deserializeStr()\n        : deserializer.deserializeOption('string');\n    if (network !== undefined && !isSupportedNetwork(network)) {\n      throw new Error(`Unsupported network '${network}'`);\n    }\n\n    const isPayloadBcsSerializable =\n      version === 1 || deserializer.deserializeBool();\n    const payload = isPayloadBcsSerializable\n      ? deserializer.deserialize(TransactionPayload)\n      : deserializeTransactionPayloadInput(deserializer);\n    const expirationTimestamp = Number(deserializer.deserializeU64());\n    const gasUnitPrice = deserializer.deserializeUleb128AsU32();\n    const maxGasAmount = deserializer.deserializeUleb128AsU32();\n    const hasFeePayer = deserializer.deserializeUleb128AsU32();\n    const feePayer = hasFeePayer\n      ? deserializeAccountAuthenticatorInput(deserializer)\n      : undefined;\n\n    return {\n      expirationTimestamp:\n        expirationTimestamp > 0 ? expirationTimestamp : undefined,\n      feePayer,\n      gasUnitPrice: gasUnitPrice > 0 ? gasUnitPrice : undefined,\n      maxGasAmount: maxGasAmount > 0 ? maxGasAmount : undefined,\n      network,\n      payload,\n      signerAddress,\n    };\n  }\n\n  // endregion\n\n  // region Request\n\n  export function serialize(\n    dappInfo: DappInfo,\n    args: Args,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    const request = { args, dappInfo, name, version: currentVersion };\n    return serializeWalletRequestWithArgs(request, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedRequest: SerializedWalletRequest<RequestName, SupportedVersions>,\n  ): SignAndSubmitTransactionRequest {\n    return deserializeWalletRequestWithArgs(serializedRequest, (deserializer) =>\n      deserializeArgs(deserializer, serializedRequest.version),\n    );\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, SupportedVersions> {\n    return (\n      request.name === name &&\n      supportedVersions.includes(request.version as SupportedVersions)\n    );\n  }\n\n  // endregion\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport {\n  makeUserResponseDeserializeFn,\n  makeUserResponseSerializeFn,\n  UserResponse,\n} from '../../UserResponse';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface SignAndSubmitTransactionResponse\n  extends WalletResponseWithArgs<SignAndSubmitTransactionResponse.Args> {}\n\nexport namespace SignAndSubmitTransactionResponse {\n  // region ApprovalArgs\n\n  export interface ApprovalArgs {\n    txnHash: string;\n  }\n\n  function serializeApprovalArgs(serializer: Serializer, value: ApprovalArgs) {\n    serializer.serializeStr(value.txnHash);\n  }\n\n  function deserializeApprovalArgs(deserializer: Deserializer): ApprovalArgs {\n    const txnHash = deserializer.deserializeStr();\n    return { txnHash };\n  }\n\n  // endregion\n\n  // region ResponseArgs\n\n  export type Args = UserResponse<ApprovalArgs>;\n\n  const serializeArgs = makeUserResponseSerializeFn(serializeApprovalArgs);\n  const deserializeArgs = makeUserResponseDeserializeFn(\n    deserializeApprovalArgs,\n  );\n\n  // endregion\n\n  type _Response = SignAndSubmitTransactionResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { AptosSignInInput } from '@aptos-labs/wallet-standard';\n\nexport function serializeAptosSignInInput(\n  serializer: Serializer,\n  value: AptosSignInInput,\n) {\n  serializer.serializeStr(JSON.stringify(value));\n}\n\nexport function deserializeAptosSignInInput(\n  deserializer: Deserializer,\n): AptosSignInInput {\n  return JSON.parse(deserializer.deserializeStr());\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Network, Serializer } from '@aptos-labs/ts-sdk';\nimport { AptosSignInInput } from '@aptos-labs/wallet-standard';\nimport { isSupportedNetwork } from '../../helpers';\nimport { DappInfo, ExtendedNetwork } from '../../shared';\nimport {\n  deserializeAptosSignInInput,\n  serializeAptosSignInInput,\n} from '../../shared/AptosSignInInput';\nimport {\n  deserializeWalletRequestWithArgs,\n  SerializedWalletRequest,\n  serializeWalletRequestWithArgs,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface SignInRequest\n  extends WalletRequest<\n    SignInRequest.RequestName,\n    SignInRequest.SupportedVersions\n  > {\n  args: SignInRequest.Args;\n}\n\nexport namespace SignInRequest {\n  export const name = 'signIn' as const;\n  export type RequestName = typeof name;\n\n  export const supportedVersions = [1, 2, 3] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n\n  export const currentVersion = 3 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region Args\n\n  export type Args = AptosSignInInput & {\n    network: ExtendedNetwork;\n  };\n\n  export function serializeArgs(serializer: Serializer, value: Args) {\n    if (value.network !== undefined && !isSupportedNetwork(value.network)) {\n      throw new Error(\n        `Unsupported network '${value.network}' in SignInRequest.serializeArgs`,\n      );\n    }\n\n    serializeAptosSignInInput(serializer, value);\n    serializer.serializeStr(value.network);\n  }\n\n  export function deserializeArgs(\n    deserializer: Deserializer,\n    _: SupportedVersions,\n  ): Args {\n    return {\n      ...deserializeAptosSignInInput(deserializer),\n      network: deserializer.deserializeStr() as Network,\n    };\n  }\n\n  // endregion\n\n  export function serialize(\n    dappInfo: DappInfo,\n    args: SignInRequest.Args,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    return serializeWalletRequestWithArgs(\n      { args, dappInfo, name, version: currentVersion },\n      serializeArgs,\n    );\n  }\n\n  export function deserialize(\n    request: SerializedWalletRequest<RequestName, SupportedVersions>,\n  ): SignInRequest {\n    return deserializeWalletRequestWithArgs(request, (d) =>\n      deserializeArgs(d, request.version),\n    );\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, SupportedVersions> {\n    return (\n      request.name === name &&\n      supportedVersions.includes(request.version as SupportedVersions)\n    );\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { AccountInfo, AptosSignInOutput } from '@aptos-labs/wallet-standard';\nimport { deserializeAccountInfo, serializeAccountInfo } from './AccountInfo';\nimport { deserializeSignature, serializeSignature } from './Signature';\n\nexport function serializeAptosSignInOutputV1(\n  serializer: Serializer,\n  value: AptosSignInOutput & { plainText: string; signingMessage: Uint8Array },\n) {\n  serializeAccountInfo(serializer, value.account);\n  serializer.serializeStr(JSON.stringify(value.input));\n  serializer.serializeStr(value.plainText);\n  serializeSignature(serializer, value.signature);\n  serializer.serializeBytes(value.signingMessage);\n  serializer.serializeStr(value.type);\n}\n\nexport function deserializeAptosSignInOutputV1(\n  deserializer: Deserializer,\n): AptosSignInOutput & { plainText: string; signingMessage: Uint8Array } {\n  return {\n    account: new AccountInfo(deserializeAccountInfo(deserializer)),\n    input: JSON.parse(deserializer.deserializeStr()),\n    plainText: deserializer.deserializeStr(),\n    signature: deserializeSignature(deserializer),\n    signingMessage: deserializer.deserializeBytes(),\n    type: deserializer.deserializeStr(),\n  };\n}\n\nexport function serializeAptosSignInOutput(\n  serializer: Serializer,\n  value: AptosSignInOutput,\n) {\n  serializeAccountInfo(serializer, value.account);\n  serializer.serializeStr(JSON.stringify(value.input));\n  serializeSignature(serializer, value.signature);\n  serializer.serializeStr(value.type);\n}\n\nexport function deserializeAptosSignInOutput(\n  deserializer: Deserializer,\n): AptosSignInOutput {\n  return {\n    account: new AccountInfo(deserializeAccountInfo(deserializer)),\n    input: JSON.parse(deserializer.deserializeStr()),\n    signature: deserializeSignature(deserializer),\n    type: deserializer.deserializeStr(),\n  };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { AptosSignInOutput } from '@aptos-labs/wallet-standard';\nimport {\n  deserializeAptosSignInOutput,\n  deserializeAptosSignInOutputV1,\n  serializeAptosSignInOutput,\n  serializeAptosSignInOutputV1,\n} from '../../shared/AptosSignInOutput';\nimport {\n  makeUserResponseDeserializeFn,\n  makeUserResponseSerializeFn,\n  UserResponse,\n} from '../../UserResponse';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface SignInResponse\n  extends WalletResponseWithArgs<SignInResponse.Args> {}\n\nexport namespace SignInResponse {\n  export const supportedVersions = [1, 2] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n\n  export const currentVersion = 2 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region ApprovalArgs\n\n  export interface ApprovalArgsV1 extends AptosSignInOutput {\n    plainText: string;\n    signingMessage: Uint8Array;\n  }\n\n  export interface ApprovalArgs extends AptosSignInOutput {}\n\n  function serializeApprovalArgsV1(\n    serializer: Serializer,\n    value: ApprovalArgsV1,\n  ) {\n    serializeAptosSignInOutputV1(serializer, value);\n  }\n\n  function deserializeApprovalArgsV1(\n    deserializer: Deserializer,\n  ): ApprovalArgsV1 {\n    return deserializeAptosSignInOutputV1(deserializer);\n  }\n\n  function serializeApprovalArgs(serializer: Serializer, value: ApprovalArgs) {\n    serializeAptosSignInOutput(serializer, value);\n  }\n\n  function deserializeApprovalArgs(deserializer: Deserializer): ApprovalArgs {\n    return deserializeAptosSignInOutput(deserializer);\n  }\n\n  // endregion\n\n  // region ResponseArgs\n\n  export type Args = UserResponse<ApprovalArgs>;\n\n  const serializeArgsV1 = makeUserResponseSerializeFn(serializeApprovalArgsV1);\n  const serializeArgs = makeUserResponseSerializeFn(serializeApprovalArgs);\n\n  const deserializeArgsV1 = makeUserResponseDeserializeFn(\n    deserializeApprovalArgsV1,\n  );\n  const deserializeArgs = makeUserResponseDeserializeFn(\n    deserializeApprovalArgs,\n  );\n\n  // endregion\n\n  type _Response = SignInResponse;\n\n  export function serialize(\n    args: Args,\n    version: SupportedVersions = currentVersion,\n  ): SerializedWalletResponse {\n    return serializeWalletResponse(\n      args as any,\n      version === 1 ? serializeArgsV1 : serializeArgs,\n    );\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n    version: SupportedVersions = currentVersion,\n  ): _Response {\n    return deserializeWalletResponse(\n      serializedResponse,\n      version === 1 ? deserializeArgsV1 : deserializeArgs,\n    );\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { AccountAddress, Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { DappInfo } from '../../shared';\nimport {\n  deserializeWalletRequestWithArgs,\n  SerializedWalletRequest,\n  serializeWalletRequestWithArgs,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface SignMessageRequest\n  extends WalletRequest<\n    SignMessageRequest.RequestName,\n    SignMessageRequest.SupportedVersions\n  > {\n  args: SignMessageRequest.Args;\n}\n\nexport namespace SignMessageRequest {\n  export const name = 'signMessage' as const;\n  export type RequestName = typeof name;\n\n  export const supportedVersions = [1, 2] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n  export const currentVersion = 2 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region Args\n\n  export interface Args {\n    chainId: number;\n    message: Uint8Array;\n    nonce: Uint8Array;\n    signerAddress?: AccountAddress;\n  }\n\n  function serializeArgs(serializer: Serializer, value: Args) {\n    serializer.serializeBool(value.signerAddress !== undefined);\n    if (value.signerAddress !== undefined) {\n      serializer.serialize(value.signerAddress);\n    }\n    serializer.serializeU8(value.chainId);\n    serializer.serializeBytes(value.nonce);\n    serializer.serializeBytes(value.message);\n  }\n\n  function deserializeArgs(\n    deserializer: Deserializer,\n    version: SupportedVersions,\n  ): Args {\n    const hasSignerAddress = version >= 2 && deserializer.deserializeBool();\n    const signerAddress = hasSignerAddress\n      ? deserializer.deserialize(AccountAddress)\n      : undefined;\n    const chainId = deserializer.deserializeU8();\n    const nonce = deserializer.deserializeBytes();\n    const message = deserializer.deserializeBytes();\n    return { chainId, message, nonce, signerAddress };\n  }\n\n  // endregion\n\n  // region Request\n\n  export function serialize(\n    dappInfo: DappInfo,\n    args: Args,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    const request = { args, dappInfo, name, version: currentVersion };\n    return serializeWalletRequestWithArgs(request, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedRequest: SerializedWalletRequest<RequestName, SupportedVersions>,\n  ): SignMessageRequest {\n    return deserializeWalletRequestWithArgs(serializedRequest, (d) =>\n      deserializeArgs(d, serializedRequest.version),\n    );\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, SupportedVersions> {\n    return request.name === name && request.version === currentVersion;\n  }\n\n  // endregion\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport { Deserializer, Serializer, Signature } from '@aptos-labs/ts-sdk';\nimport { deserializeSignature, serializeSignature } from '../../shared';\nimport {\n  makeUserResponseDeserializeFn,\n  makeUserResponseSerializeFn,\n  UserResponse,\n} from '../../UserResponse';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface SignMessageResponse\n  extends WalletResponseWithArgs<SignMessageResponse.Args> {}\n\nexport namespace SignMessageResponse {\n  // region ApprovalArgs\n\n  export interface ApprovalArgs {\n    // Should return message parts\n    fullMessage: string;\n    signature: Signature;\n  }\n\n  function serializeApprovalArgs(serializer: Serializer, value: ApprovalArgs) {\n    serializer.serializeStr(value.fullMessage);\n    serializeSignature(serializer, value.signature);\n  }\n\n  function deserializeApprovalArgs(deserializer: Deserializer): ApprovalArgs {\n    const fullMessage = deserializer.deserializeStr();\n    const signature = deserializeSignature(deserializer);\n    return { fullMessage, signature };\n  }\n\n  // endregion\n\n  // region ResponseArgs\n\n  export type Args = UserResponse<ApprovalArgs>;\n\n  const serializeArgs = makeUserResponseSerializeFn(serializeApprovalArgs);\n  const deserializeArgs = makeUserResponseDeserializeFn(\n    deserializeApprovalArgs,\n  );\n\n  // endregion\n\n  type _Response = SignMessageResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport {\n  AccountAddress,\n  Deserializer,\n  InputGenerateTransactionPayloadData,\n  PublicKey,\n  RawTransaction,\n  Serializer,\n  TransactionPayload,\n} from '@aptos-labs/ts-sdk';\nimport { chainIdToNetwork, isSupportedNetwork } from '../../helpers';\nimport {\n  AccountInput,\n  DappInfo,\n  deserializeAccountInput,\n  deserializeTransactionPayloadInput,\n  ExtendedNetwork,\n  serializeAccountInput,\n  serializeTransactionPayloadInput,\n} from '../../shared';\nimport {\n  deserializeWalletRequestWithArgs,\n  SerializedWalletRequest,\n  serializeWalletRequestWithArgs,\n  WalletRequest,\n} from '../../WalletRequest';\n\nexport interface SignTransactionRequest\n  extends WalletRequest<\n    SignTransactionRequest.RequestName,\n    SignTransactionRequest.SupportedVersions\n  > {\n  args: SignTransactionRequest.Args;\n}\n\nexport namespace SignTransactionRequest {\n  export const name = 'signTransaction' as const;\n  export type RequestName = typeof name;\n\n  export const supportedVersions = [1, 2, 3, 4, 5] as const;\n  export type SupportedVersions = (typeof supportedVersions)[number];\n  export const currentVersion = 5 as const;\n  export type CurrentVersion = typeof currentVersion;\n\n  // region Args\n\n  export interface Args {\n    expirationSecondsFromNow?: number;\n    expirationTimestamp?: number;\n    feePayer?: AccountInput;\n    gasUnitPrice?: number;\n    maxGasAmount?: number;\n    network?: ExtendedNetwork;\n    payload: TransactionPayload | InputGenerateTransactionPayloadData;\n    secondarySigners?: AccountInput[];\n    sender?: AccountInput;\n    sequenceNumber?: number | bigint;\n    signerAddress?: AccountAddress;\n  }\n\n  export interface ArgsWithTransaction {\n    feePayer?: AccountInput;\n    secondarySigners?: AccountInput[];\n    senderPublicKey?: PublicKey;\n    signerAddress?: AccountAddress;\n    transaction: RawTransaction;\n  }\n\n  export function normalizeArgs(args: ArgsWithTransaction): Args {\n    const {\n      feePayer,\n      secondarySigners,\n      senderPublicKey,\n      signerAddress,\n      transaction,\n    } = args;\n\n    const sender: AccountInput = {\n      address: transaction.sender,\n      publicKey: senderPublicKey,\n    };\n\n    const network = chainIdToNetwork(args.transaction.chain_id.chainId);\n\n    return {\n      expirationTimestamp: Number(transaction.expiration_timestamp_secs),\n      feePayer,\n      gasUnitPrice: Number(transaction.gas_unit_price),\n      maxGasAmount: Number(transaction.max_gas_amount),\n      network,\n      payload: transaction.payload,\n      secondarySigners,\n      sender,\n      signerAddress,\n    };\n  }\n\n  function serializeArgs(serializer: Serializer, value: Args) {\n    if (value.network !== undefined && !isSupportedNetwork(value.network)) {\n      throw new Error(`Unsupported network '${value.network}'`);\n    }\n\n    serializer.serializeBool(value.signerAddress !== undefined);\n    if (value.signerAddress !== undefined) {\n      serializer.serialize(value.signerAddress);\n    }\n\n    serializer.serializeOption(value.network);\n    serializer.serializeBool(value.sender !== undefined);\n    if (value.sender !== undefined) {\n      serializeAccountInput(serializer, value.sender);\n    }\n\n    if ('bcsToBytes' in value.payload) {\n      serializer.serializeBool(true);\n      serializer.serialize(value.payload);\n    } else {\n      serializer.serializeBool(false);\n      serializeTransactionPayloadInput(serializer, value.payload);\n    }\n\n    serializer.serializeU32AsUleb128(value.expirationSecondsFromNow ?? 0);\n    serializer.serializeU64(value.expirationTimestamp ?? 0);\n    serializer.serializeU32AsUleb128(value.gasUnitPrice ?? 0);\n    serializer.serializeU32AsUleb128(value.maxGasAmount ?? 0);\n\n    serializer.serializeBool(value.feePayer !== undefined);\n    if (value.feePayer !== undefined) {\n      serializeAccountInput(serializer, value.feePayer);\n    }\n\n    const secondarySigners = value.secondarySigners ?? [];\n    serializer.serializeU32AsUleb128(secondarySigners.length);\n    for (const signer of secondarySigners) {\n      serializeAccountInput(serializer, signer);\n    }\n  }\n\n  function deserializeArgs(\n    deserializer: Deserializer,\n    version: SupportedVersions,\n  ): Args {\n    const hasSignerAddress = version >= 3 && deserializer.deserializeBool();\n    const signerAddress = hasSignerAddress\n      ? deserializer.deserialize(AccountAddress)\n      : undefined;\n\n    const network =\n      version === 1\n        ? deserializer.deserializeStr()\n        : deserializer.deserializeOption('string');\n    if (network !== undefined && !isSupportedNetwork(network)) {\n      throw new Error(`Unsupported network '${network}'`);\n    }\n\n    const hasSender = deserializer.deserializeBool();\n    const sender = hasSender\n      ? deserializeAccountInput(deserializer)\n      : undefined;\n\n    const isPayloadBcsSerializable =\n      version < 4 || deserializer.deserializeBool();\n    const payload = isPayloadBcsSerializable\n      ? deserializer.deserialize(TransactionPayload)\n      : deserializeTransactionPayloadInput(deserializer);\n\n    const expirationSecondsFromNow = deserializer.deserializeUleb128AsU32();\n    const expirationTimestamp = Number(deserializer.deserializeU64());\n    const gasUnitPrice = deserializer.deserializeUleb128AsU32();\n    const maxGasAmount = deserializer.deserializeUleb128AsU32();\n    const hasFeePayer = deserializer.deserializeBool();\n    const feePayer = hasFeePayer\n      ? deserializeAccountInput(deserializer)\n      : undefined;\n\n    const secondarySignersLength = deserializer.deserializeUleb128AsU32();\n    const secondarySigners: AccountInput[] = [];\n    for (let i = 0; i < secondarySignersLength; i += 1) {\n      secondarySigners.push(deserializeAccountInput(deserializer));\n    }\n\n    return {\n      expirationSecondsFromNow:\n        expirationSecondsFromNow > 0 ? expirationSecondsFromNow : undefined,\n      expirationTimestamp:\n        expirationTimestamp > 0 ? expirationTimestamp : undefined,\n      feePayer,\n      gasUnitPrice: gasUnitPrice > 0 ? gasUnitPrice : undefined,\n      maxGasAmount: maxGasAmount > 0 ? maxGasAmount : undefined,\n      network,\n      payload,\n      secondarySigners,\n      sender,\n      signerAddress,\n    };\n  }\n\n  // endregion\n\n  // region Request\n\n  export function serialize(\n    dappInfo: DappInfo,\n    args: Args,\n  ): SerializedWalletRequest<RequestName, CurrentVersion> {\n    const request = { args, dappInfo, name, version: currentVersion };\n    return serializeWalletRequestWithArgs(request, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedRequest: SerializedWalletRequest<RequestName, SupportedVersions>,\n  ): SignTransactionRequest {\n    return deserializeWalletRequestWithArgs(serializedRequest, (deserializer) =>\n      deserializeArgs(deserializer, serializedRequest.version),\n    );\n  }\n\n  export function isSerialized(\n    request: SerializedWalletRequest,\n  ): request is SerializedWalletRequest<RequestName, SupportedVersions> {\n    return (\n      request.name === name &&\n      supportedVersions.includes(request.version as SupportedVersions)\n    );\n  }\n\n  // endregion\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-inner-declarations */\n\nimport {\n  AccountAuthenticator,\n  Deserializer,\n  RawTransaction,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport {\n  makeUserResponseDeserializeFn,\n  makeUserResponseSerializeFn,\n  UserResponse,\n} from '../../UserResponse';\nimport {\n  deserializeWalletResponse,\n  SerializedWalletResponse,\n  serializeWalletResponse,\n  WalletResponseWithArgs,\n} from '../../WalletResponse';\n\nexport interface SignTransactionResponse\n  extends WalletResponseWithArgs<SignTransactionResponse.Args> {}\n\nexport namespace SignTransactionResponse {\n  // region ApprovalArgs\n\n  export interface ApprovalArgs {\n    authenticator: AccountAuthenticator;\n    rawTransaction?: RawTransaction;\n  }\n\n  function serializeApprovalArgs(serializer: Serializer, value: ApprovalArgs) {\n    serializer.serialize(value.authenticator);\n    serializer.serializeBool(value.rawTransaction !== undefined);\n    if (value.rawTransaction !== undefined) {\n      serializer.serialize(value.rawTransaction);\n    }\n  }\n\n  function deserializeApprovalArgs(deserializer: Deserializer): ApprovalArgs {\n    const authenticator = deserializer.deserialize(AccountAuthenticator);\n    const hasRawTransaction = deserializer.deserializeBool();\n    const rawTransaction = hasRawTransaction\n      ? deserializer.deserialize(RawTransaction)\n      : undefined;\n\n    return {\n      authenticator,\n      rawTransaction,\n    };\n  }\n\n  // endregion\n\n  // region ResponseArgs\n\n  export type Args = UserResponse<ApprovalArgs>;\n\n  const serializeArgs = makeUserResponseSerializeFn(serializeApprovalArgs);\n  const deserializeArgs = makeUserResponseDeserializeFn(\n    deserializeApprovalArgs,\n  );\n\n  // endregion\n\n  type _Response = SignTransactionResponse;\n\n  export function serialize(args: Args): SerializedWalletResponse {\n    return serializeWalletResponse(args, serializeArgs);\n  }\n\n  export function deserialize(\n    serializedResponse: SerializedWalletResponse,\n  ): _Response {\n    return deserializeWalletResponse(serializedResponse, deserializeArgs);\n  }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nexport type TypedMessage<MessageType extends string = string> = {\n  __messageType: MessageType;\n};\nexport type TypedMessageConstructor<\n  TMessage extends TypedMessage<MessageType>,\n  MessageType extends string,\n> = {\n  TYPE: MessageType;\n  new (...args: any[]): TMessage;\n};\n\nexport function isTypedMessage<\n  TMessage extends TypedMessage<MessageType>,\n  MessageType extends string,\n>(\n  messageCls: TypedMessageConstructor<TMessage, MessageType>,\n  message: any,\n): message is TMessage {\n  return message?.__messageType === messageCls.TYPE;\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from '@aptos-labs/ts-sdk';\nimport { base64ToBytes, bytesToBase64 } from '../base64';\nimport { SerializedWalletRequest } from '../WalletRequest';\nimport { SerializedWalletResponse } from '../WalletResponse';\nimport { TypedMessage } from './common';\n\nexport class PromptConnectionRequestMessage implements TypedMessage {\n  static readonly TYPE = 'PromptConnectionRequest';\n  readonly __messageType = PromptConnectionRequestMessage.TYPE;\n}\n\nexport class PromptConnectionResponseMessage implements TypedMessage {\n  static readonly TYPE = 'PromptConnectionResponse';\n  readonly __messageType = PromptConnectionResponseMessage.TYPE;\n\n  constructor(public serializedRequest: SerializedWalletRequest) {}\n}\n\nexport class PromptApprovalResponseMessage implements TypedMessage {\n  static readonly TYPE = 'PromptApprovalResponse';\n  readonly __messageType = PromptApprovalResponseMessage.TYPE;\n\n  constructor(public serializedValue: SerializedWalletResponse) {}\n}\n\nexport class PromptUnauthorizedErrorMessage implements TypedMessage {\n  static readonly TYPE = 'PromptUnauthorizedError';\n  readonly __messageType = PromptUnauthorizedErrorMessage.TYPE;\n}\n\nexport function urlEncodeWalletRequest(request: SerializedWalletRequest) {\n  const serializer = new Serializer();\n  serializer.serializeStr(request.name);\n  serializer.serializeBytes(request.data);\n  serializer.serializeStr(request.version.toString());\n  return bytesToBase64(serializer.toUint8Array());\n}\n\nexport function urlDecodeWalletRequest(\n  encodedRequest: string,\n): SerializedWalletRequest {\n  const deserializer = new Deserializer(base64ToBytes(encodedRequest));\n  const name = deserializer.deserializeStr();\n  const data = deserializer.deserializeBytes();\n\n  let version: number;\n  try {\n    version = Number(deserializer.deserializeStr());\n  } catch {\n    version = 1;\n  }\n  return { data, name, version };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n  AccountAddress,\n  AccountAddressInput,\n  Ed25519PublicKey,\n  Ed25519Signature,\n  Serializer,\n} from '@aptos-labs/ts-sdk';\nimport {\n  base64ToBytes,\n  base64urlToBytes,\n  bytesToBase64,\n  bytesToBase64url,\n} from './base64';\nimport {\n  decodeWalletRequestBody,\n  encodeWalletRequestBody,\n  type WalletRequestBody,\n} from './WalletRequestBody';\n\nexport interface UnsignedPopupWalletRequest {\n  accountAddress?: AccountAddressInput;\n  body: WalletRequestBody;\n  clientIdentityKey?: undefined;\n}\n\nexport interface BaseSignedPopupWalletRequest {\n  accountAddress?: AccountAddressInput;\n  clientIdentityKey: Ed25519PublicKey;\n  id: string;\n  // against ('AptosConnectWalletRequest', id, body, address, timestamp)\n  signature: Ed25519Signature;\n  timestamp: number;\n}\n\nexport interface DeferredSignedPopupWalletRequest\n  extends BaseSignedPopupWalletRequest {\n  body?: undefined;\n}\n\nexport interface SignedPopupWalletRequest extends BaseSignedPopupWalletRequest {\n  body: WalletRequestBody;\n}\n\nexport type PopupWalletRequest =\n  | UnsignedPopupWalletRequest\n  | DeferredSignedPopupWalletRequest\n  | SignedPopupWalletRequest;\n\nexport function encodePopupWalletRequest(request: PopupWalletRequest): string {\n  const serialized = JSON.stringify(request, (key, value) => {\n    switch (key) {\n      case 'body':\n        return encodeWalletRequestBody(value);\n      case 'clientIdentityKey':\n        return bytesToBase64((value as Ed25519PublicKey).toUint8Array());\n      case 'signature':\n        return bytesToBase64((value as Ed25519Signature).toUint8Array());\n      default:\n        return value;\n    }\n  });\n  const utf8Encoded = new TextEncoder().encode(serialized);\n  return bytesToBase64url(utf8Encoded);\n}\n\nexport function decodePopupWalletRequest(encoded: string): PopupWalletRequest {\n  const utfEncoded = base64urlToBytes(encoded);\n  const serialized = new TextDecoder().decode(utfEncoded);\n  return JSON.parse(serialized, (key, value) => {\n    switch (key) {\n      case 'body':\n        return decodeWalletRequestBody(value);\n      case 'clientIdentityKey':\n        return new Ed25519PublicKey(base64ToBytes(value));\n      case 'signature':\n        return new Ed25519Signature(base64ToBytes(value));\n      default:\n        return value;\n    }\n  });\n}\n\nexport function makePopupWalletRequestChallenge({\n  accountAddress,\n  body,\n  id,\n  timestamp,\n}: Omit<SignedPopupWalletRequest, 'clientIdentityKey' | 'signature'>) {\n  const serializer = new Serializer();\n  serializer.serializeStr('SignedPopupWalletRequest');\n  serializer.serializeStr(id);\n  serializer.serializeU64(timestamp);\n  serializer.serializeBool(accountAddress !== undefined);\n  if (accountAddress !== undefined) {\n    serializer.serialize(AccountAddress.from(accountAddress));\n  }\n  serializer.serializeStr(body.name);\n  serializer.serializeU8(body.version);\n  serializer.serializeBytes(body.data);\n  return serializer.toUint8Array();\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { base64ToBytes, bytesToBase64 } from './base64';\n\nexport interface WalletRequestBody<\n  RequestName extends string = string,\n  Version extends number = number,\n> {\n  data: Uint8Array;\n  name: RequestName;\n  version: Version;\n}\n\nexport function encodeWalletRequestBody({\n  data,\n  ...rest\n}: WalletRequestBody): string {\n  const serialized = JSON.stringify({ data, ...rest }, (key, value) =>\n    key === 'data' ? bytesToBase64(value) : value,\n  );\n  const utf8Encoded = new TextEncoder().encode(serialized);\n  return bytesToBase64(utf8Encoded);\n}\n\nexport function decodeWalletRequestBody(encoded: string): WalletRequestBody {\n  const utfEncoded = base64ToBytes(encoded);\n  const serialized = new TextDecoder().decode(utfEncoded);\n  return JSON.parse(serialized, (key, value) =>\n    key === 'data' ? base64ToBytes(value) : value,\n  );\n}\n"],"mappings":"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","names":["AccountAddress","AccountAddress","AccountAddress","AccountAddress","AccountAddress","EntryFunctionArgumentVariant","SigningScheme","AccountAddress","TransactionPayloadInputVariant","AccountAddress","Deserializer","Serializer","Serializer","Deserializer","ConnectRequest","Deserializer","Serializer","ConnectResponse","DisconnectRequest","DisconnectResponse","GetConnectedAccountsRequest","GetConnectedAccountsResponse","IsConnectedRequest","IsConnectedResponse","AccountAddress","SignAndSubmitTransactionRequest","AccountAddress","SignAndSubmitTransactionResponse","SignInRequest","SignInResponse","AccountAddress","SignMessageRequest","AccountAddress","SignMessageResponse","AccountAddress","TransactionPayload","SignTransactionRequest","AccountAddress","TransactionPayload","AccountAuthenticator","RawTransaction","SignTransactionResponse","AccountAuthenticator","RawTransaction","Deserializer","Serializer","Serializer","Deserializer","AccountAddress","Ed25519PublicKey","Ed25519Signature","Serializer","Ed25519PublicKey","Ed25519Signature","Serializer","AccountAddress"]}