@wormhole-foundation/sdk-evm-ntt 3.0.0-multi-token.beta.0 → 3.0.0-multi-token.beta.2

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 (193) hide show
  1. package/dist/cjs/axelar.d.ts +35 -0
  2. package/dist/cjs/axelar.d.ts.map +1 -0
  3. package/dist/cjs/axelar.js +168 -0
  4. package/dist/cjs/axelar.js.map +1 -0
  5. package/dist/cjs/ethers-contracts/{multiTokenNtt/1_1_0/GmpManager.sol → 1_1_0}/GmpManager.d.ts +55 -2
  6. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.d.ts.map +1 -0
  7. package/dist/cjs/ethers-contracts/1_1_0/GmpManager.js.map +1 -0
  8. package/dist/cjs/ethers-contracts/{multiTokenNtt/1_1_0/MultiTokenNtt.sol → 1_1_0}/MultiTokenNtt.d.ts +59 -51
  9. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.d.ts.map +1 -0
  10. package/dist/cjs/ethers-contracts/1_1_0/MultiTokenNtt.js.map +1 -0
  11. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.d.ts +1301 -0
  12. package/dist/cjs/ethers-contracts/{multiTokenNtt/1_1_0/factories/GmpManager.sol → 1_1_0/factories}/GmpManager__factory.d.ts.map +1 -1
  13. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.js +1704 -0
  14. package/dist/cjs/ethers-contracts/1_1_0/factories/GmpManager__factory.js.map +1 -0
  15. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts +1350 -0
  16. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts.map +1 -0
  17. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js +1777 -0
  18. package/dist/cjs/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js.map +1 -0
  19. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts +374 -14
  20. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts.map +1 -1
  21. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.js +487 -23
  22. package/dist/cjs/ethers-contracts/1_1_0/factories/NttManager__factory.js.map +1 -1
  23. package/dist/cjs/ethers-contracts/1_1_0/index.d.ts +4 -0
  24. package/dist/cjs/ethers-contracts/1_1_0/index.d.ts.map +1 -1
  25. package/dist/cjs/ethers-contracts/1_1_0/index.js +5 -1
  26. package/dist/cjs/ethers-contracts/1_1_0/index.js.map +1 -1
  27. package/dist/cjs/ethers-contracts/multiTokenNtt/index.d.ts +3 -4
  28. package/dist/cjs/ethers-contracts/multiTokenNtt/index.d.ts.map +1 -1
  29. package/dist/cjs/ethers-contracts/multiTokenNtt/index.js +3 -4
  30. package/dist/cjs/ethers-contracts/multiTokenNtt/index.js.map +1 -1
  31. package/dist/cjs/index.d.ts +1 -1
  32. package/dist/cjs/index.d.ts.map +1 -1
  33. package/dist/cjs/index.js +1 -1
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/multiTokenNtt.d.ts +18 -14
  36. package/dist/cjs/multiTokenNtt.d.ts.map +1 -1
  37. package/dist/cjs/multiTokenNtt.js +151 -95
  38. package/dist/cjs/multiTokenNtt.js.map +1 -1
  39. package/dist/cjs/multiTokenNttBindings.d.ts +11 -11
  40. package/dist/cjs/multiTokenNttBindings.d.ts.map +1 -1
  41. package/dist/cjs/multiTokenNttWithExecutor.d.ts +5 -8
  42. package/dist/cjs/multiTokenNttWithExecutor.d.ts.map +1 -1
  43. package/dist/cjs/multiTokenNttWithExecutor.js +19 -40
  44. package/dist/cjs/multiTokenNttWithExecutor.js.map +1 -1
  45. package/dist/cjs/ntt.d.ts.map +1 -1
  46. package/dist/cjs/ntt.js +4 -5
  47. package/dist/cjs/ntt.js.map +1 -1
  48. package/dist/cjs/nttWithExecutor.d.ts +6 -6
  49. package/dist/cjs/nttWithExecutor.d.ts.map +1 -1
  50. package/dist/cjs/nttWithExecutor.js +36 -32
  51. package/dist/cjs/nttWithExecutor.js.map +1 -1
  52. package/dist/esm/axelar.d.ts +35 -0
  53. package/dist/esm/axelar.d.ts.map +1 -0
  54. package/dist/esm/axelar.js +158 -0
  55. package/dist/esm/axelar.js.map +1 -0
  56. package/dist/esm/ethers-contracts/{multiTokenNtt/1_1_0/GmpManager.sol → 1_1_0}/GmpManager.d.ts +55 -2
  57. package/dist/esm/ethers-contracts/1_1_0/GmpManager.d.ts.map +1 -0
  58. package/dist/esm/ethers-contracts/1_1_0/GmpManager.js.map +1 -0
  59. package/dist/esm/ethers-contracts/{multiTokenNtt/1_1_0/MultiTokenNtt.sol → 1_1_0}/MultiTokenNtt.d.ts +59 -51
  60. package/dist/esm/ethers-contracts/1_1_0/MultiTokenNtt.d.ts.map +1 -0
  61. package/dist/esm/ethers-contracts/1_1_0/MultiTokenNtt.js.map +1 -0
  62. package/dist/esm/ethers-contracts/1_1_0/factories/GmpManager__factory.d.ts +1301 -0
  63. package/dist/esm/ethers-contracts/{multiTokenNtt/1_1_0/factories/GmpManager.sol → 1_1_0/factories}/GmpManager__factory.d.ts.map +1 -1
  64. package/dist/esm/ethers-contracts/1_1_0/factories/GmpManager__factory.js +1700 -0
  65. package/dist/esm/ethers-contracts/1_1_0/factories/GmpManager__factory.js.map +1 -0
  66. package/dist/esm/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts +1350 -0
  67. package/dist/esm/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.d.ts.map +1 -0
  68. package/dist/esm/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js +1773 -0
  69. package/dist/esm/ethers-contracts/1_1_0/factories/MultiTokenNtt__factory.js.map +1 -0
  70. package/dist/esm/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts +374 -14
  71. package/dist/esm/ethers-contracts/1_1_0/factories/NttManager__factory.d.ts.map +1 -1
  72. package/dist/esm/ethers-contracts/1_1_0/factories/NttManager__factory.js +487 -23
  73. package/dist/esm/ethers-contracts/1_1_0/factories/NttManager__factory.js.map +1 -1
  74. package/dist/esm/ethers-contracts/1_1_0/index.d.ts +4 -0
  75. package/dist/esm/ethers-contracts/1_1_0/index.d.ts.map +1 -1
  76. package/dist/esm/ethers-contracts/1_1_0/index.js +2 -0
  77. package/dist/esm/ethers-contracts/1_1_0/index.js.map +1 -1
  78. package/dist/esm/ethers-contracts/multiTokenNtt/index.d.ts +3 -4
  79. package/dist/esm/ethers-contracts/multiTokenNtt/index.d.ts.map +1 -1
  80. package/dist/esm/ethers-contracts/multiTokenNtt/index.js +3 -4
  81. package/dist/esm/ethers-contracts/multiTokenNtt/index.js.map +1 -1
  82. package/dist/esm/index.d.ts +1 -1
  83. package/dist/esm/index.d.ts.map +1 -1
  84. package/dist/esm/index.js +1 -1
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/multiTokenNtt.d.ts +18 -14
  87. package/dist/esm/multiTokenNtt.d.ts.map +1 -1
  88. package/dist/esm/multiTokenNtt.js +151 -95
  89. package/dist/esm/multiTokenNtt.js.map +1 -1
  90. package/dist/esm/multiTokenNttBindings.d.ts +11 -11
  91. package/dist/esm/multiTokenNttBindings.d.ts.map +1 -1
  92. package/dist/esm/multiTokenNttWithExecutor.d.ts +5 -8
  93. package/dist/esm/multiTokenNttWithExecutor.d.ts.map +1 -1
  94. package/dist/esm/multiTokenNttWithExecutor.js +20 -41
  95. package/dist/esm/multiTokenNttWithExecutor.js.map +1 -1
  96. package/dist/esm/ntt.d.ts.map +1 -1
  97. package/dist/esm/ntt.js +1 -2
  98. package/dist/esm/ntt.js.map +1 -1
  99. package/dist/esm/nttWithExecutor.d.ts +6 -6
  100. package/dist/esm/nttWithExecutor.d.ts.map +1 -1
  101. package/dist/esm/nttWithExecutor.js +40 -36
  102. package/dist/esm/nttWithExecutor.js.map +1 -1
  103. package/package.json +6 -6
  104. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/GmpManager.d.ts.map +0 -1
  105. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/GmpManager.js.map +0 -1
  106. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.d.ts +0 -2
  107. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.d.ts.map +0 -1
  108. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.js +0 -3
  109. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.js.map +0 -1
  110. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/MultiTokenNtt.d.ts.map +0 -1
  111. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/MultiTokenNtt.js.map +0 -1
  112. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.d.ts +0 -2
  113. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.d.ts.map +0 -1
  114. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.js +0 -3
  115. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.js.map +0 -1
  116. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/common.d.ts +0 -51
  117. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/common.d.ts.map +0 -1
  118. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/common.js +0 -3
  119. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/common.js.map +0 -1
  120. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.d.ts +0 -1231
  121. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.js +0 -1611
  122. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.js.map +0 -1
  123. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.d.ts +0 -2
  124. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.d.ts.map +0 -1
  125. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.js +0 -9
  126. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.js.map +0 -1
  127. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.d.ts +0 -1354
  128. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.d.ts.map +0 -1
  129. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.js +0 -1781
  130. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.js.map +0 -1
  131. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.d.ts +0 -2
  132. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.d.ts.map +0 -1
  133. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.js +0 -9
  134. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.js.map +0 -1
  135. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/index.d.ts +0 -3
  136. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/index.d.ts.map +0 -1
  137. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/index.js +0 -32
  138. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/factories/index.js.map +0 -1
  139. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/index.d.ts +0 -5
  140. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/index.d.ts.map +0 -1
  141. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/index.js +0 -8
  142. package/dist/cjs/ethers-contracts/multiTokenNtt/1_1_0/index.js.map +0 -1
  143. package/dist/cjs/trimmedAmount.d.ts +0 -9
  144. package/dist/cjs/trimmedAmount.d.ts.map +0 -1
  145. package/dist/cjs/trimmedAmount.js +0 -30
  146. package/dist/cjs/trimmedAmount.js.map +0 -1
  147. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/GmpManager.d.ts.map +0 -1
  148. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/GmpManager.js.map +0 -1
  149. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.d.ts +0 -2
  150. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.d.ts.map +0 -1
  151. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.js +0 -2
  152. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/GmpManager.sol/index.js.map +0 -1
  153. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/MultiTokenNtt.d.ts.map +0 -1
  154. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/MultiTokenNtt.js.map +0 -1
  155. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.d.ts +0 -2
  156. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.d.ts.map +0 -1
  157. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.js +0 -2
  158. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/MultiTokenNtt.sol/index.js.map +0 -1
  159. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/common.d.ts +0 -51
  160. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/common.d.ts.map +0 -1
  161. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/common.js +0 -2
  162. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/common.js.map +0 -1
  163. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.d.ts +0 -1231
  164. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.js +0 -1607
  165. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/GmpManager__factory.js.map +0 -1
  166. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.d.ts +0 -2
  167. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.d.ts.map +0 -1
  168. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.js +0 -5
  169. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/GmpManager.sol/index.js.map +0 -1
  170. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.d.ts +0 -1354
  171. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.d.ts.map +0 -1
  172. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.js +0 -1777
  173. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/MultiTokenNtt__factory.js.map +0 -1
  174. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.d.ts +0 -2
  175. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.d.ts.map +0 -1
  176. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.js +0 -5
  177. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/MultiTokenNtt.sol/index.js.map +0 -1
  178. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/index.d.ts +0 -3
  179. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/index.d.ts.map +0 -1
  180. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/index.js +0 -6
  181. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/factories/index.js.map +0 -1
  182. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/index.d.ts +0 -5
  183. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/index.d.ts.map +0 -1
  184. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/index.js +0 -3
  185. package/dist/esm/ethers-contracts/multiTokenNtt/1_1_0/index.js.map +0 -1
  186. package/dist/esm/trimmedAmount.d.ts +0 -9
  187. package/dist/esm/trimmedAmount.d.ts.map +0 -1
  188. package/dist/esm/trimmedAmount.js +0 -24
  189. package/dist/esm/trimmedAmount.js.map +0 -1
  190. /package/dist/cjs/ethers-contracts/{multiTokenNtt/1_1_0/GmpManager.sol → 1_1_0}/GmpManager.js +0 -0
  191. /package/dist/cjs/ethers-contracts/{multiTokenNtt/1_1_0/MultiTokenNtt.sol → 1_1_0}/MultiTokenNtt.js +0 -0
  192. /package/dist/esm/ethers-contracts/{multiTokenNtt/1_1_0/GmpManager.sol → 1_1_0}/GmpManager.js +0 -0
  193. /package/dist/esm/ethers-contracts/{multiTokenNtt/1_1_0/MultiTokenNtt.sol → 1_1_0}/MultiTokenNtt.js +0 -0
