@layerzerolabs/lz-initia-sdk-v2 2.3.45-initia-oft.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.md +21 -0
  3. package/deployments/initia-sandbox-local/blocked_msglib.json +11 -0
  4. package/deployments/initia-sandbox-local/counter.json +11 -0
  5. package/deployments/initia-sandbox-local/dvn.json +11 -0
  6. package/deployments/initia-sandbox-local/dvn_fee_lib_0.json +11 -0
  7. package/deployments/initia-sandbox-local/dvn_fee_lib_1.json +11 -0
  8. package/deployments/initia-sandbox-local/dvn_fee_lib_router_0.json +11 -0
  9. package/deployments/initia-sandbox-local/dvn_fee_lib_router_1.json +11 -0
  10. package/deployments/initia-sandbox-local/endpoint_v2.json +11 -0
  11. package/deployments/initia-sandbox-local/endpoint_v2_common.json +11 -0
  12. package/deployments/initia-sandbox-local/executor.json +11 -0
  13. package/deployments/initia-sandbox-local/executor_fee_lib_0.json +11 -0
  14. package/deployments/initia-sandbox-local/executor_fee_lib_1.json +11 -0
  15. package/deployments/initia-sandbox-local/executor_fee_lib_router_0.json +11 -0
  16. package/deployments/initia-sandbox-local/executor_fee_lib_router_1.json +11 -0
  17. package/deployments/initia-sandbox-local/layerzero_views.json +11 -0
  18. package/deployments/initia-sandbox-local/msglib_3.json +11 -0
  19. package/deployments/initia-sandbox-local/msglib_4.json +11 -0
  20. package/deployments/initia-sandbox-local/msglib_types.json +11 -0
  21. package/deployments/initia-sandbox-local/oft-TokenFour.json +11 -0
  22. package/deployments/initia-sandbox-local/oft-TokenOne.json +11 -0
  23. package/deployments/initia-sandbox-local/oft-TokenThree.json +11 -0
  24. package/deployments/initia-sandbox-local/oft-TokenTwo.json +11 -0
  25. package/deployments/initia-sandbox-local/oft_common.json +11 -0
  26. package/deployments/initia-sandbox-local/price_feed_module_0.json +11 -0
  27. package/deployments/initia-sandbox-local/price_feed_module_1.json +11 -0
  28. package/deployments/initia-sandbox-local/price_feed_module_2.json +11 -0
  29. package/deployments/initia-sandbox-local/price_feed_router_0.json +11 -0
  30. package/deployments/initia-sandbox-local/price_feed_router_1.json +11 -0
  31. package/deployments/initia-sandbox-local/router_node_0.json +11 -0
  32. package/deployments/initia-sandbox-local/router_node_1.json +11 -0
  33. package/deployments/initia-sandbox-local/simple_msglib.json +11 -0
  34. package/deployments/initia-sandbox-local/treasury.json +11 -0
  35. package/deployments/initia-sandbox-local/uln_302.json +11 -0
  36. package/deployments/initia-sandbox-local/worker_common.json +11 -0
  37. package/deployments/initia-testnet/blocked_msglib.json +11 -0
  38. package/deployments/initia-testnet/counter.json +11 -0
  39. package/deployments/initia-testnet/dvn.json +11 -0
  40. package/deployments/initia-testnet/dvn_fee_lib_0.json +11 -0
  41. package/deployments/initia-testnet/dvn_fee_lib_1.json +11 -0
  42. package/deployments/initia-testnet/dvn_fee_lib_router_0.json +11 -0
  43. package/deployments/initia-testnet/dvn_fee_lib_router_1.json +11 -0
  44. package/deployments/initia-testnet/endpoint_v2.json +11 -0
  45. package/deployments/initia-testnet/endpoint_v2_common.json +11 -0
  46. package/deployments/initia-testnet/executor.json +11 -0
  47. package/deployments/initia-testnet/executor_fee_lib_0.json +11 -0
  48. package/deployments/initia-testnet/executor_fee_lib_1.json +11 -0
  49. package/deployments/initia-testnet/executor_fee_lib_router_0.json +11 -0
  50. package/deployments/initia-testnet/executor_fee_lib_router_1.json +11 -0
  51. package/deployments/initia-testnet/layerzero_views.json +11 -0
  52. package/deployments/initia-testnet/msglib_3.json +11 -0
  53. package/deployments/initia-testnet/msglib_4.json +11 -0
  54. package/deployments/initia-testnet/msglib_types.json +11 -0
  55. package/deployments/initia-testnet/oft-TokenOne.json +11 -0
  56. package/deployments/initia-testnet/oft-TokenTwo.json +11 -0
  57. package/deployments/initia-testnet/oft_common.json +11 -0
  58. package/deployments/initia-testnet/price_feed_module_0.json +11 -0
  59. package/deployments/initia-testnet/price_feed_module_1.json +11 -0
  60. package/deployments/initia-testnet/price_feed_module_2.json +11 -0
  61. package/deployments/initia-testnet/price_feed_router_0.json +11 -0
  62. package/deployments/initia-testnet/price_feed_router_1.json +11 -0
  63. package/deployments/initia-testnet/router_node_0.json +11 -0
  64. package/deployments/initia-testnet/router_node_1.json +11 -0
  65. package/deployments/initia-testnet/simple_msglib.json +11 -0
  66. package/deployments/initia-testnet/treasury.json +11 -0
  67. package/deployments/initia-testnet/uln_302.json +11 -0
  68. package/deployments/initia-testnet/worker_common.json +11 -0
  69. package/dist/index.cjs +277 -0
  70. package/dist/index.cjs.map +1 -0
  71. package/dist/index.d.mts +86 -0
  72. package/dist/index.d.ts +86 -0
  73. package/dist/index.mjs +262 -0
  74. package/dist/index.mjs.map +1 -0
  75. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/generated/addresses.ts"],"names":["Stage"],"mappings":"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","sourcesContent":["import { arrayify } from '@ethersproject/bytes'\nimport { AccAddress, LCDClient, MnemonicKey, Msg, TxError, WaitTxBroadcastResult } from '@initia/initia.js'\n\nimport { Provider, TransactionRequest } from '@layerzerolabs/lz-core'\nimport {\n InitiaBuildTxRequestOptions,\n InitiaProvider,\n InitiaSigner,\n convertArg,\n convertPayloadToMsgExecute,\n covertPayloadArgs,\n} from '@layerzerolabs/lz-corekit-initia'\nimport { Stage } from '@layerzerolabs/lz-definitions'\nimport { AccountsOption, LayerZeroModulesSdk, MoveSdkImpl } from '@layerzerolabs/lz-movevm-sdk-v2'\nimport { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'\nimport {\n EntryFunctionArgumentTypes,\n GasOptions,\n InputEntryFunctionData,\n MnemonicAndPath,\n MoveAbortError,\n MoveFunction,\n MoveResourceNotFoundError,\n MoveStructId,\n MoveTableItemNotFoundError,\n MoveValue,\n PrivateKey,\n TableItemRequest,\n TransactionResponse,\n UnclassifiedError,\n isMnemonicAndPath,\n isPrivateKey,\n} from '@layerzerolabs/move-definitions'\n\nimport {\n COUNTER_V2_ADDRESS,\n DVN_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'\n\nexport * from './generated/addresses'\n\nexport interface SdkOptions {\n provider: InitiaProvider\n stage?: Stage\n accounts?: AccountsOption\n}\n\nexport function getSDKFromProvider(provider: Provider): SDK {\n return new SDK({ provider: provider as InitiaProvider })\n}\n\ninterface AxiosError {\n response: {\n data: {\n code: number\n message: string\n }\n }\n}\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction isTxError(tx: unknown): tx is TxError {\n return tx instanceof Object && 'code' in tx && Number(tx.code) !== 0\n}\n\nexport class SDK implements MoveSdkImpl<MnemonicKey> {\n stage: Stage\n provider: InitiaProvider\n LayerzeroModule: LayerZeroModulesSdk<MnemonicKey>\n accounts: AccountsOption\n\n constructor(options: SdkOptions) {\n this.stage = options.stage ?? Stage.SANDBOX\n this.accounts = options.accounts ?? {\n endpoint_v2: this.toHexAddress(ENDPOINT_V2_ADDRESS[this.stage] ?? '0x0'),\n counter_v2: this.toHexAddress(COUNTER_V2_ADDRESS[this.stage] ?? '0x0'),\n oft: this.toHexAddress(OFT_ADDRESS[this.stage] ?? '0x0'),\n layerzero_views: this.toHexAddress(LAYERZERO_VIEWS_ADDRESS[this.stage] ?? '0x0'),\n simple_message_lib: this.toHexAddress(SIMPLE_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0'),\n uln_message_lib: this.toHexAddress(ULN_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0'),\n executor: this.toHexAddress(EXECUTOR_ADDRESS[this.stage] ?? '0x0'),\n dvn: this.toHexAddress(DVN_ADDRESS[this.stage] ?? '0x0'),\n worker_common: this.toHexAddress(WORKER_COMMON[this.stage] ?? '0x0'),\n price_feed: this.toHexAddress(PRICE_FEED[this.stage] ?? '0x0'),\n treasury: this.toHexAddress(TREASURY_ADDRESS[this.stage] ?? '0x0'),\n endpoint_v2_common: this.toHexAddress(ENDPOINT_V2_COMMON[this.stage] ?? '0x0'),\n }\n this.provider = options.provider\n this.LayerzeroModule = new LayerZeroModulesSdk(this)\n }\n\n getLCDClient(): LCDClient {\n return this.provider.native\n }\n\n async buildDVNVerifyTransaction(\n adminSignerAddress: string,\n date: Date,\n codec: PacketV1Codec,\n receiveMessageLibAddress: string,\n inboundConfirmation: number,\n expiration: number,\n signatures: string\n ): Promise<TransactionRequest> {\n const payload: InputEntryFunctionData = {\n function: `${DVN_ADDRESS[this.stage]}::dvn::verify`,\n functionArguments: [\n arrayify(codec.header()),\n arrayify(codec.payloadHash()),\n BigInt(inboundConfirmation),\n receiveMessageLibAddress,\n BigInt(expiration) + BigInt(date.getTime()),\n arrayify(signatures),\n ] as EntryFunctionArgumentTypes[],\n functionArgumentTypes: ['vector<u8>', 'vector<u8>', 'u64', 'address', 'u64', 'vector<u8>'],\n }\n const accAddr = AccAddress.fromHex(adminSignerAddress)\n const msg: Msg = convertPayloadToMsgExecute(accAddr, payload)\n const tx = await this.getLCDClient().tx.create([{ address: accAddr }], { msgs: [msg] })\n return TransactionRequest.from(tx)\n }\n\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n functionArgTypes?: string[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const argsStrings = covertPayloadArgs(args.functionArgTypes ?? [], args.functionArgs)\n const [moduleAddress, moduleName, functionName] = args.functionName.split('::')\n try {\n const viewFunctionData = await this.provider.native.move.viewFunction<MoveValue>(\n moduleAddress,\n moduleName,\n functionName,\n args.typeArgs ?? [],\n argsStrings\n )\n return [viewFunctionData]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n normalizeSigner(signer: MnemonicKey | PrivateKey | MnemonicAndPath): MnemonicKey {\n if (signer instanceof MnemonicKey) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n const { mnemonic, path } = signer\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? []\n return new MnemonicKey({\n mnemonic,\n coinType,\n account,\n index,\n })\n } else if (isPrivateKey(signer)) {\n return MnemonicKey.fromHex(signer) as MnemonicKey\n }\n throw new Error(`Invalid signer`)\n }\n\n accountToAddress(account: MnemonicKey): string {\n return this.toHexAddress(account.accAddress)\n }\n\n toBech32Address(anyAddress: string | Uint8Array): string {\n if (anyAddress instanceof Uint8Array) {\n anyAddress = Buffer.from(anyAddress).toString('hex')\n }\n if (AccAddress.validate(anyAddress)) {\n return anyAddress\n }\n return AccAddress.fromHex(anyAddress)\n }\n\n toHexAddress(anyAddress: string | Uint8Array): string {\n if (anyAddress instanceof Uint8Array) {\n anyAddress = Buffer.from(anyAddress).toString('hex')\n }\n if (AccAddress.validate(anyAddress)) {\n return AccAddress.toHex(anyAddress)\n }\n return anyAddress\n }\n\n handleError(e: unknown): unknown {\n if (isAxiosError(e)) {\n const errorString = e.response.data.message\n const codeMatch = errorString.match(/code=(\\d+)/)\n if (errorString.includes('VM aborted') && codeMatch !== null) {\n const code = parseInt(codeMatch[1])\n return new MoveAbortError(code, e.response.data.message)\n } else if (errorString.startsWith('collections: not found')) {\n return new MoveResourceNotFoundError(e.response.data.message)\n } else if (errorString.includes('MISSING_DATA')) {\n return new MoveResourceNotFoundError(e.response.data.message)\n } else {\n return new UnclassifiedError(e.response.data.message)\n }\n }\n return e\n }\n\n async sendAndConfirmTransaction(\n sender: MnemonicKey | PrivateKey | MnemonicAndPath,\n func: MoveFunction,\n args: EntryFunctionArgumentTypes[],\n multisig?: string | Uint8Array,\n argTypes?: string[],\n gasOptions?: GasOptions\n ): Promise<TransactionResponse> {\n try {\n sender = this.normalizeSigner(sender)\n const coreSigner = InitiaSigner.from(sender).connect(this.provider)\n\n const buildTxRequestOption: InitiaBuildTxRequestOptions = {\n gas: gasOptions?.gasLimit,\n gasPrice: gasOptions?.gasPrice !== undefined ? `${gasOptions.gasPrice}uinit` : undefined,\n }\n\n const txRequest = await coreSigner.buildTransaction({\n payload: {\n function: func,\n functionArguments: args,\n functionArgumentTypes: argTypes,\n },\n options: buildTxRequestOption,\n })\n const signedTx = await coreSigner.signTransaction(txRequest)\n\n const txReceipt = await coreSigner.sendAndConfirm(signedTx)\n const result = txReceipt.receipt as WaitTxBroadcastResult\n\n if (isTxError(result)) {\n throw Error(result.raw_log)\n }\n return {\n hash: result.txhash,\n sender: sender.accAddress,\n raw: result,\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: string | Uint8Array\n resourceType: MoveStructId\n options?: unknown\n }): Promise<T> {\n try {\n const address = this.toHexAddress(args.accountAddress)\n const { data } = await this.provider.native.move.resource(address, args.resourceType)\n return data as T\n } catch (e) {\n if (isAxiosError(e) && e.response.data.message.startsWith('collections: not found')) {\n throw new MoveResourceNotFoundError(e.response.data.message)\n }\n throw e\n }\n }\n\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: unknown }): Promise<T> {\n try {\n const res = await this.provider.native.move.tableEntry(\n args.handle,\n convertArg(args.data.key_type as string, args.data.key as EntryFunctionArgumentTypes)\n )\n const { value } = res\n const valueObject = JSON.parse(value) as { [key: string]: T }\n return Object.values(valueObject)[0]\n } catch (e) {\n if (isAxiosError(e) && e.response.data.message.startsWith('collections: not found')) {\n throw new MoveTableItemNotFoundError(e.response.data.message)\n }\n throw e\n }\n }\n\n normalizeAddress(address: string): string {\n return address\n }\n\n supportsCoin(): boolean {\n return false\n }\n}\n","// WARNING: Do not change this code. It is auto generated.\n// If you want some new feature, please update generate-addresses.ts.\nimport {Stage} from '@layerzerolabs/lz-definitions'\nexport const ENDPOINT_V2_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x55c9aa355f26e5f311af070ca7da9990d01fb7db',\n [Stage.SANDBOX]: '0x9560458244b6f15bad18fe7f713d09490921aa90',\n}\n\nexport const SIMPLE_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x71311073935a2b716b9660caa4a704674494d3b9',\n [Stage.SANDBOX]: '0x29b18f0ac4c4e395c017029029eb72029c121a02',\n}\n\nexport const ULN_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x74886dec58f41ad824e404c1d6d1a17efdfccc56',\n [Stage.SANDBOX]: '0x8f045d5da0ef3615644d02e51e22515d152fb41c',\n}\n\nexport const COUNTER_V2_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x6c4a494f374093c9bcf0192a59cfc05424b726dd',\n [Stage.SANDBOX]: '0x653aa7b4d2d40bf9a3069ea50c94469bc2457176',\n}\n\nexport const OFT_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x41aba793e2e42a4f07e586b7ccb83fb599eba301',\n}\n\nexport const LAYERZERO_VIEWS_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x5a4cb364837a9ee5bb23a885710a827d729fb662',\n [Stage.SANDBOX]: '0x3f90b37789daae7f4362bc92fd43cab119b5e683',\n}\n\nexport const EXECUTOR_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0xf4851b3e55014c5d03e0f2183af77fd5f71a9eb2',\n [Stage.SANDBOX]: '0xe0694909091d33252c6935ec7de52d85a78c20e7',\n}\n\nexport const DVN_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x1fdbdab3fec27ece61e37839a079b2f9eda60b64',\n [Stage.SANDBOX]: '0xf0ad1b2b2295c7c80a83de59427dee9627363355',\n}\n\nexport const WORKER_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x0e910f4a046f4c3113438e8c7882cbbff34845aa',\n [Stage.SANDBOX]: '0x881773c1c2abca25f8e6191c4584eaf7a0d15e80',\n}\n\nexport const PRICE_FEED: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0xff3f509f96578b793999a9ba82651d57b02a832b',\n [Stage.SANDBOX]: '0x4e5a65a1953e1b2f576edc6e1e9f00da02dbd3d5',\n}\n\nexport const TREASURY_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x299eb1bababc19a801b97f0cbf728be97cd197c2',\n [Stage.SANDBOX]: '0xc4d96a76466e6bfb44f6ddb5daabdcd76e7ee7b1',\n}\n\nexport const ENDPOINT_V2_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x6da16aabf8d791340730ac512ae2c871f180d67b',\n [Stage.SANDBOX]: '0x77160f68f4f1af74ab5875253db51366ca97f91f',\n}\n"]}
@@ -0,0 +1,86 @@
1
+ import { MnemonicKey, LCDClient } from '@initia/initia.js';
2
+ import { Provider, TransactionRequest } from '@layerzerolabs/lz-core';
3
+ import { InitiaProvider } from '@layerzerolabs/lz-corekit-initia';
4
+ import { Stage } from '@layerzerolabs/lz-definitions';
5
+ import { AccountsOption, MoveSdkImpl, LayerZeroModulesSdk } from '@layerzerolabs/lz-movevm-sdk-v2';
6
+ import { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities';
7
+ import { MoveFunction, EntryFunctionArgumentTypes, MoveValue, PrivateKey, MnemonicAndPath, GasOptions, TransactionResponse, MoveStructId, TableItemRequest } from '@layerzerolabs/move-definitions';
8
+
9
+ declare const ENDPOINT_V2_ADDRESS: {
10
+ [stage in Stage]?: string;
11
+ };
12
+ declare const SIMPLE_MESSAGE_LIB_ADDRESS: {
13
+ [stage in Stage]?: string;
14
+ };
15
+ declare const ULN_MESSAGE_LIB_ADDRESS: {
16
+ [stage in Stage]?: string;
17
+ };
18
+ declare const COUNTER_V2_ADDRESS: {
19
+ [stage in Stage]?: string;
20
+ };
21
+ declare const OFT_ADDRESS: {
22
+ [stage in Stage]?: string;
23
+ };
24
+ declare const LAYERZERO_VIEWS_ADDRESS: {
25
+ [stage in Stage]?: string;
26
+ };
27
+ declare const EXECUTOR_ADDRESS: {
28
+ [stage in Stage]?: string;
29
+ };
30
+ declare const DVN_ADDRESS: {
31
+ [stage in Stage]?: string;
32
+ };
33
+ declare const WORKER_COMMON: {
34
+ [stage in Stage]?: string;
35
+ };
36
+ declare const PRICE_FEED: {
37
+ [stage in Stage]?: string;
38
+ };
39
+ declare const TREASURY_ADDRESS: {
40
+ [stage in Stage]?: string;
41
+ };
42
+ declare const ENDPOINT_V2_COMMON: {
43
+ [stage in Stage]?: string;
44
+ };
45
+
46
+ interface SdkOptions {
47
+ provider: InitiaProvider;
48
+ stage?: Stage;
49
+ accounts?: AccountsOption;
50
+ }
51
+ declare function getSDKFromProvider(provider: Provider): SDK;
52
+ declare class SDK implements MoveSdkImpl<MnemonicKey> {
53
+ stage: Stage;
54
+ provider: InitiaProvider;
55
+ LayerzeroModule: LayerZeroModulesSdk<MnemonicKey>;
56
+ accounts: AccountsOption;
57
+ constructor(options: SdkOptions);
58
+ getLCDClient(): LCDClient;
59
+ buildDVNVerifyTransaction(adminSignerAddress: string, date: Date, codec: PacketV1Codec, receiveMessageLibAddress: string, inboundConfirmation: number, expiration: number, signatures: string): Promise<TransactionRequest>;
60
+ viewFunction(args: {
61
+ functionName: MoveFunction;
62
+ functionArgs: EntryFunctionArgumentTypes[];
63
+ functionArgTypes?: string[];
64
+ typeArgs?: string[];
65
+ }): Promise<MoveValue[]>;
66
+ normalizeSigner(signer: MnemonicKey | PrivateKey | MnemonicAndPath): MnemonicKey;
67
+ accountToAddress(account: MnemonicKey): string;
68
+ toBech32Address(anyAddress: string | Uint8Array): string;
69
+ toHexAddress(anyAddress: string | Uint8Array): string;
70
+ handleError(e: unknown): unknown;
71
+ sendAndConfirmTransaction(sender: MnemonicKey | PrivateKey | MnemonicAndPath, func: MoveFunction, args: EntryFunctionArgumentTypes[], multisig?: string | Uint8Array, argTypes?: string[], gasOptions?: GasOptions): Promise<TransactionResponse>;
72
+ getAccountResource<T extends NonNullable<unknown> = any>(args: {
73
+ accountAddress: string | Uint8Array;
74
+ resourceType: MoveStructId;
75
+ options?: unknown;
76
+ }): Promise<T>;
77
+ getTableItem<T>(args: {
78
+ handle: string;
79
+ data: TableItemRequest;
80
+ options?: unknown;
81
+ }): Promise<T>;
82
+ normalizeAddress(address: string): string;
83
+ supportsCoin(): boolean;
84
+ }
85
+
86
+ export { COUNTER_V2_ADDRESS, DVN_ADDRESS, ENDPOINT_V2_ADDRESS, ENDPOINT_V2_COMMON, EXECUTOR_ADDRESS, LAYERZERO_VIEWS_ADDRESS, OFT_ADDRESS, PRICE_FEED, SDK, SIMPLE_MESSAGE_LIB_ADDRESS, type SdkOptions, TREASURY_ADDRESS, ULN_MESSAGE_LIB_ADDRESS, WORKER_COMMON, getSDKFromProvider };
@@ -0,0 +1,86 @@
1
+ import { MnemonicKey, LCDClient } from '@initia/initia.js';
2
+ import { Provider, TransactionRequest } from '@layerzerolabs/lz-core';
3
+ import { InitiaProvider } from '@layerzerolabs/lz-corekit-initia';
4
+ import { Stage } from '@layerzerolabs/lz-definitions';
5
+ import { AccountsOption, MoveSdkImpl, LayerZeroModulesSdk } from '@layerzerolabs/lz-movevm-sdk-v2';
6
+ import { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities';
7
+ import { MoveFunction, EntryFunctionArgumentTypes, MoveValue, PrivateKey, MnemonicAndPath, GasOptions, TransactionResponse, MoveStructId, TableItemRequest } from '@layerzerolabs/move-definitions';
8
+
9
+ declare const ENDPOINT_V2_ADDRESS: {
10
+ [stage in Stage]?: string;
11
+ };
12
+ declare const SIMPLE_MESSAGE_LIB_ADDRESS: {
13
+ [stage in Stage]?: string;
14
+ };
15
+ declare const ULN_MESSAGE_LIB_ADDRESS: {
16
+ [stage in Stage]?: string;
17
+ };
18
+ declare const COUNTER_V2_ADDRESS: {
19
+ [stage in Stage]?: string;
20
+ };
21
+ declare const OFT_ADDRESS: {
22
+ [stage in Stage]?: string;
23
+ };
24
+ declare const LAYERZERO_VIEWS_ADDRESS: {
25
+ [stage in Stage]?: string;
26
+ };
27
+ declare const EXECUTOR_ADDRESS: {
28
+ [stage in Stage]?: string;
29
+ };
30
+ declare const DVN_ADDRESS: {
31
+ [stage in Stage]?: string;
32
+ };
33
+ declare const WORKER_COMMON: {
34
+ [stage in Stage]?: string;
35
+ };
36
+ declare const PRICE_FEED: {
37
+ [stage in Stage]?: string;
38
+ };
39
+ declare const TREASURY_ADDRESS: {
40
+ [stage in Stage]?: string;
41
+ };
42
+ declare const ENDPOINT_V2_COMMON: {
43
+ [stage in Stage]?: string;
44
+ };
45
+
46
+ interface SdkOptions {
47
+ provider: InitiaProvider;
48
+ stage?: Stage;
49
+ accounts?: AccountsOption;
50
+ }
51
+ declare function getSDKFromProvider(provider: Provider): SDK;
52
+ declare class SDK implements MoveSdkImpl<MnemonicKey> {
53
+ stage: Stage;
54
+ provider: InitiaProvider;
55
+ LayerzeroModule: LayerZeroModulesSdk<MnemonicKey>;
56
+ accounts: AccountsOption;
57
+ constructor(options: SdkOptions);
58
+ getLCDClient(): LCDClient;
59
+ buildDVNVerifyTransaction(adminSignerAddress: string, date: Date, codec: PacketV1Codec, receiveMessageLibAddress: string, inboundConfirmation: number, expiration: number, signatures: string): Promise<TransactionRequest>;
60
+ viewFunction(args: {
61
+ functionName: MoveFunction;
62
+ functionArgs: EntryFunctionArgumentTypes[];
63
+ functionArgTypes?: string[];
64
+ typeArgs?: string[];
65
+ }): Promise<MoveValue[]>;
66
+ normalizeSigner(signer: MnemonicKey | PrivateKey | MnemonicAndPath): MnemonicKey;
67
+ accountToAddress(account: MnemonicKey): string;
68
+ toBech32Address(anyAddress: string | Uint8Array): string;
69
+ toHexAddress(anyAddress: string | Uint8Array): string;
70
+ handleError(e: unknown): unknown;
71
+ sendAndConfirmTransaction(sender: MnemonicKey | PrivateKey | MnemonicAndPath, func: MoveFunction, args: EntryFunctionArgumentTypes[], multisig?: string | Uint8Array, argTypes?: string[], gasOptions?: GasOptions): Promise<TransactionResponse>;
72
+ getAccountResource<T extends NonNullable<unknown> = any>(args: {
73
+ accountAddress: string | Uint8Array;
74
+ resourceType: MoveStructId;
75
+ options?: unknown;
76
+ }): Promise<T>;
77
+ getTableItem<T>(args: {
78
+ handle: string;
79
+ data: TableItemRequest;
80
+ options?: unknown;
81
+ }): Promise<T>;
82
+ normalizeAddress(address: string): string;
83
+ supportsCoin(): boolean;
84
+ }
85
+
86
+ export { COUNTER_V2_ADDRESS, DVN_ADDRESS, ENDPOINT_V2_ADDRESS, ENDPOINT_V2_COMMON, EXECUTOR_ADDRESS, LAYERZERO_VIEWS_ADDRESS, OFT_ADDRESS, PRICE_FEED, SDK, SIMPLE_MESSAGE_LIB_ADDRESS, type SdkOptions, TREASURY_ADDRESS, ULN_MESSAGE_LIB_ADDRESS, WORKER_COMMON, getSDKFromProvider };
package/dist/index.mjs ADDED
@@ -0,0 +1,262 @@
1
+ import { arrayify } from '@ethersproject/bytes';
2
+ import { AccAddress, MnemonicKey } from '@initia/initia.js';
3
+ import { TransactionRequest } from '@layerzerolabs/lz-core';
4
+ import { convertPayloadToMsgExecute, covertPayloadArgs, InitiaSigner, convertArg } from '@layerzerolabs/lz-corekit-initia';
5
+ import { Stage } from '@layerzerolabs/lz-definitions';
6
+ import { LayerZeroModulesSdk } from '@layerzerolabs/lz-movevm-sdk-v2';
7
+ import { isMnemonicAndPath, isPrivateKey, MoveAbortError, MoveResourceNotFoundError, UnclassifiedError, MoveTableItemNotFoundError } from '@layerzerolabs/move-definitions';
8
+
9
+ // src/index.ts
10
+ var ENDPOINT_V2_ADDRESS = {
11
+ [Stage.MAINNET]: "",
12
+ [Stage.TESTNET]: "0x55c9aa355f26e5f311af070ca7da9990d01fb7db",
13
+ [Stage.SANDBOX]: "0x9560458244b6f15bad18fe7f713d09490921aa90"
14
+ };
15
+ var SIMPLE_MESSAGE_LIB_ADDRESS = {
16
+ [Stage.MAINNET]: "",
17
+ [Stage.TESTNET]: "0x71311073935a2b716b9660caa4a704674494d3b9",
18
+ [Stage.SANDBOX]: "0x29b18f0ac4c4e395c017029029eb72029c121a02"
19
+ };
20
+ var ULN_MESSAGE_LIB_ADDRESS = {
21
+ [Stage.MAINNET]: "",
22
+ [Stage.TESTNET]: "0x74886dec58f41ad824e404c1d6d1a17efdfccc56",
23
+ [Stage.SANDBOX]: "0x8f045d5da0ef3615644d02e51e22515d152fb41c"
24
+ };
25
+ var COUNTER_V2_ADDRESS = {
26
+ [Stage.MAINNET]: "",
27
+ [Stage.TESTNET]: "0x6c4a494f374093c9bcf0192a59cfc05424b726dd",
28
+ [Stage.SANDBOX]: "0x653aa7b4d2d40bf9a3069ea50c94469bc2457176"
29
+ };
30
+ var OFT_ADDRESS = {
31
+ [Stage.MAINNET]: "",
32
+ [Stage.TESTNET]: "",
33
+ [Stage.SANDBOX]: "0x41aba793e2e42a4f07e586b7ccb83fb599eba301"
34
+ };
35
+ var LAYERZERO_VIEWS_ADDRESS = {
36
+ [Stage.MAINNET]: "",
37
+ [Stage.TESTNET]: "0x5a4cb364837a9ee5bb23a885710a827d729fb662",
38
+ [Stage.SANDBOX]: "0x3f90b37789daae7f4362bc92fd43cab119b5e683"
39
+ };
40
+ var EXECUTOR_ADDRESS = {
41
+ [Stage.MAINNET]: "",
42
+ [Stage.TESTNET]: "0xf4851b3e55014c5d03e0f2183af77fd5f71a9eb2",
43
+ [Stage.SANDBOX]: "0xe0694909091d33252c6935ec7de52d85a78c20e7"
44
+ };
45
+ var DVN_ADDRESS = {
46
+ [Stage.MAINNET]: "",
47
+ [Stage.TESTNET]: "0x1fdbdab3fec27ece61e37839a079b2f9eda60b64",
48
+ [Stage.SANDBOX]: "0xf0ad1b2b2295c7c80a83de59427dee9627363355"
49
+ };
50
+ var WORKER_COMMON = {
51
+ [Stage.MAINNET]: "",
52
+ [Stage.TESTNET]: "0x0e910f4a046f4c3113438e8c7882cbbff34845aa",
53
+ [Stage.SANDBOX]: "0x881773c1c2abca25f8e6191c4584eaf7a0d15e80"
54
+ };
55
+ var PRICE_FEED = {
56
+ [Stage.MAINNET]: "",
57
+ [Stage.TESTNET]: "0xff3f509f96578b793999a9ba82651d57b02a832b",
58
+ [Stage.SANDBOX]: "0x4e5a65a1953e1b2f576edc6e1e9f00da02dbd3d5"
59
+ };
60
+ var TREASURY_ADDRESS = {
61
+ [Stage.MAINNET]: "",
62
+ [Stage.TESTNET]: "0x299eb1bababc19a801b97f0cbf728be97cd197c2",
63
+ [Stage.SANDBOX]: "0xc4d96a76466e6bfb44f6ddb5daabdcd76e7ee7b1"
64
+ };
65
+ var ENDPOINT_V2_COMMON = {
66
+ [Stage.MAINNET]: "",
67
+ [Stage.TESTNET]: "0x6da16aabf8d791340730ac512ae2c871f180d67b",
68
+ [Stage.SANDBOX]: "0x77160f68f4f1af74ab5875253db51366ca97f91f"
69
+ };
70
+
71
+ // src/index.ts
72
+ function getSDKFromProvider(provider) {
73
+ return new SDK({ provider });
74
+ }
75
+ function isAxiosError(error) {
76
+ return error?.response?.data?.message !== void 0;
77
+ }
78
+ function isTxError(tx) {
79
+ return tx instanceof Object && "code" in tx && Number(tx.code) !== 0;
80
+ }
81
+ var SDK = class {
82
+ constructor(options) {
83
+ this.stage = options.stage ?? Stage.SANDBOX;
84
+ this.accounts = options.accounts ?? {
85
+ endpoint_v2: this.toHexAddress(ENDPOINT_V2_ADDRESS[this.stage] ?? "0x0"),
86
+ counter_v2: this.toHexAddress(COUNTER_V2_ADDRESS[this.stage] ?? "0x0"),
87
+ oft: this.toHexAddress(OFT_ADDRESS[this.stage] ?? "0x0"),
88
+ layerzero_views: this.toHexAddress(LAYERZERO_VIEWS_ADDRESS[this.stage] ?? "0x0"),
89
+ simple_message_lib: this.toHexAddress(SIMPLE_MESSAGE_LIB_ADDRESS[this.stage] ?? "0x0"),
90
+ uln_message_lib: this.toHexAddress(ULN_MESSAGE_LIB_ADDRESS[this.stage] ?? "0x0"),
91
+ executor: this.toHexAddress(EXECUTOR_ADDRESS[this.stage] ?? "0x0"),
92
+ dvn: this.toHexAddress(DVN_ADDRESS[this.stage] ?? "0x0"),
93
+ worker_common: this.toHexAddress(WORKER_COMMON[this.stage] ?? "0x0"),
94
+ price_feed: this.toHexAddress(PRICE_FEED[this.stage] ?? "0x0"),
95
+ treasury: this.toHexAddress(TREASURY_ADDRESS[this.stage] ?? "0x0"),
96
+ endpoint_v2_common: this.toHexAddress(ENDPOINT_V2_COMMON[this.stage] ?? "0x0")
97
+ };
98
+ this.provider = options.provider;
99
+ this.LayerzeroModule = new LayerZeroModulesSdk(this);
100
+ }
101
+ getLCDClient() {
102
+ return this.provider.native;
103
+ }
104
+ async buildDVNVerifyTransaction(adminSignerAddress, date, codec, receiveMessageLibAddress, inboundConfirmation, expiration, signatures) {
105
+ const payload = {
106
+ function: `${DVN_ADDRESS[this.stage]}::dvn::verify`,
107
+ functionArguments: [
108
+ arrayify(codec.header()),
109
+ arrayify(codec.payloadHash()),
110
+ BigInt(inboundConfirmation),
111
+ receiveMessageLibAddress,
112
+ BigInt(expiration) + BigInt(date.getTime()),
113
+ arrayify(signatures)
114
+ ],
115
+ functionArgumentTypes: ["vector<u8>", "vector<u8>", "u64", "address", "u64", "vector<u8>"]
116
+ };
117
+ const accAddr = AccAddress.fromHex(adminSignerAddress);
118
+ const msg = convertPayloadToMsgExecute(accAddr, payload);
119
+ const tx = await this.getLCDClient().tx.create([{ address: accAddr }], { msgs: [msg] });
120
+ return TransactionRequest.from(tx);
121
+ }
122
+ async viewFunction(args) {
123
+ const argsStrings = covertPayloadArgs(args.functionArgTypes ?? [], args.functionArgs);
124
+ const [moduleAddress, moduleName, functionName] = args.functionName.split("::");
125
+ try {
126
+ const viewFunctionData = await this.provider.native.move.viewFunction(
127
+ moduleAddress,
128
+ moduleName,
129
+ functionName,
130
+ args.typeArgs ?? [],
131
+ argsStrings
132
+ );
133
+ return [viewFunctionData];
134
+ } catch (e) {
135
+ throw this.handleError(e);
136
+ }
137
+ }
138
+ normalizeSigner(signer) {
139
+ if (signer instanceof MnemonicKey) {
140
+ return signer;
141
+ } else if (isMnemonicAndPath(signer)) {
142
+ const { mnemonic, path } = signer;
143
+ const [_, coinType, account, __, index] = path.match(/\d+/g)?.map(Number) ?? [];
144
+ return new MnemonicKey({
145
+ mnemonic,
146
+ coinType,
147
+ account,
148
+ index
149
+ });
150
+ } else if (isPrivateKey(signer)) {
151
+ return MnemonicKey.fromHex(signer);
152
+ }
153
+ throw new Error(`Invalid signer`);
154
+ }
155
+ accountToAddress(account) {
156
+ return this.toHexAddress(account.accAddress);
157
+ }
158
+ toBech32Address(anyAddress) {
159
+ if (anyAddress instanceof Uint8Array) {
160
+ anyAddress = Buffer.from(anyAddress).toString("hex");
161
+ }
162
+ if (AccAddress.validate(anyAddress)) {
163
+ return anyAddress;
164
+ }
165
+ return AccAddress.fromHex(anyAddress);
166
+ }
167
+ toHexAddress(anyAddress) {
168
+ if (anyAddress instanceof Uint8Array) {
169
+ anyAddress = Buffer.from(anyAddress).toString("hex");
170
+ }
171
+ if (AccAddress.validate(anyAddress)) {
172
+ return AccAddress.toHex(anyAddress);
173
+ }
174
+ return anyAddress;
175
+ }
176
+ handleError(e) {
177
+ if (isAxiosError(e)) {
178
+ const errorString = e.response.data.message;
179
+ const codeMatch = errorString.match(/code=(\d+)/);
180
+ if (errorString.includes("VM aborted") && codeMatch !== null) {
181
+ const code = parseInt(codeMatch[1]);
182
+ return new MoveAbortError(code, e.response.data.message);
183
+ } else if (errorString.startsWith("collections: not found")) {
184
+ return new MoveResourceNotFoundError(e.response.data.message);
185
+ } else if (errorString.includes("MISSING_DATA")) {
186
+ return new MoveResourceNotFoundError(e.response.data.message);
187
+ } else {
188
+ return new UnclassifiedError(e.response.data.message);
189
+ }
190
+ }
191
+ return e;
192
+ }
193
+ async sendAndConfirmTransaction(sender, func, args, multisig, argTypes, gasOptions) {
194
+ try {
195
+ sender = this.normalizeSigner(sender);
196
+ const coreSigner = InitiaSigner.from(sender).connect(this.provider);
197
+ const buildTxRequestOption = {
198
+ gas: gasOptions?.gasLimit,
199
+ gasPrice: gasOptions?.gasPrice !== void 0 ? `${gasOptions.gasPrice}uinit` : void 0
200
+ };
201
+ const txRequest = await coreSigner.buildTransaction({
202
+ payload: {
203
+ function: func,
204
+ functionArguments: args,
205
+ functionArgumentTypes: argTypes
206
+ },
207
+ options: buildTxRequestOption
208
+ });
209
+ const signedTx = await coreSigner.signTransaction(txRequest);
210
+ const txReceipt = await coreSigner.sendAndConfirm(signedTx);
211
+ const result = txReceipt.receipt;
212
+ if (isTxError(result)) {
213
+ throw Error(result.raw_log);
214
+ }
215
+ return {
216
+ hash: result.txhash,
217
+ sender: sender.accAddress,
218
+ raw: result
219
+ };
220
+ } catch (e) {
221
+ throw this.handleError(e);
222
+ }
223
+ }
224
+ async getAccountResource(args) {
225
+ try {
226
+ const address = this.toHexAddress(args.accountAddress);
227
+ const { data } = await this.provider.native.move.resource(address, args.resourceType);
228
+ return data;
229
+ } catch (e) {
230
+ if (isAxiosError(e) && e.response.data.message.startsWith("collections: not found")) {
231
+ throw new MoveResourceNotFoundError(e.response.data.message);
232
+ }
233
+ throw e;
234
+ }
235
+ }
236
+ async getTableItem(args) {
237
+ try {
238
+ const res = await this.provider.native.move.tableEntry(
239
+ args.handle,
240
+ convertArg(args.data.key_type, args.data.key)
241
+ );
242
+ const { value } = res;
243
+ const valueObject = JSON.parse(value);
244
+ return Object.values(valueObject)[0];
245
+ } catch (e) {
246
+ if (isAxiosError(e) && e.response.data.message.startsWith("collections: not found")) {
247
+ throw new MoveTableItemNotFoundError(e.response.data.message);
248
+ }
249
+ throw e;
250
+ }
251
+ }
252
+ normalizeAddress(address) {
253
+ return address;
254
+ }
255
+ supportsCoin() {
256
+ return false;
257
+ }
258
+ };
259
+
260
+ export { COUNTER_V2_ADDRESS, DVN_ADDRESS, ENDPOINT_V2_ADDRESS, ENDPOINT_V2_COMMON, EXECUTOR_ADDRESS, LAYERZERO_VIEWS_ADDRESS, OFT_ADDRESS, PRICE_FEED, SDK, SIMPLE_MESSAGE_LIB_ADDRESS, TREASURY_ADDRESS, ULN_MESSAGE_LIB_ADDRESS, WORKER_COMMON, getSDKFromProvider };
261
+ //# sourceMappingURL=out.js.map
262
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/generated/addresses.ts"],"names":["Stage"],"mappings":"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","sourcesContent":["import { arrayify } from '@ethersproject/bytes'\nimport { AccAddress, LCDClient, MnemonicKey, Msg, TxError, WaitTxBroadcastResult } from '@initia/initia.js'\n\nimport { Provider, TransactionRequest } from '@layerzerolabs/lz-core'\nimport {\n InitiaBuildTxRequestOptions,\n InitiaProvider,\n InitiaSigner,\n convertArg,\n convertPayloadToMsgExecute,\n covertPayloadArgs,\n} from '@layerzerolabs/lz-corekit-initia'\nimport { Stage } from '@layerzerolabs/lz-definitions'\nimport { AccountsOption, LayerZeroModulesSdk, MoveSdkImpl } from '@layerzerolabs/lz-movevm-sdk-v2'\nimport { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'\nimport {\n EntryFunctionArgumentTypes,\n GasOptions,\n InputEntryFunctionData,\n MnemonicAndPath,\n MoveAbortError,\n MoveFunction,\n MoveResourceNotFoundError,\n MoveStructId,\n MoveTableItemNotFoundError,\n MoveValue,\n PrivateKey,\n TableItemRequest,\n TransactionResponse,\n UnclassifiedError,\n isMnemonicAndPath,\n isPrivateKey,\n} from '@layerzerolabs/move-definitions'\n\nimport {\n COUNTER_V2_ADDRESS,\n DVN_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'\n\nexport * from './generated/addresses'\n\nexport interface SdkOptions {\n provider: InitiaProvider\n stage?: Stage\n accounts?: AccountsOption\n}\n\nexport function getSDKFromProvider(provider: Provider): SDK {\n return new SDK({ provider: provider as InitiaProvider })\n}\n\ninterface AxiosError {\n response: {\n data: {\n code: number\n message: string\n }\n }\n}\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction isTxError(tx: unknown): tx is TxError {\n return tx instanceof Object && 'code' in tx && Number(tx.code) !== 0\n}\n\nexport class SDK implements MoveSdkImpl<MnemonicKey> {\n stage: Stage\n provider: InitiaProvider\n LayerzeroModule: LayerZeroModulesSdk<MnemonicKey>\n accounts: AccountsOption\n\n constructor(options: SdkOptions) {\n this.stage = options.stage ?? Stage.SANDBOX\n this.accounts = options.accounts ?? {\n endpoint_v2: this.toHexAddress(ENDPOINT_V2_ADDRESS[this.stage] ?? '0x0'),\n counter_v2: this.toHexAddress(COUNTER_V2_ADDRESS[this.stage] ?? '0x0'),\n oft: this.toHexAddress(OFT_ADDRESS[this.stage] ?? '0x0'),\n layerzero_views: this.toHexAddress(LAYERZERO_VIEWS_ADDRESS[this.stage] ?? '0x0'),\n simple_message_lib: this.toHexAddress(SIMPLE_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0'),\n uln_message_lib: this.toHexAddress(ULN_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0'),\n executor: this.toHexAddress(EXECUTOR_ADDRESS[this.stage] ?? '0x0'),\n dvn: this.toHexAddress(DVN_ADDRESS[this.stage] ?? '0x0'),\n worker_common: this.toHexAddress(WORKER_COMMON[this.stage] ?? '0x0'),\n price_feed: this.toHexAddress(PRICE_FEED[this.stage] ?? '0x0'),\n treasury: this.toHexAddress(TREASURY_ADDRESS[this.stage] ?? '0x0'),\n endpoint_v2_common: this.toHexAddress(ENDPOINT_V2_COMMON[this.stage] ?? '0x0'),\n }\n this.provider = options.provider\n this.LayerzeroModule = new LayerZeroModulesSdk(this)\n }\n\n getLCDClient(): LCDClient {\n return this.provider.native\n }\n\n async buildDVNVerifyTransaction(\n adminSignerAddress: string,\n date: Date,\n codec: PacketV1Codec,\n receiveMessageLibAddress: string,\n inboundConfirmation: number,\n expiration: number,\n signatures: string\n ): Promise<TransactionRequest> {\n const payload: InputEntryFunctionData = {\n function: `${DVN_ADDRESS[this.stage]}::dvn::verify`,\n functionArguments: [\n arrayify(codec.header()),\n arrayify(codec.payloadHash()),\n BigInt(inboundConfirmation),\n receiveMessageLibAddress,\n BigInt(expiration) + BigInt(date.getTime()),\n arrayify(signatures),\n ] as EntryFunctionArgumentTypes[],\n functionArgumentTypes: ['vector<u8>', 'vector<u8>', 'u64', 'address', 'u64', 'vector<u8>'],\n }\n const accAddr = AccAddress.fromHex(adminSignerAddress)\n const msg: Msg = convertPayloadToMsgExecute(accAddr, payload)\n const tx = await this.getLCDClient().tx.create([{ address: accAddr }], { msgs: [msg] })\n return TransactionRequest.from(tx)\n }\n\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n functionArgTypes?: string[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const argsStrings = covertPayloadArgs(args.functionArgTypes ?? [], args.functionArgs)\n const [moduleAddress, moduleName, functionName] = args.functionName.split('::')\n try {\n const viewFunctionData = await this.provider.native.move.viewFunction<MoveValue>(\n moduleAddress,\n moduleName,\n functionName,\n args.typeArgs ?? [],\n argsStrings\n )\n return [viewFunctionData]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n normalizeSigner(signer: MnemonicKey | PrivateKey | MnemonicAndPath): MnemonicKey {\n if (signer instanceof MnemonicKey) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n const { mnemonic, path } = signer\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? []\n return new MnemonicKey({\n mnemonic,\n coinType,\n account,\n index,\n })\n } else if (isPrivateKey(signer)) {\n return MnemonicKey.fromHex(signer) as MnemonicKey\n }\n throw new Error(`Invalid signer`)\n }\n\n accountToAddress(account: MnemonicKey): string {\n return this.toHexAddress(account.accAddress)\n }\n\n toBech32Address(anyAddress: string | Uint8Array): string {\n if (anyAddress instanceof Uint8Array) {\n anyAddress = Buffer.from(anyAddress).toString('hex')\n }\n if (AccAddress.validate(anyAddress)) {\n return anyAddress\n }\n return AccAddress.fromHex(anyAddress)\n }\n\n toHexAddress(anyAddress: string | Uint8Array): string {\n if (anyAddress instanceof Uint8Array) {\n anyAddress = Buffer.from(anyAddress).toString('hex')\n }\n if (AccAddress.validate(anyAddress)) {\n return AccAddress.toHex(anyAddress)\n }\n return anyAddress\n }\n\n handleError(e: unknown): unknown {\n if (isAxiosError(e)) {\n const errorString = e.response.data.message\n const codeMatch = errorString.match(/code=(\\d+)/)\n if (errorString.includes('VM aborted') && codeMatch !== null) {\n const code = parseInt(codeMatch[1])\n return new MoveAbortError(code, e.response.data.message)\n } else if (errorString.startsWith('collections: not found')) {\n return new MoveResourceNotFoundError(e.response.data.message)\n } else if (errorString.includes('MISSING_DATA')) {\n return new MoveResourceNotFoundError(e.response.data.message)\n } else {\n return new UnclassifiedError(e.response.data.message)\n }\n }\n return e\n }\n\n async sendAndConfirmTransaction(\n sender: MnemonicKey | PrivateKey | MnemonicAndPath,\n func: MoveFunction,\n args: EntryFunctionArgumentTypes[],\n multisig?: string | Uint8Array,\n argTypes?: string[],\n gasOptions?: GasOptions\n ): Promise<TransactionResponse> {\n try {\n sender = this.normalizeSigner(sender)\n const coreSigner = InitiaSigner.from(sender).connect(this.provider)\n\n const buildTxRequestOption: InitiaBuildTxRequestOptions = {\n gas: gasOptions?.gasLimit,\n gasPrice: gasOptions?.gasPrice !== undefined ? `${gasOptions.gasPrice}uinit` : undefined,\n }\n\n const txRequest = await coreSigner.buildTransaction({\n payload: {\n function: func,\n functionArguments: args,\n functionArgumentTypes: argTypes,\n },\n options: buildTxRequestOption,\n })\n const signedTx = await coreSigner.signTransaction(txRequest)\n\n const txReceipt = await coreSigner.sendAndConfirm(signedTx)\n const result = txReceipt.receipt as WaitTxBroadcastResult\n\n if (isTxError(result)) {\n throw Error(result.raw_log)\n }\n return {\n hash: result.txhash,\n sender: sender.accAddress,\n raw: result,\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: string | Uint8Array\n resourceType: MoveStructId\n options?: unknown\n }): Promise<T> {\n try {\n const address = this.toHexAddress(args.accountAddress)\n const { data } = await this.provider.native.move.resource(address, args.resourceType)\n return data as T\n } catch (e) {\n if (isAxiosError(e) && e.response.data.message.startsWith('collections: not found')) {\n throw new MoveResourceNotFoundError(e.response.data.message)\n }\n throw e\n }\n }\n\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: unknown }): Promise<T> {\n try {\n const res = await this.provider.native.move.tableEntry(\n args.handle,\n convertArg(args.data.key_type as string, args.data.key as EntryFunctionArgumentTypes)\n )\n const { value } = res\n const valueObject = JSON.parse(value) as { [key: string]: T }\n return Object.values(valueObject)[0]\n } catch (e) {\n if (isAxiosError(e) && e.response.data.message.startsWith('collections: not found')) {\n throw new MoveTableItemNotFoundError(e.response.data.message)\n }\n throw e\n }\n }\n\n normalizeAddress(address: string): string {\n return address\n }\n\n supportsCoin(): boolean {\n return false\n }\n}\n","// WARNING: Do not change this code. It is auto generated.\n// If you want some new feature, please update generate-addresses.ts.\nimport {Stage} from '@layerzerolabs/lz-definitions'\nexport const ENDPOINT_V2_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x55c9aa355f26e5f311af070ca7da9990d01fb7db',\n [Stage.SANDBOX]: '0x9560458244b6f15bad18fe7f713d09490921aa90',\n}\n\nexport const SIMPLE_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x71311073935a2b716b9660caa4a704674494d3b9',\n [Stage.SANDBOX]: '0x29b18f0ac4c4e395c017029029eb72029c121a02',\n}\n\nexport const ULN_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x74886dec58f41ad824e404c1d6d1a17efdfccc56',\n [Stage.SANDBOX]: '0x8f045d5da0ef3615644d02e51e22515d152fb41c',\n}\n\nexport const COUNTER_V2_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x6c4a494f374093c9bcf0192a59cfc05424b726dd',\n [Stage.SANDBOX]: '0x653aa7b4d2d40bf9a3069ea50c94469bc2457176',\n}\n\nexport const OFT_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x41aba793e2e42a4f07e586b7ccb83fb599eba301',\n}\n\nexport const LAYERZERO_VIEWS_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x5a4cb364837a9ee5bb23a885710a827d729fb662',\n [Stage.SANDBOX]: '0x3f90b37789daae7f4362bc92fd43cab119b5e683',\n}\n\nexport const EXECUTOR_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0xf4851b3e55014c5d03e0f2183af77fd5f71a9eb2',\n [Stage.SANDBOX]: '0xe0694909091d33252c6935ec7de52d85a78c20e7',\n}\n\nexport const DVN_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x1fdbdab3fec27ece61e37839a079b2f9eda60b64',\n [Stage.SANDBOX]: '0xf0ad1b2b2295c7c80a83de59427dee9627363355',\n}\n\nexport const WORKER_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x0e910f4a046f4c3113438e8c7882cbbff34845aa',\n [Stage.SANDBOX]: '0x881773c1c2abca25f8e6191c4584eaf7a0d15e80',\n}\n\nexport const PRICE_FEED: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0xff3f509f96578b793999a9ba82651d57b02a832b',\n [Stage.SANDBOX]: '0x4e5a65a1953e1b2f576edc6e1e9f00da02dbd3d5',\n}\n\nexport const TREASURY_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x299eb1bababc19a801b97f0cbf728be97cd197c2',\n [Stage.SANDBOX]: '0xc4d96a76466e6bfb44f6ddb5daabdcd76e7ee7b1',\n}\n\nexport const ENDPOINT_V2_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '0x6da16aabf8d791340730ac512ae2c871f180d67b',\n [Stage.SANDBOX]: '0x77160f68f4f1af74ab5875253db51366ca97f91f',\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@layerzerolabs/lz-initia-sdk-v2",
3
+ "version": "2.3.45-initia-oft.5",
4
+ "license": "BUSL-1.1",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.mjs",
9
+ "require": "./dist/index.cjs"
10
+ },
11
+ "./package.json": "./package.json",
12
+ "./deployments/*": "./deployments/*"
13
+ },
14
+ "main": "./dist/index.cjs",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "deployments/**/*",
18
+ "dist/**/*"
19
+ ],
20
+ "scripts": {
21
+ "build": "$npm_execpath clean-prebuild && $npm_execpath generate && $npm_execpath build-ts",
22
+ "build-ts": "$npm_execpath tsc --noEmit && $npm_execpath tsup",
23
+ "clean": "$npm_execpath clean-prebuild",
24
+ "clean-prebuild": "rimraf -g dist",
25
+ "generate": "ts-node generate-addresses.ts",
26
+ "test": "jest"
27
+ },
28
+ "dependencies": {
29
+ "@ethersproject/bytes": "^5.7.0",
30
+ "@initia/initia.js": "^0.2.11",
31
+ "@layerzerolabs/lz-core": "^2.3.45-initia-oft.5",
32
+ "@layerzerolabs/lz-corekit-initia": "^2.3.45-initia-oft.5",
33
+ "@layerzerolabs/lz-definitions": "^2.3.45-initia-oft.5",
34
+ "@layerzerolabs/lz-movevm-sdk-v2": "^2.3.45-initia-oft.5",
35
+ "@layerzerolabs/lz-v2-utilities": "^2.3.45-initia-oft.5",
36
+ "@layerzerolabs/move-definitions": "^2.3.45-initia-oft.5"
37
+ },
38
+ "devDependencies": {
39
+ "@jest/globals": "^29.7.0",
40
+ "@layerzerolabs/runtime-config": "^0.0.0",
41
+ "@layerzerolabs/tsup-config-next": "^2.3.45-initia-oft.5",
42
+ "@layerzerolabs/typescript-config-next": "^2.3.45-initia-oft.5",
43
+ "@types/node": "^20.10.5",
44
+ "jest": "^29.7.0",
45
+ "rimraf": "^5.0.5",
46
+ "ts-jest": "^29.1.1",
47
+ "ts-node": "^10.9.1",
48
+ "tsup": "^8.0.1",
49
+ "typescript": "~5.2.2"
50
+ },
51
+ "publishConfig": {
52
+ "access": "restricted"
53
+ }
54
+ }