@layerzerolabs/lz-aptos-sdk-v2 3.0.2-initia.2 → 3.0.2-initia.3

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 (41) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/deployments/aptos-sandbox-local/blocked_msglib.json +1 -1
  3. package/deployments/aptos-sandbox-local/counter.json +1 -1
  4. package/deployments/aptos-sandbox-local/dvn.json +1 -1
  5. package/deployments/aptos-sandbox-local/dvn_fee_lib_0.json +1 -1
  6. package/deployments/aptos-sandbox-local/dvn_fee_lib_1.json +1 -1
  7. package/deployments/aptos-sandbox-local/dvn_fee_lib_router_0.json +1 -1
  8. package/deployments/aptos-sandbox-local/dvn_fee_lib_router_1.json +1 -1
  9. package/deployments/aptos-sandbox-local/endpoint_v2.json +1 -1
  10. package/deployments/aptos-sandbox-local/endpoint_v2_common.json +1 -1
  11. package/deployments/aptos-sandbox-local/executor.json +1 -1
  12. package/deployments/aptos-sandbox-local/executor_fee_lib_0.json +1 -1
  13. package/deployments/aptos-sandbox-local/executor_fee_lib_1.json +1 -1
  14. package/deployments/aptos-sandbox-local/executor_fee_lib_router_0.json +1 -1
  15. package/deployments/aptos-sandbox-local/executor_fee_lib_router_1.json +1 -1
  16. package/deployments/aptos-sandbox-local/layerzero_views.json +1 -1
  17. package/deployments/aptos-sandbox-local/msglib_3.json +1 -1
  18. package/deployments/aptos-sandbox-local/msglib_4.json +1 -1
  19. package/deployments/aptos-sandbox-local/msglib_types.json +1 -1
  20. package/deployments/aptos-sandbox-local/oft-TokenOne.json +1 -1
  21. package/deployments/aptos-sandbox-local/oft-TokenThree.json +1 -1
  22. package/deployments/aptos-sandbox-local/oft-TokenTwo.json +1 -1
  23. package/deployments/aptos-sandbox-local/oft_common.json +1 -1
  24. package/deployments/aptos-sandbox-local/price_feed_module_0.json +1 -1
  25. package/deployments/aptos-sandbox-local/price_feed_module_1.json +1 -1
  26. package/deployments/aptos-sandbox-local/price_feed_module_2.json +1 -1
  27. package/deployments/aptos-sandbox-local/price_feed_router_0.json +1 -1
  28. package/deployments/aptos-sandbox-local/price_feed_router_1.json +1 -1
  29. package/deployments/aptos-sandbox-local/router_node_0.json +1 -1
  30. package/deployments/aptos-sandbox-local/router_node_1.json +1 -1
  31. package/deployments/aptos-sandbox-local/simple_msglib.json +1 -1
  32. package/deployments/aptos-sandbox-local/treasury.json +1 -1
  33. package/deployments/aptos-sandbox-local/uln_302.json +1 -1
  34. package/deployments/aptos-sandbox-local/worker_common.json +1 -1
  35. package/dist/index.cjs +4 -3
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.mts +3 -2
  38. package/dist/index.d.ts +3 -2
  39. package/dist/index.mjs +4 -3
  40. package/dist/index.mjs.map +1 -1
  41. package/package.json +11 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @layerzerolabs/lz-aptos-sdk-v2
2
2
 
3
+ ## 3.0.2-initia.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Build initia,aptos,bsc,movement snapshot images
8
+ - Updated dependencies
9
+ - @layerzerolabs/lz-corekit-aptos@3.0.2-initia.3
10
+ - @layerzerolabs/lz-core@3.0.2-initia.3
11
+ - @layerzerolabs/lz-definitions@3.0.2-initia.3
12
+ - @layerzerolabs/lz-serdes@3.0.2-initia.3
13
+ - @layerzerolabs/lz-utilities@3.0.2-initia.3
14
+ - @layerzerolabs/lz-movevm-sdk-v2@3.0.2-initia.3
15
+ - @layerzerolabs/lz-v2-utilities@3.0.2-initia.3
16
+ - @layerzerolabs/move-definitions@3.0.2-initia.3
17
+
3
18
  ## 3.0.2-initia.2
4
19
 
