{"version":3,"sources":["../src/generated/addresses.ts","../src/utils.ts","../src/index.ts"],"names":["AptosProvider","AptosConfig","Net","Aptos","Chain","Stage","chainAndStageToNetwork","AccountAddress","LayerZeroModulesSdk","AccountAuthenticatorEd25519","AptosApiError","MoveAbortError","MoveResourceNotFoundError","MoveTableItemNotFoundError","UnclassifiedError","Ed25519Account","isMnemonicAndPath","isPrivateKey","Ed25519PrivateKey","invariant"],"mappings":"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","file":"index.cjs","sourcesContent":["// WARNING: Do not change this code. It is auto generated.\n// If you want some new feature, please update generate-addresses.ts.\nimport { Network } from '@layerzerolabs/lz-definitions'\nexport const ENDPOINT_V2_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x824f76b2794de0a0bf25384f2fde4db5936712e6c5c45cf2c3f9ef92e75709c',\n        'aptos-testnet': '0x7f03103b83c51c8b09be1751a797a65ac6e755f72947ecdecffc203d32d816c6',\n        'aptos-mainnet': '0xe60045e20fc2c99e869c1c34a65b9291c020cd12a0d37a00a53ac1348af4f43c',\n        'movement-sandbox-local': '0x824f76b2794de0a0bf25384f2fde4db5936712e6c5c45cf2c3f9ef92e75709c',\n        'movement-testnet': '0x7f03103b83c51c8b09be1751a797a65ac6e755f72947ecdecffc203d32d816c6',\n        'movement-mainnet': '0xe60045e20fc2c99e869c1c34a65b9291c020cd12a0d37a00a53ac1348af4f43c',\n}\nexport const SIMPLE_MESSAGE_LIB_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xbb29964fac328dc2cd1dbf03982e51fad9de67e2a525c35d6e52cde4b66e7997',\n        'aptos-testnet': '0x98ab4d5f6f5ae0d3bc9d9785cfd63244fffc4652bf54f8971cb7035589a256eb',\n        'aptos-mainnet': '0x52d5c6f8dcb20ed8ace8dbaa7cc09a98eb1dbec0f184720795310c031ace5111',\n        'movement-sandbox-local': '0xbb29964fac328dc2cd1dbf03982e51fad9de67e2a525c35d6e52cde4b66e7997',\n        'movement-testnet': '0x98ab4d5f6f5ae0d3bc9d9785cfd63244fffc4652bf54f8971cb7035589a256eb',\n        'movement-mainnet': '0x52d5c6f8dcb20ed8ace8dbaa7cc09a98eb1dbec0f184720795310c031ace5111',\n}\nexport const ULN_MESSAGE_LIB_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x3f2714ef2d63f1128f45e4a3d31b354c1c940ccdb38aca697c9797ef95e7a09f',\n        'aptos-testnet': '0xcc1c03aed42e2841211865758b5efe93c0dde2cb7a2a5dc6cf25a4e33ad23690',\n        'aptos-mainnet': '0xc33752e0220faf79e45385dd73fb28d681dcd9f1569a1480725507c1f3c3aba9',\n        'movement-sandbox-local': '0x3f2714ef2d63f1128f45e4a3d31b354c1c940ccdb38aca697c9797ef95e7a09f',\n        'movement-testnet': '0xcc1c03aed42e2841211865758b5efe93c0dde2cb7a2a5dc6cf25a4e33ad23690',\n        'movement-mainnet': '0xc33752e0220faf79e45385dd73fb28d681dcd9f1569a1480725507c1f3c3aba9',\n}\nexport const COUNTER_V2_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xbf1258595a80969371696c798d481a47dd0a1e8fe087c1c8e2a94e17801bec6e',\n        'aptos-testnet': '0x0b8815df49c1f36000581fbe37b39f703f112ff83081004302c2effb5f6305f5',\n        'aptos-mainnet': '0x3dd555e720e29ffd45c7ba6f3dcacc3a467730a900e3de81b791f5b3863579f1',\n        'movement-sandbox-local': '0xbf1258595a80969371696c798d481a47dd0a1e8fe087c1c8e2a94e17801bec6e',\n        'movement-testnet': '0xb8815df49c1f36000581fbe37b39f703f112ff83081004302c2effb5f6305f5',\n        'movement-mainnet': '0x3dd555e720e29ffd45c7ba6f3dcacc3a467730a900e3de81b791f5b3863579f1',\n}\nexport const OFT_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x40cf3d168e49851d6423b919338aba1c42f018a9996395e777548a7e9ce956c9',\n        'aptos-testnet': '0x732ab32f721cc9dea67db94e1bbfc9641f7c6c45bcfc277757559bb6d501340f',\n        'aptos-mainnet': '0xd0ef5cf11188041d9e688d9fbf0f0205e3d156b4b4325e6268256a6e51c9fab9',\n        'movement-sandbox-local': '0x40cf3d168e49851d6423b919338aba1c42f018a9996395e777548a7e9ce956c9',\n        'movement-testnet': '0x732ab32f721cc9dea67db94e1bbfc9641f7c6c45bcfc277757559bb6d501340f',\n        'movement-mainnet': '0xd0ef5cf11188041d9e688d9fbf0f0205e3d156b4b4325e6268256a6e51c9fab9',\n}\nexport const LAYERZERO_VIEWS_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x9f03c64333c99c9d319ffc034c13618d309a8fa6f18636261d7e5d3e21e2d8d8',\n        'aptos-testnet': '0x8a2453373b206a7d3b470a3fd62a1c7185f8ea0f7072e4ab65dd709f0f0467ff',\n        'aptos-mainnet': '0x1cc729cf1cb5491d9dd3f0ad004884cbeb8d1bc9df87bb3aa9a4917e7ffa1aee',\n        'movement-sandbox-local': '0x9f03c64333c99c9d319ffc034c13618d309a8fa6f18636261d7e5d3e21e2d8d8',\n        'movement-testnet': '0x8a2453373b206a7d3b470a3fd62a1c7185f8ea0f7072e4ab65dd709f0f0467ff',\n        'movement-mainnet': '0x1cc729cf1cb5491d9dd3f0ad004884cbeb8d1bc9df87bb3aa9a4917e7ffa1aee',\n}\nexport const EXECUTOR_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x806020afea680a0c0f32431acdfcf1a7e31ace28ce81b73da4f27c5898155590',\n        'aptos-testnet': '0x93353700091200ef9fdc536ce6a86182cc7e62da25f94356be9421c6310b9585',\n        'aptos-mainnet': '0x15a5bbf1eb7998a22c9f23810d424abe40bd59ddd8e6ab7e59529853ebed41c4',\n        'movement-sandbox-local': '0x806020afea680a0c0f32431acdfcf1a7e31ace28ce81b73da4f27c5898155590',\n        'movement-testnet': '0x93353700091200ef9fdc536ce6a86182cc7e62da25f94356be9421c6310b9585',\n        'movement-mainnet': '0x15a5bbf1eb7998a22c9f23810d424abe40bd59ddd8e6ab7e59529853ebed41c4',\n}\nexport const EXECUTOR_ULN301_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xdb02463fcf441ade02733f535f276b04e8220b8f7fbe8da5197ba4141aa0c248',\n        'aptos-testnet': '0x6c405a040328f466a9edfbc0c272731e9cdeb2d26fa6643e618614fbb120748',\n        'aptos-mainnet': '0x956f942b024d04b09b0bc40e283b3c8a247bca2671cc227e1af72f7dcae24e05',\n        'movement-sandbox-local': '0xdb02463fcf441ade02733f535f276b04e8220b8f7fbe8da5197ba4141aa0c248',\n        'movement-testnet': '0x0',\n        'movement-mainnet': '0x0',\n}\nexport const DVN_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x1f79b324153abe0ca18a279822f3b561acbaabb4d68d47ed3639b5a53e4d3470',\n        'aptos-testnet': '0x756f8ab056688d22687740f4a9aeec3b361170b28d08b719e28c4d38eed1043e',\n        'aptos-mainnet': '0xdf8f0a53b20f1656f998504b81259698d126523a31bdbbae45ba1e8a3078d8da',\n        'movement-sandbox-local': '0x1f79b324153abe0ca18a279822f3b561acbaabb4d68d47ed3639b5a53e4d3470',\n        'movement-testnet': '0x756f8ab056688d22687740f4a9aeec3b361170b28d08b719e28c4d38eed1043e',\n        'movement-mainnet': '0xdf8f0a53b20f1656f998504b81259698d126523a31bdbbae45ba1e8a3078d8da',\n}\nexport const DVN_301_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x1f79b324153abe0ca18a279822f3b561acbaabb4d68d47ed3639b5a53e4d3470',\n        'aptos-testnet': '0x60072f90836f8142e4c87820ba9e27c4e84dffcff2a0117e70ee85240f609af4',\n        'aptos-mainnet': '0xf3f0a412626edba5ddd3613d91109b241893873ac5479ade231cf0b3130572b5',\n        'movement-sandbox-local': '0x1f79b324153abe0ca18a279822f3b561acbaabb4d68d47ed3639b5a53e4d3470',\n        'movement-testnet': '0x0',\n        'movement-mainnet': '0x0',\n}\nexport const DVN_UPGRADER_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xbb0fbbe978dcf5e658e1a447d3e28977a92b276fe0e14d60081b7a2af8b3c61f',\n        'aptos-testnet': '0xf4aca0f32edb994ada0dcfa8fc51afcca9e5a70b98cdd00bfb39befcf33ef68',\n        'aptos-mainnet': '0xfbe3700ccc2db708a5412f678c7ba0a65c500799e93b4e758303a513e0f88ec',\n        'movement-sandbox-local': '0xbb0fbbe978dcf5e658e1a447d3e28977a92b276fe0e14d60081b7a2af8b3c61f',\n        'movement-testnet': '0x0',\n        'movement-mainnet': '0x0',\n}\nexport const WORKER_COMMON: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x9d8a2cc4cd5563028107b792fd3c7f4068064405ef1bc4fce1cbc3af916032e8',\n        'aptos-testnet': '0xfe0b685e4cc9e77d91d008ef4161de68f7d7646c3bf67079fd4c2f0356631be8',\n        'aptos-mainnet': '0x1bffc83ec332cb9de738e8f0c27dd2230ee57bdbc71473047fcfe8bfaa21fab7',\n        'movement-sandbox-local': '0x9d8a2cc4cd5563028107b792fd3c7f4068064405ef1bc4fce1cbc3af916032e8',\n        'movement-testnet': '0xfe0b685e4cc9e77d91d008ef4161de68f7d7646c3bf67079fd4c2f0356631be8',\n        'movement-mainnet': '0x1bffc83ec332cb9de738e8f0c27dd2230ee57bdbc71473047fcfe8bfaa21fab7',\n}\nexport const PRICE_FEED: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x894473c4f48d05a65d5bfb106ab91bc0881c7a1c7e9c66fbea2859c2ba9bff83',\n        'aptos-testnet': '0xa762d65f42c852e0a7f6240ec6441694ea1b4786392cdfa5351dee8364c868fc',\n        'aptos-mainnet': '0xad0f7141f626c07db99a7fe5b864fde080bc4966c144d88f6f14ac4af391f30',\n        'movement-sandbox-local': '0x894473c4f48d05a65d5bfb106ab91bc0881c7a1c7e9c66fbea2859c2ba9bff83',\n        'movement-testnet': '0xa762d65f42c852e0a7f6240ec6441694ea1b4786392cdfa5351dee8364c868fc',\n        'movement-mainnet': '0xad0f7141f626c07db99a7fe5b864fde080bc4966c144d88f6f14ac4af391f30',\n}\nexport const TREASURY_ADDRESS: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xd83cb5c494daec692964a3599c3b36d4bd618dc54e7bcb2bbe444a7f9732f740',\n        'aptos-testnet': '0x3a9902a21eabd3552edfc104cb4a6ce1ac4fe5af6aa24a56037969e1a0db3d93',\n        'aptos-mainnet': '0x77c941e60b8e2c8d784de2ee456fd497283edfe1e15704c99a192ff795fc38b7',\n        'movement-sandbox-local': '0xd83cb5c494daec692964a3599c3b36d4bd618dc54e7bcb2bbe444a7f9732f740',\n        'movement-testnet': '0x3a9902a21eabd3552edfc104cb4a6ce1ac4fe5af6aa24a56037969e1a0db3d93',\n        'movement-mainnet': '0x77c941e60b8e2c8d784de2ee456fd497283edfe1e15704c99a192ff795fc38b7',\n}\nexport const ENDPOINT_V2_COMMON: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xf8ce9f0030cb1fa5fb48f481d9b2da3909cd922992e7085e76a196653a707bbf',\n        'aptos-testnet': '0x3bc8cbd74c2e1929c287a0063206fbb126314976146934bae12283f6120e99e9',\n        'aptos-mainnet': '0xe1dc2a62b445403bea0dbd73df8cee03b3ead0a06b003e72e401c030a810a133',\n        'movement-sandbox-local': '0xf8ce9f0030cb1fa5fb48f481d9b2da3909cd922992e7085e76a196653a707bbf',\n        'movement-testnet': '0x3bc8cbd74c2e1929c287a0063206fbb126314976146934bae12283f6120e99e9',\n        'movement-mainnet': '0xe1dc2a62b445403bea0dbd73df8cee03b3ead0a06b003e72e401c030a810a133',\n}\nexport const DVN_FEE_LIB: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xf63f6b01ea6688189e09e2be035bef512049288ff1d307c2470a913f3831330f',\n        'aptos-testnet': '0x9b77c6ad73d3e642f4c59ff191e1b460a7f4a16a67558edba1a744b4d6a88127',\n        'aptos-mainnet': '0x349c43bc506cbbe7b754b164867bd1751763410b6458a798c25bb6f3c3e9e487',\n        'movement-sandbox-local': '0xf63f6b01ea6688189e09e2be035bef512049288ff1d307c2470a913f3831330f',\n        'movement-testnet': '0x9b77c6ad73d3e642f4c59ff191e1b460a7f4a16a67558edba1a744b4d6a88127',\n        'movement-mainnet': '0x349c43bc506cbbe7b754b164867bd1751763410b6458a798c25bb6f3c3e9e487',\n}\nexport const EXECUTOR_FEE_LIB: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0xff72f529a579e922e0edba30f384b4c9c86d05020cbd2401a23fe708f29c6664',\n        'aptos-testnet': '0x4123c50265067995272e998193638aaf876d75454b2aba50d55d950b2236ff4e',\n        'aptos-mainnet': '0xbbb5d80871b10c4a7c10b9bbc636fdca4faa05feb3b03dc27e3018a7bfcbd8cb',\n        'movement-sandbox-local': '0xff72f529a579e922e0edba30f384b4c9c86d05020cbd2401a23fe708f29c6664',\n        'movement-testnet': '0x4123c50265067995272e998193638aaf876d75454b2aba50d55d950b2236ff4e',\n        'movement-mainnet': '0xbbb5d80871b10c4a7c10b9bbc636fdca4faa05feb3b03dc27e3018a7bfcbd8cb',\n}\nexport const DEPLOY_TO_OBJECT: { [network in Network]?: string } = {\n        'aptos-sandbox-local': '0x68b674103753edaa1c3a38ef06ba92e038ff5b0fd76e066a57ad7fecd19815a6',\n        'aptos-testnet': '0x4ea1efbda3414034610c9e460aca244a8559605f328866a9e36aa892184f45c',\n        'aptos-mainnet': '0x472157dc175fa089e50fc97bbdaa7647afbca155eb2ef2c0edd1395c34f109ff',\n        'movement-sandbox-local': '0x68b674103753edaa1c3a38ef06ba92e038ff5b0fd76e066a57ad7fecd19815a6',\n        'movement-testnet': '0x4ea1efbda3414034610c9e460aca244a8559605f328866a9e36aa892184f45c',\n        'movement-mainnet': '0x472157dc175fa089e50fc97bbdaa7647afbca155eb2ef2c0edd1395c34f109ff',\n}","/**\n * The basis points (BPS) used to apply a safety margin to the gas limit.\n *\n * 1 BPS = 0.01%, so 2000 BPS = 20%.\n */\nexport const GAS_LIMIT_SAFETY_BPS = 2000\n\n/**\n * Applies a safety margin to the gas limit.\n *\n * @param {string} gasUsed - The amount of gas used.\n * @returns {bigint} The gas limit with the safety margin applied.\n */\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n    return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n","import {\n    AccountAddress,\n    AccountAddressInput,\n    AccountAuthenticator,\n    AccountAuthenticatorEd25519,\n    Aptos,\n    AptosApiError,\n    AptosConfig,\n    CommittedTransactionResponse,\n    Ed25519Account,\n    Ed25519PrivateKey,\n    InputGenerateTransactionPayloadData,\n    InputViewFunctionData,\n    LedgerVersionArg,\n    MoveStructId,\n    Network as Net,\n    ScriptFunctionArgumentTypes,\n    SimpleTransaction,\n    TableItemRequest,\n} from '@aptos-labs/ts-sdk'\nimport * as aptos from 'aptos'\nimport invariant from 'tiny-invariant'\n\nimport { Provider } from '@layerzerolabs/lz-core'\nimport { AptosProvider } from '@layerzerolabs/lz-corekit-aptos'\nimport { Chain, Stage, chainAndStageToNetwork } from '@layerzerolabs/lz-definitions'\nimport { AccountsOption, LayerZeroModulesSdk, MoveSdkImpl } from '@layerzerolabs/lz-movevm-sdk-v2'\nimport {\n    ByteCode,\n    EntryFunctionArgumentTypes,\n    GasOptions,\n    MnemonicAndPath,\n    MoveAbortError,\n    MoveFunction,\n    MoveResourceNotFoundError,\n    MoveTableItemNotFoundError,\n    MoveValue,\n    PrivateKey,\n    TransactionResponse,\n    UnclassifiedError,\n    isMnemonicAndPath,\n    isPrivateKey,\n} from '@layerzerolabs/move-definitions'\n\nimport {\n    COUNTER_V2_ADDRESS,\n    DEPLOY_TO_OBJECT,\n    DVN_ADDRESS,\n    DVN_UPGRADER_ADDRESS,\n    ENDPOINT_V2_ADDRESS,\n    ENDPOINT_V2_COMMON,\n    EXECUTOR_ADDRESS,\n    LAYERZERO_VIEWS_ADDRESS,\n    OFT_ADDRESS,\n    PRICE_FEED,\n    SIMPLE_MESSAGE_LIB_ADDRESS,\n    TREASURY_ADDRESS,\n    ULN_MESSAGE_LIB_ADDRESS,\n    WORKER_COMMON,\n} from './generated/addresses'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n    /**\n     * The chain for the SDK (optional).\n     * default value is Chain.APTOS\n     */\n    chain?: Chain\n    /**\n     * The provider for the SDK.\n     */\n    provider: Aptos\n\n    /**\n     * The stage of the SDK (optional).\n     * default value is Stage.SANDBOX\n     */\n    stage?: Stage\n\n    /**\n     * The accounts option (optional).\n     * default value is read from generated/addresses.ts\n     */\n    accounts?: AccountsOption\n}\n\n/**\n * Asserts that the given provider is an instance of AptosProvider.\n *\n * @param {Provider} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of AptosProvider.\n */\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n    if (!(provider instanceof AptosProvider)) {\n        throw new Error('Invalid provider')\n    }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {Provider} provider - The provider of the current chain. {@link AptosProvider}\n * @param {Stage} [stage] - The stage of the SDK. {@link Stage}\n * @returns {SDK} The initialized SDK instance.\n */\nexport function getSDKFromProvider(provider: Provider, stage?: Stage): SDK {\n    const client = provider.native as aptos.AptosClient\n    const url = client.nodeUrl\n    assertAptosProvider(provider)\n    const indexerUrl = provider.indexer\n    const faucetUrl = provider.faucet\n    const aptosConfig = new AptosConfig({ network: Net.LOCAL, fullnode: url, indexer: indexerUrl, faucet: faucetUrl })\n    const aptos = new Aptos(aptosConfig)\n    return new SDK({ provider: aptos, stage })\n}\n\n/**\n * Interface representing an option value.\n */\ninterface OptionValue {\n    /**\n     * The vector of Move values.\n     */\n    vec: MoveValue[]\n}\n\n/**\n * Checks if the given value is an OptionValue.\n * In contract, the type will be Option<xxx>, In SDK, the type will be OptionValue.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is OptionValue} True if the value is an OptionValue, false otherwise.\n */\nfunction isOptionValue(value: unknown): value is OptionValue {\n    return typeof value === 'object' && value != null && 'vec' in value\n}\n\n/**\n * The SDK class provides methods to interact with the Aptos.\n * For usage, please check [README.md](../README.md).\n *\n * @implements {MoveSdkImpl<Ed25519Account>}\n */\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n    chain: Chain\n    stage: Stage\n    client: Aptos\n    LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n    accounts: AccountsOption\n\n    /**\n     * Creates an instance of the SDK.\n     *\n     * @param {SdkOptions} options - The SDK options.\n     */\n    constructor(options: SdkOptions) {\n        this.chain = options.chain ?? Chain.APTOS\n        this.stage = options.stage ?? Stage.SANDBOX\n        const network = chainAndStageToNetwork(this.chain, this.stage, this.stage === Stage.SANDBOX)\n        this.accounts = options.accounts ?? {\n            endpoint_v2: AccountAddress.from(ENDPOINT_V2_ADDRESS[network] ?? '0x0').toString(),\n            counter_v2: AccountAddress.from(COUNTER_V2_ADDRESS[network] ?? '0x0').toString(),\n            oft: AccountAddress.from(OFT_ADDRESS[network] ?? '0x0').toString(),\n            layerzero_views: AccountAddress.from(LAYERZERO_VIEWS_ADDRESS[network] ?? '0x0').toString(),\n            simple_message_lib: AccountAddress.from(SIMPLE_MESSAGE_LIB_ADDRESS[network] ?? '0x0').toString(),\n            uln_message_lib: AccountAddress.from(ULN_MESSAGE_LIB_ADDRESS[network] ?? '0x0').toString(),\n            executor: AccountAddress.from(EXECUTOR_ADDRESS[network] ?? '0x0').toString(),\n            dvn: AccountAddress.from(DVN_ADDRESS[network] ?? '0x0').toString(),\n            dvn_upgrader: AccountAddress.from(DVN_UPGRADER_ADDRESS[network] ?? '0x0').toString(),\n            worker_common: AccountAddress.from(WORKER_COMMON[network] ?? '0x0').toString(),\n            price_feed: AccountAddress.from(PRICE_FEED[network] ?? '0x0').toString(),\n            treasury: AccountAddress.from(TREASURY_ADDRESS[network] ?? '0x0').toString(),\n            endpoint_v2_common: AccountAddress.from(ENDPOINT_V2_COMMON[network] ?? '0x0').toString(),\n            deploy_to_object: AccountAddress.from(DEPLOY_TO_OBJECT[network] ?? '0x0').toString(),\n        }\n        this.client = options.provider\n        this.LayerzeroModule = new LayerZeroModulesSdk(this)\n    }\n\n    /**\n     * Gets the Aptos client.\n     *\n     * @returns {Aptos} The Aptos client.\n     */\n    getAptosClient(): Aptos {\n        return this.client\n    }\n\n    /**\n     * Sends and confirms an authenticated transaction.\n     *\n     * @param {Object} args - The arguments for the transaction.\n     * @param {SimpleTransaction} args.txn - The transaction to send.\n     * @param {AccountAuthenticator} args.auth - The authenticator for the transaction.\n     * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n     */\n    async sendAndConfirmAuthTransaction(args: {\n        txn: SimpleTransaction\n        auth: AccountAuthenticator\n    }): Promise<CommittedTransactionResponse> {\n        const res = await this.client.transaction.submit.simple({\n            transaction: args.txn,\n            senderAuthenticator: args.auth,\n        })\n        return this.waitAndGetTransaction(res.hash)\n    }\n\n    public isMoveFunctionId(name: string): boolean {\n        return name.split('::').length === 3\n    }\n\n    /**\n     * Sends and confirms a transaction with the given signer and payload.\n     *\n     * @param {Ed25519Account} signer - The signer of the transaction.\n     * @param {InputEntryFunctionData} payload - The payload of the transaction.\n     * @param {GasOptions} [gasOptions] - The gas options for the transaction.\n     * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n     * @private\n     */\n    private async sendAndConfirmTransaction_(\n        signer: Ed25519Account,\n        payload: InputGenerateTransactionPayloadData,\n        gasOptions?: GasOptions\n    ): Promise<CommittedTransactionResponse> {\n        this.assertValidGasOptions(gasOptions)\n        const options = await this.estimateGas(signer, payload)\n\n        const txnRequest = await this.client.transaction.build.simple({\n            sender: signer.accountAddress,\n            data: payload,\n            options: {\n                gasUnitPrice: Number(gasOptions?.gasPrice !== undefined ? gasOptions.gasPrice : options.gas_unit_price),\n                maxGasAmount: Number(gasOptions?.gasLimit !== undefined ? gasOptions.gasLimit : options.max_gas_amount),\n            },\n        })\n        const auth = new AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txnRequest))\n        return this.sendAndConfirmAuthTransaction({ txn: txnRequest, auth: auth })\n    }\n\n    /**\n     * Handles errors and returns appropriate error instances based on the error type.\n     *\n     * @param {unknown} e - The error to handle.\n     * @returns {unknown} The handled error, which could be an instance of MoveAbortError, MoveResourceNotFoundError, MoveTableItemNotFoundError, UnclassifiedError, or the original error.\n     */\n    handleError(e: unknown): unknown {\n        if (e instanceof AptosApiError) {\n            const errorData = e.data as { message: string | undefined; error_code: string | undefined }\n            const errorString = errorData.message ?? ''\n            const errorCode = errorData.error_code ?? ''\n            const majorStatusMatch = errorString.match(/major_status:\\s([A-Z_]+)/)\n            if (majorStatusMatch !== null) {\n                const major_status = majorStatusMatch[1]\n                if (major_status === 'ABORTED') {\n                    const subStatusMatch = errorString.match(/sub_status:\\sSome\\((\\d+)\\)/)\n                    if (subStatusMatch === null) {\n                        return new MoveAbortError(Number.NEGATIVE_INFINITY, errorString)\n                    } else {\n                        return new MoveAbortError(Number(subStatusMatch[1]), errorString)\n                    }\n                } else if (major_status === 'MISSING_DATA') {\n                    return new MoveResourceNotFoundError(errorString)\n                }\n            } else if (errorCode === 'resource_not_found') {\n                return new MoveResourceNotFoundError(errorString)\n            } else if (errorCode === 'table_item_not_found') {\n                return new MoveTableItemNotFoundError(errorString)\n            } else if (errorString.includes('Move abort')) {\n                // for new version error message\n                const regex = /\\((0x[0-9a-fA-F]+)\\)/\n                const match = errorString.match(regex)\n                if (match) {\n                    const abortCode = match[1]\n                    return new MoveAbortError(Number.parseInt(abortCode, 16), errorString)\n                }\n            }\n            return new UnclassifiedError(`statusCode:${e.status},status:${e.statusText},errorString:${errorString}`)\n        }\n        return e\n    }\n\n    /**\n     * Executes a view function and returns the result.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {Object} args - The arguments for the view function.\n     * @param {MoveFunction} args.functionName - The name of the function.\n     * @param {EntryFunctionArgumentTypes[]} args.functionArgs - The arguments for the function.\n     * @param {string[]} [args.typeArgs] - The type arguments for the function.\n     * @returns {Promise<MoveValue[]>} The result of the view function.\n     */\n    async viewFunction(args: {\n        functionName: MoveFunction\n        functionArgs: EntryFunctionArgumentTypes[]\n        typeArgs?: string[]\n    }): Promise<MoveValue[]> {\n        const payload: InputViewFunctionData = {\n            function: args.functionName,\n            functionArguments: args.functionArgs,\n            typeArguments: args.typeArgs ?? [],\n        }\n        try {\n            let view = await this.client.view({ payload })\n            view = view.map((item) => {\n                if (isOptionValue(item)) {\n                    if (item.vec.length !== 0) {\n                        return item.vec[0]\n                    } else {\n                        return null\n                    }\n                }\n                return item\n            })\n            if (view.length > 1) {\n                view = [view]\n            }\n            return view as MoveValue[]\n        } catch (e) {\n            throw this.handleError(e)\n        }\n    }\n\n    /**\n     * Normalizes the signer to an Ed25519Account.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer to normalize.\n     * @returns {Ed25519Account} The normalized signer.\n     * @throws {Error} If the signer is invalid.\n     */\n    normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account {\n        if (signer instanceof Ed25519Account) {\n            return signer\n        } else if (isMnemonicAndPath(signer)) {\n            return Ed25519Account.fromDerivationPath(signer)\n        } else if (isPrivateKey(signer)) {\n            return new Ed25519Account({ privateKey: new Ed25519PrivateKey(signer) })\n        }\n        throw new Error(`Invalid signer`)\n    }\n\n    /**\n     * Converts an account to an address string.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {Ed25519Account} account - The account to convert.\n     * @returns {string} The address of the account.\n     */\n    accountToAddress(account: Ed25519Account): string {\n        return account.accountAddress.toString()\n    }\n\n    /**\n     * Sends a transaction and waits for confirmation.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.\n     * @param {MoveFunction} func - The function to call.\n     * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.\n     * @param {string[]} [_] - Unused parameter.\n     * @param {GasOptions} [gasOptions] - The gas options.\n     * @param {string[]} [typeArguments] - The type arguments.\n     * @returns {Promise<TransactionResponse>} The transaction response.\n     */\n    async sendAndConfirmTransaction(\n        signer: Ed25519Account | PrivateKey | MnemonicAndPath,\n        func: MoveFunction | ByteCode,\n        args: EntryFunctionArgumentTypes[],\n        _?: string[],\n        gasOptions?: GasOptions,\n        typeArguments?: string[]\n    ): Promise<TransactionResponse> {\n        try {\n            signer = this.normalizeSigner(signer)\n            let transactionData: InputGenerateTransactionPayloadData\n            if (this.isMoveFunctionId(func)) {\n                transactionData = {\n                    function: func as MoveFunction,\n                    functionArguments: args,\n                    typeArguments,\n                }\n            } else {\n                transactionData = {\n                    bytecode: func,\n                    functionArguments: args as unknown as ScriptFunctionArgumentTypes[],\n                    typeArguments,\n                }\n            }\n            const committedTransactionResponse = await this.sendAndConfirmTransaction_(\n                signer,\n                transactionData,\n                gasOptions\n            )\n            return {\n                hash: committedTransactionResponse.hash,\n                sender: signer.accountAddress.toString(),\n                raw: committedTransactionResponse,\n            }\n        } catch (e) {\n            throw this.handleError(e)\n        }\n    }\n\n    /**\n     * Asserts that the given gas options are valid.\n     *\n     * @param {GasOptions} [gasOptions] - The gas options to validate.\n     * @throws {Error} If the gas options are invalid.\n     */\n    assertValidGasOptions(gasOptions?: GasOptions): void {\n        if (gasOptions === undefined) {\n            return\n        }\n        if (gasOptions.gasPrice !== undefined) {\n            invariant(\n                Number.isInteger(Number(gasOptions.gasPrice)),\n                `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`\n            )\n        }\n        if (gasOptions.gasLimit !== undefined) {\n            invariant(\n                Number.isInteger(Number(gasOptions.gasLimit)),\n                `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`\n            )\n        }\n    }\n\n    /**\n     * Estimates the gas required for a transaction.\n     *\n     * @param {Ed25519Account} signer - The signer of the transaction.\n     * @param {InputGenerateTransactionPayloadData} payload - The payload of the transaction.\n     * @returns {Promise<{ max_gas_amount: string; gas_unit_price: string }>} The estimated gas amount and gas unit price.\n     */\n    async estimateGas(\n        signer: Ed25519Account,\n        payload: InputGenerateTransactionPayloadData\n    ): Promise<{\n        max_gas_amount: string\n        gas_unit_price: string\n    }> {\n        const txnRequest = await this.client.transaction.build.simple({\n            sender: signer.accountAddress,\n            data: payload,\n        })\n        const sim = await this.client.transaction.simulate.simple({\n            signerPublicKey: signer.publicKey,\n            transaction: txnRequest,\n            options: {\n                estimateGasUnitPrice: true,\n                estimateMaxGasAmount: true,\n            },\n        })\n        const tx = sim[0]\n        invariant(tx.success, `Transaction failed: ${tx.vm_status}}`)\n        const max_gas_amount = applyGasLimitSafety(tx.gas_used).toString()\n        return {\n            max_gas_amount,\n            gas_unit_price: tx.gas_unit_price,\n        }\n    }\n\n    /**\n     * Gets an account resource.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {Object} args - The arguments for getting the account resource.\n     * @param {AccountAddressInput} args.accountAddress - The account address.\n     * @param {MoveStructId} args.resourceType - The type of the resource.\n     * @param {LedgerVersionArg} [args.options] - The options for getting the resource.\n     * @returns {Promise<T>} The account resource.\n     * @template T - The type of the resource.\n     * @throws {Error} If the request fails.\n     */\n    async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n        accountAddress: AccountAddressInput\n        resourceType: MoveStructId\n        options?: LedgerVersionArg\n    }): Promise<T> {\n        try {\n            return await this.client.getAccountResource(args)\n        } catch (e) {\n            throw this.handleError(e)\n        }\n    }\n\n    /**\n     * Gets a table item.\n     *\n     * @param {Object} args - The arguments for getting the table item.\n     * @param {string} args.handle - The table handle.\n     * @param {TableItemRequest} args.data - The key of the item.\n     * @param {LedgerVersionArg} [args.options] - The options for getting the item.\n     * @returns {Promise<T>} The table item.\n     * @template T - The type of the item.\n     * @throws {Error} If the request fails.\n     */\n    async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: LedgerVersionArg }): Promise<T> {\n        try {\n            return await this.client.getTableItem(args)\n        } catch (e) {\n            throw this.handleError(e)\n        }\n    }\n\n    /**\n     * Waits for a transaction to be confirmed and returns the transaction response.\n     *\n     * @param {string} txnHash - The hash of the transaction.\n     * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n     * @throws {Error} If the transaction fails.\n     * @private\n     */\n    private async waitAndGetTransaction(txnHash: string): Promise<CommittedTransactionResponse> {\n        const tx = await this.client.waitForTransaction({ transactionHash: txnHash })\n        invariant(tx.success, `Transaction failed: ${tx.vm_status}`)\n        return tx\n    }\n\n    /**\n     * Normalizes an address to a string.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @param {string} address - The address to normalize.\n     * @returns {string} The normalized address.\n     */\n    normalizeAddress(address: string): string {\n        return AccountAddress.from(address).toString()\n    }\n\n    /**\n     * Checks if the SDK supports coins.\n     * @implements {MoveSdkImpl<Ed25519Account>}\n     *\n     * @returns {boolean} True if the SDK supports coins, false otherwise.\n     */\n    supportsCoin(): boolean {\n        return true\n    }\n\n    /**\n     * Checks if the given address is a valid object address.\n     * @param address\n     */\n    async isObjectAddress(address: string): Promise<boolean> {\n        try {\n            await this.getAccountResource({\n                accountAddress: address,\n                resourceType: '0x1::object::ObjectCore',\n            })\n            return true\n        } catch (e) {\n            return false\n        }\n    }\n}\n"]}