@@ -1,13 +1,11 @@
1
- import { nativeChainIds, toChain, toChainId, } from "@wormhole-foundation/sdk-base";
2
- import { isNative, toNative, toUniversal, universalAddress, } from "@wormhole-foundation/sdk-definitions";
1
+ import { encoding, nativeChainIds, toChain, toChainId, } from "@wormhole-foundation/sdk-base";
2
+ import { isNative, serialize, toNative, toUniversal, universalAddress, } from "@wormhole-foundation/sdk-definitions";
3
3
  import { EvmAddress, EvmPlatform, EvmUnsignedTransaction, addChainId, addFrom, } from "@wormhole-foundation/sdk-evm";
4
4
  import "@wormhole-foundation/sdk-evm-core";
5
- import { MultiTokenNtt, Ntt, } from "@wormhole-foundation/sdk-definitions-ntt";
6
- import { ethers } from "ethers";
7
- import { EvmNttWormholeTranceiver } from "./ntt.js";
8
- import { Wormhole } from "@wormhole-foundation/sdk-connect";
5
+ import { decodeTrimmedAmount, MultiTokenNtt, Ntt, untrim, } from "@wormhole-foundation/sdk-definitions-ntt";
6
+ import { Contract, ethers, Interface } from "ethers";
9
7
  import { loadAbiVersion, } from "./multiTokenNttBindings.js";