5
20
  ### Patch Changes
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "eb7d4229f462b66a9e813a43852e864e4c85639caf7c02ddbd82178cd641d09b",
10
- "transactionHash": "0x09933fe02abf44385ea1fa4e0cc3b552183c0adec3ba2f260467aa7364378e69"
10
+ "transactionHash": "0xb1c0b120c969c64340622fc555da4e5b598ce7a0197386a5393ff0806c826218"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "c2335aa96957d6141158388906873d014ef85c0184488a247390c4983e8fe2e3",
10
- "transactionHash": "0x3339095b0fb06e03bef1b451e55e9ce3bc63c13fd256f5f2dfc04275a243b9de"
10
+ "transactionHash": "0x0878448cf22831cbd604d1850662377afb8b95379f46626115dac8bed9caf1a6"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "8b645e31c1cc9dadde66ca7cdea2ae5e5cc51c63d14344c0389bf1b5ea92a302",
10
- "transactionHash": "0xcf165fa95b431569b3c04f78cda552112f6ada0c1832d8831301f1550937a904"
10
+ "transactionHash": "0x92173ae0a0406efa971e960558e091faf12f171ad5fc1e0586c37106775aabf0"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "d97ab3f51c1c16e8aa84a9d1a2c683dd0722d8d707cae4604dcc7e61577386aa",
10
- "transactionHash": "0x13e2909c35ca3c4789d158efb6c2e01a7497e2346c5f91e75dcae299e3cfc25e"
10
+ "transactionHash": "0x1d6bdd20df66080a964d91b441be3c299dde1475c8babd367ea132bb82369741"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "a4f8f33ff9b0e3e5b41a08cd00980878411d70f5176b9e2224b3facd07cf7b05",
10
- "transactionHash": "0x2578effa61c4c3443c0909aab61d3f66c5a8bcb693ed7a9c347a1247cfa472fc"
10
+ "transactionHash": "0x82d0a8cb0aa67123bd73d64eca0b5aa5e954e67e07627a5b7c2ff9f4e09e365c"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "d70399e9f5d0706b9887990048531106a4ac6658f7204bb4bad59cf3e6931f3c",
10
- "transactionHash": "0xd1240d43727cbf96e66816d6dbf80cc8a662de986e74b9fe1ef41f242a6b68df"
10
+ "transactionHash": "0xa8be75204c27b0b0d4b89ecea6a2b27f49df2332a5024b2664370b41d5330e21"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "a8d7103fb3f4131e33380938867d2a0e633cf493947e958469f1e251a25bd21d",
10
- "transactionHash": "0x73f1be7570c56eb8bc138c0fc0873946491ff9f66a0584f3f1507bf3d9c56b79"
10
+ "transactionHash": "0x59979dfc45d96f7d0282bd0eed492b686df321f031292ddc336a7355faeb4924"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "19bd218f826c6f10f58e87f04af0b9b55862368304d0deb2106b0e3c43dce3c7",
10
- "transactionHash": "0x4265b0d70003dac950420f03d4c5925e196eee29a4d38aa6b344f0eb509c041f"
10
+ "transactionHash": "0xe693057f8cce04941272a9aa820b7b870bce5cddb2d8e147d9bfb89706155e8b"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "8341c36ca4899f91f60d421ded51a1accaa3f5f600cc41977c0c4a04fb10f643",
10
- "transactionHash": "0x1ce9538e1d1b1ad39f01c47d644edb5719fb0b3f8f788b4679619db79e779bd9"
10
+ "transactionHash": "0x0a0df73d4b8eafd4b743dfdc5ecba0d2103789354428c5c22786de3428aabcba"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "5f67f29f8f4adc113098c0cd08c7f7c18c48254b15d0166008ff8822e48c9da2",
10
- "transactionHash": "0xc64f806c3d9ef2da1be268d6050f97453045c4f8abaf26f48e864bea9c648461"
10
+ "transactionHash": "0xc39c2a675d64be30d77831c126fe9563b51c14bba1c9bfed069777ddc70a9784"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "b89f994810dab8a9fadbfb8c4fb710d06ece6575a5bf48f4d57cb06a7d870af7",
10
- "transactionHash": "0xa9243c9565be712f82562ae45bdd37eec3989f03248c1e9646d11f8dc55a6bbf"
10
+ "transactionHash": "0x8166c7758efd2cc132b53862a3cab3d1f0955fa29384b7c686c1826e05174c74"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "fba616923b19aceb3f143520e43b84703227cd5e6b763328adf4b68aee3edee4",
10
- "transactionHash": "0x1ad110d6f1d17f436d52b2b297345c364c896a0d4094bc83661cc8ebb0b45e79"
10
+ "transactionHash": "0x1d007fe8d071f09029860a179adf33657705890acc170d4cab32aa59aa3e4119"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "a8947c5c6cfc438f8fce5023f99bb1cf8988c8efd5656852d52443341f05665b",
10
- "transactionHash": "0xa1bf1bcd0d4df552b1030660dad4a1a6d293af51c94bb806b909b12f43c3baa4"
10
+ "transactionHash": "0x60090be89060a2a56908d9b76a2f095aef5291c2df2c87665d17c1078d11ae13"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "ded7caef375406b4a92663ef8fb8a520eb8e7adf7a844cbd8255f841da3876db",
10
- "transactionHash": "0x753cc2af260c3b5542d53d8ce0cbc3c0589ca9070479c957f349144b98fb2246"
10
+ "transactionHash": "0x6a8d9f48d95199566ca29145733f2a870ef1c1b694bf2fc3cdda19d4f7ec96fb"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "d48576f9eb6100e3e15dbc61d901bda360f33a764f648245a97e457e2abf2e91",
10
- "transactionHash": "0x2aa1b13be73c5f2ff7ae8f3117da4954a26fa2f6c81cdb3a1e180af80bad6314"
10
+ "transactionHash": "0x9ece376c9751e39381ccfbffe4c0927b2633a207b3e115178b6db7a6f8c3be22"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "f561c0446f27726d5eae262e1f6d1d5096ea2a3f5f5a58c89d5e8fe1883285f9",
10
- "transactionHash": "0xbc78a367443366cd34b2ba181c9a4949b890174355b71e192b54854f8d6927d4"
10
+ "transactionHash": "0x899b1d7bdfba86ea9b10c3ac4c5ff8fa8d64447eaee882dd2685d61ceb5c668a"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "d5811c95313f2ea3dd3797f3553cf2b0fcc4bcb89e510a69e0306606cb0a8fe9",
10
- "transactionHash": "0xc00dab2a9a779d9806c2354754aea20d854de4688d297f8e2a767827d5c3de8d"
10
+ "transactionHash": "0x6be773d37257339343b44ce29bf96b1ab2d71b17eb3bb24886809aa02baf7239"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "7094e63ae61dfb61c1df71028f13dc69cfd10c1cfce3238374d23845949b9864",
10
- "transactionHash": "0xcc2dcc98272f2b0f1bb2c83d11e900966a3be7398e0104e95db9d10d331dcfe9"
10
+ "transactionHash": "0xb7ce14e1e3fdc573af7ca965678920bd85e316e17f4023138ca410e28558f992"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "0a67b7807a674d4c3eb34e3f91e359086d49cb7cd7bdfabe63941ee4b9c42663",
10
- "transactionHash": "0x958c07de289a588926de8394d9b4c9ecc2854a60134b4d21cc31343d74b4be66"
10
+ "transactionHash": "0x76a345fd6174aac0119f59c53d6720d6c67cd2fcc27d8138bdbf841adbeec48a"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "7705b750b53c9c4e360521e2d4f4403e3cb62f502b250b401730385852d55497",
10
- "transactionHash": "0x0ac46893967367292f630cc1526e55e501be42247c8dd320986b780e4c59560f"
10
+ "transactionHash": "0x1bd4ecb03107ae226baa9a6cfef1c7d0eea19adaa5dd4d8fa4b816263f3c4861"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "f96281f25db4dd806dfd2e9ee73fc401b2a30119156dec8ed4afa1f3129fdd20",
10
- "transactionHash": "0x4ac13a3dc29d54323d5e8820c2ae4068621535cc66b63c96d037b35e24e57b62"
10
+ "transactionHash": "0x6224508b1fec0d632adb608f1d7bcab342c2304de02cb6ac3aab91dbf402cc78"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "8a38727ea446cd9e0557d503a00de25c149277d051267076a8963a7cc48cf821",
10
- "transactionHash": "0xf838e3be6a0891d6ed010757502f953e790fbbe5df88cb7f600c2146571343eb"
10
+ "transactionHash": "0xceccc98caf264829ee393ebb6b11e288264761d788368ef5a9770a3b28edb20b"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "dcecf1920316b76847dd574f3d642191ea1a0bb97af8cf507b06abe426917c81",
10
- "transactionHash": "0x45b3b2b5e79622cd098a58c7e391532be26ceb2aeadc11a2a7c872bbded2d774"
10
+ "transactionHash": "0x5cc2f047d93764d5cfcb633981fb0a9680a2bae79eb8d698145101ce49a18f52"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "4dfe62172e1f10fac951bf7ff1477f2a69ebf81c63d4074bfa31ae2b0b35ce98",
10
- "transactionHash": "0xfd72cf3c8b7c68ce1c5316650f6248c7749778e9a15d3123e7f646da68d84daf"
10
+ "transactionHash": "0x1c405f2bf618d3492277083c63f7c7e9c48cedc39ac72c1941d5b8f8d45ba36e"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "445479944ecb4c019274f28ee577c77c42df9bfdb09880ead75161dba45bc899",
10
- "transactionHash": "0x730cd6a3c1091438f540634f07d097741adcf452b1abd7631ae9355017498c91"
10
+ "transactionHash": "0x7242834bff0a376c7d88ec6b887854a90d9b6a9f397b71f33eabf964c9f8c1cb"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "b695588e8dac5c34b1d53376fa76d182fbd1eff281e32dcf36803c07b7374757",
10
- "transactionHash": "0xb5388339873f31c2619863f1fe79296a0a4d0ee8b686f1633c4d54cbc1aa30bf"
10
+ "transactionHash": "0x124e7b510a700949f84707607fb0f27c2199fc3a40d6f76917b72060c14b2e57"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "fbd4b078d51b390834feadf24395b5391a9521bbc0b15c319d48dbe0734d9d40",
10
- "transactionHash": "0xe867b74837f3ff082cd000b2f2feaea09fc59ac1c8281a3a2cbc6a8dc74c66c9"
10
+ "transactionHash": "0xdf176970f4338d095c84b0b838adda5e9845b8603b918d84ffcb43f828320434"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "f16ea6697c1ab9f4374170df3e062e9df6b4e945c1a0404df99e0295797f2734",
10
- "transactionHash": "0x57d3d54cd6141c533f7ff21a5cbef439ee23c031e4ea9db02c16f9d77c17876f"
10
+ "transactionHash": "0xde9491426379e6f3c515164e261e3676eee2c2c6597c3f60e047010ff4cc8965"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "76e2c0453844a204f79338ac8685442456142234097a6c5942856cd8d1f986e3",
10
- "transactionHash": "0xf1aec95c06ab7d1d5e8c3dcc24344ab352df916a924a8edd4b9c6a39bace5466"
10
+ "transactionHash": "0x2fc30748644859993df5970391ac200f299174cf47a76c2cc2bfa1b2060cda28"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "1564abba3b617b430c86eee4aa0ff33886d5c6078cb0478d0d40c93065bf3aea",
10
- "transactionHash": "0x8099eacd8d841fe9a41696d4a666f8d0773744446bf94adcc1f45dc5591eba26"
10
+ "transactionHash": "0x145aeba6f1453e49e111ec911c3bba60e6d8bcb6ced169df9e0aa352c6cda66e"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "72a536cc6e38a6030f4d694921f3be429100c5112cac93bfefe4d09012e861a1",
10
- "transactionHash": "0x983065faf6a9802e6965b4f3e7a3c7963889dabdc7db7d49737617fad07cd058"
10
+ "transactionHash": "0x889fc333c8f6115490bab8e8810b7ed8cffcb7ebeda7f0034deffdb24ca8a9cb"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "b3c5b566c732166321d3ac98dc08f6d55dda73fe2fad0ef63a240f1317b67716",
10
- "transactionHash": "0xec346d54598a9cf015c4cdd51edbe304997969ce112a322d976f49af6ba59353"
10
+ "transactionHash": "0x039648b2253167d1aa44804dfa0d00007fe300b0c098bdd348aa9cdf042b961c"
11
11
  }
@@ -7,5 +7,5 @@
7
7
  "v2"
8
8
  ],
9
9
  "bytecodeHash": "d15cf5020707701537407d4bf7737a9e5b0aafdc6056745b760b711fc41e5f95",
10
- "transactionHash": "0xf376b0e0c82bec0e95b607e327d492509147d6b60a424d85ecf60188be45e835"
10
+ "transactionHash": "0x1269a726eef663a57583abbb5fc50552f3569423ced327c62cefe0b4626ea667"
11
11
  }
