@wormhole-foundation/sdk-evm-ntt 6.2.0 → 7.0.0-beta.0

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 (202) hide show
  1. package/dist/esm/ntt.d.ts +0 -5
  2. package/dist/esm/ntt.d.ts.map +1 -1
  3. package/dist/esm/ntt.js +3 -43
  4. package/dist/esm/ntt.js.map +1 -1
  5. package/package.json +14 -21
  6. package/dist/cjs/bindings.d.ts +0 -58
  7. package/dist/cjs/bindings.d.ts.map +0 -1
  8. package/dist/cjs/bindings.js +0 -25
  9. package/dist/cjs/bindings.js.map +0 -1
  10. package/dist/cjs/ethers-contracts/0_1_0/NttManager.d.ts +0 -871
  11. package/dist/cjs/ethers-contracts/0_1_0/NttManager.d.ts.map +0 -1
  12. package/dist/cjs/ethers-contracts/0_1_0/NttManager.js +0 -3
  13. package/dist/cjs/ethers-contracts/0_1_0/NttManager.js.map +0 -1
  14. package/dist/cjs/ethers-contracts/0_1_0/WormholeTransceiver.d.ts +0 -619
  15. package/dist/cjs/ethers-contracts/0_1_0/WormholeTransceiver.d.ts.map +0 -1
  16. package/dist/cjs/ethers-contracts/0_1_0/WormholeTransceiver.js +0 -3
  17. package/dist/cjs/ethers-contracts/0_1_0/WormholeTransceiver.js.map +0 -1
  18. package/dist/cjs/ethers-contracts/0_1_0/common.d.ts +0 -51
  19. package/dist/cjs/ethers-contracts/0_1_0/common.d.ts.map +0 -1
  20. package/dist/cjs/ethers-contracts/0_1_0/common.js +0 -3
  21. package/dist/cjs/ethers-contracts/0_1_0/common.js.map +0 -1
  22. package/dist/cjs/ethers-contracts/0_1_0/factories/NttManager__factory.d.ts +0 -1414
  23. package/dist/cjs/ethers-contracts/0_1_0/factories/NttManager__factory.d.ts.map +0 -1
  24. package/dist/cjs/ethers-contracts/0_1_0/factories/NttManager__factory.js +0 -1858
  25. package/dist/cjs/ethers-contracts/0_1_0/factories/NttManager__factory.js.map +0 -1
  26. package/dist/cjs/ethers-contracts/0_1_0/factories/WormholeTransceiver__factory.d.ts +0 -981
  27. package/dist/cjs/ethers-contracts/0_1_0/factories/WormholeTransceiver__factory.d.ts.map +0 -1
  28. package/dist/cjs/ethers-contracts/0_1_0/factories/WormholeTransceiver__factory.js +0 -1296
  29. package/dist/cjs/ethers-contracts/0_1_0/factories/WormholeTransceiver__factory.js.map +0 -1
  30. package/dist/cjs/ethers-contracts/0_1_0/factories/index.d.ts +0 -3
  31. package/dist/cjs/ethers-contracts/0_1_0/factories/index.d.ts.map +0 -1
  32. package/dist/cjs/ethers-contracts/0_1_0/factories/index.js +0 -11
  33. package/dist/cjs/ethers-contracts/0_1_0/factories/index.js.map +0 -1
  34. package/dist/cjs/ethers-contracts/0_1_0/index.d.ts +0 -6
  35. package/dist/cjs/ethers-contracts/0_1_0/index.d.ts.map +0 -1
  36. package/dist/cjs/ethers-contracts/0_1_0/index.js +0 -42
  37. package/dist/cjs/ethers-contracts/0_1_0/index.js.map +0 -1
  38. package/dist/cjs/ethers-contracts/1_0_0/NttManager.d.ts +0 -897
  39. package/dist/cjs/ethers-contracts/1_0_0/NttManager.d.ts.map +0 -1
  40. package/dist/cjs/ethers-contracts/1_0_0/NttManager.js +0 -3
  41. package/dist/cjs/ethers-contracts/1_0_0/NttManager.js.map +0 -1
  42. package/dist/cjs/ethers-contracts/1_0_0/WormholeTransceiver.d.ts +0 -619
  43. package/dist/cjs/ethers-contracts/1_0_0/WormholeTransceiver.d.ts.map +0 -1
  44. package/dist/cjs/ethers-contracts/1_0_0/WormholeTransceiver.js +0 -3
  45. package/dist/cjs/ethers-contracts/1_0_0/WormholeTransceiver.js.map +0 -1
  46. package/dist/cjs/ethers-contracts/1_0_0/common.d.ts +0 -51
  47. package/dist/cjs/ethers-contracts/1_0_0/common.d.ts.map +0 -1
  48. package/dist/cjs/ethers-contracts/1_0_0/common.js +0 -3
  49. package/dist/cjs/ethers-contracts/1_0_0/common.js.map +0 -1
  50. package/dist/cjs/ethers-contracts/1_0_0/factories/NttManager__factory.d.ts +0 -1449
  51. package/dist/cjs/ethers-contracts/1_0_0/factories/NttManager__factory.d.ts.map +0 -1
  52. package/dist/cjs/ethers-contracts/1_0_0/factories/NttManager__factory.js +0 -1903
  53. package/dist/cjs/ethers-contracts/1_0_0/factories/NttManager__factory.js.map +0 -1
  54. package/dist/cjs/ethers-contracts/1_0_0/factories/WormholeTransceiver__factory.d.ts +0 -981
  55. package/dist/cjs/ethers-contracts/1_0_0/factories/WormholeTransceiver__factory.d.ts.map +0 -1
  56. package/dist/cjs/ethers-contracts/1_0_0/factories/WormholeTransceiver__factory.js +0 -1296
  57. package/dist/cjs/ethers-contracts/1_0_0/factories/WormholeTransceiver__factory.js.map +0 -1
  58. package/dist/cjs/ethers-contracts/1_0_0/factories/index.d.ts +0 -3
  59. package/dist/cjs/ethers-contracts/1_0_0/factories/index.d.ts.map +0 -1
  60. package/dist/cjs/ethers-contracts/1_0_0/factories/index.js +0 -11
  61. package/dist/cjs/ethers-contracts/1_0_0/factories/index.js.map +0 -1
  62. package/dist/cjs/ethers-contracts/1_0_0/index.d.ts +0 -6
  63. package/dist/cjs/ethers-contracts/1_0_0/index.d.ts.map +0 -1
  64. package/dist/cjs/ethers-contracts/1_0_0/index.js +0 -42
  65. package/dist/cjs/ethers-contracts/1_0_0/index.js.map +0 -1
  66. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.d.ts +0 -855
  67. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.d.ts.map +0 -1
  68. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.js +0 -3
  69. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.js.map +0 -1
  70. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.d.ts +0 -829
  71. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.d.ts.map +0 -1
  72. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.js +0 -3
  73. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.js.map +0 -1
  74. package/dist/cjs/ethers-contracts/1_1_0/NttManager.d.ts +0 -897
  75. package/dist/cjs/ethers-contracts/1_1_0/NttManager.d.ts.map +0 -1
  76. package/dist/cjs/ethers-contracts/1_1_0/NttManager.js +0 -3
  77. package/dist/cjs/ethers-contracts/1_1_0/NttManager.js.map +0 -1
  78. package/dist/cjs/ethers-contracts/1_1_0/WormholeTransceiver.d.ts +0 -623
  79. package/dist/cjs/ethers-contracts/1_1_0/WormholeTransceiver.d.ts.map +0 -1
  80. package/dist/cjs/ethers-contracts/1_1_0/WormholeTransceiver.js +0 -3
  81. package/dist/cjs/ethers-contracts/1_1_0/WormholeTransceiver.js.map +0 -1
  82. package/dist/cjs/ethers-contracts/1_1_0/common.d.ts +0 -51
  83. package/dist/cjs/ethers-contracts/1_1_0/common.d.ts.map +0 -1
  84. package/dist/cjs/ethers-contracts/1_1_0/common.js +0 -3
  85. package/dist/cjs/ethers-contracts/1_1_0/common.js.map +0 -1
  86. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.d.ts +0 -1301
  87. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.d.ts.map +0 -1
  88. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.js +0 -1704
  89. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.js.map +0 -1
  90. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts +0 -1374
  91. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts.map +0 -1
  92. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js +0 -1808
  93. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js.map +0 -1
  94. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts +0 -1449
  95. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts.map +0 -1
  96. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.js +0 -1903
  97. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.js.map +0 -1
  98. package/dist/cjs/ethers-contracts/1_1_0/factories/WormholeTransceiver__factory.d.ts +0 -991
  99. package/dist/cjs/ethers-contracts/1_1_0/factories/WormholeTransceiver__factory.d.ts.map +0 -1
  100. package/dist/cjs/ethers-contracts/1_1_0/factories/WormholeTransceiver__factory.js +0 -1309
  101. package/dist/cjs/ethers-contracts/1_1_0/factories/WormholeTransceiver__factory.js.map +0 -1
  102. package/dist/cjs/ethers-contracts/1_1_0/factories/index.d.ts +0 -3
  103. package/dist/cjs/ethers-contracts/1_1_0/factories/index.d.ts.map +0 -1
  104. package/dist/cjs/ethers-contracts/1_1_0/factories/index.js +0 -11
  105. package/dist/cjs/ethers-contracts/1_1_0/factories/index.js.map +0 -1
  106. package/dist/cjs/ethers-contracts/1_1_0/index.d.ts +0 -10
  107. package/dist/cjs/ethers-contracts/1_1_0/index.d.ts.map +0 -1
  108. package/dist/cjs/ethers-contracts/1_1_0/index.js +0 -46
  109. package/dist/cjs/ethers-contracts/1_1_0/index.js.map +0 -1
  110. package/dist/cjs/ethers-contracts/1_3_1/NttManager.d.ts +0 -948
  111. package/dist/cjs/ethers-contracts/1_3_1/NttManager.d.ts.map +0 -1
  112. package/dist/cjs/ethers-contracts/1_3_1/NttManager.js +0 -3
  113. package/dist/cjs/ethers-contracts/1_3_1/NttManager.js.map +0 -1
  114. package/dist/cjs/ethers-contracts/1_3_1/WormholeTransceiver.d.ts +0 -468
  115. package/dist/cjs/ethers-contracts/1_3_1/WormholeTransceiver.d.ts.map +0 -1
  116. package/dist/cjs/ethers-contracts/1_3_1/WormholeTransceiver.js +0 -3
  117. package/dist/cjs/ethers-contracts/1_3_1/WormholeTransceiver.js.map +0 -1
  118. package/dist/cjs/ethers-contracts/1_3_1/common.d.ts +0 -51
  119. package/dist/cjs/ethers-contracts/1_3_1/common.d.ts.map +0 -1
  120. package/dist/cjs/ethers-contracts/1_3_1/common.js +0 -3
  121. package/dist/cjs/ethers-contracts/1_3_1/common.js.map +0 -1
  122. package/dist/cjs/ethers-contracts/1_3_1/factories/NttManager__factory.d.ts +0 -1498
  123. package/dist/cjs/ethers-contracts/1_3_1/factories/NttManager__factory.d.ts.map +0 -1
  124. package/dist/cjs/ethers-contracts/1_3_1/factories/NttManager__factory.js +0 -1965
  125. package/dist/cjs/ethers-contracts/1_3_1/factories/NttManager__factory.js.map +0 -1
  126. package/dist/cjs/ethers-contracts/1_3_1/factories/WormholeTransceiver__factory.d.ts +0 -792
  127. package/dist/cjs/ethers-contracts/1_3_1/factories/WormholeTransceiver__factory.d.ts.map +0 -1
  128. package/dist/cjs/ethers-contracts/1_3_1/factories/WormholeTransceiver__factory.js +0 -1050
  129. package/dist/cjs/ethers-contracts/1_3_1/factories/WormholeTransceiver__factory.js.map +0 -1
  130. package/dist/cjs/ethers-contracts/1_3_1/factories/index.d.ts +0 -3
  131. package/dist/cjs/ethers-contracts/1_3_1/factories/index.d.ts.map +0 -1
  132. package/dist/cjs/ethers-contracts/1_3_1/factories/index.js +0 -11
  133. package/dist/cjs/ethers-contracts/1_3_1/factories/index.js.map +0 -1
  134. package/dist/cjs/ethers-contracts/1_3_1/index.d.ts +0 -6
  135. package/dist/cjs/ethers-contracts/1_3_1/index.d.ts.map +0 -1
  136. package/dist/cjs/ethers-contracts/1_3_1/index.js +0 -42
  137. package/dist/cjs/ethers-contracts/1_3_1/index.js.map +0 -1
  138. package/dist/cjs/ethers-contracts/2_0_0/NttManager.d.ts +0 -948
  139. package/dist/cjs/ethers-contracts/2_0_0/NttManager.d.ts.map +0 -1
  140. package/dist/cjs/ethers-contracts/2_0_0/NttManager.js +0 -3
  141. package/dist/cjs/ethers-contracts/2_0_0/NttManager.js.map +0 -1
  142. package/dist/cjs/ethers-contracts/2_0_0/WormholeTransceiver.d.ts +0 -468
  143. package/dist/cjs/ethers-contracts/2_0_0/WormholeTransceiver.d.ts.map +0 -1
  144. package/dist/cjs/ethers-contracts/2_0_0/WormholeTransceiver.js +0 -3
  145. package/dist/cjs/ethers-contracts/2_0_0/WormholeTransceiver.js.map +0 -1
  146. package/dist/cjs/ethers-contracts/2_0_0/common.d.ts +0 -51
  147. package/dist/cjs/ethers-contracts/2_0_0/common.d.ts.map +0 -1
  148. package/dist/cjs/ethers-contracts/2_0_0/common.js +0 -3
  149. package/dist/cjs/ethers-contracts/2_0_0/common.js.map +0 -1
  150. package/dist/cjs/ethers-contracts/2_0_0/factories/NttManager__factory.d.ts +0 -1498
  151. package/dist/cjs/ethers-contracts/2_0_0/factories/NttManager__factory.d.ts.map +0 -1
  152. package/dist/cjs/ethers-contracts/2_0_0/factories/NttManager__factory.js +0 -1965
  153. package/dist/cjs/ethers-contracts/2_0_0/factories/NttManager__factory.js.map +0 -1
  154. package/dist/cjs/ethers-contracts/2_0_0/factories/WormholeTransceiver__factory.d.ts +0 -792
  155. package/dist/cjs/ethers-contracts/2_0_0/factories/WormholeTransceiver__factory.d.ts.map +0 -1
  156. package/dist/cjs/ethers-contracts/2_0_0/factories/WormholeTransceiver__factory.js +0 -1050
  157. package/dist/cjs/ethers-contracts/2_0_0/factories/WormholeTransceiver__factory.js.map +0 -1
  158. package/dist/cjs/ethers-contracts/2_0_0/factories/index.d.ts +0 -3
  159. package/dist/cjs/ethers-contracts/2_0_0/factories/index.d.ts.map +0 -1
  160. package/dist/cjs/ethers-contracts/2_0_0/factories/index.js +0 -11
  161. package/dist/cjs/ethers-contracts/2_0_0/factories/index.js.map +0 -1
  162. package/dist/cjs/ethers-contracts/2_0_0/index.d.ts +0 -6
  163. package/dist/cjs/ethers-contracts/2_0_0/index.d.ts.map +0 -1
  164. package/dist/cjs/ethers-contracts/2_0_0/index.js +0 -42
  165. package/dist/cjs/ethers-contracts/2_0_0/index.js.map +0 -1
  166. package/dist/cjs/ethers-contracts/index.d.ts +0 -47
  167. package/dist/cjs/ethers-contracts/index.d.ts.map +0 -1
  168. package/dist/cjs/ethers-contracts/index.js +0 -87
  169. package/dist/cjs/ethers-contracts/index.js.map +0 -1
  170. package/dist/cjs/ethers-contracts/multiTokenNtt/index.d.ts +0 -14
  171. package/dist/cjs/ethers-contracts/multiTokenNtt/index.d.ts.map +0 -1
  172. package/dist/cjs/ethers-contracts/multiTokenNtt/index.js +0 -50
  173. package/dist/cjs/ethers-contracts/multiTokenNtt/index.js.map +0 -1
  174. package/dist/cjs/executorGasLimits.d.ts +0 -5
  175. package/dist/cjs/executorGasLimits.d.ts.map +0 -1
  176. package/dist/cjs/executorGasLimits.js +0 -22
  177. package/dist/cjs/executorGasLimits.js.map +0 -1
  178. package/dist/cjs/index.d.ts +0 -8
  179. package/dist/cjs/index.d.ts.map +0 -1
  180. package/dist/cjs/index.js +0 -69
  181. package/dist/cjs/index.js.map +0 -1
  182. package/dist/cjs/multiTokenNtt.d.ts +0 -58
  183. package/dist/cjs/multiTokenNtt.d.ts.map +0 -1
  184. package/dist/cjs/multiTokenNtt.js +0 -359
  185. package/dist/cjs/multiTokenNtt.js.map +0 -1
  186. package/dist/cjs/multiTokenNttBindings.d.ts +0 -44
  187. package/dist/cjs/multiTokenNttBindings.d.ts.map +0 -1
  188. package/dist/cjs/multiTokenNttBindings.js +0 -19
  189. package/dist/cjs/multiTokenNttBindings.js.map +0 -1
  190. package/dist/cjs/multiTokenNttWithExecutor.d.ts +0 -22
  191. package/dist/cjs/multiTokenNttWithExecutor.d.ts.map +0 -1
  192. package/dist/cjs/multiTokenNttWithExecutor.js +0 -122
  193. package/dist/cjs/multiTokenNttWithExecutor.js.map +0 -1
  194. package/dist/cjs/ntt.d.ts +0 -101
  195. package/dist/cjs/ntt.d.ts.map +0 -1
  196. package/dist/cjs/ntt.js +0 -503
  197. package/dist/cjs/ntt.js.map +0 -1
  198. package/dist/cjs/nttWithExecutor.d.ts +0 -37
  199. package/dist/cjs/nttWithExecutor.d.ts.map +0 -1
  200. package/dist/cjs/nttWithExecutor.js +0 -221
  201. package/dist/cjs/nttWithExecutor.js.map +0 -1
  202. package/dist/cjs/package.json +0 -1
