@layerzerolabs/lz-aptos-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 (43) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +21 -0
  3. package/deployments/aptos-sandbox-local/blocked_msglib.json +11 -0
  4. package/deployments/aptos-sandbox-local/counter.json +11 -0
  5. package/deployments/aptos-sandbox-local/dvn.json +11 -0
  6. package/deployments/aptos-sandbox-local/dvn_fee_lib_0.json +11 -0
  7. package/deployments/aptos-sandbox-local/dvn_fee_lib_1.json +11 -0
  8. package/deployments/aptos-sandbox-local/dvn_fee_lib_router_0.json +11 -0
  9. package/deployments/aptos-sandbox-local/dvn_fee_lib_router_1.json +11 -0
  10. package/deployments/aptos-sandbox-local/endpoint_v2.json +11 -0
  11. package/deployments/aptos-sandbox-local/endpoint_v2_common.json +11 -0
  12. package/deployments/aptos-sandbox-local/executor.json +11 -0
  13. package/deployments/aptos-sandbox-local/executor_fee_lib_0.json +11 -0
  14. package/deployments/aptos-sandbox-local/executor_fee_lib_1.json +11 -0
  15. package/deployments/aptos-sandbox-local/executor_fee_lib_router_0.json +11 -0
  16. package/deployments/aptos-sandbox-local/executor_fee_lib_router_1.json +11 -0
  17. package/deployments/aptos-sandbox-local/layerzero_views.json +11 -0
  18. package/deployments/aptos-sandbox-local/msglib_3.json +11 -0
  19. package/deployments/aptos-sandbox-local/msglib_4.json +11 -0
  20. package/deployments/aptos-sandbox-local/msglib_types.json +11 -0
  21. package/deployments/aptos-sandbox-local/oft-TokenFour.json +11 -0
  22. package/deployments/aptos-sandbox-local/oft-TokenOne.json +11 -0
  23. package/deployments/aptos-sandbox-local/oft-TokenThree.json +11 -0
  24. package/deployments/aptos-sandbox-local/oft-TokenTwo.json +11 -0
  25. package/deployments/aptos-sandbox-local/oft_common.json +11 -0
  26. package/deployments/aptos-sandbox-local/price_feed_module_0.json +11 -0
  27. package/deployments/aptos-sandbox-local/price_feed_module_1.json +11 -0
  28. package/deployments/aptos-sandbox-local/price_feed_module_2.json +11 -0
  29. package/deployments/aptos-sandbox-local/price_feed_router_0.json +11 -0
  30. package/deployments/aptos-sandbox-local/price_feed_router_1.json +11 -0
  31. package/deployments/aptos-sandbox-local/router_node_0.json +11 -0
  32. package/deployments/aptos-sandbox-local/router_node_1.json +11 -0
  33. package/deployments/aptos-sandbox-local/simple_msglib.json +11 -0
  34. package/deployments/aptos-sandbox-local/treasury.json +11 -0
  35. package/deployments/aptos-sandbox-local/uln_302.json +11 -0
  36. package/deployments/aptos-sandbox-local/worker_common.json +11 -0
  37. package/dist/index.cjs +478 -0
  38. package/dist/index.cjs.map +1 -0
  39. package/dist/index.d.mts +110 -0
  40. package/dist/index.d.ts +110 -0
  41. package/dist/index.mjs +457 -0
  42. package/dist/index.mjs.map +1 -0
  43. package/package.json +58 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,478 @@