package/dist/index.cjs CHANGED
@@ -272,14 +272,15 @@ var SDK = class {
272
272
  * @implements {MoveSdkImpl<Ed25519Account>}
273
273
  *
274
274
  * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.
275
- * @param {`${string}::${string}::${string}`} func - The function to call.
275
+ * @param {MoveFunction} func - The function to call.
276
276
  * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.
277
277
  * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.
278
278
  * @param {string[]} [_] - Unused parameter.
279
279
  * @param {GasOptions} [gasOptions] - The gas options.
280
+ * @param {string[]} [typeArguments] - The type arguments.
280
281
  * @returns {Promise<TransactionResponse>} The transaction response.
281
282
  */
282
- async sendAndConfirmTransaction(signer, func, args, multisig, _, gasOptions) {
283
+ async sendAndConfirmTransaction(signer, func, args, multisig, _, gasOptions, typeArguments) {
283
284
  try {
284
285
  signer = this.normalizeSigner(signer);
285
286
  if (multisig === void 0) {
@@ -288,7 +289,7 @@ var SDK = class {
288
289
  {
289
290
  function: func,
290
291
  functionArguments: args,
291
- typeArguments: []
292
+ typeArguments
292
293
  },
293
294
  gasOptions
294
295
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.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 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 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 { 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 './generated/addresses'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The provider for the SDK.\n */\n provider: Aptos\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The accounts option (optional).\n * default value is read from generated/addresses.ts\n */\n accounts?: AccountsOption\n}\n\n/**\n * Asserts that the given provider is an instance of AptosProvider.\n *\n * @param {Provider} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of AptosProvider.\n */\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {Provider} provider - The provider of the current chain.\n * @returns {SDK} The initialized SDK instance.\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\n/**\n * Interface representing an option value.\n */\ninterface OptionValue {\n /**\n * The vector of Move values.\n */\n vec: MoveValue[]\n}\n\n/**\n * Checks if the given value is an OptionValue.\n * In contract, the type will be Option<xxx>, In SDK, the type will be OptionValue.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is OptionValue} True if the value is an OptionValue, false otherwise.\n */\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'object' && value != null && 'vec' in value\n}\n\n/**\n * The SDK class provides methods to interact with the Aptos.\n * For usage, please check [README.md](../README.md).\n *\n * @implements {MoveSdkImpl<Ed25519Account>}\n */\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n stage: Stage\n client: Aptos\n LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n accounts: AccountsOption\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.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 /**\n * Gets the Aptos client.\n *\n * @returns {Aptos} The Aptos client.\n */\n getAptosClient(): Aptos {\n return this.client\n }\n\n /**\n * Sends and confirms an authenticated transaction.\n *\n * @param {Object} args - The arguments for the transaction.\n * @param {SimpleTransaction} args.txn - The transaction to send.\n * @param {AccountAuthenticator} args.auth - The authenticator for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n */\n async sendAndConfirmAuthTransaction(args: {\n txn: SimpleTransaction\n auth: AccountAuthenticator\n }): Promise<CommittedTransactionResponse> {\n const res = await this.client.transaction.submit.simple({\n transaction: args.txn,\n senderAuthenticator: args.auth,\n })\n return this.waitAndGetTransaction(res.hash)\n }\n\n /**\n * Sends and confirms a transaction with the given signer and payload.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @param {GasOptions} [gasOptions] - The gas options for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @private\n */\n private async sendAndConfirmTransaction_(\n signer: Ed25519Account,\n payload: 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 /**\n * Handles errors and returns appropriate error instances based on the error type.\n *\n * @param {unknown} e - The error to handle.\n * @returns {unknown} The handled error, which could be an instance of MoveAbortError, MoveResourceNotFoundError, MoveTableItemNotFoundError, UnclassifiedError, or the original error.\n */\n handleError(e: unknown): unknown {\n if (e instanceof AptosApiError) {\n const errorData = e.data as { message: string | undefined; error_code: string | undefined }\n const errorString = errorData.message ?? ''\n const errorCode = errorData.error_code ?? ''\n const majorStatusMatch = errorString.match(/major_status:\\s([A-Z_]+)/)\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1]\n if (major_status === 'ABORTED') {\n const subStatusMatch = errorString.match(/sub_status:\\sSome\\((\\d+)\\)/)\n if (subStatusMatch === null) {\n return new MoveAbortError(Number.NEGATIVE_INFINITY, errorString)\n } else {\n return new MoveAbortError(Number(subStatusMatch[1]), errorString)\n }\n } else if (major_status === 'MISSING_DATA') {\n return new MoveResourceNotFoundError(errorString)\n }\n } else if (errorCode === 'resource_not_found') {\n return new MoveResourceNotFoundError(errorString)\n } else if (errorCode === 'table_item_not_found') {\n return new MoveTableItemNotFoundError(errorString)\n } else {\n return new UnclassifiedError(errorString)\n }\n }\n return e\n }\n\n /**\n * Executes a view function and returns the result.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for the view function.\n * @param {MoveFunction} args.functionName - The name of the function.\n * @param {EntryFunctionArgumentTypes[]} args.functionArgs - The arguments for the function.\n * @param {string[]} [args.typeArgs] - The type arguments for the function.\n * @returns {Promise<MoveValue[]>} The result of the view function.\n */\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const payload: InputViewFunctionData = {\n function: args.functionName,\n functionArguments: args.functionArgs,\n typeArguments: args.typeArgs ?? [],\n }\n try {\n let view = await this.client.view({ payload })\n view = view.map((item) => {\n if (isOptionValue(item)) {\n if (item.vec.length !== 0) {\n return item.vec[0]\n } else {\n return null\n }\n }\n return item\n })\n if (view.length > 1) {\n view = [view]\n }\n return view as MoveValue[]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Normalizes the signer to an Ed25519Account.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer to normalize.\n * @returns {Ed25519Account} The normalized signer.\n * @throws {Error} If the signer is invalid.\n */\n normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account {\n if (signer instanceof Ed25519Account) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n return Ed25519Account.fromDerivationPath(signer)\n } else if (isPrivateKey(signer)) {\n return new Ed25519Account({ privateKey: new Ed25519PrivateKey(signer) })\n }\n throw new Error(`Invalid signer`)\n }\n\n /**\n * Converts an account to an address string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account} account - The account to convert.\n * @returns {string} The address of the account.\n */\n accountToAddress(account: Ed25519Account): string {\n return account.accountAddress.toString()\n }\n\n /**\n * Sends a transaction and waits for confirmation.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.\n * @param {`${string}::${string}::${string}`} func - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.\n * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.\n * @param {string[]} [_] - Unused parameter.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<TransactionResponse>} The transaction response.\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 /**\n * Asserts that the given gas options are valid.\n *\n * @param {GasOptions} [gasOptions] - The gas options to validate.\n * @throws {Error} If the gas options are invalid.\n */\n assertValidGasOptions(gasOptions?: GasOptions): void {\n if (gasOptions === undefined) {\n return\n }\n if (gasOptions.gasPrice !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasPrice)),\n `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`\n )\n }\n if (gasOptions.gasLimit !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasLimit)),\n `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`\n )\n }\n }\n\n /**\n * Creates a multi-signature payload.\n *\n * @param {AccountAddress} multisig_address - The multi-signature account address.\n * @param {AccountAddress} sender - The sender of the transaction.\n * @param {Object} payload_args - The arguments for the payload.\n * @param {`${string}::${string}::${string}`} payload_args.function - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} payload_args.args - The arguments for the function.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<SimpleTransaction>} The created multi-signature payload.\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 /**\n * Estimates the gas required for a transaction.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @returns {Promise<{ max_gas_amount: string; gas_unit_price: string }>} The estimated gas amount and gas unit price.\n */\n async estimateGas(\n signer: Ed25519Account,\n payload: 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 /**\n * Gets an account resource.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for getting the account resource.\n * @param {AccountAddressInput} args.accountAddress - The account address.\n * @param {MoveStructId} args.resourceType - The type of the resource.\n * @param {LedgerVersionArg} [args.options] - The options for getting the resource.\n * @returns {Promise<T>} The account resource.\n * @template T - The type of the resource.\n * @throws {Error} If the request fails.\n */\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: AccountAddressInput\n resourceType: MoveStructId\n options?: LedgerVersionArg\n }): Promise<T> {\n try {\n return await this.client.getAccountResource(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Gets a table item.\n *\n * @param {Object} args - The arguments for getting the table item.\n * @param {string} args.handle - The table handle.\n * @param {TableItemRequest} args.data - The key of the item.\n * @param {LedgerVersionArg} [args.options] - The options for getting the item.\n * @returns {Promise<T>} The table item.\n * @template T - The type of the item.\n * @throws {Error} If the request fails.\n */\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: LedgerVersionArg }): Promise<T> {\n try {\n return await this.client.getTableItem(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Waits for a transaction to be confirmed and returns the transaction response.\n *\n * @param {string} txnHash - The hash of the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @throws {Error} If the transaction fails.\n * @private\n */\n private async waitAndGetTransaction(txnHash: string): Promise<CommittedTransactionResponse> {\n const tx = await this.client.waitForTransaction({ transactionHash: txnHash })\n invariant(tx.success, `Transaction failed: ${tx.vm_status}`)\n return tx\n }\n\n /**\n * Normalizes an address to a string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {string} address - The address to normalize.\n * @returns {string} The normalized address.\n */\n normalizeAddress(address: string): string {\n return AccountAddress.from(address).toString()\n }\n\n /**\n * Checks if the SDK supports coins.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @returns {boolean} True if the SDK supports coins, false otherwise.\n */\n supportsCoin(): boolean {\n return true\n }\n}\n","// 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","/**\n * The basis points (BPS) used to apply a safety margin to the gas limit.\n *\n * 1 BPS = 0.01%, so 2000 BPS = 20%.\n */\nexport const GAS_LIMIT_SAFETY_BPS = 2000\n\n/**\n * Applies a safety margin to the gas limit.\n *\n * @param {string} gasUsed - The amount of gas used.\n * @returns {bigint} The gas limit with the safety margin applied.\n */\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n"]}
1
+ {"version":3,"sources":["../src/index.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 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 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 { 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 './generated/addresses'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The provider for the SDK.\n */\n provider: Aptos\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The accounts option (optional).\n * default value is read from generated/addresses.ts\n */\n accounts?: AccountsOption\n}\n\n/**\n * Asserts that the given provider is an instance of AptosProvider.\n *\n * @param {Provider} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of AptosProvider.\n */\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {Provider} provider - The provider of the current chain.\n * @returns {SDK} The initialized SDK instance.\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\n/**\n * Interface representing an option value.\n */\ninterface OptionValue {\n /**\n * The vector of Move values.\n */\n vec: MoveValue[]\n}\n\n/**\n * Checks if the given value is an OptionValue.\n * In contract, the type will be Option<xxx>, In SDK, the type will be OptionValue.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is OptionValue} True if the value is an OptionValue, false otherwise.\n */\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'object' && value != null && 'vec' in value\n}\n\n/**\n * The SDK class provides methods to interact with the Aptos.\n * For usage, please check [README.md](../README.md).\n *\n * @implements {MoveSdkImpl<Ed25519Account>}\n */\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n stage: Stage\n client: Aptos\n LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n accounts: AccountsOption\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.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 /**\n * Gets the Aptos client.\n *\n * @returns {Aptos} The Aptos client.\n */\n getAptosClient(): Aptos {\n return this.client\n }\n\n /**\n * Sends and confirms an authenticated transaction.\n *\n * @param {Object} args - The arguments for the transaction.\n * @param {SimpleTransaction} args.txn - The transaction to send.\n * @param {AccountAuthenticator} args.auth - The authenticator for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n */\n async sendAndConfirmAuthTransaction(args: {\n txn: SimpleTransaction\n auth: AccountAuthenticator\n }): Promise<CommittedTransactionResponse> {\n const res = await this.client.transaction.submit.simple({\n transaction: args.txn,\n senderAuthenticator: args.auth,\n })\n return this.waitAndGetTransaction(res.hash)\n }\n\n /**\n * Sends and confirms a transaction with the given signer and payload.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @param {GasOptions} [gasOptions] - The gas options for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @private\n */\n private async sendAndConfirmTransaction_(\n signer: Ed25519Account,\n payload: 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 /**\n * Handles errors and returns appropriate error instances based on the error type.\n *\n * @param {unknown} e - The error to handle.\n * @returns {unknown} The handled error, which could be an instance of MoveAbortError, MoveResourceNotFoundError, MoveTableItemNotFoundError, UnclassifiedError, or the original error.\n */\n handleError(e: unknown): unknown {\n if (e instanceof AptosApiError) {\n const errorData = e.data as { message: string | undefined; error_code: string | undefined }\n const errorString = errorData.message ?? ''\n const errorCode = errorData.error_code ?? ''\n const majorStatusMatch = errorString.match(/major_status:\\s([A-Z_]+)/)\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1]\n if (major_status === 'ABORTED') {\n const subStatusMatch = errorString.match(/sub_status:\\sSome\\((\\d+)\\)/)\n if (subStatusMatch === null) {\n return new MoveAbortError(Number.NEGATIVE_INFINITY, errorString)\n } else {\n return new MoveAbortError(Number(subStatusMatch[1]), errorString)\n }\n } else if (major_status === 'MISSING_DATA') {\n return new MoveResourceNotFoundError(errorString)\n }\n } else if (errorCode === 'resource_not_found') {\n return new MoveResourceNotFoundError(errorString)\n } else if (errorCode === 'table_item_not_found') {\n return new MoveTableItemNotFoundError(errorString)\n } else {\n return new UnclassifiedError(errorString)\n }\n }\n return e\n }\n\n /**\n * Executes a view function and returns the result.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for the view function.\n * @param {MoveFunction} args.functionName - The name of the function.\n * @param {EntryFunctionArgumentTypes[]} args.functionArgs - The arguments for the function.\n * @param {string[]} [args.typeArgs] - The type arguments for the function.\n * @returns {Promise<MoveValue[]>} The result of the view function.\n */\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const payload: InputViewFunctionData = {\n function: args.functionName,\n functionArguments: args.functionArgs,\n typeArguments: args.typeArgs ?? [],\n }\n try {\n let view = await this.client.view({ payload })\n view = view.map((item) => {\n if (isOptionValue(item)) {\n if (item.vec.length !== 0) {\n return item.vec[0]\n } else {\n return null\n }\n }\n return item\n })\n if (view.length > 1) {\n view = [view]\n }\n return view as MoveValue[]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Normalizes the signer to an Ed25519Account.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer to normalize.\n * @returns {Ed25519Account} The normalized signer.\n * @throws {Error} If the signer is invalid.\n */\n normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account {\n if (signer instanceof Ed25519Account) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n return Ed25519Account.fromDerivationPath(signer)\n } else if (isPrivateKey(signer)) {\n return new Ed25519Account({ privateKey: new Ed25519PrivateKey(signer) })\n }\n throw new Error(`Invalid signer`)\n }\n\n /**\n * Converts an account to an address string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account} account - The account to convert.\n * @returns {string} The address of the account.\n */\n accountToAddress(account: Ed25519Account): string {\n return account.accountAddress.toString()\n }\n\n /**\n * Sends a transaction and waits for confirmation.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.\n * @param {MoveFunction} func - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.\n * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.\n * @param {string[]} [_] - Unused parameter.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @param {string[]} [typeArguments] - The type arguments.\n * @returns {Promise<TransactionResponse>} The transaction response.\n */\n async sendAndConfirmTransaction(\n signer: Ed25519Account | PrivateKey | MnemonicAndPath,\n func: MoveFunction,\n args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[],\n multisig?: string | Uint8Array | AccountAddress,\n _?: string[],\n gasOptions?: GasOptions,\n typeArguments?: string[]\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 /**\n * Asserts that the given gas options are valid.\n *\n * @param {GasOptions} [gasOptions] - The gas options to validate.\n * @throws {Error} If the gas options are invalid.\n */\n assertValidGasOptions(gasOptions?: GasOptions): void {\n if (gasOptions === undefined) {\n return\n }\n if (gasOptions.gasPrice !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasPrice)),\n `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`\n )\n }\n if (gasOptions.gasLimit !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasLimit)),\n `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`\n )\n }\n }\n\n /**\n * Creates a multi-signature payload.\n *\n * @param {AccountAddress} multisig_address - The multi-signature account address.\n * @param {AccountAddress} sender - The sender of the transaction.\n * @param {Object} payload_args - The arguments for the payload.\n * @param {`${string}::${string}::${string}`} payload_args.function - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} payload_args.args - The arguments for the function.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<SimpleTransaction>} The created multi-signature payload.\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 /**\n * Estimates the gas required for a transaction.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @returns {Promise<{ max_gas_amount: string; gas_unit_price: string }>} The estimated gas amount and gas unit price.\n */\n async estimateGas(\n signer: Ed25519Account,\n payload: 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 /**\n * Gets an account resource.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for getting the account resource.\n * @param {AccountAddressInput} args.accountAddress - The account address.\n * @param {MoveStructId} args.resourceType - The type of the resource.\n * @param {LedgerVersionArg} [args.options] - The options for getting the resource.\n * @returns {Promise<T>} The account resource.\n * @template T - The type of the resource.\n * @throws {Error} If the request fails.\n */\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: AccountAddressInput\n resourceType: MoveStructId\n options?: LedgerVersionArg\n }): Promise<T> {\n try {\n return await this.client.getAccountResource(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Gets a table item.\n *\n * @param {Object} args - The arguments for getting the table item.\n * @param {string} args.handle - The table handle.\n * @param {TableItemRequest} args.data - The key of the item.\n * @param {LedgerVersionArg} [args.options] - The options for getting the item.\n * @returns {Promise<T>} The table item.\n * @template T - The type of the item.\n * @throws {Error} If the request fails.\n */\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: LedgerVersionArg }): Promise<T> {\n try {\n return await this.client.getTableItem(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Waits for a transaction to be confirmed and returns the transaction response.\n *\n * @param {string} txnHash - The hash of the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @throws {Error} If the transaction fails.\n * @private\n */\n private async waitAndGetTransaction(txnHash: string): Promise<CommittedTransactionResponse> {\n const tx = await this.client.waitForTransaction({ transactionHash: txnHash })\n invariant(tx.success, `Transaction failed: ${tx.vm_status}`)\n return tx\n }\n\n /**\n * Normalizes an address to a string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {string} address - The address to normalize.\n * @returns {string} The normalized address.\n */\n normalizeAddress(address: string): string {\n return AccountAddress.from(address).toString()\n }\n\n /**\n * Checks if the SDK supports coins.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @returns {boolean} True if the SDK supports coins, false otherwise.\n */\n supportsCoin(): boolean {\n return true\n }\n}\n","// 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","/**\n * The basis points (BPS) used to apply a safety margin to the gas limit.\n *\n * 1 BPS = 0.01%, so 2000 BPS = 20%.\n */\nexport const GAS_LIMIT_SAFETY_BPS = 2000\n\n/**\n * Applies a safety margin to the gas limit.\n *\n * @param {string} gasUsed - The amount of gas used.\n * @returns {bigint} The gas limit with the safety margin applied.\n */\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n"]}
package/dist/index.d.mts CHANGED
@@ -170,14 +170,15 @@ declare class SDK implements MoveSdkImpl<Ed25519Account> {
170
170
  * @implements {MoveSdkImpl<Ed25519Account>}
171
171
  *
172
172
  * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.
173
- * @param {`${string}::${string}::${string}`} func - The function to call.
173
+ * @param {MoveFunction} func - The function to call.
174
174
  * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.
175
175
  * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.
176
176
  * @param {string[]} [_] - Unused parameter.
177
177
  * @param {GasOptions} [gasOptions] - The gas options.
178
+ * @param {string[]} [typeArguments] - The type arguments.
178
179
  * @returns {Promise<TransactionResponse>} The transaction response.
179
180
  */
180
- sendAndConfirmTransaction(signer: Ed25519Account | PrivateKey | MnemonicAndPath, func: `${string}::${string}::${string}`, args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[], multisig?: string | Uint8Array | AccountAddress, _?: string[], gasOptions?: GasOptions): Promise<TransactionResponse>;
181
+ sendAndConfirmTransaction(signer: Ed25519Account | PrivateKey | MnemonicAndPath, func: MoveFunction, args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[], multisig?: string | Uint8Array | AccountAddress, _?: string[], gasOptions?: GasOptions, typeArguments?: string[]): Promise<TransactionResponse>;
181
182
  /**
182
183
  * Asserts that the given gas options are valid.
183
184
  *
package/dist/index.d.ts CHANGED
@@ -170,14 +170,15 @@ declare class SDK implements MoveSdkImpl<Ed25519Account> {
170
170
  * @implements {MoveSdkImpl<Ed25519Account>}
171
171
  *
172
172
  * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.
173
- * @param {`${string}::${string}::${string}`} func - The function to call.
173
+ * @param {MoveFunction} func - The function to call.
174
174
  * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.
175
175
  * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.
176
176
  * @param {string[]} [_] - Unused parameter.
177
177
  * @param {GasOptions} [gasOptions] - The gas options.
178
+ * @param {string[]} [typeArguments] - The type arguments.
178
179
  * @returns {Promise<TransactionResponse>} The transaction response.
179
180
  */
180
- sendAndConfirmTransaction(signer: Ed25519Account | PrivateKey | MnemonicAndPath, func: `${string}::${string}::${string}`, args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[], multisig?: string | Uint8Array | AccountAddress, _?: string[], gasOptions?: GasOptions): Promise<TransactionResponse>;
181
+ sendAndConfirmTransaction(signer: Ed25519Account | PrivateKey | MnemonicAndPath, func: MoveFunction, args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[], multisig?: string | Uint8Array | AccountAddress, _?: string[], gasOptions?: GasOptions, typeArguments?: string[]): Promise<TransactionResponse>;
181
182
  /**
182
183
  * Asserts that the given gas options are valid.
183
184
  *
package/dist/index.mjs CHANGED
@@ -266,14 +266,15 @@ var SDK = class {
266
266
  * @implements {MoveSdkImpl<Ed25519Account>}
267
267
  *
268
268
  * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.
269
- * @param {`${string}::${string}::${string}`} func - The function to call.
269
+ * @param {MoveFunction} func - The function to call.
270
270
  * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.
271
271
  * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.
272
272
  * @param {string[]} [_] - Unused parameter.
273
273
  * @param {GasOptions} [gasOptions] - The gas options.
274
+ * @param {string[]} [typeArguments] - The type arguments.
274
275
  * @returns {Promise<TransactionResponse>} The transaction response.
275
276
  */
276
- async sendAndConfirmTransaction(signer, func, args, multisig, _, gasOptions) {
277
+ async sendAndConfirmTransaction(signer, func, args, multisig, _, gasOptions, typeArguments) {
277
278
  try {
278
279
  signer = this.normalizeSigner(signer);
279
280
  if (multisig === void 0) {
@@ -282,7 +283,7 @@ var SDK = class {
282
283
  {
283
284
  function: func,
284
285
  functionArguments: args,
285
- typeArguments: []
286
+ typeArguments
286
287
  },
287
288
  gasOptions
288
289
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/generated/addresses.ts","../src/utils.ts"],"names":["Stage"],"mappings":";AAAA;AAAA,EACI;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAKA,WAAW;AAAA,EAEX;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AAEP,OAAO,eAAe;AAGtB,SAAS,qBAAqB;AAC9B,SAAS,SAAAA,cAAa;AACtB,SAAyB,2BAAwC;AACjE;AAAA,EAII;AAAA,EAEA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACG;;;ACzCP,SAAQ,aAAY;AACb,IAAM,sBAAqD;AAAA,EAC9D,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,6BAA4D;AAAA,EACrE,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,0BAAyD;AAAA,EAClE,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,qBAAoD;AAAA,EAC7D,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,cAA6C;AAAA,EACtD,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,0BAAyD;AAAA,EAClE,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,mBAAkD;AAAA,EAC3D,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,cAA6C;AAAA,EACtD,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,gBAA+C;AAAA,EACxD,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,aAA4C;AAAA,EACrD,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,mBAAkD;AAAA,EAC3D,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;AAEO,IAAM,qBAAoD;AAAA,EAC7D,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AAAA,EACjB,CAAC,MAAM,OAAO,GAAG;AACrB;;;ACpEO,IAAM,uBAAuB;AAQ7B,SAAS,oBAAoB,SAAyB;AACzD,SAAQ,OAAO,OAAO,IAAI,OAAO,MAAQ,oBAAoB,IAAK,OAAO,GAAK;AAClF;;;AF6EA,SAAS,oBAAoB,UAAuD;AAChF,MAAI,EAAE,oBAAoB,gBAAgB;AACtC,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACtC;AACJ;AAQO,SAAS,mBAAmB,UAAyB;AACxD,QAAM,SAAS,SAAS;AACxB,QAAM,MAAM,OAAO;AACnB,sBAAoB,QAAQ;AAC5B,QAAM,aAAa,SAAS;AAC5B,QAAM,YAAY,SAAS;AAC3B,QAAM,cAAc,IAAI,YAAY,EAAE,SAAS,IAAI,OAAO,UAAU,KAAK,SAAS,YAAY,QAAQ,UAAU,CAAC;AACjH,QAAM,QAAQ,IAAI,MAAM,WAAW;AACnC,SAAO,IAAI,IAAI,EAAE,UAAU,MAAM,CAAC;AACtC;AAmBA,SAAS,cAAc,OAAsC;AACzD,SAAO,OAAO,UAAU,YAAY,SAAS,QAAQ,SAAS;AAClE;AAQO,IAAM,MAAN,MAAiD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWpD,YAAY,SAAqB;AAC7B,SAAK,QAAQ,QAAQ,SAASA,OAAM;AACpC,SAAK,WAAW,QAAQ,YAAY;AAAA,MAChC,aAAa,eAAe,KAAK,oBAAoB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MACpF,YAAY,eAAe,KAAK,mBAAmB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAClF,KAAK,eAAe,KAAK,YAAY,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MACpE,iBAAiB,eAAe,KAAK,wBAAwB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAC5F,oBAAoB,eAAe,KAAK,2BAA2B,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAClG,iBAAiB,eAAe,KAAK,wBAAwB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAC5F,UAAU,eAAe,KAAK,iBAAiB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAC9E,KAAK,eAAe,KAAK,YAAY,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MACpE,eAAe,eAAe,KAAK,cAAc,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAChF,YAAY,eAAe,KAAK,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAC1E,UAAU,eAAe,KAAK,iBAAiB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,MAC9E,oBAAoB,eAAe,KAAK,mBAAmB,KAAK,KAAK,KAAK,KAAK,EAAE,SAAS;AAAA,IAC9F;AACA,SAAK,SAAS,QAAQ;AACtB,SAAK,kBAAkB,IAAI,oBAAoB,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,iBAAwB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,8BAA8B,MAGM;AACtC,UAAM,MAAM,MAAM,KAAK,OAAO,YAAY,OAAO,OAAO;AAAA,MACpD,aAAa,KAAK;AAAA,MAClB,qBAAqB,KAAK;AAAA,IAC9B,CAAC;AACD,WAAO,KAAK,sBAAsB,IAAI,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAc,2BACV,QACA,SACA,YACqC;AACrC,SAAK,sBAAsB,UAAU;AACrC,UAAM,UAAU,MAAM,KAAK,YAAY,QAAQ,OAAO;AACtD,UAAM,aAAa,MAAM,KAAK,OAAO,YAAY,MAAM,OAAO;AAAA,MAC1D,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,QACL,cAAc,OAAO,YAAY,aAAa,SAAY,WAAW,WAAW,QAAQ,cAAc;AAAA,QACtG,cAAc,OAAO,YAAY,aAAa,SAAY,WAAW,WAAW,QAAQ,cAAc;AAAA,MAC1G;AAAA,IACJ,CAAC;AACD,UAAM,OAAO,IAAI,4BAA4B,OAAO,WAAW,OAAO,gBAAgB,UAAU,CAAC;AACjG,WAAO,KAAK,8BAA8B,EAAE,KAAK,YAAY,KAAW,CAAC;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YAAY,GAAqB;AAC7B,QAAI,aAAa,eAAe;AAC5B,YAAM,YAAY,EAAE;AACpB,YAAM,cAAc,UAAU,WAAW;AACzC,YAAM,YAAY,UAAU,cAAc;AAC1C,YAAM,mBAAmB,YAAY,MAAM,0BAA0B;AACrE,UAAI,qBAAqB,MAAM;AAC3B,cAAM,eAAe,iBAAiB,CAAC;AACvC,YAAI,iBAAiB,WAAW;AAC5B,gBAAM,iBAAiB,YAAY,MAAM,4BAA4B;AACrE,cAAI,mBAAmB,MAAM;AACzB,mBAAO,IAAI,eAAe,OAAO,mBAAmB,WAAW;AAAA,UACnE,OAAO;AACH,mBAAO,IAAI,eAAe,OAAO,eAAe,CAAC,CAAC,GAAG,WAAW;AAAA,UACpE;AAAA,QACJ,WAAW,iBAAiB,gBAAgB;AACxC,iBAAO,IAAI,0BAA0B,WAAW;AAAA,QACpD;AAAA,MACJ,WAAW,cAAc,sBAAsB;AAC3C,eAAO,IAAI,0BAA0B,WAAW;AAAA,MACpD,WAAW,cAAc,wBAAwB;AAC7C,eAAO,IAAI,2BAA2B,WAAW;AAAA,MACrD,OAAO;AACH,eAAO,IAAI,kBAAkB,WAAW;AAAA,MAC5C;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,aAAa,MAIM;AACrB,UAAM,UAAiC;AAAA,MACnC,UAAU,KAAK;AAAA,MACf,mBAAmB,KAAK;AAAA,MACxB,eAAe,KAAK,YAAY,CAAC;AAAA,IACrC;AACA,QAAI;AACA,UAAI,OAAO,MAAM,KAAK,OAAO,KAAK,EAAE,QAAQ,CAAC;AAC7C,aAAO,KAAK,IAAI,CAAC,SAAS;AACtB,YAAI,cAAc,IAAI,GAAG;AACrB,cAAI,KAAK,IAAI,WAAW,GAAG;AACvB,mBAAO,KAAK,IAAI,CAAC;AAAA,UACrB,OAAO;AACH,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,eAAO;AAAA,MACX,CAAC;AACD,UAAI,KAAK,SAAS,GAAG;AACjB,eAAO,CAAC,IAAI;AAAA,MAChB;AACA,aAAO;AAAA,IACX,SAAS,GAAG;AACR,YAAM,KAAK,YAAY,CAAC;AAAA,IAC5B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,gBAAgB,QAAuE;AACnF,QAAI,kBAAkB,gBAAgB;AAClC,aAAO;AAAA,IACX,WAAW,kBAAkB,MAAM,GAAG;AAClC,aAAO,eAAe,mBAAmB,MAAM;AAAA,IACnD,WAAW,aAAa,MAAM,GAAG;AAC7B,aAAO,IAAI,eAAe,EAAE,YAAY,IAAI,kBAAkB,MAAM,EAAE,CAAC;AAAA,IAC3E;AACA,UAAM,IAAI,MAAM,gBAAgB;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,iBAAiB,SAAiC;AAC9C,WAAO,QAAQ,eAAe,SAAS;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,0BACF,QACA,MACA,MACA,UACA,GACA,YAC4B;AAC5B,QAAI;AACA,eAAS,KAAK,gBAAgB,MAAM;AACpC,UAAI,aAAa,QAAW;AACxB,cAAM,+BAA+B,MAAM,KAAK;AAAA,UAC5C;AAAA,UACA;AAAA,YACI,UAAU;AAAA,YACV,mBAAmB;AAAA,YACnB,eAAe,CAAC;AAAA,UACpB;AAAA,UACA;AAAA,QACJ;AACA,eAAO;AAAA,UACH,MAAM,6BAA6B;AAAA,UACnC,QAAQ,OAAO,eAAe,SAAS;AAAA,UACvC,KAAK;AAAA,QACT;AAAA,MACJ,OAAO;AACH,YAAI,OAAO,aAAa,YAAY,oBAAoB,YAAY;AAChE,qBAAW,eAAe,KAAK,QAAQ;AAAA,QAC3C;AACA,cAAM,SAAS,MAAM,KAAK,sBAAsB,UAAU,OAAO,gBAAgB;AAAA,UAC7E,UAAU;AAAA,UACV;AAAA,QACJ,CAAC;AACD,cAAM,OAAO,IAAI,4BAA4B,OAAO,WAAW,OAAO,gBAAgB,MAAM,CAAC;AAC7F,cAAM,+BAA+B,MAAM,KAAK,8BAA8B;AAAA,UAC1E,KAAK;AAAA,UACL;AAAA,QACJ,CAAC;AACD,eAAO;AAAA,UACH,MAAM,6BAA6B;AAAA,UACnC,QAAQ,OAAO,eAAe,SAAS;AAAA,UACvC,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AACR,YAAM,KAAK,YAAY,CAAC;AAAA,IAC5B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,sBAAsB,YAA+B;AACjD,QAAI,eAAe,QAAW;AAC1B;AAAA,IACJ;AACA,QAAI,WAAW,aAAa,QAAW;AACnC;AAAA,QACI,OAAO,UAAU,OAAO,WAAW,QAAQ,CAAC;AAAA,QAC5C,sBAAsB,WAAW,QAAQ;AAAA,MAC7C;AAAA,IACJ;AACA,QAAI,WAAW,aAAa,QAAW;AACnC;AAAA,QACI,OAAO,UAAU,OAAO,WAAW,QAAQ,CAAC;AAAA,QAC5C,sBAAsB,WAAW,QAAQ;AAAA,MAC7C;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,sBACF,kBACA,QACA,cAIA,YAC0B;AAC1B,UAAM,UAAU,MAAM,2BAA2B;AAAA,MAC7C,iBAAiB;AAAA,MACjB,UAAU,aAAa;AAAA,MACvB,mBAAmB,aAAa;AAAA,MAChC,aAAa,KAAK,OAAO;AAAA,IAC7B,CAAC;AACD,UAAM,WAAW,MAAM,uBAAuB;AAAA,MAC1C,aAAa,KAAK,OAAO;AAAA,MACzB;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACL,cAAc,YAAY,aAAa,SAAY,SAAY,OAAO,WAAW,QAAQ;AAAA,QACzF,cAAc,YAAY,aAAa,SAAY,SAAY,OAAO,WAAW,QAAQ;AAAA,MAC7F;AAAA,IACJ,CAAC;AACD,WAAO,IAAI,kBAAkB,QAAQ;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,YACF,QACA,SAID;AACC,UAAM,aAAa,MAAM,KAAK,OAAO,YAAY,MAAM,OAAO;AAAA,MAC1D,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,IACV,CAAC;AACD,UAAM,MAAM,MAAM,KAAK,OAAO,YAAY,SAAS,OAAO;AAAA,MACtD,iBAAiB,OAAO;AAAA,MACxB,aAAa;AAAA,MACb,SAAS;AAAA,QACL,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,MAC1B;AAAA,IACJ,CAAC;AACD,UAAM,KAAK,IAAI,CAAC;AAChB,cAAU,GAAG,SAAS,uBAAuB,GAAG,SAAS,GAAG;AAC5D,UAAM,iBAAiB,oBAAoB,GAAG,QAAQ,EAAE,SAAS;AACjE,WAAO;AAAA,MACH;AAAA,MACA,gBAAgB,GAAG;AAAA,IACvB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,mBAAyD,MAIhD;AACX,QAAI;AACA,aAAO,MAAM,KAAK,OAAO,mBAAmB,IAAI;AAAA,IACpD,SAAS,GAAG;AACR,YAAM,KAAK,YAAY,CAAC;AAAA,IAC5B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,aAAgB,MAA0F;AAC5G,QAAI;AACA,aAAO,MAAM,KAAK,OAAO,aAAa,IAAI;AAAA,IAC9C,SAAS,GAAG;AACR,YAAM,KAAK,YAAY,CAAC;AAAA,IAC5B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAc,sBAAsB,SAAwD;AACxF,UAAM,KAAK,MAAM,KAAK,OAAO,mBAAmB,EAAE,iBAAiB,QAAQ,CAAC;AAC5E,cAAU,GAAG,SAAS,uBAAuB,GAAG,SAAS,EAAE;AAC3D,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,iBAAiB,SAAyB;AACtC,WAAO,eAAe,KAAK,OAAO,EAAE,SAAS;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eAAwB;AACpB,WAAO;AAAA,EACX;AACJ","sourcesContent":["import {\n AccountAddress,\n AccountAddressInput,\n AccountAuthenticator,\n AccountAuthenticatorEd25519,\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 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 { 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 './generated/addresses'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The provider for the SDK.\n */\n provider: Aptos\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The accounts option (optional).\n * default value is read from generated/addresses.ts\n */\n accounts?: AccountsOption\n}\n\n/**\n * Asserts that the given provider is an instance of AptosProvider.\n *\n * @param {Provider} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of AptosProvider.\n */\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {Provider} provider - The provider of the current chain.\n * @returns {SDK} The initialized SDK instance.\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\n/**\n * Interface representing an option value.\n */\ninterface OptionValue {\n /**\n * The vector of Move values.\n */\n vec: MoveValue[]\n}\n\n/**\n * Checks if the given value is an OptionValue.\n * In contract, the type will be Option<xxx>, In SDK, the type will be OptionValue.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is OptionValue} True if the value is an OptionValue, false otherwise.\n */\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'object' && value != null && 'vec' in value\n}\n\n/**\n * The SDK class provides methods to interact with the Aptos.\n * For usage, please check [README.md](../README.md).\n *\n * @implements {MoveSdkImpl<Ed25519Account>}\n */\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n stage: Stage\n client: Aptos\n LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n accounts: AccountsOption\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.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 /**\n * Gets the Aptos client.\n *\n * @returns {Aptos} The Aptos client.\n */\n getAptosClient(): Aptos {\n return this.client\n }\n\n /**\n * Sends and confirms an authenticated transaction.\n *\n * @param {Object} args - The arguments for the transaction.\n * @param {SimpleTransaction} args.txn - The transaction to send.\n * @param {AccountAuthenticator} args.auth - The authenticator for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n */\n async sendAndConfirmAuthTransaction(args: {\n txn: SimpleTransaction\n auth: AccountAuthenticator\n }): Promise<CommittedTransactionResponse> {\n const res = await this.client.transaction.submit.simple({\n transaction: args.txn,\n senderAuthenticator: args.auth,\n })\n return this.waitAndGetTransaction(res.hash)\n }\n\n /**\n * Sends and confirms a transaction with the given signer and payload.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @param {GasOptions} [gasOptions] - The gas options for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @private\n */\n private async sendAndConfirmTransaction_(\n signer: Ed25519Account,\n payload: 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 /**\n * Handles errors and returns appropriate error instances based on the error type.\n *\n * @param {unknown} e - The error to handle.\n * @returns {unknown} The handled error, which could be an instance of MoveAbortError, MoveResourceNotFoundError, MoveTableItemNotFoundError, UnclassifiedError, or the original error.\n */\n handleError(e: unknown): unknown {\n if (e instanceof AptosApiError) {\n const errorData = e.data as { message: string | undefined; error_code: string | undefined }\n const errorString = errorData.message ?? ''\n const errorCode = errorData.error_code ?? ''\n const majorStatusMatch = errorString.match(/major_status:\\s([A-Z_]+)/)\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1]\n if (major_status === 'ABORTED') {\n const subStatusMatch = errorString.match(/sub_status:\\sSome\\((\\d+)\\)/)\n if (subStatusMatch === null) {\n return new MoveAbortError(Number.NEGATIVE_INFINITY, errorString)\n } else {\n return new MoveAbortError(Number(subStatusMatch[1]), errorString)\n }\n } else if (major_status === 'MISSING_DATA') {\n return new MoveResourceNotFoundError(errorString)\n }\n } else if (errorCode === 'resource_not_found') {\n return new MoveResourceNotFoundError(errorString)\n } else if (errorCode === 'table_item_not_found') {\n return new MoveTableItemNotFoundError(errorString)\n } else {\n return new UnclassifiedError(errorString)\n }\n }\n return e\n }\n\n /**\n * Executes a view function and returns the result.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for the view function.\n * @param {MoveFunction} args.functionName - The name of the function.\n * @param {EntryFunctionArgumentTypes[]} args.functionArgs - The arguments for the function.\n * @param {string[]} [args.typeArgs] - The type arguments for the function.\n * @returns {Promise<MoveValue[]>} The result of the view function.\n */\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const payload: InputViewFunctionData = {\n function: args.functionName,\n functionArguments: args.functionArgs,\n typeArguments: args.typeArgs ?? [],\n }\n try {\n let view = await this.client.view({ payload })\n view = view.map((item) => {\n if (isOptionValue(item)) {\n if (item.vec.length !== 0) {\n return item.vec[0]\n } else {\n return null\n }\n }\n return item\n })\n if (view.length > 1) {\n view = [view]\n }\n return view as MoveValue[]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Normalizes the signer to an Ed25519Account.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer to normalize.\n * @returns {Ed25519Account} The normalized signer.\n * @throws {Error} If the signer is invalid.\n */\n normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account {\n if (signer instanceof Ed25519Account) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n return Ed25519Account.fromDerivationPath(signer)\n } else if (isPrivateKey(signer)) {\n return new Ed25519Account({ privateKey: new Ed25519PrivateKey(signer) })\n }\n throw new Error(`Invalid signer`)\n }\n\n /**\n * Converts an account to an address string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account} account - The account to convert.\n * @returns {string} The address of the account.\n */\n accountToAddress(account: Ed25519Account): string {\n return account.accountAddress.toString()\n }\n\n /**\n * Sends a transaction and waits for confirmation.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.\n * @param {`${string}::${string}::${string}`} func - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.\n * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.\n * @param {string[]} [_] - Unused parameter.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<TransactionResponse>} The transaction response.\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 /**\n * Asserts that the given gas options are valid.\n *\n * @param {GasOptions} [gasOptions] - The gas options to validate.\n * @throws {Error} If the gas options are invalid.\n */\n assertValidGasOptions(gasOptions?: GasOptions): void {\n if (gasOptions === undefined) {\n return\n }\n if (gasOptions.gasPrice !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasPrice)),\n `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`\n )\n }\n if (gasOptions.gasLimit !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasLimit)),\n `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`\n )\n }\n }\n\n /**\n * Creates a multi-signature payload.\n *\n * @param {AccountAddress} multisig_address - The multi-signature account address.\n * @param {AccountAddress} sender - The sender of the transaction.\n * @param {Object} payload_args - The arguments for the payload.\n * @param {`${string}::${string}::${string}`} payload_args.function - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} payload_args.args - The arguments for the function.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<SimpleTransaction>} The created multi-signature payload.\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 /**\n * Estimates the gas required for a transaction.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @returns {Promise<{ max_gas_amount: string; gas_unit_price: string }>} The estimated gas amount and gas unit price.\n */\n async estimateGas(\n signer: Ed25519Account,\n payload: 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 /**\n * Gets an account resource.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for getting the account resource.\n * @param {AccountAddressInput} args.accountAddress - The account address.\n * @param {MoveStructId} args.resourceType - The type of the resource.\n * @param {LedgerVersionArg} [args.options] - The options for getting the resource.\n * @returns {Promise<T>} The account resource.\n * @template T - The type of the resource.\n * @throws {Error} If the request fails.\n */\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: AccountAddressInput\n resourceType: MoveStructId\n options?: LedgerVersionArg\n }): Promise<T> {\n try {\n return await this.client.getAccountResource(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Gets a table item.\n *\n * @param {Object} args - The arguments for getting the table item.\n * @param {string} args.handle - The table handle.\n * @param {TableItemRequest} args.data - The key of the item.\n * @param {LedgerVersionArg} [args.options] - The options for getting the item.\n * @returns {Promise<T>} The table item.\n * @template T - The type of the item.\n * @throws {Error} If the request fails.\n */\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: LedgerVersionArg }): Promise<T> {\n try {\n return await this.client.getTableItem(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Waits for a transaction to be confirmed and returns the transaction response.\n *\n * @param {string} txnHash - The hash of the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @throws {Error} If the transaction fails.\n * @private\n */\n private async waitAndGetTransaction(txnHash: string): Promise<CommittedTransactionResponse> {\n const tx = await this.client.waitForTransaction({ transactionHash: txnHash })\n invariant(tx.success, `Transaction failed: ${tx.vm_status}`)\n return tx\n }\n\n /**\n * Normalizes an address to a string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {string} address - The address to normalize.\n * @returns {string} The normalized address.\n */\n normalizeAddress(address: string): string {\n return AccountAddress.from(address).toString()\n }\n\n /**\n * Checks if the SDK supports coins.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @returns {boolean} True if the SDK supports coins, false otherwise.\n */\n supportsCoin(): boolean {\n return true\n }\n}\n","// 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","/**\n * The basis points (BPS) used to apply a safety margin to the gas limit.\n *\n * 1 BPS = 0.01%, so 2000 BPS = 20%.\n */\nexport const GAS_LIMIT_SAFETY_BPS = 2000\n\n/**\n * Applies a safety margin to the gas limit.\n *\n * @param {string} gasUsed - The amount of gas used.\n * @returns {bigint} The gas limit with the safety margin applied.\n */\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n"]}
1
+ {"version":3,"sources":["../src/index.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 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 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 { 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 './generated/addresses'\nimport { applyGasLimitSafety } from './utils'\n\nexport * from './utils'\nexport * from './generated/addresses'\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The provider for the SDK.\n */\n provider: Aptos\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The accounts option (optional).\n * default value is read from generated/addresses.ts\n */\n accounts?: AccountsOption\n}\n\n/**\n * Asserts that the given provider is an instance of AptosProvider.\n *\n * @param {Provider} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of AptosProvider.\n */\nfunction assertAptosProvider(provider: Provider): asserts provider is AptosProvider {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {Provider} provider - The provider of the current chain.\n * @returns {SDK} The initialized SDK instance.\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\n/**\n * Interface representing an option value.\n */\ninterface OptionValue {\n /**\n * The vector of Move values.\n */\n vec: MoveValue[]\n}\n\n/**\n * Checks if the given value is an OptionValue.\n * In contract, the type will be Option<xxx>, In SDK, the type will be OptionValue.\n *\n * @param {unknown} value - The value to check.\n * @returns {value is OptionValue} True if the value is an OptionValue, false otherwise.\n */\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'object' && value != null && 'vec' in value\n}\n\n/**\n * The SDK class provides methods to interact with the Aptos.\n * For usage, please check [README.md](../README.md).\n *\n * @implements {MoveSdkImpl<Ed25519Account>}\n */\nexport class SDK implements MoveSdkImpl<Ed25519Account> {\n stage: Stage\n client: Aptos\n LayerzeroModule: LayerZeroModulesSdk<Ed25519Account>\n accounts: AccountsOption\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.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 /**\n * Gets the Aptos client.\n *\n * @returns {Aptos} The Aptos client.\n */\n getAptosClient(): Aptos {\n return this.client\n }\n\n /**\n * Sends and confirms an authenticated transaction.\n *\n * @param {Object} args - The arguments for the transaction.\n * @param {SimpleTransaction} args.txn - The transaction to send.\n * @param {AccountAuthenticator} args.auth - The authenticator for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n */\n async sendAndConfirmAuthTransaction(args: {\n txn: SimpleTransaction\n auth: AccountAuthenticator\n }): Promise<CommittedTransactionResponse> {\n const res = await this.client.transaction.submit.simple({\n transaction: args.txn,\n senderAuthenticator: args.auth,\n })\n return this.waitAndGetTransaction(res.hash)\n }\n\n /**\n * Sends and confirms a transaction with the given signer and payload.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @param {GasOptions} [gasOptions] - The gas options for the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @private\n */\n private async sendAndConfirmTransaction_(\n signer: Ed25519Account,\n payload: 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 /**\n * Handles errors and returns appropriate error instances based on the error type.\n *\n * @param {unknown} e - The error to handle.\n * @returns {unknown} The handled error, which could be an instance of MoveAbortError, MoveResourceNotFoundError, MoveTableItemNotFoundError, UnclassifiedError, or the original error.\n */\n handleError(e: unknown): unknown {\n if (e instanceof AptosApiError) {\n const errorData = e.data as { message: string | undefined; error_code: string | undefined }\n const errorString = errorData.message ?? ''\n const errorCode = errorData.error_code ?? ''\n const majorStatusMatch = errorString.match(/major_status:\\s([A-Z_]+)/)\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1]\n if (major_status === 'ABORTED') {\n const subStatusMatch = errorString.match(/sub_status:\\sSome\\((\\d+)\\)/)\n if (subStatusMatch === null) {\n return new MoveAbortError(Number.NEGATIVE_INFINITY, errorString)\n } else {\n return new MoveAbortError(Number(subStatusMatch[1]), errorString)\n }\n } else if (major_status === 'MISSING_DATA') {\n return new MoveResourceNotFoundError(errorString)\n }\n } else if (errorCode === 'resource_not_found') {\n return new MoveResourceNotFoundError(errorString)\n } else if (errorCode === 'table_item_not_found') {\n return new MoveTableItemNotFoundError(errorString)\n } else {\n return new UnclassifiedError(errorString)\n }\n }\n return e\n }\n\n /**\n * Executes a view function and returns the result.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for the view function.\n * @param {MoveFunction} args.functionName - The name of the function.\n * @param {EntryFunctionArgumentTypes[]} args.functionArgs - The arguments for the function.\n * @param {string[]} [args.typeArgs] - The type arguments for the function.\n * @returns {Promise<MoveValue[]>} The result of the view function.\n */\n async viewFunction(args: {\n functionName: MoveFunction\n functionArgs: EntryFunctionArgumentTypes[]\n typeArgs?: string[]\n }): Promise<MoveValue[]> {\n const payload: InputViewFunctionData = {\n function: args.functionName,\n functionArguments: args.functionArgs,\n typeArguments: args.typeArgs ?? [],\n }\n try {\n let view = await this.client.view({ payload })\n view = view.map((item) => {\n if (isOptionValue(item)) {\n if (item.vec.length !== 0) {\n return item.vec[0]\n } else {\n return null\n }\n }\n return item\n })\n if (view.length > 1) {\n view = [view]\n }\n return view as MoveValue[]\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Normalizes the signer to an Ed25519Account.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer to normalize.\n * @returns {Ed25519Account} The normalized signer.\n * @throws {Error} If the signer is invalid.\n */\n normalizeSigner(signer: Ed25519Account | PrivateKey | MnemonicAndPath): Ed25519Account {\n if (signer instanceof Ed25519Account) {\n return signer\n } else if (isMnemonicAndPath(signer)) {\n return Ed25519Account.fromDerivationPath(signer)\n } else if (isPrivateKey(signer)) {\n return new Ed25519Account({ privateKey: new Ed25519PrivateKey(signer) })\n }\n throw new Error(`Invalid signer`)\n }\n\n /**\n * Converts an account to an address string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account} account - The account to convert.\n * @returns {string} The address of the account.\n */\n accountToAddress(account: Ed25519Account): string {\n return account.accountAddress.toString()\n }\n\n /**\n * Sends a transaction and waits for confirmation.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Ed25519Account | PrivateKey | MnemonicAndPath} signer - The signer of the transaction.\n * @param {MoveFunction} func - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} args - The arguments for the function.\n * @param {string | Uint8Array | AccountAddress} [multisig] - The multisig address or data.\n * @param {string[]} [_] - Unused parameter.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @param {string[]} [typeArguments] - The type arguments.\n * @returns {Promise<TransactionResponse>} The transaction response.\n */\n async sendAndConfirmTransaction(\n signer: Ed25519Account | PrivateKey | MnemonicAndPath,\n func: MoveFunction,\n args: EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[],\n multisig?: string | Uint8Array | AccountAddress,\n _?: string[],\n gasOptions?: GasOptions,\n typeArguments?: string[]\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 /**\n * Asserts that the given gas options are valid.\n *\n * @param {GasOptions} [gasOptions] - The gas options to validate.\n * @throws {Error} If the gas options are invalid.\n */\n assertValidGasOptions(gasOptions?: GasOptions): void {\n if (gasOptions === undefined) {\n return\n }\n if (gasOptions.gasPrice !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasPrice)),\n `Invalid gas price: ${gasOptions.gasPrice}, must be an integer`\n )\n }\n if (gasOptions.gasLimit !== undefined) {\n invariant(\n Number.isInteger(Number(gasOptions.gasLimit)),\n `Invalid gas limit: ${gasOptions.gasLimit}, must be an integer`\n )\n }\n }\n\n /**\n * Creates a multi-signature payload.\n *\n * @param {AccountAddress} multisig_address - The multi-signature account address.\n * @param {AccountAddress} sender - The sender of the transaction.\n * @param {Object} payload_args - The arguments for the payload.\n * @param {`${string}::${string}::${string}`} payload_args.function - The function to call.\n * @param {EntryFunctionArgumentTypes[] | SimpleEntryFunctionArgumentTypes[]} payload_args.args - The arguments for the function.\n * @param {GasOptions} [gasOptions] - The gas options.\n * @returns {Promise<SimpleTransaction>} The created multi-signature payload.\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 /**\n * Estimates the gas required for a transaction.\n *\n * @param {Ed25519Account} signer - The signer of the transaction.\n * @param {InputEntryFunctionData} payload - The payload of the transaction.\n * @returns {Promise<{ max_gas_amount: string; gas_unit_price: string }>} The estimated gas amount and gas unit price.\n */\n async estimateGas(\n signer: Ed25519Account,\n payload: 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 /**\n * Gets an account resource.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {Object} args - The arguments for getting the account resource.\n * @param {AccountAddressInput} args.accountAddress - The account address.\n * @param {MoveStructId} args.resourceType - The type of the resource.\n * @param {LedgerVersionArg} [args.options] - The options for getting the resource.\n * @returns {Promise<T>} The account resource.\n * @template T - The type of the resource.\n * @throws {Error} If the request fails.\n */\n async getAccountResource<T extends NonNullable<unknown> = any>(args: {\n accountAddress: AccountAddressInput\n resourceType: MoveStructId\n options?: LedgerVersionArg\n }): Promise<T> {\n try {\n return await this.client.getAccountResource(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Gets a table item.\n *\n * @param {Object} args - The arguments for getting the table item.\n * @param {string} args.handle - The table handle.\n * @param {TableItemRequest} args.data - The key of the item.\n * @param {LedgerVersionArg} [args.options] - The options for getting the item.\n * @returns {Promise<T>} The table item.\n * @template T - The type of the item.\n * @throws {Error} If the request fails.\n */\n async getTableItem<T>(args: { handle: string; data: TableItemRequest; options?: LedgerVersionArg }): Promise<T> {\n try {\n return await this.client.getTableItem(args)\n } catch (e) {\n throw this.handleError(e)\n }\n }\n\n /**\n * Waits for a transaction to be confirmed and returns the transaction response.\n *\n * @param {string} txnHash - The hash of the transaction.\n * @returns {Promise<CommittedTransactionResponse>} The response of the committed transaction.\n * @throws {Error} If the transaction fails.\n * @private\n */\n private async waitAndGetTransaction(txnHash: string): Promise<CommittedTransactionResponse> {\n const tx = await this.client.waitForTransaction({ transactionHash: txnHash })\n invariant(tx.success, `Transaction failed: ${tx.vm_status}`)\n return tx\n }\n\n /**\n * Normalizes an address to a string.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @param {string} address - The address to normalize.\n * @returns {string} The normalized address.\n */\n normalizeAddress(address: string): string {\n return AccountAddress.from(address).toString()\n }\n\n /**\n * Checks if the SDK supports coins.\n * @implements {MoveSdkImpl<Ed25519Account>}\n *\n * @returns {boolean} True if the SDK supports coins, false otherwise.\n */\n supportsCoin(): boolean {\n return true\n }\n}\n","// 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","/**\n * The basis points (BPS) used to apply a safety margin to the gas limit.\n *\n * 1 BPS = 0.01%, so 2000 BPS = 20%.\n */\nexport const GAS_LIMIT_SAFETY_BPS = 2000\n\n/**\n * Applies a safety margin to the gas limit.\n *\n * @param {string} gasUsed - The amount of gas used.\n * @returns {bigint} The gas limit with the safety margin applied.\n */\nexport function applyGasLimitSafety(gasUsed: string): bigint {\n return (BigInt(gasUsed) * BigInt(10000 + GAS_LIMIT_SAFETY_BPS)) / BigInt(10000)\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/lz-aptos-sdk-v2",
3
- "version": "3.0.2-initia.2",
3
+ "version": "3.0.2-initia.3",
4
4
  "license": "BUSL-1.1",
5
5
  "exports": {
6
6
  ".": {
@@ -27,22 +27,22 @@
27
27
  "dependencies": {
28
28
  "@aptos-labs/ts-sdk": "^1.26.0",
29
29
  "@ethersproject/bytes": "^5.7.0",
30
- "@layerzerolabs/lz-core": "^3.0.2-initia.2",
31
- "@layerzerolabs/lz-corekit-aptos": "^3.0.2-initia.2",
32
- "@layerzerolabs/lz-definitions": "^3.0.2-initia.2",
33
- "@layerzerolabs/lz-movevm-sdk-v2": "^3.0.2-initia.2",
34
- "@layerzerolabs/lz-serdes": "^3.0.2-initia.2",
35
- "@layerzerolabs/lz-utilities": "^3.0.2-initia.2",
36
- "@layerzerolabs/lz-v2-utilities": "^3.0.2-initia.2",
37
- "@layerzerolabs/move-definitions": "^3.0.2-initia.2",
30
+ "@layerzerolabs/lz-core": "^3.0.2-initia.3",
31
+ "@layerzerolabs/lz-corekit-aptos": "^3.0.2-initia.3",
32
+ "@layerzerolabs/lz-definitions": "^3.0.2-initia.3",
33
+ "@layerzerolabs/lz-movevm-sdk-v2": "^3.0.2-initia.3",
34
+ "@layerzerolabs/lz-serdes": "^3.0.2-initia.3",
35
+ "@layerzerolabs/lz-utilities": "^3.0.2-initia.3",
36
+ "@layerzerolabs/lz-v2-utilities": "^3.0.2-initia.3",
37
+ "@layerzerolabs/move-definitions": "^3.0.2-initia.3",
38
38
  "aptos": "^1.20.0",
39
39
  "tiny-invariant": "^1.3.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@jest/globals": "^29.7.0",
43
43
  "@layerzerolabs/runtime-config": "^0.0.0",
44
- "@layerzerolabs/tsup-config-next": "^3.0.2-initia.2",
45
- "@layerzerolabs/typescript-config-next": "^3.0.2-initia.2",
44
+ "@layerzerolabs/tsup-config-next": "^3.0.2-initia.3",
45
+ "@layerzerolabs/typescript-config-next": "^3.0.2-initia.3",
46
46
  "@types/node": "^20.10.5",
47
47
  "jest": "^29.7.0",
48
48
  "rimraf": "^5.0.5",