@@ -1,359 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EvmMultiTokenNtt = void 0;
4
- const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
- const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
6
- const sdk_evm_1 = require("@wormhole-foundation/sdk-evm");
7
- require("@wormhole-foundation/sdk-evm-core");
8
- const sdk_definitions_ntt_1 = require("@wormhole-foundation/sdk-definitions-ntt");
9
- const ethers_1 = require("ethers");
10
- const multiTokenNttBindings_js_1 = require("./multiTokenNttBindings.js");
11
- const sdk_definitions_ntt_2 = require("@wormhole-foundation/sdk-definitions-ntt");
12
- class EvmMultiTokenNtt {
13
- network;
14
- chain;
15
- provider;
16
- contracts;
17
- version;
18
- chainId;
19
- managerAddress;
20
- multiTokenNtt;
21
- gmpManager;
22
- abiBindings;
23
- constructor(network, chain, provider, contracts, version = "1.1.0") {
24
- this.network = network;
25
- this.chain = chain;
26
- this.provider = provider;
27
- this.contracts = contracts;
28
- this.version = version;
29
- if (!contracts.multiTokenNtt)
30
- throw new Error("No Ntt Contracts provided");
31
- this.chainId = sdk_base_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
32
- this.abiBindings = (0, multiTokenNttBindings_js_1.loadAbiVersion)(this.version);
33
- this.managerAddress = contracts.multiTokenNtt.manager;
34
- this.multiTokenNtt = this.abiBindings.MultiTokenNtt.connect(contracts.multiTokenNtt.manager, this.provider);
35
- this.gmpManager = this.abiBindings.GmpManager.connect(contracts.multiTokenNtt.gmpManager, this.provider);
36
- }
37
- async isPaused() {
38
- return await this.multiTokenNtt.isPaused();
39
- }
40
- async getIsExecuted(attestation) {
41
- const isExecuted = await this.gmpManager.isMessageExecuted(sdk_definitions_ntt_1.MultiTokenNtt.messageDigest(attestation.emitterChain, attestation.payload.nttManagerPayload));
42
- return isExecuted && !(await this.getIsTransferInboundQueued(attestation));
43
- }
44
- async getIsTransferInboundQueued(attestation) {
45
- return ((await this.getInboundQueuedTransfer(attestation.emitterChain, attestation.payload.nttManagerPayload)) !== null);
46
- }
47
- async getIsApproved(attestation) {
48
- return await this.gmpManager.isMessageApprovedForChain((0, sdk_base_1.toChainId)(attestation.emitterChain), sdk_definitions_ntt_1.MultiTokenNtt.messageDigest(attestation.emitterChain, attestation.payload.nttManagerPayload));
49
- }
50
- static async fromRpc(provider, config) {
51
- const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
52
- const conf = config[chain];
53
- if (conf.network !== network)
54
- throw new Error(`Network mismatch: ${conf.network} != ${network}`);
55
- const version = await EvmMultiTokenNtt.getVersion(provider, conf.contracts);
56
- return new EvmMultiTokenNtt(network, chain, provider, conf.contracts, version);
57
- }
58
- static versionCache = new Map();
59
- static async getVersion(provider, contracts) {
60
- const multiTokenNtt = contracts.multiTokenNtt;
61
- if (!multiTokenNtt) {
62
- throw new Error("No multiTokenNtt contracts configured");
63
- }
64
- // Use cached version to save on RPC calls
65
- const cacheKey = `${multiTokenNtt.chain}-${multiTokenNtt.manager}`;
66
- const cached = EvmMultiTokenNtt.versionCache.get(cacheKey);
67
- if (cached) {
68
- return cached;
69
- }
70
- const contract = new ethers_1.ethers.Contract(multiTokenNtt.manager, ["function NTT_MANAGER_VERSION() public view returns (string)"], provider);
71
- try {
72
- const abiVersion = await contract
73
- .getFunction("NTT_MANAGER_VERSION")
74
- .staticCall();
75
- if (!abiVersion) {
76
- throw new Error("NTT_MANAGER_VERSION not found");
77
- }
78
- EvmMultiTokenNtt.versionCache.set(cacheKey, abiVersion);
79
- return abiVersion;
80
- }
81
- catch (e) {
82
- console.error(`Failed to get NTT_MANAGER_VERSION from contract ${contracts.multiTokenNtt?.manager}`);
83
- throw e;
84
- }
85
- }
86
- async getSendTransceivers(destinationChain) {
87
- const sendTransceivers = await this.gmpManager.getSendTransceiversWithIndicesForChain((0, sdk_base_1.toChainId)(destinationChain));
88
- return await Promise.all(sendTransceivers.map(async (transceiver) => {
89
- const type = await this.getTransceiverType(transceiver.transceiver);
90
- return {
91
- address: transceiver.transceiver,
92
- index: Number(transceiver.index),
93
- type,
94
- };
95
- }));
96
- }
97
- async getReceiveTransceivers(sourceChain) {
98
- const receiveTransceivers = await this.gmpManager.getReceiveTransceiversWithIndicesForChain((0, sdk_base_1.toChainId)(sourceChain));
99
- return await Promise.all(receiveTransceivers.map(async (transceiver) => {
100
- const type = await this.getTransceiverType(transceiver.transceiver);
101
- return {
102
- address: transceiver.transceiver,
103
- index: Number(transceiver.index),
104
- type,
105
- };
106
- }));
107
- }
108
- async transceiverAttestedToMessage(fromChain, transceiverMessage, index) {
109
- return await this.gmpManager.transceiverAttestedToMessage(sdk_definitions_ntt_1.MultiTokenNtt.messageDigest(fromChain, transceiverMessage), index);
110
- }
111
- async getTransceiverType(transceiverAddress) {
112
- const transceiverInterface = new ethers_1.Interface([
113
- "function getTransceiverType() external view returns (string memory)",
114
- ]);
115
- const transceiverContract = new ethers_1.Contract(transceiverAddress, transceiverInterface, this.provider);
116
- return await transceiverContract
117
- .getFunction("getTransceiverType")
118
- .staticCall();
119
- }
120
- async createTransceiverInstructions(dstChain, gasLimit, axelarGasMultiplier = "auto") {
121
- const sendTransceivers = await this.getSendTransceivers(dstChain);
122
- const instructions = await Promise.all(sendTransceivers.map(async (transceiver) => {
123
- switch (transceiver.type.toLowerCase()) {
124
- case "wormhole":
125
- return {
126
- index: transceiver.index,
127
- payload: new Uint8Array([1]), // disable standard relayer, use executor route for automatic relay
128
- };
129
- case "axelar": {
130
- const gasFee = await (0, sdk_definitions_ntt_2.getAxelarGasFee)(this.network, this.chain, dstChain, gasLimit, axelarGasMultiplier);
131
- return {
132
- index: transceiver.index,
133
- payload: sdk_base_1.encoding.bignum.toBytes(gasFee, 32),
134
- };
135
- }
136
- default:
137
- throw new Error(`Unsupported transceiver type: ${transceiver.type} at index ${transceiver.index}`);
138
- }
139
- }));
140
- // The contract requires the instructions to be sorted by transceiver index in ascending order.
141
- instructions.sort((a, b) => a.index - b.index);
142
- return instructions;
143
- }
144
- async quoteDeliveryPrice(dstChain, instructions) {
145
- const [, totalPrice] = await this.gmpManager.quoteDeliveryPrice((0, sdk_base_1.toChainId)(dstChain), sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(instructions));
146
- return totalPrice;
147
- }
148
- async *transfer(sender, token, amount, destination, destinationGasLimit, axelarGasMultiplier = "auto") {
149
- const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
150
- const transceiverInstructions = await this.createTransceiverInstructions(destination.chain, destinationGasLimit, axelarGasMultiplier);
151
- const totalPrice = await this.quoteDeliveryPrice(destination.chain, transceiverInstructions);
152
- const receiver = (0, sdk_definitions_1.universalAddress)(destination);
153
- let transferTx;
154
- if ((0, sdk_definitions_1.isNative)(token)) {
155
- const gasTokenTransferArgs = {
156
- amount,
157
- recipientChain: (0, sdk_base_1.toChainId)(destination.chain),
158
- recipient: receiver,
159
- refundAddress: receiver,
160
- shouldQueue: false,
161
- transceiverInstructions: sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(transceiverInstructions),
162
- additionalPayload: "0x",
163
- };
164
- transferTx =
165
- await this.multiTokenNtt.wrapAndTransferGasToken.populateTransaction(gasTokenTransferArgs, { value: amount + totalPrice });
166
- }
167
- else {
168
- const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, token.toString());
169
- const allowance = await tokenContract.allowance(senderAddress, this.managerAddress);
170
- if (allowance < amount) {
171
- const approveTx = await tokenContract.approve.populateTransaction(this.managerAddress, amount);
172
- yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(approveTx, senderAddress), "Ntt.Approve");
173
- }
174
- const transferArgs = {
175
- token: token.toString(),
176
- amount,
177
- recipientChain: (0, sdk_base_1.toChainId)(destination.chain),
178
- recipient: receiver,
179
- refundAddress: receiver,
180
- shouldQueue: false,
181
- transceiverInstructions: sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(transceiverInstructions),
182
- additionalPayload: "0x",
183
- };
184
- transferTx = await this.multiTokenNtt.transfer.populateTransaction(transferArgs, { value: totalPrice });
185
- }
186
- yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(transferTx, senderAddress), "Ntt.transfer");
187
- }
188
- async *redeem(attestation) {
189
- const transceivers = await this.getReceiveTransceivers(attestation.emitterChain);
190
- const wormholeTransceiver = transceivers.find((t) => t.type === "wormhole");
191
- if (!wormholeTransceiver) {
192
- throw new Error("No Wormhole transceiver registered for this chain");
193
- }
194
- const transceiver = this.abiBindings.NttTransceiver.connect(wormholeTransceiver.address, this.provider);
195
- const tx = await transceiver.receiveMessage.populateTransaction((0, sdk_definitions_1.serialize)(attestation));
196
- yield this.createUnsignedTx(tx, "NttTransceiver.receiveMessage");
197
- }
198
- async getTokenMeta(token) {
199
- const tokenAddress = token.address.toString();
200
- const tokenImpl = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, tokenAddress);
201
- const getDecimals = sdk_evm_1.EvmPlatform.getDecimals(this.network, this.chain, this.provider, tokenAddress);
202
- const [name, symbol, decimals] = await Promise.all([
203
- tokenImpl.name(),
204
- tokenImpl.symbol(),
205
- getDecimals,
206
- ]);
207
- return { name, symbol, decimals };
208
- }
209
- async getCurrentOutboundCapacity(localToken) {
210
- const { chain, address } = await this.getOriginalToken(localToken);
211
- return await this.multiTokenNtt.getCurrentOutboundCapacity({
212
- chainId: (0, sdk_base_1.toChainId)(chain),
213
- tokenAddress: address.toUint8Array(),
214
- });
215
- }
216
- async getOutboundLimit(localToken) {
217
- const { chain, address } = await this.getOriginalToken(localToken);
218
- const encoded = (await this.multiTokenNtt.getOutboundLimitParams({
219
- chainId: (0, sdk_base_1.toChainId)(chain),
220
- tokenAddress: address.toUint8Array(),
221
- })).limit;
222
- const trimmedAmount = (0, sdk_definitions_ntt_1.decodeTrimmedAmount)(encoded);
223
- const tokenMeta = await this.getTokenMeta(localToken);
224
- return (0, sdk_definitions_ntt_1.untrim)(trimmedAmount, tokenMeta.decimals);
225
- }
226
- async getCurrentInboundCapacity(originalToken, fromChain) {
227
- return await this.multiTokenNtt.getCurrentInboundCapacity({
228
- chainId: (0, sdk_base_1.toChainId)(originalToken.chain),
229
- tokenAddress: originalToken.address.toUint8Array(),
230
- }, (0, sdk_base_1.toChainId)(fromChain));
231
- }
232
- async getInboundLimit(originalToken, fromChain) {
233
- const localToken = await this.getLocalToken(originalToken);
234
- if (localToken === null)
235
- return null; // Token not yet created
236
- const encoded = (await this.multiTokenNtt.getInboundLimitParams({
237
- chainId: (0, sdk_base_1.toChainId)(originalToken.chain),
238
- tokenAddress: originalToken.address.toUint8Array(),
239
- }, (0, sdk_base_1.toChainId)(fromChain))).limit;
240
- const trimmedAmount = (0, sdk_definitions_ntt_1.decodeTrimmedAmount)(encoded);
241
- if (trimmedAmount.amount === 0n && trimmedAmount.decimals === 0)
242
- return null;
243
- const tokenMeta = await this.getTokenMeta(localToken);
244
- return (0, sdk_definitions_ntt_1.untrim)(trimmedAmount, tokenMeta.decimals);
245
- }
246
- async getRateLimitDuration() {
247
- return await this.multiTokenNtt.rateLimitDuration();
248
- }
249
- async getInboundQueuedTransfer(fromChain, transceiverMessage) {
250
- const digest = sdk_definitions_ntt_1.MultiTokenNtt.messageDigest(fromChain, transceiverMessage);
251
- const queuedTransfer = await this.multiTokenNtt.getInboundQueuedTransfer(digest);
252
- if (queuedTransfer.txTimestamp > 0n) {
253
- const { sourceChainId, txTimestamp } = queuedTransfer;
254
- const duration = await this.getRateLimitDuration();
255
- return {
256
- sourceChain: (0, sdk_base_1.toChain)(sourceChainId),
257
- rateLimitExpiryTimestamp: Number(txTimestamp + duration),
258
- };
259
- }
260
- return null;
261
- }
262
- async *completeInboundQueuedTransfer(fromChain, transceiverMessage) {
263
- const { trimmedAmount, token, sender, to } = transceiverMessage.payload.data;
264
- const digest = sdk_definitions_ntt_1.MultiTokenNtt.messageDigest(fromChain, transceiverMessage);
265
- const transfer = {
266
- amount: (0, sdk_definitions_ntt_1.encodeTrimmedAmount)(trimmedAmount),
267
- token: {
268
- meta: {
269
- name: sdk_base_1.encoding.bytes.encode(token.meta.name),
270
- symbol: sdk_base_1.encoding.bytes.encode(token.meta.symbol),
271
- decimals: token.meta.decimals,
272
- },
273
- token: {
274
- chainId: (0, sdk_base_1.toChainId)(token.token.chainId),
275
- tokenAddress: token.token.tokenAddress.toString(),
276
- },
277
- },
278
- sender: sender.toString(),
279
- to: to.toString(),
280
- additionalPayload: "0x",
281
- };
282
- const tx = await this.multiTokenNtt.completeInboundQueuedTransfer.populateTransaction(digest, transfer);
283
- yield this.createUnsignedTx(tx, "Ntt.completeInboundQueuedTransfer");
284
- }
285
- async getOriginalToken(localToken) {
286
- const [tokenId] = await this.multiTokenNtt.getTokenId(localToken.address.toString());
287
- const chain = (0, sdk_base_1.toChain)(tokenId.chainId);
288
- const address = (0, sdk_definitions_1.toUniversal)(chain, tokenId.tokenAddress);
289
- return {
290
- chain,
291
- address,
292
- };
293
- }
294
- async isWrappedToken(localToken) {
295
- const originalToken = await this.getOriginalToken(localToken);
296
- return originalToken.chain !== this.chain;
297
- }
298
- // This will return null if the token doesn't exist
299
- async getLocalToken(originalToken) {
300
- const localToken = await this.multiTokenNtt.getToken({
301
- chainId: (0, sdk_base_1.toChainId)(originalToken.chain),
302
- tokenAddress: originalToken.address.toUint8Array(),
303
- });
304
- if (localToken === ethers_1.ethers.ZeroAddress)
305
- return null;
306
- return { chain: this.chain, address: (0, sdk_definitions_1.toNative)(this.chain, localToken) };
307
- }
308
- async getWrappedNativeToken() {
309
- const wethAddress = await this.multiTokenNtt.WETH();
310
- return { chain: this.chain, address: (0, sdk_definitions_1.toNative)(this.chain, wethAddress) };
311
- }
312
- // If the local token doesn't exist yet, this will return the address where it will be deployed
313
- async calculateLocalTokenAddress(originalToken, tokenMeta) {
314
- const tokenImplementation = await this.multiTokenNtt.tokenImplementation();
315
- const initializeSelector = ethers_1.ethers.id("initialize(string,string,uint8)");
316
- const coder = ethers_1.ethers.AbiCoder.defaultAbiCoder();
317
- const constructorArgs = coder.encode(["address", "bytes"], [
318
- tokenImplementation,
319
- ethers_1.ethers.concat([
320
- initializeSelector.slice(0, 10),
321
- coder.encode(["string", "string", "uint8"], [
322
- tokenMeta.name.slice(0, 32),
323
- tokenMeta.symbol.slice(0, 32),
324
- tokenMeta.decimals,
325
- ]),
326
- ]),
327
- ]);
328
- const creationCode = await this.multiTokenNtt.tokenProxyCreationCode();
329
- const initCode = ethers_1.ethers.concat([creationCode, constructorArgs]);
330
- const initCodeHash = ethers_1.ethers.keccak256(initCode);
331
- const salt = ethers_1.ethers.solidityPackedKeccak256(["uint16", "bytes32"], [(0, sdk_base_1.toChainId)(originalToken.chain), originalToken.address.toUint8Array()]);
332
- // The address where the token will be deployed on the destination chain
333
- const localTokenAddress = ethers_1.ethers.getCreate2Address(this.managerAddress, salt, initCodeHash);
334
- return (0, sdk_definitions_1.toNative)(this.chain, localTokenAddress);
335
- }
336
- createUnsignedTx(txReq, description, parallelizable = false) {
337
- return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
338
- }
339
- // Upper bound estimate of gas limit needed to redeem on this chain
340
- async estimateGasLimit(originalToken) {
341
- const existingToken = await this.getLocalToken(originalToken);
342
- if (!existingToken) {
343
- // Redeeming will create the token on this chain
344
- // so we need to account for the extra gas.
345
- return 1000000n;
346
- }
347
- if (this.chain === "Monad") {
348
- // Monad gas is higher than other EVMs
349
- // e.g., here's a redeem tx on Monad where the wallet estimated 750k gas. add sufficient buffer.
350
- // https://mainnet-beta.monvision.io/tx/0xa4c2c3c2c07c548ad54de7065e54eb3ae1ed017384af43c32a86d32676c3aaef
351
- return 1000000n;
352
- }
353
- // Upper estimate for redeeming an existing token. Based on observed gas usage
354
- // but padded to be well above the limit.
355
- return 650000n;
356
- }
357
- }
358
- exports.EvmMultiTokenNtt = EvmMultiTokenNtt;
359
- //# sourceMappingURL=multiTokenNtt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiTokenNtt.js","sourceRoot":"","sources":["../../src/multiTokenNtt.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { Provider } from "ethers";
2
- import { _1_1_0 } from "./ethers-contracts/multiTokenNtt/index.js";
3
- import { NttTransceiverBindings } from "./bindings.js";
4
- export declare const abiVersions: readonly [readonly ["1.1.0", {
5
- MultiTokenNtt: {
6
- connect: typeof import("./ethers-contracts/1_1_0/index.js").MultiTokenNtt__factory.connect;
7
- };
8
- NttTransceiver: {
9
- connect: typeof import("./ethers-contracts/1_1_0/index.js").WormholeTransceiver__factory.connect;
10
- };
11
- GmpManager: {
12
- connect: typeof import("./ethers-contracts/1_1_0/index.js").GmpManager__factory.connect;
13
- };
14
- }]];
15
- export type AbiVersion = (typeof abiVersions)[number][0];
16
- export interface MultiTokenNttBindings {
17
- MultiTokenNtt: MultiTokenNttBindings;
18
- GmpManager: GmpManagerBindings;
19
- NttTransceiver: NttTransceiverBindings;
20
- }
21
- export declare namespace MultiTokenNttBindings {
22
- type MultiTokenNtt = ReturnType<typeof _1_1_0.MultiTokenNtt.connect>;
23
- }
24
- export interface MultiTokenNttBindings {
25
- connect(address: string, provider: Provider): MultiTokenNttBindings.MultiTokenNtt;
26
- }
27
- export declare namespace GmpManagerBindings {
28
- type GmpManager = ReturnType<typeof _1_1_0.GmpManager.connect>;
29
- }
30
- export interface GmpManagerBindings {
31
- connect(address: string, provider: Provider): GmpManagerBindings.GmpManager;
32
- }
33
- export declare function loadAbiVersion(targetVersion: string): {
34
- MultiTokenNtt: {
35
- connect: typeof import("./ethers-contracts/1_1_0/index.js").MultiTokenNtt__factory.connect;
36
- };
37
- NttTransceiver: {
38
- connect: typeof import("./ethers-contracts/1_1_0/index.js").WormholeTransceiver__factory.connect;
39
- };
40
- GmpManager: {
41
- connect: typeof import("./ethers-contracts/1_1_0/index.js").GmpManager__factory.connect;
42
- };
43
- };
44
- //# sourceMappingURL=multiTokenNttBindings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiTokenNttBindings.d.ts","sourceRoot":"","sources":["../../src/multiTokenNttBindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAKvD,eAAO,MAAM,WAAW;;;;;;;;;;GAA+B,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,qBAAqB,CAAC;IACrC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,sBAAsB,CAAC;CACxC;AAED,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,aAAa,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CACL,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,qBAAqB,CAAC,aAAa,CAAC;CACxC;AAED,yBAAiB,kBAAkB,CAAC;IAClC,KAAY,UAAU,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC;CAC7E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;EAOnD"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.abiVersions = void 0;
4
- exports.loadAbiVersion = loadAbiVersion;
5
- const index_js_1 = require("./ethers-contracts/multiTokenNtt/index.js");
6
- const sdk_definitions_ntt_1 = require("@wormhole-foundation/sdk-definitions-ntt");
7
- // This is a descending list of all ABI versions the SDK is aware of.
8
- // We check for the first match in descending order, allowing for higher minor and patch versions
9
- // being used by the live contract (these are supposed to still be compatible with older ABIs).
10
- exports.abiVersions = [["1.1.0", index_js_1._1_1_0]];
11
- function loadAbiVersion(targetVersion) {
12
- for (const [abiVersion, abi] of exports.abiVersions) {
13
- if (sdk_definitions_ntt_1.Ntt.abiVersionMatches(targetVersion, abiVersion)) {
14
- return abi;
15
- }
16
- }
17
- throw new Error(`Unknown ABI version: ${targetVersion}`);
18
- }
19
- //# sourceMappingURL=multiTokenNttBindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiTokenNttBindings.js","sourceRoot":"","sources":["../../src/multiTokenNttBindings.ts"],"names":[],"mappings":";;;AAoCA,wCAOC;AA1CD,wEAAmE;AACnE,kFAA+D;AAG/D,qEAAqE;AACrE,iGAAiG;AACjG,+FAA+F;AAClF,QAAA,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,iBAAM,CAAC,CAAU,CAAC;AA4BxD,SAAgB,cAAc,CAAC,aAAqB;IAClD,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,mBAAW,EAAE,CAAC;QAC5C,IAAI,yBAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,aAAa,EAAE,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,22 +0,0 @@
1
- import { type Provider, type TransactionRequest } from "ethers";
2
- import { AccountAddress, ChainAddress, ChainsConfig, Contracts, Network, TokenId, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
3
- import { EvmChains, EvmPlatformType, EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm";
4
- import { type MultiTokenNtt, type MultiTokenNttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt";
5
- export declare class EvmMultiTokenNttWithExecutor<N extends Network, C extends EvmChains = EvmChains> implements MultiTokenNttWithExecutor<N, C> {
6
- readonly network: N;
7
- readonly chain: C;
8
- readonly provider: Provider;
9
- readonly contracts: Contracts & {
10
- multiTokenNtt?: MultiTokenNtt.Contracts;
11
- };
12
- readonly chainId: bigint;
13
- readonly managerAddress: string;
14
- readonly multiTokenNttWithExecutorAddress: string;
15
- constructor(network: N, chain: C, provider: Provider, contracts: Contracts & {
16
- multiTokenNtt?: MultiTokenNtt.Contracts;
17
- });
18
- static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, EvmPlatformType>): Promise<EvmMultiTokenNttWithExecutor<N, EvmChains>>;
19
- transfer(sender: AccountAddress<C>, destination: ChainAddress, token: TokenId<C>, amount: bigint, quote: MultiTokenNttWithExecutor.Quote): AsyncGenerator<UnsignedTransaction<N, C>>;
20
- createUnsignedTx(txReq: TransactionRequest, description: string, parallelizable?: boolean): EvmUnsignedTransaction<N, C>;
21
- }
22
- //# sourceMappingURL=multiTokenNttWithExecutor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiTokenNttWithExecutor.d.ts","sourceRoot":"","sources":["../../src/multiTokenNttWithExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,mBAAmB,EAIpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,SAAS,EAET,eAAe,EAEf,sBAAsB,EAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC/B,MAAM,0CAA0C,CAAC;AAelD,qBAAa,4BAA4B,CACvC,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;IAOxC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG;QAAE,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAA;KAAE;IAR7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;gBAGvC,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,GAAG;QAAE,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAA;KAAE;WAyBhE,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,GACvC,OAAO,CAAC,4BAA4B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAc/C,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,WAAW,EAAE,YAAY,EACzB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,yBAAyB,CAAC,KAAK,GACrC,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgG5C,gBAAgB,CACd,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,OAAe,GAC9B,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;CAShC"}
@@ -1,122 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EvmMultiTokenNttWithExecutor = void 0;
4
- const ethers_1 = require("ethers");
5
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
6
- const sdk_evm_1 = require("@wormhole-foundation/sdk-evm");
7
- const sdk_definitions_ntt_1 = require("@wormhole-foundation/sdk-definitions-ntt");
8
- const multiTokenNttWithExecutorAddresses = {
9
- Mainnet: {
10
- Ethereum: "0x03dB430D830601DB368991eE55DAa9A708df7912",
11
- Monad: "0xFEA937F7124E19124671f1685671d3f04a9Af4E4",
12
- },
13
- Testnet: {
14
- Sepolia: "0x70b1CD25Aa1DEbEf2BCa0eDbc11228C5EB4dAD0F",
15
- Monad: "0xFEA937F7124E19124671f1685671d3f04a9Af4E4",
16
- },
17
- };
18
- class EvmMultiTokenNttWithExecutor {
19
- network;
20
- chain;
21
- provider;
22
- contracts;
23
- chainId;
24
- managerAddress;
25
- multiTokenNttWithExecutorAddress;
26
- constructor(network, chain, provider, contracts) {
27
- this.network = network;
28
- this.chain = chain;
29
- this.provider = provider;
30
- this.contracts = contracts;
31
- this.chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
32
- const managerAddress = contracts.multiTokenNtt?.manager;
33
- if (!managerAddress) {
34
- throw new Error(`MultiTokenNtt manager address not found for chain ${chain} on network ${network}`);
35
- }
36
- this.managerAddress = managerAddress;
37
- const multiTokenNttWithExecutorAddress = multiTokenNttWithExecutorAddresses[this.network]?.[this.chain];
38
- if (!multiTokenNttWithExecutorAddress) {
39
- throw new Error(`MultiTokenNttWithExecutor address not found for chain ${this.chain} on network ${this.network}`);
40
- }
41
- this.multiTokenNttWithExecutorAddress = multiTokenNttWithExecutorAddress;
42
- }
43
- static async fromRpc(provider, config) {
44
- const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
45
- const conf = config[chain];
46
- if (conf.network !== network)
47
- throw new Error(`Network mismatch: ${conf.network} != ${network}`);
48
- return new EvmMultiTokenNttWithExecutor(network, chain, provider, conf.contracts);
49
- }
50
- async *transfer(sender, destination, token, amount, quote) {
51
- const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
52
- const isNativeToken = (0, sdk_connect_1.isNative)(token.address);
53
- const abi = [
54
- "function transfer(address multiTokenNtt, address token, uint256 amount, uint16 recipientChain, bytes32 recipient, bytes32 refundAddress, bytes transceiverInstructions, (uint256 value, address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64)",
55
- "function transferETH(address multiTokenNtt, uint256 amount, uint16 recipientChain, bytes32 recipient, bytes32 refundAddress, bytes transceiverInstructions, (uint256 value, address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64)",
56
- ];
57
- const iface = new ethers_1.Interface(abi);
58
- const recipientChain = (0, sdk_connect_1.toChainId)(destination.chain);
59
- const recipient = destination.address.toUniversalAddress().toUint8Array();
60
- const refundAddress = sender.toUniversalAddress().toUint8Array();
61
- const executorArgs = {
62
- value: quote.estimatedCost,
63
- refundAddress: senderAddress,
64
- signedQuote: quote.signedQuote,
65
- instructions: quote.relayInstructions,
66
- };
67
- const feeArgs = {
68
- dbps: quote.referrerFeeDbps,
69
- payee: quote.referrer.address.toString(),
70
- };
71
- let data;
72
- let msgValue;
73
- if (isNativeToken) {
74
- data = iface.encodeFunctionData("transferETH", [
75
- this.managerAddress,
76
- amount,
77
- recipientChain,
78
- recipient,
79
- refundAddress,
80
- sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(quote.transceiverInstructions),
81
- executorArgs,
82
- feeArgs,
83
- ]);
84
- msgValue = quote.estimatedCost + quote.deliveryPrice + amount;
85
- }
86
- else {
87
- const tokenAddress = new sdk_evm_1.EvmAddress(token.address).toString();
88
- const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, tokenAddress);
89
- const currentAllowance = await tokenContract.allowance(senderAddress, this.multiTokenNttWithExecutorAddress);
90
- if (currentAllowance < amount) {
91
- const approveTx = await tokenContract.approve.populateTransaction(this.multiTokenNttWithExecutorAddress, amount);
92
- yield this.createUnsignedTx(approveTx, "MultiTokenNttWithExecutor.Approve");
93
- }
94
- data = iface.encodeFunctionData("transfer", [
95
- this.managerAddress,
96
- tokenAddress,
97
- amount,
98
- recipientChain,
99
- recipient,
100
- refundAddress,
101
- sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(quote.transceiverInstructions),
102
- executorArgs,
103
- feeArgs,
104
- ]);
105
- msgValue = quote.estimatedCost + quote.deliveryPrice;
106
- }
107
- const txReq = {
108
- to: this.multiTokenNttWithExecutorAddress,
109
- data,
110
- value: msgValue,
111
- from: senderAddress,
112
- };
113
- yield this.createUnsignedTx(txReq, isNativeToken
114
- ? "MultiTokenNttWithExecutor.transferETH"
115
- : "MultiTokenNttWithExecutor.transfer");
116
- }
117
- createUnsignedTx(txReq, description, parallelizable = false) {
118
- return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
119
- }
120
- }
121
- exports.EvmMultiTokenNttWithExecutor = EvmMultiTokenNttWithExecutor;
122
- //# sourceMappingURL=multiTokenNttWithExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiTokenNttWithExecutor.js","sourceRoot":"","sources":["../../src/multiTokenNttWithExecutor.ts"],"names":[],"mappings":";;;AAAA,mCAA2E;AAC3E,kEAW0C;AAC1C,0DAOsC;AACtC,kFAIkD;AAElD,MAAM,kCAAkC,GAEpC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,4CAA4C;QACtD,KAAK,EAAE,4CAA4C;KACpD;IACD,OAAO,EAAE;QACP,OAAO,EAAE,4CAA4C;QACrD,KAAK,EAAE,4CAA4C;KACpD;CACF,CAAC;AAEF,MAAa,4BAA4B;IAU5B;IACA;IACA;IACA;IARF,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,gCAAgC,CAAS;IAElD,YACW,OAAU,EACV,KAAQ,EACR,QAAkB,EAClB,SAAkE;QAHlE,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAU;QAClB,cAAS,GAAT,SAAS,CAAyD;QAE3E,IAAI,CAAC,OAAO,GAAG,4BAAc,CAAC,2BAA2B,CAAC,GAAG,CAC3D,OAAO,EACP,KAAK,CACI,CAAC;QAEZ,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;QACxD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,qDAAqD,KAAK,eAAe,OAAO,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,MAAM,gCAAgC,GACpC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,yDAAyD,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,OAAO,EAAE,CACjG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAkB,EAClB,MAAwC;QAExC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,qBAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QAErE,OAAO,IAAI,4BAA4B,CACrC,OAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,WAAyB,EACzB,KAAiB,EACjB,MAAc,EACd,KAAsC;QAEtC,MAAM,aAAa,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG;YACV,6UAA6U;YAC7U,iUAAiU;SAClU,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,kBAAS,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAA,uBAAS,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,CAAC;QAEjE,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,iBAAiB;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,eAAe;YAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;SACzC,CAAC;QAEF,IAAI,IAAY,CAAC;QACjB,IAAI,QAAgB,CAAC;QAErB,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBAC7C,IAAI,CAAC,cAAc;gBACnB,MAAM;gBACN,cAAc;gBACd,SAAS;gBACT,aAAa;gBACb,yBAAG,CAAC,6BAA6B,CAAC,KAAK,CAAC,uBAAuB,CAAC;gBAChE,YAAY;gBACZ,OAAO;aACR,CAAC,CAAC;YACH,QAAQ,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,IAAI,oBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE9D,MAAM,aAAa,GAAG,qBAAW,CAAC,sBAAsB,CACtD,IAAI,CAAC,QAAQ,EACb,YAAY,CACb,CAAC;YAEF,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,SAAS,CACpD,aAAa,EACb,IAAI,CAAC,gCAAgC,CACtC,CAAC;YAEF,IAAI,gBAAgB,GAAG,MAAM,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAC/D,IAAI,CAAC,gCAAgC,EACrC,MAAM,CACP,CAAC;gBAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB,SAAS,EACT,mCAAmC,CACpC,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBAC1C,IAAI,CAAC,cAAc;gBACnB,YAAY;gBACZ,MAAM;gBACN,cAAc;gBACd,SAAS;gBACT,aAAa;gBACb,yBAAG,CAAC,6BAA6B,CAAC,KAAK,CAAC,uBAAuB,CAAC;gBAChE,YAAY;gBACZ,OAAO;aACR,CAAC,CAAC;YACH,QAAQ,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACvD,CAAC;QAED,MAAM,KAAK,GAAuB;YAChC,EAAE,EAAE,IAAI,CAAC,gCAAgC;YACzC,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,aAAa;SACpB,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB,KAAK,EACL,aAAa;YACX,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,oCAAoC,CACzC,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,KAAyB,EACzB,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,gCAAsB,CAC/B,IAAA,oBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AA1KD,oEA0KC"}