1
+ 'use strict';
2
+
3
+ var tsSdk = require('@aptos-labs/ts-sdk');
4
+ var invariant = require('tiny-invariant');
5
+ var lzCorekitAptos = require('@layerzerolabs/lz-corekit-aptos');
6
+ var lzDefinitions = require('@layerzerolabs/lz-definitions');
7
+ var lzMovevmSdkV2 = require('@layerzerolabs/lz-movevm-sdk-v2');
8
+ var moveDefinitions = require('@layerzerolabs/move-definitions');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var invariant__default = /*#__PURE__*/_interopDefault(invariant);
13
+
14
+ // src/index.ts
15
+ var ENDPOINT_V2_ADDRESS = {
16
+ [lzDefinitions.Stage.MAINNET]: "",
17
+ [lzDefinitions.Stage.TESTNET]: "",
18
+ [lzDefinitions.Stage.SANDBOX]: "0xd9fbd5191a9864742464950e4e850786b60d26b1349dcc2227de294c7b2b32c5"
19
+ };
20
+ var SIMPLE_MESSAGE_LIB_ADDRESS = {
21
+ [lzDefinitions.Stage.MAINNET]: "",
22
+ [lzDefinitions.Stage.TESTNET]: "",
23
+ [lzDefinitions.Stage.SANDBOX]: "0xc726431adfe8c4a28ccd0f2b3810487a7b4438092244f0d894d3600087c5e66d"
24
+ };
25
+ var ULN_MESSAGE_LIB_ADDRESS = {
26
+ [lzDefinitions.Stage.MAINNET]: "",
27
+ [lzDefinitions.Stage.TESTNET]: "",
28
+ [lzDefinitions.Stage.SANDBOX]: "0xb785f6093141e4729eb46dd7398dd7259cd5ce74e312b29ed12380bba1606808"
29
+ };
30
+ var COUNTER_V2_ADDRESS = {
31
+ [lzDefinitions.Stage.MAINNET]: "",
32
+ [lzDefinitions.Stage.TESTNET]: "",
33
+ [lzDefinitions.Stage.SANDBOX]: "0xbd4d9a38bb4789c9fb32d1cdbf269df52bb2771145cf41afc1a6087acf3bfc6d"
34
+ };
35
+ var OFT_ADDRESS = {
36
+ [lzDefinitions.Stage.MAINNET]: "",
37
+ [lzDefinitions.Stage.TESTNET]: "",
38
+ [lzDefinitions.Stage.SANDBOX]: "0xfc07ed99874d8dab5174934e2e5ecafd5bc4fad2253cd4f7a7b23d5268a9b3e3"
39
+ };
40
+ var LAYERZERO_VIEWS_ADDRESS = {
41
+ [lzDefinitions.Stage.MAINNET]: "",
42
+ [lzDefinitions.Stage.TESTNET]: "",
43
+ [lzDefinitions.Stage.SANDBOX]: "0x93e05b851b0c06bedf77e6bcd60aa9922dc83a9b268cb9e089ff2ef06cdc5bb5"
44
+ };
45
+ var EXECUTOR_ADDRESS = {
46
+ [lzDefinitions.Stage.MAINNET]: "",
47
+ [lzDefinitions.Stage.TESTNET]: "",
48
+ [lzDefinitions.Stage.SANDBOX]: "0x0f3a1a2e15f2558198339aec958d6db36a4e247415c8bb061ba77e4543ce6b4d"
49
+ };
50
+ var DVN_ADDRESS = {
51
+ [lzDefinitions.Stage.MAINNET]: "",
52
+ [lzDefinitions.Stage.TESTNET]: "",
53
+ [lzDefinitions.Stage.SANDBOX]: "0x51ec85b4cf4d7ac03a2a42853a5f0cfbd22f56fda66726e1f98906d5829b7c22"
54
+ };
55
+ var WORKER_COMMON = {
56
+ [lzDefinitions.Stage.MAINNET]: "",
57
+ [lzDefinitions.Stage.TESTNET]: "",
58
+ [lzDefinitions.Stage.SANDBOX]: "0x0100ee640b091eae215a628c37c45d3ec6f165e373e8a6b0d6e4ce8f6eed73d5"
59
+ };
60
+ var PRICE_FEED = {
61
+ [lzDefinitions.Stage.MAINNET]: "",
62
+ [lzDefinitions.Stage.TESTNET]: "",
63
+ [lzDefinitions.Stage.SANDBOX]: "0x420a695c2ad3a128d1fded450346326ec2e342f5cf9f205b53e8456f60e795d6"
64
+ };
65
+ var TREASURY_ADDRESS = {
66
+ [lzDefinitions.Stage.MAINNET]: "",
67
+ [lzDefinitions.Stage.TESTNET]: "",
68
+ [lzDefinitions.Stage.SANDBOX]: "0x3130ea2bf26ed0da8d44f8154a43383e630f202fcc474e1154cf4fd9828caada"
69
+ };
70
+ var ENDPOINT_V2_COMMON = {
71
+ [lzDefinitions.Stage.MAINNET]: "",
72
+ [lzDefinitions.Stage.TESTNET]: "",
73
+ [lzDefinitions.Stage.SANDBOX]: "0x84937e3698c2ba30eb1a7dcdc4fbe912c9f2f2675cd0d5bc7a83e5d732d665b7"
74
+ };
75
+
76
+ // src/constants.ts
77
+ ({
78
+ [lzDefinitions.Environment.MAINNET]: "https://mainnet.aptoslabs.com/v1",
79
+ [lzDefinitions.Environment.TESTNET]: "https://fullnode.testnet.aptoslabs.com/v1",
80
+ [lzDefinitions.Environment.DEVNET]: "https://fullnode.devnet.aptoslabs.com/v1",
81
+ [lzDefinitions.Environment.LOCAL]: "http://127.0.0.1:8080/v1"
82
+ // 'http://192.168.0.169:8080/v1
83
+ });
84
+ ({
85
+ [lzDefinitions.Environment.MAINNET]: "",
86
+ [lzDefinitions.Environment.TESTNET]: "https://faucet.testnet.aptoslabs.com",
87
+ [lzDefinitions.Environment.DEVNET]: "https://faucet.devnet.aptoslabs.com",
88
+ [lzDefinitions.Environment.LOCAL]: "http://127.0.0.1:8081"
89
+ // 'http://192.168.0.169:8081
90
+ });
91
+ ({
92
+ [lzDefinitions.Environment.MAINNET]: "https://api.mainnet.aptoslabs.com/v1/graphql",
93
+ [lzDefinitions.Environment.TESTNET]: "https://api.testnet.aptoslabs.com/v1/graphql",
94
+ [lzDefinitions.Environment.DEVNET]: "https://api.devnet.aptoslabs.com/v1/graphql",
95
+ // must be 8090, can not modify
96
+ [lzDefinitions.Environment.LOCAL]: "http://127.0.0.1:8090/v1/graphql"
97
+ });
98
+
99
+ // src/utils.ts
100
+ var GAS_LIMIT_SAFETY_BPS = 2e3;
101
+ function applyGasLimitSafety(gasUsed) {
102
+ return BigInt(gasUsed) * BigInt(1e4 + GAS_LIMIT_SAFETY_BPS) / BigInt(1e4);
103
+ }
104
+
105
+ // src/index.ts
106
+ function assertAptosProvider(provider) {
107
+ if (!(provider instanceof lzCorekitAptos.AptosProvider)) {
108
+ throw new Error("Invalid provider");
109
+ }
110
+ }
111
+ function getSDKFromProvider(provider) {
112
+ const client = provider.native;
113
+ const url = client.nodeUrl;
114
+ assertAptosProvider(provider);
115
+ const indexerUrl = provider.indexer;
116
+ const faucetUrl = provider.faucet;
117
+ const aptosConfig = new tsSdk.AptosConfig({ network: tsSdk.Network.LOCAL, fullnode: url, indexer: indexerUrl, faucet: faucetUrl });
118
+ const aptos = new tsSdk.Aptos(aptosConfig);
119
+ return new SDK({ provider: aptos });
120
+ }
121
+ function isOptionValue(value) {
122
+ return typeof value === "object" && value != null && "vec" in value;
123
+ }
124
+ var SDK = class {
125
+ constructor(options) {
126
+ this.stage = options.stage ?? lzDefinitions.Stage.SANDBOX;
127
+ this.accounts = options.accounts ?? {
128
+ endpoint_v2: tsSdk.AccountAddress.from(ENDPOINT_V2_ADDRESS[this.stage] ?? "0x0").toString(),
129
+ counter_v2: tsSdk.AccountAddress.from(COUNTER_V2_ADDRESS[this.stage] ?? "0x0").toString(),
130
+ oft: tsSdk.AccountAddress.from(OFT_ADDRESS[this.stage] ?? "0x0").toString(),
131
+ layerzero_views: tsSdk.AccountAddress.from(LAYERZERO_VIEWS_ADDRESS[this.stage] ?? "0x0").toString(),
132
+ simple_message_lib: tsSdk.AccountAddress.from(SIMPLE_MESSAGE_LIB_ADDRESS[this.stage] ?? "0x0").toString(),
133
+ uln_message_lib: tsSdk.AccountAddress.from(ULN_MESSAGE_LIB_ADDRESS[this.stage] ?? "0x0").toString(),
134
+ executor: tsSdk.AccountAddress.from(EXECUTOR_ADDRESS[this.stage] ?? "0x0").toString(),
135
+ dvn: tsSdk.AccountAddress.from(DVN_ADDRESS[this.stage] ?? "0x0").toString(),
136
+ worker_common: tsSdk.AccountAddress.from(WORKER_COMMON[this.stage] ?? "0x0").toString(),
137
+ price_feed: tsSdk.AccountAddress.from(PRICE_FEED[this.stage] ?? "0x0").toString(),
138
+ treasury: tsSdk.AccountAddress.from(TREASURY_ADDRESS[this.stage] ?? "0x0").toString(),
139
+ endpoint_v2_common: tsSdk.AccountAddress.from(ENDPOINT_V2_COMMON[this.stage] ?? "0x0").toString()
140
+ };
141
+ this.client = options.provider;
142
+ this.LayerzeroModule = new lzMovevmSdkV2.LayerZeroModulesSdk(this);
143
+ }
144
+ getAptosClient() {
145
+ return this.client;
146
+ }
147
+ async createMultiSigAccount(signer, owners, threshold) {
148
+ const txn = await this.client.transaction.build.simple({
149
+ sender: signer.accountAddress,
150
+ data: {
151
+ function: "0x1::multisig_account::create_with_owners",
152
+ functionArguments: [owners, threshold, [], []]
153
+ }
154
+ });
155
+ const auth = new tsSdk.AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txn));
156
+ const res = await this.client.transaction.submit.simple({
157
+ transaction: txn,
158
+ senderAuthenticator: auth
159
+ });
160
+ const tx = await this.waitAndGetTransaction(res.hash);
161
+ const changes = tx.changes[2];
162
+ return tsSdk.AccountAddress.fromString(changes.address);
163
+ }
164
+ async sendAndConfirmAuthTransaction(args) {
165
+ const res = await this.client.transaction.submit.simple({
166
+ transaction: args.txn,
167
+ senderAuthenticator: args.auth
168
+ });
169
+ return this.waitAndGetTransaction(res.hash);
170
+ }
171
+ async sendAndConfirmTransaction_(signer, payload, gasOptions) {
172
+ this.assertValidGasOptions(gasOptions);
173
+ const options = await this.estimateGas(signer, payload);
174
+ const txnRequest = await this.client.transaction.build.simple({
175
+ sender: signer.accountAddress,
176
+ data: payload,
177
+ options: {
178
+ gasUnitPrice: Number(gasOptions?.gasPrice !== void 0 ? gasOptions.gasPrice : options.gas_unit_price),
179
+ maxGasAmount: Number(gasOptions?.gasLimit !== void 0 ? gasOptions.gasLimit : options.max_gas_amount)
180
+ }
181
+ });
182
+ const auth = new tsSdk.AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txnRequest));
183
+ return this.sendAndConfirmAuthTransaction({ txn: txnRequest, auth });
184
+ }
185
+ handleError(e) {
186
+ if (e instanceof tsSdk.AptosApiError) {
187
+ const errorData = e.data;
188
+ const errorString = errorData.message ?? "";
189
+ const errorCode = errorData.error_code ?? "";
190
+ const majorStatusMatch = errorString.match(/major_status:\s([A-Z_]+)/);
191
+ if (majorStatusMatch !== null) {
192
+ const major_status = majorStatusMatch[1];
193
+ if (major_status === "ABORTED") {
194
+ const subStatusMatch = errorString.match(/sub_status:\sSome\((\d+)\)/);
195
+ if (subStatusMatch === null) {
196
+ return new moveDefinitions.MoveAbortError(Number.NEGATIVE_INFINITY, errorString);
197
+ } else {
198
+ return new moveDefinitions.MoveAbortError(Number(subStatusMatch[1]), errorString);
199
+ }
200
+ } else if (major_status === "MISSING_DATA") {
201
+ return new moveDefinitions.MoveResourceNotFoundError(errorString);
202
+ }
203
+ } else if (errorCode === "resource_not_found") {
204
+ return new moveDefinitions.MoveResourceNotFoundError(errorString);
205
+ } else if (errorCode === "table_item_not_found") {
206
+ return new moveDefinitions.MoveTableItemNotFoundError(errorString);
207
+ } else {
208
+ return new moveDefinitions.UnclassifiedError(errorString);
209
+ }
210
+ }
211
+ return e;
212
+ }
213
+ async viewFunction(args) {
214
+ const payload = {
215
+ function: args.functionName,
216
+ functionArguments: args.functionArgs,
217
+ typeArguments: args.typeArgs ?? []
218
+ };
219
+ try {
220
+ let view = await this.client.view({ payload });
221
+ view = view.map((item) => {
222
+ if (isOptionValue(item)) {
223
+ if (item.vec.length !== 0) {
224
+ return item.vec[0];
225
+ } else {
226
+ return null;
227
+ }
228
+ }
229
+ return item;
230
+ });
231
+ if (view.length > 1) {
232
+ view = [view];
233
+ }
234
+ return view;
235
+ } catch (e) {
236
+ throw this.handleError(e);
237
+ }
238
+ }
239
+ async getTransactionBySeqno(multiaddr, seqno) {
240
+ return this.viewFunction({
241
+ functionName: "0x1::multisig_account::get_transaction",
242
+ functionArgs: [multiaddr, seqno]
243
+ }).then((res) => res[0]);
244
+ }
245
+ async approveTransactionMultiSig(multiaddr, sender, seqno) {
246
+ const txn = await this.client.transaction.build.simple({
247
+ sender: sender.accountAddress,
248
+ data: {
249
+ function: "0x1::multisig_account::approve_transaction",
250
+ functionArguments: [multiaddr, seqno]
251
+ }
252
+ });
253
+ const auth = new tsSdk.AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txn));
254
+ return this.sendAndConfirmAuthTransaction({ txn, auth });
255
+ }
256
+ normalizeSigner(signer) {
257
+ if (signer instanceof tsSdk.Ed25519Account) {
258
+ return signer;
259
+ } else if (moveDefinitions.isMnemonicAndPath(signer)) {
260
+ return tsSdk.Ed25519Account.fromDerivationPath(signer);
261
+ } else if (moveDefinitions.isPrivateKey(signer)) {
262
+ return new tsSdk.Ed25519Account({ privateKey: new tsSdk.Ed25519PrivateKey(signer) });
263
+ }
264
+ throw new Error(`Invalid signer`);
265
+ }
266
+ accountToAddress(account) {
267
+ return account.accountAddress.toString();
268
+ }
269
+ async sendAndConfirmTransaction(signer, func, args, multisig, _, gasOptions) {
270
+ try {
271
+ signer = this.normalizeSigner(signer);
272
+ if (multisig === void 0) {
273
+ const committedTransactionResponse = await this.sendAndConfirmTransaction_(
274
+ signer,
275
+ {
276
+ function: func,
277
+ functionArguments: args,
278
+ typeArguments: []
279
+ },
280
+ gasOptions
281
+ );
282
+ return {
283
+ hash: committedTransactionResponse.hash,
284
+ sender: signer.accountAddress.toString(),
285
+ raw: committedTransactionResponse
286
+ };
287
+ } else {
288
+ if (typeof multisig === "string" || multisig instanceof Uint8Array) {
289
+ multisig = tsSdk.AccountAddress.from(multisig);
290
+ }
291
+ const simple = await this.createMultiSigPayload(multisig, signer.accountAddress, {
292
+ function: func,
293
+ args
294
+ });
295
+ const auth = new tsSdk.AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(simple));
296
+ const committedTransactionResponse = await this.sendAndConfirmAuthTransaction({
297
+ txn: simple,
298
+ auth
299
+ });
300
+ return {
301
+ hash: committedTransactionResponse.hash,
302
+ sender: signer.accountAddress.toString(),
303
+ raw: committedTransactionResponse
304
+ };
305
+ }
306
+ } catch (e) {
307
+ throw this.handleError(e);
308
+ }
309
+ }
310
+ async rejectTransactionMultiSig(multiaddr, sender, seqno) {
311
+ const txn = await this.client.transaction.build.simple({
312
+ sender: sender.accountAddress,
313
+ data: {
314
+ function: "0x1::multisig_acccount::reject_transaction",
315
+ functionArguments: [multiaddr, seqno]
316
+ }
317
+ });
318
+ const auth = new tsSdk.AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txn));
319
+ return this.sendAndConfirmAuthTransaction({ txn, auth });
320
+ }
321
+ async getPendingMultiSigTransactions(multiaddr) {
322
+ return this.viewFunction({
323
+ functionName: "0x1::multisig_account::get_pending_transactions",
324
+ functionArgs: [multiaddr]
325
+ });
326
+ }
327
+ assertValidGasOptions(gasOptions) {
328
+ if (gasOptions === void 0) {
329
+ return;
330
+ }
331
+ if (gasOptions.gasPrice !== void 0) {
332
+ invariant__default.default(
333
+ Number.isInteger(Number(gasOptions.gasPrice)),
334
+ `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`
335
+ );
336
+ }
337
+ if (gasOptions.gasLimit !== void 0) {
338
+ invariant__default.default(
339
+ Number.isInteger(Number(gasOptions.gasLimit)),
340
+ `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`
341
+ );
342
+ }
343
+ }
344
+ async createMultiSigPayload(multisig_address, sender, payload_args, gasOptions) {
345
+ const payload = await tsSdk.generateTransactionPayload({
346
+ multisigAddress: multisig_address,
347
+ function: payload_args.function,
348
+ functionArguments: payload_args.args,
349
+ aptosConfig: this.client.config
350
+ });
351
+ const payload_ = await tsSdk.generateRawTransaction({
352
+ aptosConfig: this.client.config,
353
+ sender,
354
+ payload,
355
+ options: {
356
+ gasUnitPrice: gasOptions?.gasPrice === void 0 ? void 0 : Number(gasOptions.gasPrice),
357
+ maxGasAmount: gasOptions?.gasLimit === void 0 ? void 0 : Number(gasOptions.gasLimit)
358
+ }
359
+ });
360
+ return new tsSdk.SimpleTransaction(payload_);
361
+ }
362
+ async createMultiSigTransactionRequest(multisig_address, sender, payload_args) {
363
+ const payload = await tsSdk.generateTransactionPayload({
364
+ multisigAddress: multisig_address,
365
+ function: payload_args.function,
366
+ functionArguments: payload_args.args,
367
+ aptosConfig: this.client.config
368
+ });
369
+ const txnRequest = await this.client.transaction.build.simple({
370
+ sender: sender.accountAddress,
371
+ data: {
372
+ function: "0x1::multisig_account::create_transaction",
373
+ functionArguments: [multisig_address, payload.multiSig.transaction_payload.bcsToBytes()]
374
+ }
375
+ });
376
+ const auth = new tsSdk.AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txnRequest));
377
+ const propose_tx = await this.sendAndConfirmAuthTransaction({
378
+ txn: txnRequest,
379
+ auth
380
+ });
381
+ const data = propose_tx.events[0].data;
382
+ return Number(data.sequence_number);
383
+ }
384
+ async executeTransactionMultiSig(sender, txn) {
385
+ const execute = await tsSdk.generateRawTransaction({
386
+ aptosConfig: this.client.config,
387
+ sender: sender.accountAddress,
388
+ payload: txn
389
+ });
390
+ const simple = new tsSdk.SimpleTransaction(execute);
391
+ const auth = this.client.sign({ signer: sender, transaction: simple });
392
+ return this.sendAndConfirmAuthTransaction({ txn: simple, auth });
393
+ }
394
+ async estimateGas(signer, payload) {
395
+ const txnRequest = await this.client.transaction.build.simple({
396
+ sender: signer.accountAddress,
397
+ data: payload
398
+ });
399
+ const sim = await this.client.transaction.simulate.simple({
400
+ signerPublicKey: signer.publicKey,
401
+ transaction: txnRequest,
402
+ options: {
403
+ estimateGasUnitPrice: true,
404
+ estimateMaxGasAmount: true
405
+ }
406
+ });
407
+ const tx = sim[0];
408
+ invariant__default.default(tx.success, `Transaction failed: ${tx.vm_status}}`);
409
+ const max_gas_amount = applyGasLimitSafety(tx.gas_used).toString();
410
+ return {
411
+ max_gas_amount,
412
+ gas_unit_price: tx.gas_unit_price
413
+ };
414
+ }
415
+ async deploy(signer, metadata, modules) {
416
+ const gas = this.client.getGasPriceEstimation();
417
+ const txn = await this.client.publishPackageTransaction({
418
+ account: signer.accountAddress,
419
+ metadataBytes: metadata,
420
+ moduleBytecode: modules,
421
+ options: {
422
+ gasUnitPrice: Number(gas)
423
+ }
424
+ });
425
+ const sent = await this.sendAndConfirmAuthTransaction({
426
+ txn,
427
+ auth: new tsSdk.AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txn))
428
+ });
429
+ if (!sent.success) {
430
+ throw new Error(sent.vm_status);
431
+ }
432
+ return sent.hash;
433
+ }
434
+ async getAccountResource(args) {
435
+ try {
436
+ return await this.client.getAccountResource(args);
437
+ } catch (e) {
438
+ throw this.handleError(e);
439
+ }
440
+ }
441
+ async getTableItem(args) {
442
+ try {
443
+ return await this.client.getTableItem(args);
444
+ } catch (e) {
445
+ throw this.handleError(e);
446
+ }
447
+ }
448
+ async waitAndGetTransaction(txnHash) {
449
+ const tx = await this.client.waitForTransaction({ transactionHash: txnHash });
450
+ invariant__default.default(tx.success, `Transaction failed: ${tx.vm_status}`);
451
+ return tx;
452
+ }
453
+ normalizeAddress(address) {
454
+ return tsSdk.AccountAddress.from(address).toString();
455
+ }
456
+ supportsCoin() {
457
+ return true;
458
+ }
459
+ };
460
+
461
+ exports.COUNTER_V2_ADDRESS = COUNTER_V2_ADDRESS;
462
+ exports.DVN_ADDRESS = DVN_ADDRESS;
463
+ exports.ENDPOINT_V2_ADDRESS = ENDPOINT_V2_ADDRESS;
464
+ exports.ENDPOINT_V2_COMMON = ENDPOINT_V2_COMMON;
465
+ exports.EXECUTOR_ADDRESS = EXECUTOR_ADDRESS;
466
+ exports.GAS_LIMIT_SAFETY_BPS = GAS_LIMIT_SAFETY_BPS;
467
+ exports.LAYERZERO_VIEWS_ADDRESS = LAYERZERO_VIEWS_ADDRESS;
468
+ exports.OFT_ADDRESS = OFT_ADDRESS;
469
+ exports.PRICE_FEED = PRICE_FEED;
470
+ exports.SDK = SDK;
471
+ exports.SIMPLE_MESSAGE_LIB_ADDRESS = SIMPLE_MESSAGE_LIB_ADDRESS;
472
+ exports.TREASURY_ADDRESS = TREASURY_ADDRESS;
473
+ exports.ULN_MESSAGE_LIB_ADDRESS = ULN_MESSAGE_LIB_ADDRESS;
474
+ exports.WORKER_COMMON = WORKER_COMMON;
475
+ exports.applyGasLimitSafety = applyGasLimitSafety;
476
+ exports.getSDKFromProvider = getSDKFromProvider;
477
+ //# sourceMappingURL=out.js.map
478
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/constants.ts","../src/generated/addresses.ts","../src/utils.ts"],"names":["Stage"],"mappings":"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","sourcesContent":["import {\n AccountAddress,\n AccountAddressInput,\n AccountAuthenticator,\n AccountAuthenticatorEd25519,\n AnyTransactionPayloadInstance,\n Aptos,\n AptosApiError,\n AptosConfig,\n CommittedTransactionResponse,\n Ed25519Account,\n Ed25519PrivateKey,\n InputEntryFunctionData,\n InputViewFunctionData,\n LedgerVersionArg,\n MoveStructId,\n Network as Net,\n SimpleEntryFunctionArgumentTypes,\n SimpleTransaction,\n TableItemRequest,\n U64,\n UserTransactionResponse,\n WriteSetChangeWriteModule,\n generateRawTransaction,\n generateTransactionPayload,\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 { ChainType, Stage } from '@layerzerolabs/lz-definitions'\nimport { AccountsOption, LayerZeroModulesSdk, MoveSdkImpl } from '@layerzerolabs/lz-movevm-sdk-v2'\nimport {\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 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 './constants'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\nexport interface SdkOptions {\n provider: Aptos\n chainType?: ChainType\n stage?: Stage\n accounts?: AccountsOption\n}\n\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\nexport function getSDKFromProvider(provider: Provider): 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 })\n}\n\ninterface OptionValue {\n vec: MoveValue[]\n}\n\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'object' && value != null && 'vec' in value\n}\n\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n stage: Stage\n client: Aptos\n LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n accounts: AccountsOption\n\n constructor(options: SdkOptions) {\n this.stage = options.stage ?? Stage.SANDBOX\n this.accounts = options.accounts ?? {\n endpoint_v2: AccountAddress.from(ENDPOINT_V2_ADDRESS[this.stage] ?? '0x0').toString(),\n counter_v2: AccountAddress.from(COUNTER_V2_ADDRESS[this.stage] ?? '0x0').toString(),\n oft: AccountAddress.from(OFT_ADDRESS[this.stage] ?? '0x0').toString(),\n layerzero_views: AccountAddress.from(LAYERZERO_VIEWS_ADDRESS[this.stage] ?? '0x0').toString(),\n simple_message_lib: AccountAddress.from(SIMPLE_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0').toString(),\n uln_message_lib: AccountAddress.from(ULN_MESSAGE_LIB_ADDRESS[this.stage] ?? '0x0').toString(),\n executor: AccountAddress.from(EXECUTOR_ADDRESS[this.stage] ?? '0x0').toString(),\n dvn: AccountAddress.from(DVN_ADDRESS[this.stage] ?? '0x0').toString(),\n worker_common: AccountAddress.from(WORKER_COMMON[this.stage] ?? '0x0').toString(),\n price_feed: AccountAddress.from(PRICE_FEED[this.stage] ?? '0x0').toString(),\n treasury: AccountAddress.from(TREASURY_ADDRESS[this.stage] ?? '0x0').toString(),\n endpoint_v2_common: AccountAddress.from(ENDPOINT_V2_COMMON[this.stage] ?? '0x0').toString(),\n }\n this.client = options.provider\n this.LayerzeroModule = new LayerZeroModulesSdk(this)\n }\n\n getAptosClient(): Aptos {\n return this.client\n }\n\n async createMultiSigAccount(\n signer: Ed25519Account,\n owners: AccountAddress[],\n threshold: number\n ): Promise<AccountAddress> {\n const txn = await this.client.transaction.build.simple({\n sender: signer.accountAddress,\n data: {\n function: '0x1::multisig_account::create_with_owners',\n functionArguments: [owners, threshold, [], []],\n },\n })\n\n const auth = new AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txn))\n const res = await this.client.transaction.submit.simple({\n transaction: txn,\n senderAuthenticator: auth,\n })\n\n const tx = await this.waitAndGetTransaction(res.hash)\n const changes = tx.changes[2] as WriteSetChangeWriteModule\n return AccountAddress.fromString(changes.address)\n }\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 private async sendAndConfirmTransaction_(\n signer: Ed25519Account,\n payload: InputEntryFunctionData,\n gasOptions?: GasOptions\n ): Promise<CommittedTransactionResponse> {\n this.assertValidGasOptions(gasOptions)\n const options = await this.estimateGas(signer, payload)\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 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 {\n return new UnclassifiedError(errorString)\n }\n }\n return e\n }\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 async getTransactionBySeqno(multiaddr: string | Uint8Array, seqno: bigint): Promise<MoveValue> {\n return this.viewFunction({\n functionName: '0x1::multisig_account::get_transaction',\n functionArgs: [multiaddr, seqno],\n }).then((res) => res[0])\n }\n\n async approveTransactionMultiSig(\n multiaddr: AccountAddress,\n sender: Ed25519Account,\n seqno: U64\n ): Promise<CommittedTransactionResponse> {\n const txn = await this.client.transaction.build.simple({\n sender: sender.accountAddress,\n data: {\n function: '0x1::multisig_account::approve_transaction',\n functionArguments: [multiaddr, seqno],\n },\n })\n const auth = new AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txn))\n return this.sendAndConfirmAuthTransaction({ txn: txn, auth: auth })\n }\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 accountToAddress(account: Ed25519Account): string {\n return account.accountAddress.toString()\n }\n\n async sendAndConfirmTransaction(\n signer: Ed25519Account | PrivateKey | MnemonicAndPath,\n func: `${string}::${string}::${string}`,\n args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[],\n multisig?: string | Uint8Array | AccountAddress,\n _?: string[],\n gasOptions?: GasOptions\n ): Promise<TransactionResponse> {\n try {\n signer = this.normalizeSigner(signer)\n if (multisig === undefined) {\n const committedTransactionResponse = await this.sendAndConfirmTransaction_(\n signer,\n {\n function: func,\n functionArguments: args,\n typeArguments: [],\n },\n gasOptions\n )\n return {\n hash: committedTransactionResponse.hash,\n sender: signer.accountAddress.toString(),\n raw: committedTransactionResponse,\n }\n } else {\n if (typeof multisig === 'string' || multisig instanceof Uint8Array) {\n multisig = AccountAddress.from(multisig)\n }\n const simple = await this.createMultiSigPayload(multisig, signer.accountAddress, {\n function: func,\n args: args,\n })\n const auth = new AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(simple))\n const committedTransactionResponse = await this.sendAndConfirmAuthTransaction({\n txn: simple,\n auth: auth,\n })\n return {\n hash: committedTransactionResponse.hash,\n sender: signer.accountAddress.toString(),\n raw: committedTransactionResponse,\n }\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n async rejectTransactionMultiSig(\n multiaddr: AccountAddress,\n sender: Ed25519Account,\n seqno: U64\n ): Promise<CommittedTransactionResponse> {\n const txn = await this.client.transaction.build.simple({\n sender: sender.accountAddress,\n data: {\n function: '0x1::multisig_acccount::reject_transaction',\n functionArguments: [multiaddr, seqno],\n },\n })\n const auth = new AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txn))\n return this.sendAndConfirmAuthTransaction({ txn: txn, auth: auth })\n }\n\n async getPendingMultiSigTransactions(multiaddr: string | Uint8Array): Promise<MoveValue[]> {\n return this.viewFunction({\n functionName: '0x1::multisig_account::get_pending_transactions',\n functionArgs: [multiaddr],\n })\n }\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 async createMultiSigPayload(\n multisig_address: AccountAddress,\n sender: AccountAddress,\n payload_args: {\n function: `${string}::${string}::${string}`\n args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]\n },\n gasOptions?: GasOptions\n ): Promise<SimpleTransaction> {\n const payload = await generateTransactionPayload({\n multisigAddress: multisig_address,\n function: payload_args.function,\n functionArguments: payload_args.args,\n aptosConfig: this.client.config,\n })\n const payload_ = await generateRawTransaction({\n aptosConfig: this.client.config,\n sender: sender,\n payload: payload,\n options: {\n gasUnitPrice: gasOptions?.gasPrice === undefined ? undefined : Number(gasOptions.gasPrice),\n maxGasAmount: gasOptions?.gasLimit === undefined ? undefined : Number(gasOptions.gasLimit),\n },\n })\n return new SimpleTransaction(payload_)\n }\n\n async createMultiSigTransactionRequest(\n multisig_address: AccountAddress,\n sender: Ed25519Account,\n payload_args: {\n function: `${string}::${string}::${string}`\n args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]\n }\n ): Promise<number> {\n const payload = await generateTransactionPayload({\n multisigAddress: multisig_address,\n function: payload_args.function,\n functionArguments: payload_args.args,\n aptosConfig: this.client.config,\n })\n\n const txnRequest = await this.client.transaction.build.simple({\n sender: sender.accountAddress,\n data: {\n function: '0x1::multisig_account::create_transaction',\n functionArguments: [multisig_address, payload.multiSig.transaction_payload!.bcsToBytes()],\n },\n })\n const auth = new AccountAuthenticatorEd25519(sender.publicKey, sender.signTransaction(txnRequest))\n\n const propose_tx = (await this.sendAndConfirmAuthTransaction({\n txn: txnRequest,\n auth: auth,\n })) as UserTransactionResponse\n interface CreateTransaction {\n sequence_number: string\n type: string\n }\n\n const data = propose_tx.events[0].data as CreateTransaction\n return Number(data.sequence_number)\n }\n\n async executeTransactionMultiSig(\n sender: Ed25519Account,\n txn: AnyTransactionPayloadInstance\n ): Promise<CommittedTransactionResponse> {\n const execute = await generateRawTransaction({\n aptosConfig: this.client.config,\n sender: sender.accountAddress,\n payload: txn,\n })\n const simple = new SimpleTransaction(execute)\n const auth = this.client.sign({ signer: sender, transaction: simple })\n return this.sendAndConfirmAuthTransaction({ txn: simple, auth: auth })\n }\n\n async estimateGas(\n signer: Ed25519Account,\n payload: InputEntryFunctionData\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 async deploy(signer: Ed25519Account, metadata: Uint8Array, modules: Uint8Array[]): Promise<string> {\n const gas = this.client.getGasPriceEstimation()\n const txn = await this.client.publishPackageTransaction({\n account: signer.accountAddress,\n metadataBytes: metadata,\n moduleBytecode: modules,\n options: {\n gasUnitPrice: Number(gas),\n },\n })\n const sent = await this.sendAndConfirmAuthTransaction({\n txn: txn,\n auth: new AccountAuthenticatorEd25519(signer.publicKey, signer.signTransaction(txn)),\n })\n if (!sent.success) {\n throw new Error(sent.vm_status)\n }\n return sent.hash\n }\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 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 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 normalizeAddress(address: string): string {\n return AccountAddress.from(address).toString()\n }\n\n supportsCoin(): boolean {\n return true\n }\n}\n","import { Environment } from '@layerzerolabs/lz-definitions'\nexport * from './generated/addresses'\n\n// NOTE: THIS IS BORROWED FROM LZV1; THE ADDRESSES HERE ARE NOT CURRENTLY CORRECT\nexport const NODE_URL: { [env in Environment]: string } = {\n [Environment.MAINNET]: 'https://mainnet.aptoslabs.com/v1',\n [Environment.TESTNET]: 'https://fullnode.testnet.aptoslabs.com/v1',\n [Environment.DEVNET]: 'https://fullnode.devnet.aptoslabs.com/v1',\n [Environment.LOCAL]: 'http://127.0.0.1:8080/v1', // 'http://192.168.0.169:8080/v1\n}\n\nexport const FAUCET_URL: { [env in Environment]: string } = {\n [Environment.MAINNET]: '',\n [Environment.TESTNET]: 'https://faucet.testnet.aptoslabs.com',\n [Environment.DEVNET]: 'https://faucet.devnet.aptoslabs.com',\n [Environment.LOCAL]: 'http://127.0.0.1:8081', // 'http://192.168.0.169:8081\n}\n\nexport const INDEXER_URL: { [env in Environment]: string } = {\n [Environment.MAINNET]: 'https://api.mainnet.aptoslabs.com/v1/graphql',\n [Environment.TESTNET]: 'https://api.testnet.aptoslabs.com/v1/graphql',\n [Environment.DEVNET]: 'https://api.devnet.aptoslabs.com/v1/graphql',\n // must be 8090, can not modify\n [Environment.LOCAL]: 'http://127.0.0.1:8090/v1/graphql',\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]: '',\n [Stage.SANDBOX]: '0xd9fbd5191a9864742464950e4e850786b60d26b1349dcc2227de294c7b2b32c5',\n}\n\nexport const SIMPLE_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0xc726431adfe8c4a28ccd0f2b3810487a7b4438092244f0d894d3600087c5e66d',\n}\n\nexport const ULN_MESSAGE_LIB_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0xb785f6093141e4729eb46dd7398dd7259cd5ce74e312b29ed12380bba1606808',\n}\n\nexport const COUNTER_V2_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0xbd4d9a38bb4789c9fb32d1cdbf269df52bb2771145cf41afc1a6087acf3bfc6d',\n}\n\nexport const OFT_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0xfc07ed99874d8dab5174934e2e5ecafd5bc4fad2253cd4f7a7b23d5268a9b3e3',\n}\n\nexport const LAYERZERO_VIEWS_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x93e05b851b0c06bedf77e6bcd60aa9922dc83a9b268cb9e089ff2ef06cdc5bb5',\n}\n\nexport const EXECUTOR_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x0f3a1a2e15f2558198339aec958d6db36a4e247415c8bb061ba77e4543ce6b4d',\n}\n\nexport const DVN_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x51ec85b4cf4d7ac03a2a42853a5f0cfbd22f56fda66726e1f98906d5829b7c22',\n}\n\nexport const WORKER_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x0100ee640b091eae215a628c37c45d3ec6f165e373e8a6b0d6e4ce8f6eed73d5',\n}\n\nexport const PRICE_FEED: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x420a695c2ad3a128d1fded450346326ec2e342f5cf9f205b53e8456f60e795d6',\n}\n\nexport const TREASURY_ADDRESS: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x3130ea2bf26ed0da8d44f8154a43383e630f202fcc474e1154cf4fd9828caada',\n}\n\nexport const ENDPOINT_V2_COMMON: { [stage in Stage]?: string } = {\n [Stage.MAINNET]: '',\n [Stage.TESTNET]: '',\n [Stage.SANDBOX]: '0x84937e3698c2ba30eb1a7dcdc4fbe912c9f2f2675cd0d5bc7a83e5d732d665b7',\n}\n","export const GAS_LIMIT_SAFETY_BPS = 2000\n\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n"]}
@@ -0,0 +1,110 @@
1
+ import { Aptos, Ed25519Account, AccountAddress, SimpleTransaction, AccountAuthenticator, CommittedTransactionResponse, U64, SimpleEntryFunctionArgumentTypes, AnyTransactionPayloadInstance, InputEntryFunctionData, AccountAddressInput, MoveStructId, LedgerVersionArg, TableItemRequest } from '@aptos-labs/ts-sdk';
2
+ import { Provider } from '@layerzerolabs/lz-core';
3
+ import { Stage, ChainType } from '@layerzerolabs/lz-definitions';
4
+ import { AccountsOption, MoveSdkImpl, LayerZeroModulesSdk } from '@layerzerolabs/lz-movevm-sdk-v2';
5
+ import { MoveFunction, EntryFunctionArgumentTypes, MoveValue, PrivateKey, MnemonicAndPath, GasOptions, TransactionResponse } from '@layerzerolabs/move-definitions';
6
+
7
+ declare const GAS_LIMIT_SAFETY_BPS = 2000;
8
+ declare function applyGasLimitSafety(gasUsed: string): bigint;
9
+
10
+ declare const ENDPOINT_V2_ADDRESS: {
11
+ [stage in Stage]?: string;
12
+ };
13
+ declare const SIMPLE_MESSAGE_LIB_ADDRESS: {
14
+ [stage in Stage]?: string;
15
+ };
16
+ declare const ULN_MESSAGE_LIB_ADDRESS: {
17
+ [stage in Stage]?: string;
18
+ };
19
+ declare const COUNTER_V2_ADDRESS: {
20
+ [stage in Stage]?: string;
21
+ };
22
+ declare const OFT_ADDRESS: {
23
+ [stage in Stage]?: string;
24
+ };
25
+ declare const LAYERZERO_VIEWS_ADDRESS: {
26
+ [stage in Stage]?: string;
27
+ };
28
+ declare const EXECUTOR_ADDRESS: {
29
+ [stage in Stage]?: string;
30
+ };
31
+ declare const DVN_ADDRESS: {
32
+ [stage in Stage]?: string;
33
+ };
34
+ declare const WORKER_COMMON: {
35
+ [stage in Stage]?: string;
36
+ };
37
+ declare const PRICE_FEED: {
38
+ [stage in Stage]?: string;
39
+ };
40
+ declare const TREASURY_ADDRESS: {
41
+ [stage in Stage]?: string;
42
+ };
43
+ declare const ENDPOINT_V2_COMMON: {
44
+ [stage in Stage]?: string;
45
+ };
46
+
47
+ interface SdkOptions {
48
+ provider: Aptos;
49
+ chainType?: ChainType;
50
+ stage?: Stage;
51
+ accounts?: AccountsOption;
52
+ }
53
+ declare function getSDKFromProvider(provider: Provider): SDK;
54
+ declare class SDK implements MoveSdkImpl<Ed25519Account> {
55
+ stage: Stage;
56
+ client: Aptos;
57
+ LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>;
58
+ accounts: AccountsOption;
59
+ constructor(options: SdkOptions);
60
+ getAptosClient(): Aptos;
61
+ createMultiSigAccount(signer: Ed25519Account, owners: AccountAddress[], threshold: number): Promise<AccountAddress>;
62
+ sendAndConfirmAuthTransaction(args: {
63
+ txn: SimpleTransaction;
64
+ auth: AccountAuthenticator;
65
+ }): Promise<CommittedTransactionResponse>;
66
+ private sendAndConfirmTransaction_;
67
+ handleError(e: unknown): unknown;
68
+ viewFunction(args: {
69
+ functionName: MoveFunction;
70
+ functionArgs: EntryFunctionArgumentTypes[];
71
+ typeArgs?: string[];
72
+ }): Promise<MoveValue[]>;
73
+ getTransactionBySeqno(multiaddr: string | Uint8Array, seqno: bigint): Promise<MoveValue>;
74
+ approveTransactionMultiSig(multiaddr: AccountAddress, sender: Ed25519Account, seqno: U64): Promise<CommittedTransactionResponse>;
75
+ normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account;
76
+ accountToAddress(account: Ed25519Account): string;
77
+ sendAndConfirmTransaction(signer: Ed25519Account | PrivateKey | MnemonicAndPath, func: `${string}::${string}::${string}`, args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[], multisig?: string | Uint8Array | AccountAddress, _?: string[], gasOptions?: GasOptions): Promise<TransactionResponse>;
78
+ rejectTransactionMultiSig(multiaddr: AccountAddress, sender: Ed25519Account, seqno: U64): Promise<CommittedTransactionResponse>;
79
+ getPendingMultiSigTransactions(multiaddr: string | Uint8Array): Promise<MoveValue[]>;
80
+ assertValidGasOptions(gasOptions?: GasOptions): void;
81
+ createMultiSigPayload(multisig_address: AccountAddress, sender: AccountAddress, payload_args: {
82
+ function: `${string}::${string}::${string}`;
83
+ args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[];
84
+ }, gasOptions?: GasOptions): Promise<SimpleTransaction>;
85
+ createMultiSigTransactionRequest(multisig_address: AccountAddress, sender: Ed25519Account, payload_args: {
86
+ function: `${string}::${string}::${string}`;
87
+ args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[];
88
+ }): Promise<number>;
89
+ executeTransactionMultiSig(sender: Ed25519Account, txn: AnyTransactionPayloadInstance): Promise<CommittedTransactionResponse>;
90
+ estimateGas(signer: Ed25519Account, payload: InputEntryFunctionData): Promise<{
91
+ max_gas_amount: string;
92
+ gas_unit_price: string;
93
+ }>;
94
+ deploy(signer: Ed25519Account, metadata: Uint8Array, modules: Uint8Array[]): Promise<string>;
95
+ getAccountResource<T extends NonNullable<unknown> = any>(args: {
96
+ accountAddress: AccountAddressInput;
97
+ resourceType: MoveStructId;
98
+ options?: LedgerVersionArg;
99
+ }): Promise<T>;
100
+ getTableItem<T>(args: {
101
+ handle: string;
102
+ data: TableItemRequest;
103
+ options?: LedgerVersionArg;
104
+ }): Promise<T>;
105
+ private waitAndGetTransaction;
106
+ normalizeAddress(address: string): string;
107
+ supportsCoin(): boolean;
108
+ }
109
+
110
+ export { COUNTER_V2_ADDRESS, DVN_ADDRESS, ENDPOINT_V2_ADDRESS, ENDPOINT_V2_COMMON, EXECUTOR_ADDRESS, GAS_LIMIT_SAFETY_BPS, LAYERZERO_VIEWS_ADDRESS, OFT_ADDRESS, PRICE_FEED, SDK, SIMPLE_MESSAGE_LIB_ADDRESS, type SdkOptions, TREASURY_ADDRESS, ULN_MESSAGE_LIB_ADDRESS, WORKER_COMMON, applyGasLimitSafety, getSDKFromProvider };