10
- import { decodeTrimmedAmount, untrim, } from "./trimmedAmount.js";
8
+ import { getAxelarGasFee } from "./axelar.js";
11
9
  export class EvmMultiTokenNtt {
12
10
  network;
13
11
  chain;
@@ -15,10 +13,10 @@ export class EvmMultiTokenNtt {
15
13
  contracts;
16
14
  version;
17
15
  chainId;
18
- manager;
19
- gmpManager;
20
- xcvrs;
21
16
  managerAddress;
17
+ multiTokenNtt;
18
+ gmpManager;
19
+ abiBindings;
22
20
  constructor(network, chain, provider, contracts, version = "1.0.0") {
23
21
  this.network = network;
24
22
  this.chain = chain;
@@ -28,29 +26,13 @@ export class EvmMultiTokenNtt {
28
26
  if (!contracts.multiTokenNtt)
29
27
  throw new Error("No Ntt Contracts provided");
30
28
  this.chainId = nativeChainIds.networkChainToNativeChainId.get(network, chain);
29
+ this.abiBindings = loadAbiVersion(this.version);
31
30
  this.managerAddress = contracts.multiTokenNtt.manager;
32
- const abiBindings = loadAbiVersion(this.version);
33
- this.manager = abiBindings.NttManager.connect(contracts.multiTokenNtt.manager, this.provider);
34
- this.gmpManager = abiBindings.GmpManager.connect(contracts.multiTokenNtt.gmpManager, this.provider);
35
- if (contracts.multiTokenNtt.transceiver.wormhole) {
36
- this.xcvrs = [
37
- // Enable more Transceivers here
38
- new EvmNttWormholeTranceiver(
39
- // TODO: make this compatible
40
- // @ts-ignore
41
- this, contracts.multiTokenNtt.transceiver.wormhole, abiBindings),
42
- ];
43
- }
44
- else {
45
- this.xcvrs = [];
46
- }
47
- }
48
- async getTransceiver(ix) {
49
- // TODO: should we make an RPC call here, or just trust that the xcvrs are set up correctly?
50
- return this.xcvrs[ix] || null;
31
+ this.multiTokenNtt = this.abiBindings.MultiTokenNtt.connect(contracts.multiTokenNtt.manager, this.provider);
32
+ this.gmpManager = this.abiBindings.GmpManager.connect(contracts.multiTokenNtt.gmpManager, this.provider);
51
33
  }
52
34
  async isPaused() {
53
- return await this.manager.isPaused();
35
+ return await this.multiTokenNtt.isPaused();
54
36
  }
55
37
  async getIsExecuted(attestation) {
56
38
  const isExecuted = await this.gmpManager.isMessageExecuted(MultiTokenNtt.messageDigest(attestation.emitterChain, attestation.payload.nttManagerPayload));
@@ -74,17 +56,19 @@ export class EvmMultiTokenNtt {
74
56
  const version = await EvmMultiTokenNtt.getVersion(provider, conf.contracts);
75
57
  return new EvmMultiTokenNtt(network, chain, provider, conf.contracts, version);
76
58
  }
77
- encodeOptions(options) {
78
- const ixs = [];
79
- // TODO: add comment about how if you want to use relaying, then use the executor route
80
- ixs.push({
81
- index: 0,
82
- payload: this.xcvrs[0].encodeFlags({ skipRelay: true }),
83
- });
84
- return ixs;
85
- }
59
+ static versionCache = new Map();
86
60
  static async getVersion(provider, contracts) {
87
- const contract = new ethers.Contract(contracts.multiTokenNtt.manager, ["function NTT_MANAGER_VERSION() public view returns (string)"], provider);
61
+ const multiTokenNtt = contracts.multiTokenNtt;
62
+ if (!multiTokenNtt) {
63
+ throw new Error("No multiTokenNtt contracts configured");
64
+ }
65
+ // Use cached version to save on RPC calls
66
+ const cacheKey = `${multiTokenNtt.chain}-${multiTokenNtt.manager}`;
67
+ const cached = EvmMultiTokenNtt.versionCache.get(cacheKey);
68
+ if (cached) {
69
+ return cached;
70
+ }
71
+ const contract = new ethers.Contract(multiTokenNtt.manager, ["function NTT_MANAGER_VERSION() public view returns (string)"], provider);
88
72
  try {
89
73
  const abiVersion = await contract
90
74
  .getFunction("NTT_MANAGER_VERSION")
@@ -92,6 +76,7 @@ export class EvmMultiTokenNtt {
92
76
  if (!abiVersion) {
93
77
  throw new Error("NTT_MANAGER_VERSION not found");
94
78
  }
79
+ EvmMultiTokenNtt.versionCache.set(cacheKey, abiVersion);
95
80
  return abiVersion;
96
81
  }
97
82
  catch (e) {
@@ -99,17 +84,78 @@ export class EvmMultiTokenNtt {
99
84
  throw e;
100
85
  }
101
86
  }
102
- async quoteDeliveryPrice(dstChain, options) {
103
- const [, totalPrice] = await this.gmpManager.quoteDeliveryPrice(toChainId(dstChain), Ntt.encodeTransceiverInstructions(this.encodeOptions(options)));
87
+ async getSendTransceivers(destinationChain) {
88
+ const sendTransceivers = await this.gmpManager.getSendTransceiversWithIndicesForChain(toChainId(destinationChain));
89
+ return await Promise.all(sendTransceivers.map(async (transceiver) => {
90
+ const type = await this.getTransceiverType(transceiver.transceiver);
91
+ return {
92
+ address: transceiver.transceiver,
93
+ index: Number(transceiver.index),
94
+ type,
95
+ };
96
+ }));
97
+ }
98
+ async getReceiveTransceivers(sourceChain) {
99
+ const receiveTransceivers = await this.gmpManager.getReceiveTransceiversWithIndicesForChain(toChainId(sourceChain));
100
+ return await Promise.all(receiveTransceivers.map(async (transceiver) => {
101
+ const type = await this.getTransceiverType(transceiver.transceiver);
102
+ return {
103
+ address: transceiver.transceiver,
104
+ index: Number(transceiver.index),
105
+ type,
106
+ };
107
+ }));
108
+ }
109
+ async transceiverAttestedToMessage(fromChain, transceiverMessage, index) {
110
+ return await this.gmpManager.transceiverAttestedToMessage(MultiTokenNtt.messageDigest(fromChain, transceiverMessage), index);
111
+ }
112
+ async getTransceiverType(transceiverAddress) {
113
+ const transceiverInterface = new Interface([
114
+ "function getTransceiverType() external view returns (string memory)",
115
+ ]);
116
+ const transceiverContract = new Contract(transceiverAddress, transceiverInterface, this.provider);
117
+ return await transceiverContract
118
+ .getFunction("getTransceiverType")
119
+ .staticCall();
120
+ }
121
+ async createTransceiverInstructions(dstChain, gasLimit) {
122
+ const sendTransceivers = await this.getSendTransceivers(dstChain);
123
+ const instructions = await Promise.all(sendTransceivers.map(async (transceiver) => {
124
+ switch (transceiver.type.toLowerCase()) {
125
+ case "wormhole":
126
+ return {
127
+ index: transceiver.index,
128
+ payload: new Uint8Array([1]), // disable standard relayer, use executor route for automatic relay
129
+ };
130
+ case "axelar": {
131
+ // If we fail to fetch the gas fee, then use 1 wei as a fallback.
132
+ // Do *NOT* use 0 wei as the Axelar status API will not return an error.
133
+ // The Axelar relay status should return an invalid gas fee error
134
+ // and the track() method will surface a RelayFailedError for the user
135
+ // to top up the gas fee.
136
+ const gasFee = await getAxelarGasFee(this.network, this.chain, dstChain, gasLimit).catch(() => 1n);
137
+ return {
138
+ index: transceiver.index,
139
+ payload: encoding.bignum.toBytes(gasFee, 32),
140
+ };
141
+ }
142
+ default:
143
+ throw new Error(`Unsupported transceiver type: ${transceiver.type} at index ${transceiver.index}`);
144
+ }
145
+ }));
146
+ // The contract expects the instructions to be sorted by transceiver index.
147
+ instructions.sort((a, b) => a.index - b.index);
148
+ return instructions;
149
+ }
150
+ async quoteDeliveryPrice(dstChain, instructions) {
151
+ const [, totalPrice] = await this.gmpManager.quoteDeliveryPrice(toChainId(dstChain), Ntt.encodeTransceiverInstructions(instructions));
104
152
  return totalPrice;
105
153
  }
106
- async *transfer(sender, token, amount, destination) {
154
+ async *transfer(sender, token, amount, destination, destinationGasLimit) {
107
155
  const senderAddress = new EvmAddress(sender).toString();
108
- // TODO: get rid of this
109
- const options = {};
110
- const totalPrice = await this.quoteDeliveryPrice(destination.chain, options);
156
+ const transceiverInstructions = await this.createTransceiverInstructions(destination.chain, destinationGasLimit);
157
+ const totalPrice = await this.quoteDeliveryPrice(destination.chain, transceiverInstructions);
111
158
  const receiver = universalAddress(destination);
112
- const transceiverInstructions = Ntt.encodeTransceiverInstructions(this.encodeOptions(options));
113
159
  let transferTx;
114
160
  if (isNative(token)) {
115
161
  const gasTokenTransferArgs = {
@@ -118,11 +164,11 @@ export class EvmMultiTokenNtt {
118
164
  recipient: receiver,
119
165
  refundAddress: receiver,
120
166
  shouldQueue: false,
121
- transceiverInstructions,
167
+ transceiverInstructions: Ntt.encodeTransceiverInstructions(transceiverInstructions),
122
168
  additionalPayload: "0x",
123
169
  };
124
170
  transferTx =
125
- await this.manager.wrapAndTransferGasToken.populateTransaction(gasTokenTransferArgs, { value: amount + totalPrice });
171
+ await this.multiTokenNtt.wrapAndTransferGasToken.populateTransaction(gasTokenTransferArgs, { value: amount + totalPrice });
126
172
  }
127
173
  else {
128
174
  //TODO check for ERC-2612 (permit) support on token?
@@ -139,39 +185,23 @@ export class EvmMultiTokenNtt {
139
185
  recipient: receiver,
140
186
  refundAddress: receiver,
141
187
  shouldQueue: false,
142
- transceiverInstructions,
143
- permit: {
144
- permitted: {
145
- token: token.toString(),
146
- amount: 0n,
147
- },
148
- nonce: 0n,
149
- deadline: 0n,
150
- },
151
- permitOwner: ethers.ZeroAddress,
152
- permitSignature: "0x",
188
+ transceiverInstructions: Ntt.encodeTransceiverInstructions(transceiverInstructions),
153
189
  additionalPayload: "0x",
154
190
  };
155
- transferTx = await this.manager.transfer.populateTransaction(transferArgs, { value: totalPrice });
191
+ transferTx = await this.multiTokenNtt.transfer.populateTransaction(transferArgs, { value: totalPrice });
156
192
  }
157
193
  yield this.createUnsignedTx(addFrom(transferTx, senderAddress), "Ntt.transfer");
158
194
  }
159
- async *redeem(attestations) {
160
- if (attestations.length !== this.xcvrs.length)
161
- throw new Error("Not enough attestations for the registered Transceivers");
162
- for (const idx in this.xcvrs) {
163
- const xcvr = this.xcvrs[idx];
164
- const attestation = attestations[idx];
165
- if (attestation?.payloadName !== "WormholeTransfer") {
166
- // TODO: support standard relayer attestations
167
- // which must be submitted to the delivery provider
168
- throw new Error("Invalid attestation type for redeem");
169
- }
170
- // TODO: deserialize is throwing. casting is fine for now
171
- // const serialized = serialize(attestation);
172
- // const vaa = deserialize("Ntt:WormholeTransfer", serialized);
173
- yield* xcvr.receive(attestation);
195
+ async *redeem(attestation) {
196
+ const transceivers = await this.getReceiveTransceivers(attestation.emitterChain);
197
+ // TODO: support other transceiver types
198
+ const wormholeTransceiver = transceivers.find((t) => t.type === "wormhole");
199
+ if (!wormholeTransceiver) {
200
+ throw new Error("No Wormhole transceiver registered for this chain");
174
201
  }
202
+ const transceiver = this.abiBindings.NttTransceiver.connect(wormholeTransceiver.address, this.provider);
203
+ const tx = await transceiver.receiveMessage.populateTransaction(serialize(attestation));
204
+ yield this.createUnsignedTx(tx, "NttTransceiver.receiveMessage");
175
205
  }
176
206
  async getTokenMeta(token) {
177
207
  const tokenAddress = token.address.toString();
@@ -186,14 +216,14 @@ export class EvmMultiTokenNtt {
186
216
  }
187
217
  async getCurrentOutboundCapacity(localToken) {
188
218
  const { chain, address } = await this.getOriginalToken(localToken);
189
- return await this.manager.getCurrentOutboundCapacity({
219
+ return await this.multiTokenNtt.getCurrentOutboundCapacity({
190
220
  chainId: toChainId(chain),
191
221
  tokenAddress: address.toUint8Array(),
192
222
  });
193
223
  }
194
224
  async getOutboundLimit(localToken) {
195
225
  const { chain, address } = await this.getOriginalToken(localToken);
196
- const encoded = (await this.manager.getOutboundLimitParams({
226
+ const encoded = (await this.multiTokenNtt.getOutboundLimitParams({
197
227
  chainId: toChainId(chain),
198
228
  tokenAddress: address.toUint8Array(),
199
229
  })).limit;
@@ -202,7 +232,7 @@ export class EvmMultiTokenNtt {
202
232
  return untrim(trimmedAmount, tokenMeta.decimals);
203
233
  }
204
234
  async getCurrentInboundCapacity(originalToken, fromChain) {
205
- return await this.manager.getCurrentInboundCapacity({
235
+ return await this.multiTokenNtt.getCurrentInboundCapacity({
206
236
  chainId: toChainId(originalToken.chain),
207
237
  tokenAddress: originalToken.address.toUint8Array(),
208
238
  }, toChainId(fromChain));
@@ -211,7 +241,7 @@ export class EvmMultiTokenNtt {
211
241
  const localToken = await this.getLocalToken(originalToken);
212
242
  if (localToken === null)
213
243
  return null; // Token not yet created
214
- const encoded = (await this.manager.getInboundLimitParams({
244
+ const encoded = (await this.multiTokenNtt.getInboundLimitParams({
215
245
  chainId: toChainId(originalToken.chain),
216
246
  tokenAddress: originalToken.address.toUint8Array(),
217
247
  }, toChainId(fromChain))).limit;
@@ -222,27 +252,41 @@ export class EvmMultiTokenNtt {
222
252
  return untrim(trimmedAmount, tokenMeta.decimals);
223
253
  }
224
254
  async getRateLimitDuration() {
225
- return await this.manager.rateLimitDuration();
255
+ return await this.multiTokenNtt.rateLimitDuration();
226
256
  }
227
257
  async getInboundQueuedTransfer(fromChain, transceiverMessage) {
228
- const queuedTransfer = await this.manager.getInboundQueuedTransfer(MultiTokenNtt.messageDigest(fromChain, transceiverMessage));
258
+ const digest = MultiTokenNtt.messageDigest(fromChain, transceiverMessage);
259
+ const queuedTransfer = await this.multiTokenNtt.getInboundQueuedTransfer(digest);
229
260
  if (queuedTransfer.txTimestamp > 0n) {
230
- const { recipient, amount, txTimestamp } = queuedTransfer;
261
+ const { sourceChainId, txTimestamp } = queuedTransfer;
231
262
  const duration = await this.getRateLimitDuration();
232
263
  return {
233
- recipient: new EvmAddress(recipient),
234
- amount: amount,
264
+ sourceChain: toChain(sourceChainId),
235
265
  rateLimitExpiryTimestamp: Number(txTimestamp + duration),
236
266
  };
237
267
  }
238
268
  return null;
239
269
  }
240
- async *completeInboundQueuedTransfer(fromChain, transceiverMessage, payer) {
241
- const tx = await this.manager.completeInboundQueuedTransfer.populateTransaction(MultiTokenNtt.messageDigest(fromChain, transceiverMessage));
270
+ async *completeInboundQueuedTransfer(fromChain, transceiverMessage) {
271
+ const { trimmedAmount, token, sender, to } = transceiverMessage.payload.data;
272
+ const nttStruct = {
273
+ amount: trimmedAmount.amount,
274
+ token: {
275
+ meta: token.meta,
276
+ token: {
277
+ chainId: toChainId(token.token.chainId),
278
+ tokenAddress: token.token.tokenAddress.toString(),
279
+ },
280
+ },
281
+ sender: sender.toString(),
282
+ to: to.toString(),
283
+ additionalPayload: "0x",
284
+ };
285
+ const tx = await this.multiTokenNtt.completeInboundQueuedTransfer.populateTransaction(nttStruct);
242
286
  yield this.createUnsignedTx(tx, "Ntt.completeInboundQueuedTransfer");
243
287
  }
244
288
  async getOriginalToken(localToken) {
245
- const [tokenId] = await this.manager.getTokenId(localToken.address.toString());
289
+ const [tokenId] = await this.multiTokenNtt.getTokenId(localToken.address.toString());
246
290
  const chain = toChain(tokenId.chainId);
247
291
  const address = toUniversal(chain, tokenId.tokenAddress);
248
292
  return {
@@ -250,22 +294,23 @@ export class EvmMultiTokenNtt {
250
294
  address,
251
295
  };
252
296
  }
253
- // This will return null if the token is not yet created
297
+ // This will return null if the token doesn't exist
254
298
  async getLocalToken(originalToken) {
255
- const localToken = await this.manager.getToken({
299
+ const localToken = await this.multiTokenNtt.getToken({
256
300
  chainId: toChainId(originalToken.chain),
257
301
  tokenAddress: originalToken.address.toUint8Array(),
258
302
  });
259
303
  if (localToken === ethers.ZeroAddress)
260
304
  return null;
261
- return Wormhole.tokenId(this.chain, localToken);
305
+ return { chain: this.chain, address: toNative(this.chain, localToken) };
262
306
  }
263
307
  async getWrappedNativeToken() {
264
- const wethAddress = await this.manager.WETH();
265
- return Wormhole.tokenId(this.chain, wethAddress);
308
+ const wethAddress = await this.multiTokenNtt.WETH();
309
+ return { chain: this.chain, address: toNative(this.chain, wethAddress) };
266
310
  }
311
+ // If the local token doesn't exist yet, this will return the address where it will be deployed
267
312
  async calculateLocalTokenAddress(originalToken, tokenMeta) {
268
- const tokenImplementation = await this.manager.tokenImplementation();
313
+ const tokenImplementation = await this.multiTokenNtt.tokenImplementation();
269
314
  const initializeSelector = ethers.id("initialize(string,string,uint8)");
270
315
  const coder = ethers.AbiCoder.defaultAbiCoder();
271
316
  const constructorArgs = coder.encode(["address", "bytes"], [
@@ -279,7 +324,7 @@ export class EvmMultiTokenNtt {
279
324
  ]),
280
325
  ]),
281
326
  ]);
282
- const creationCode = await this.manager.tokenProxyCreationCode();
327
+ const creationCode = await this.multiTokenNtt.tokenProxyCreationCode();
283
328
  const initCode = ethers.concat([creationCode, constructorArgs]);
284
329
  const initCodeHash = ethers.keccak256(initCode);
285
330
  const salt = ethers.solidityPackedKeccak256(["uint16", "bytes32"], [toChainId(originalToken.chain), originalToken.address.toUint8Array()]);
@@ -290,5 +335,16 @@ export class EvmMultiTokenNtt {
290
335
  createUnsignedTx(txReq, description, parallelizable = false) {
291
336
  return new EvmUnsignedTransaction(addChainId(txReq, this.chainId), this.network, this.chain, description, parallelizable);
292
337
  }
338
+ // Upper bound estimate of gas limit needed for transfer on the destination chain
339
+ async estimateGasLimit(originalToken) {
340
+ const GAS_LIMIT = 500000n;
341
+ // More gas is needed to create the token on the destination chain
342
+ const GAS_LIMIT_CREATE_TOKEN = 1000000n;
343
+ // Check if the token already exists on the destination chain
344
+ const existingToken = await this.getLocalToken(originalToken);
345
+ const isUnattested = existingToken === null;
346
+ const gasLimit = isUnattested ? GAS_LIMIT_CREATE_TOKEN : GAS_LIMIT;
347
+ return gasLimit;
348
+ }
293
349
  }
294
350
  //# sourceMappingURL=multiTokenNtt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiTokenNtt.js","sourceRoot":"","sources":["../../src/multiTokenNtt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multiTokenNtt.js","sourceRoot":"","sources":["../../src/multiTokenNtt.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAKL,QAAQ,EACR,SAAS,EAGT,QAAQ,EACR,WAAW,EACX,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,OAAO,GACR,MAAM,8BAA8B,CAAC;AACtC,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EACL,mBAAmB,EAEnB,aAAa,EACb,GAAG,EAEH,MAAM,GACP,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAiB,MAAM,QAAQ,CAAC;AACpE,OAAO,EAEL,cAAc,GAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,OAAO,gBAAgB;IAUhB;IACA;IACA;IACA;IACA;IAXF,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,aAAa,CAAsC;IACnD,UAAU,CAAgC;IAC1C,WAAW,CAAoC;IAExD,YACW,OAAU,EACV,KAAQ,EACR,QAAkB,EAClB,SAAkE,EAClE,UAAkB,OAAO;QAJzB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAU;QAClB,cAAS,GAAT,SAAS,CAAyD;QAClE,YAAO,GAAP,OAAO,CAAkB;QAElC,IAAI,CAAC,SAAS,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE3E,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,2BAA2B,CAAC,GAAG,CAC3D,OAAO,EACP,KAAK,CACI,CAAC;QAEZ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC;QAEtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CACzD,SAAS,CAAC,aAAa,CAAC,OAAO,EAC/B,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CACnD,SAAS,CAAC,aAAa,CAAC,UAAU,EAClC,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAsC;QAEtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CACxD,aAAa,CAAC,aAAa,CACzB,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,OAAO,CAAC,iBAAiB,CACtC,CACF,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,8EAA8E;QAC9E,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAC3E,OAAO,CAAC,eAAe,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,WAAsC;QAEtC,OAAO,CACL,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAClC,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,OAAO,CAAC,iBAAiB,CACtC,CAAC,KAAK,IAAI,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAsC;QAEtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,CACpD,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,EACnC,aAAa,CAAC,aAAa,CACzB,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,OAAO,CAAC,iBAAiB,CACtC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAkB,EAClB,MAAwC;QAExC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,WAAW,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,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,OAAO,IAAI,gBAAgB,CACzB,OAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,QAAyB,EACzB,SAAkE;QAElE,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ,CAClC,aAAa,CAAC,OAAO,EACrB,CAAC,6DAA6D,CAAC,EAC/D,QAAQ,CACT,CAAC;QACF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,QAAQ;iBAC9B,WAAW,CAAC,qBAAqB,CAAC;iBAClC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxD,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mDAAmD,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,CACtF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,gBAAuB;QAEvB,MAAM,gBAAgB,GACpB,MAAM,IAAI,CAAC,UAAU,CAAC,sCAAsC,CAC1D,SAAS,CAAC,gBAAgB,CAAC,CAC5B,CAAC;QAEJ,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,WAAW;gBAChC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;gBAChC,IAAI;aACL,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,WAAkB;QAElB,MAAM,mBAAmB,GACvB,MAAM,IAAI,CAAC,UAAU,CAAC,yCAAyC,CAC7D,SAAS,CAAC,WAAW,CAAC,CACvB,CAAC;QAEJ,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,WAAW;gBAChC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;gBAChC,IAAI;aACL,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,SAAgB,EAChB,kBAAyC,EACzC,KAAa;QAEb,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CACvD,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC1D,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,kBAA0B;QAE1B,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC;YACzC,qEAAqE;SACtE,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,IAAI,QAAQ,CACtC,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,OAAO,MAAM,mBAAmB;aAC7B,WAAW,CAAC,oBAAoB,CAAC;aACjC,UAAU,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,QAAe,EACf,QAAgB;QAEhB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,YAAY,GAAiC,MAAM,OAAO,CAAC,GAAG,CAClE,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACzC,QAAQ,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvC,KAAK,UAAU;oBACb,OAAO;wBACL,KAAK,EAAE,WAAW,CAAC,KAAK;wBACxB,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mEAAmE;qBAClG,CAAC;gBACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,iEAAiE;oBACjE,wEAAwE;oBACxE,iEAAiE;oBACjE,sEAAsE;oBACtE,yBAAyB;oBACzB,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,QAAQ,EACR,QAAQ,CACT,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAClB,OAAO;wBACL,KAAK,EAAE,WAAW,CAAC,KAAK;wBACxB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;qBAC7C,CAAC;gBACJ,CAAC;gBACD;oBACE,MAAM,IAAI,KAAK,CACb,iCAAiC,WAAW,CAAC,IAAI,aAAa,WAAW,CAAC,KAAK,EAAE,CAClF,CAAC;YACN,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,2EAA2E;QAC3E,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,YAA0C;QAE1C,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAC7D,SAAS,CAAC,QAAQ,CAAC,EACnB,GAAG,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAChD,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,KAAsB,EACtB,MAAc,EACd,WAAyB,EACzB,mBAA2B;QAE3B,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAExD,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CACtE,WAAW,CAAC,KAAK,EACjB,mBAAmB,CACpB,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC9C,WAAW,CAAC,KAAK,EACjB,uBAAuB,CACxB,CAAC;QAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,oBAAoB,GAAG;gBAC3B,MAAM;gBACN,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC5C,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,KAAK;gBAClB,uBAAuB,EAAE,GAAG,CAAC,6BAA6B,CACxD,uBAAuB,CACxB;gBACD,iBAAiB,EAAE,IAAI;aACxB,CAAC;YAEF,UAAU;gBACR,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,mBAAmB,CAClE,oBAAoB,EACpB,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAC/B,CAAC;QACN,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,aAAa,GAAG,WAAW,CAAC,sBAAsB,CACtD,IAAI,CAAC,QAAQ,EACb,KAAK,CAAC,QAAQ,EAAE,CACjB,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,SAAS,CAC7C,aAAa,EACb,IAAI,CAAC,cAAc,CACpB,CAAC;YACF,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAC/D,IAAI,CAAC,cAAc,EACnB,MAAM,CACP,CAAC;gBAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,EACjC,aAAa,CACd,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG;gBACnB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;gBACvB,MAAM;gBACN,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC5C,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,KAAK;gBAClB,uBAAuB,EAAE,GAAG,CAAC,6BAA6B,CACxD,uBAAuB,CACxB;gBACD,iBAAiB,EAAE,IAAI;aACxB,CAAC;YAEF,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAChE,YAAY,EACZ,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,CACzB,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAClC,cAAc,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,WAAsC;QAClD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACpD,WAAW,CAAC,YAAY,CACzB,CAAC;QAEF,wCAAwC;QACxC,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CACzD,mBAAmB,CAAC,OAAO,EAC3B,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAC7D,SAAS,CAAC,WAAW,CAAC,CACvB,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAc;QAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,WAAW,CAAC,sBAAsB,CAClD,IAAI,CAAC,QAAQ,EACb,YAAY,CACb,CAAC;QAEF,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CACzC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,SAAS,CAAC,IAAI,EAAE;YAChB,SAAS,CAAC,MAAM,EAAE;YAClB,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,UAAmB;QAClD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnE,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC;YACzD,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAmB;QACxC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAyB,CACpC,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;YAC9C,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;SACrC,CAAC,CACH,CAAC,KAAK,CAAC;QAER,MAAM,aAAa,GAAkB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,aAA4C,EAC5C,SAAgB;QAEhB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACvD;YACE,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACvC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE;SACnD,EACD,SAAS,CAAC,SAAS,CAAC,CACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,aAA4C,EAC5C,SAAgB;QAEhB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QAE9D,MAAM,OAAO,GAAyB,CACpC,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAC5C;YACE,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACvC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE;SACnD,EACD,SAAS,CAAC,SAAS,CAAC,CACrB,CACF,CAAC,KAAK,CAAC;QAER,MAAM,aAAa,GAAkB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,aAAa,CAAC,MAAM,KAAK,EAAE,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC;YAC7D,OAAO,IAAI,CAAC;QAEd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,SAAgB,EAChB,kBAAyC;QAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,CACtE,MAAM,CACP,CAAC;QACF,IAAI,cAAc,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnD,OAAO;gBACL,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC;gBACnC,wBAAwB,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;aACzD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,CAAC,6BAA6B,CAClC,SAAgB,EAChB,kBAAyC;QAEzC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GACxC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC;QAElC,MAAM,SAAS,GAAuD;YACpE,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE;oBACL,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;oBACvC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;iBAClD;aACF;YACD,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;YACjB,iBAAiB,EAAE,IAAI;SACxB,CAAC;QAEF,MAAM,EAAE,GACN,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,mBAAmB,CACxE,SAAS,CACV,CAAC;QAEJ,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,UAAmB;QAEnB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CACnD,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC9B,CAAC;QAEF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAEzD,OAAO;YACL,KAAK;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,aAAa,CACjB,aAA4C;QAE5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACnD,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACvC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE;SACnD,CAAC,CAAC;QAEH,IAAI,UAAU,KAAK,MAAM,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAEnD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,0BAA0B,CAC9B,aAA4C,EAC5C,SAAkC;QAElC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAE3E,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC;QAExE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAEhD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAClC,CAAC,SAAS,EAAE,OAAO,CAAC,EACpB;YACE,mBAAmB;YACnB,MAAM,CAAC,MAAM,CAAC;gBACZ,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/B,KAAK,CAAC,MAAM,CACV,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC7B;oBACE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC3B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC7B,SAAS,CAAC,QAAQ;iBACnB,CACF;aACF,CAAC;SACH,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;QAEvE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,IAAI,GAAG,MAAM,CAAC,uBAAuB,CACzC,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CACvE,CAAC;QAEF,wEAAwE;QACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAChD,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,YAAY,CACb,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB,CACd,KAAgC,EAChC,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,sBAAsB,CAC/B,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,gBAAgB,CACpB,aAA4C;QAE5C,MAAM,SAAS,GAAG,OAAQ,CAAC;QAE3B,kEAAkE;QAClE,MAAM,sBAAsB,GAAG,QAAU,CAAC;QAE1C,6DAA6D;QAC7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC;QAE5C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnE,OAAO,QAAQ,CAAC;IAClB,CAAC"}
@@ -2,27 +2,27 @@ import { Provider } from "ethers";
2
2
  import { _1_1_0 } from "./ethers-contracts/multiTokenNtt/index.js";
3
3
  import { NttTransceiverBindings } from "./bindings.js";
4
4
  export declare const abiVersions: readonly [readonly ["1.1.0", {
5
- NttManager: {
6
- connect: typeof import("./ethers-contracts/multiTokenNtt/1_1_0/index.js").MultiTokenNtt__factory.connect;
5
+ MultiTokenNtt: {
6
+ connect: typeof import("./ethers-contracts/1_1_0/index.js").MultiTokenNtt__factory.connect;
7
7
  };
8
8
  NttTransceiver: {
9
9
  connect: typeof import("./ethers-contracts/1_1_0/index.js").WormholeTransceiver__factory.connect;
10
10
  };
11
11
  GmpManager: {
12
- connect: typeof import("./ethers-contracts/multiTokenNtt/1_1_0/index.js").GmpManager__factory.connect;
12
+ connect: typeof import("./ethers-contracts/1_1_0/index.js").GmpManager__factory.connect;
13
13
  };
14
14
  }]];
15
15
  export type AbiVersion = (typeof abiVersions)[number][0];
16
16
  export interface MultiTokenNttBindings {
17
- NttManager: MultiTokenNttManagerBindings;
17
+ MultiTokenNtt: MultiTokenNttBindings;
18
18
  GmpManager: GmpManagerBindings;
19
19
  NttTransceiver: NttTransceiverBindings;
20
20
  }
21
- export declare namespace MultiTokenNttManagerBindings {
22
- type NttManager = ReturnType<typeof _1_1_0.NttManager.connect>;
21
+ export declare namespace MultiTokenNttBindings {
22
+ type MultiTokenNtt = ReturnType<typeof _1_1_0.MultiTokenNtt.connect>;
23
23
  }
24
- export interface MultiTokenNttManagerBindings {
25
- connect(address: string, provider: Provider): MultiTokenNttManagerBindings.NttManager;
24
+ export interface MultiTokenNttBindings {
25
+ connect(address: string, provider: Provider): MultiTokenNttBindings.MultiTokenNtt;
26
26
  }
27
27
  export declare namespace GmpManagerBindings {
28
28
  type GmpManager = ReturnType<typeof _1_1_0.GmpManager.connect>;
@@ -31,14 +31,14 @@ export interface GmpManagerBindings {
31
31
  connect(address: string, provider: Provider): GmpManagerBindings.GmpManager;
32
32
  }
33
33
  export declare function loadAbiVersion(targetVersion: string): {
34
- NttManager: {
35
- connect: typeof import("./ethers-contracts/multiTokenNtt/1_1_0/index.js").MultiTokenNtt__factory.connect;
34
+ MultiTokenNtt: {
35
+ connect: typeof import("./ethers-contracts/1_1_0/index.js").MultiTokenNtt__factory.connect;
36
36
  };
37
37
  NttTransceiver: {
38
38
  connect: typeof import("./ethers-contracts/1_1_0/index.js").WormholeTransceiver__factory.connect;
39
39
  };
40
40
  GmpManager: {
41
- connect: typeof import("./ethers-contracts/multiTokenNtt/1_1_0/index.js").GmpManager__factory.connect;
41
+ connect: typeof import("./ethers-contracts/1_1_0/index.js").GmpManager__factory.connect;
42
42
  };
43
43
  };
44
44
  //# sourceMappingURL=multiTokenNttBindings.d.ts.map
@@ -1 +1 @@
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,UAAU,EAAE,4BAA4B,CAAC;IACzC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,sBAAsB,CAAC;CACxC;AAED,yBAAiB,4BAA4B,CAAC;IAC5C,KAAY,UAAU,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CACL,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,4BAA4B,CAAC,UAAU,CAAC;CAC5C;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
+ {"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,8 +1,7 @@
1
- import { type Provider } from "ethers";
1
+ import { type Provider, type TransactionRequest } from "ethers";
2
2
  import { AccountAddress, ChainAddress, ChainsConfig, Contracts, Network, TokenId, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
3
- import { EvmChains, EvmPlatformType } from "@wormhole-foundation/sdk-evm";
3
+ import { EvmChains, EvmPlatformType, EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm";
4
4
  import { type MultiTokenNtt, type MultiTokenNttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt";
5
- import { EvmMultiTokenNtt } from "./multiTokenNtt.js";
6
5
  export declare class EvmMultiTokenNttWithExecutor<N extends Network, C extends EvmChains = EvmChains> implements MultiTokenNttWithExecutor<N, C> {
7
6
  readonly network: N;
8
7
  readonly chain: C;
@@ -11,15 +10,13 @@ export declare class EvmMultiTokenNttWithExecutor<N extends Network, C extends E
11
10
  multiTokenNtt?: MultiTokenNtt.Contracts;
12
11
  };
13
12
  readonly chainId: bigint;
13
+ readonly managerAddress: string;
14
14
  readonly multiTokenNttWithExecutorAddress: string;
15
15
  constructor(network: N, chain: C, provider: Provider, contracts: Contracts & {
16
16
  multiTokenNtt?: MultiTokenNtt.Contracts;
17
17
  });
18
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, multiTokenNtt: EvmMultiTokenNtt<N, C>): AsyncGenerator<UnsignedTransaction<N, C>>;
20
- estimateMsgValueAndGasLimit(originalToken: MultiTokenNtt.OriginalTokenId, multiTokenNtt: EvmMultiTokenNtt<N, C>): Promise<{
21
- msgValue: bigint;
22
- gasLimit: bigint;
23
- }>;
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>;
24
21
  }
25
22
  //# sourceMappingURL=multiTokenNttWithExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiTokenNttWithExecutor.d.ts","sourceRoot":"","sources":["../../src/multiTokenNttWithExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAA2B,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,EAEhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD,qBAAa,4BAA4B,CACvC,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;IAMxC,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;IAP7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,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;WAiBhE,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,EACtC,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAyHtC,2BAA2B,CAC/B,aAAa,EAAE,aAAa,CAAC,eAAe,EAC5C,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAiBnD"}
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;AAWlD,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;IAkG5C,gBAAgB,CACd,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,OAAe,GAC9B,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;CAShC"}