@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
package/dist/cjs/ntt.d.ts DELETED
@@ -1,101 +0,0 @@
1
- import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
- import { AccountAddress, ChainAddress, ChainsConfig, Contracts } from "@wormhole-foundation/sdk-definitions";
3
- import type { AnyEvmAddress, EvmChains, EvmPlatformType } from "@wormhole-foundation/sdk-evm";
4
- import { EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm";
5
- import "@wormhole-foundation/sdk-evm-core";
6
- import { EvmNttTransceiver, Ntt, NttTransceiver, WormholeNttTransceiver } from "@wormhole-foundation/sdk-definitions-ntt";
7
- import { type Provider, type TransactionRequest } from "ethers";
8
- import { NttBindings, NttManagerBindings, NttTransceiverBindings } from "./bindings.js";
9
- export declare class EvmNttWormholeTranceiver<N extends Network, C extends EvmChains> implements WormholeNttTransceiver<N, C>, EvmNttTransceiver<N, C, WormholeNttTransceiver.VAA> {
10
- readonly manager: EvmNtt<N, C>;
11
- readonly address: string;
12
- transceiver: NttTransceiverBindings.NttTransceiver;
13
- /** The on-chain registered index for this transceiver in the NttManager's TransceiverRegistry. */
14
- registeredIndex: number;
15
- constructor(manager: EvmNtt<N, C>, address: string, abiBindings: NttBindings);
16
- getTransceiverType(): Promise<string>;
17
- getAddress(): Promise<ChainAddress<C>>;
18
- encodeFlags(flags: {
19
- skipRelay: boolean;
20
- }): Uint8Array;
21
- setPeer<P extends Chain>(peer: ChainAddress<P>): AsyncGenerator<EvmUnsignedTransaction<N, C>>;
22
- getPauser(): Promise<AccountAddress<C> | null>;
23
- setPauser(pauser: AccountAddress<C>): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
24
- getPeer<C extends Chain>(chain: C): Promise<ChainAddress<C> | null>;
25
- isEvmChain(chain: Chain): Promise<boolean>;
26
- setIsEvmChain(chain: Chain, isEvm: boolean): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
27
- receive(attestation: WormholeNttTransceiver.VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
28
- isWormholeRelayingEnabled(destChain: Chain): Promise<boolean>;
29
- setIsWormholeRelayingEnabled(destChain: Chain, enabled: boolean): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
30
- isSpecialRelayingEnabled(destChain: Chain): Promise<boolean>;
31
- setIsSpecialRelayingEnabled(destChain: Chain, enabled: boolean): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
32
- }
33
- export declare class EvmNtt<N extends Network, C extends EvmChains> implements Ntt<N, C> {
34
- readonly network: N;
35
- readonly chain: C;
36
- readonly provider: Provider;
37
- readonly contracts: Contracts & {
38
- ntt?: Ntt.Contracts;
39
- };
40
- readonly version: string;
41
- tokenAddress: string;
42
- readonly chainId: bigint;
43
- manager: NttManagerBindings.NttManager;
44
- xcvrs: EvmNttWormholeTranceiver<N, C>[];
45
- managerAddress: string;
46
- private _transceiverIndicesInitialized;
47
- constructor(network: N, chain: C, provider: Provider, contracts: Contracts & {
48
- ntt?: Ntt.Contracts;
49
- }, version?: string);
50
- /**
51
- * Fetches on-chain registered indices for each transceiver via getTransceiverInfo()
52
- * and caches them on the xcvr objects. This is needed because the on-chain registered
53
- * index may differ from the SDK array position (e.g. after removing and re-adding
54
- * a transceiver, the new one gets a higher index since indices are monotonically
55
- * increasing and never reused).
56
- */
57
- initTransceiverIndices(): Promise<void>;
58
- getTransceiver(ix: number): Promise<NttTransceiver<N, C, any> | null>;
59
- getMode(): Promise<Ntt.Mode>;
60
- isPaused(): Promise<boolean>;
61
- pause(): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
62
- unpause(): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
63
- getOwner(): Promise<AccountAddress<C>>;
64
- getPauser(): Promise<AccountAddress<C> | null>;
65
- setOwner(owner: AnyEvmAddress): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
66
- setPauser(pauser: AnyEvmAddress): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
67
- getThreshold(): Promise<number>;
68
- setThreshold(threshold: number, payer?: AccountAddress<EvmChains>): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
69
- isRelayingAvailable(destination: Chain): Promise<boolean>;
70
- getIsExecuted(attestation: Ntt.Attestation): Promise<boolean>;
71
- getIsTransferInboundQueued(attestation: Ntt.Attestation): Promise<boolean>;
72
- getIsApproved(attestation: Ntt.Attestation): Promise<boolean>;
73
- getTokenDecimals(): Promise<number>;
74
- getPeer<C extends Chain>(chain: C): Promise<Ntt.Peer<C> | null>;
75
- static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, EvmPlatformType>): Promise<EvmNtt<N, EvmChains>>;
76
- encodeOptions(options: Ntt.TransferOptions): Ntt.TransceiverInstruction[];
77
- static getVersion(provider: Provider, contracts: Contracts & {
78
- ntt?: Ntt.Contracts;
79
- }): Promise<any>;
80
- getCustodyAddress(): Promise<string>;
81
- quoteDeliveryPrice(dstChain: Chain, options: Ntt.TransferOptions): Promise<bigint>;
82
- setPeer(peer: ChainAddress<C>, tokenDecimals: number, inboundLimit: bigint): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
83
- setWormholeTransceiverPeer(peer: ChainAddress<C>): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, any>;
84
- setTransceiverPeer(ix: number, peer: ChainAddress<C>): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, any>;
85
- transfer(sender: AccountAddress<C>, amount: bigint, destination: ChainAddress, options: Ntt.TransferOptions): AsyncGenerator<EvmUnsignedTransaction<N, C>>;
86
- wrapNative(sender: AccountAddress<C>, amount: bigint): Promise<EvmUnsignedTransaction<N, C>>;
87
- approve(sender: AccountAddress<C>, amount: bigint): Promise<EvmUnsignedTransaction<N, C> | undefined>;
88
- redeem(attestations: Ntt.Attestation[]): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
89
- getCurrentOutboundCapacity(): Promise<bigint>;
90
- getOutboundLimit(): Promise<bigint>;
91
- setOutboundLimit(limit: bigint): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
92
- getCurrentInboundCapacity(fromChain: Chain): Promise<bigint>;
93
- getInboundLimit(fromChain: Chain): Promise<bigint>;
94
- setInboundLimit(fromChain: Chain, limit: bigint): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
95
- getRateLimitDuration(): Promise<bigint>;
96
- getInboundQueuedTransfer(fromChain: Chain, transceiverMessage: Ntt.Message): Promise<Ntt.InboundQueuedTransfer<C> | null>;
97
- completeInboundQueuedTransfer(fromChain: Chain, transceiverMessage: Ntt.Message, payer?: AccountAddress<C>): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
98
- verifyAddresses(): Promise<Partial<Ntt.Contracts> | null>;
99
- createUnsignedTx(txReq: TransactionRequest, description: string, parallelizable?: boolean): EvmUnsignedTransaction<N, C>;
100
- }
101
- //# sourceMappingURL=ntt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ntt.d.ts","sourceRoot":"","sources":["../../src/ntt.ts"],"names":[],"mappings":"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"}
package/dist/cjs/ntt.js DELETED
@@ -1,503 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EvmNtt = exports.EvmNttWormholeTranceiver = 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 bindings_js_1 = require("./bindings.js");
11
- class EvmNttWormholeTranceiver {
12
- manager;
13
- address;
14
- transceiver;
15
- /** The on-chain registered index for this transceiver in the NttManager's TransceiverRegistry. */
16
- registeredIndex = 0;
17
- constructor(manager, address, abiBindings) {
18
- this.manager = manager;
19
- this.address = address;
20
- this.transceiver = abiBindings.NttTransceiver.connect(address, manager.provider);
21
- }
22
- async getTransceiverType() {
23
- // NOTE: We hardcode the type here as transceiver type is only available for versions >1.1.0
24
- // For those versions, we can return `this.transceiver.getTransceiverType()` directly
25
- return "wormhole";
26
- }
27
- async getAddress() {
28
- return {
29
- chain: this.manager.chain,
30
- address: (0, sdk_definitions_1.toUniversal)(this.manager.chain, this.address),
31
- };
32
- }
33
- encodeFlags(flags) {
34
- return new Uint8Array([flags.skipRelay ? 1 : 0]);
35
- }
36
- async *setPeer(peer) {
37
- const coreBridge = new ethers_1.Contract(this.manager.contracts.coreBridge, ["function messageFee() public view returns (uint256)"], this.manager.provider);
38
- const messageFee = await coreBridge.getFunction("messageFee").staticCall();
39
- const tx = await this.transceiver.setWormholePeer.populateTransaction((0, sdk_base_1.toChainId)(peer.chain), (0, sdk_definitions_1.universalAddress)(peer));
40
- yield this.manager.createUnsignedTx({
41
- ...tx,
42
- value: messageFee,
43
- }, "WormholeTransceiver.registerPeer");
44
- }
45
- async getPauser() {
46
- const pauser = await this.transceiver.pauser();
47
- return new sdk_evm_1.EvmAddress(pauser);
48
- }
49
- async *setPauser(pauser) {
50
- const canonicalPauser = (0, sdk_definitions_1.canonicalAddress)({
51
- chain: this.manager.chain,
52
- address: pauser,
53
- });
54
- const tx = await this.transceiver.transferPauserCapability.populateTransaction(canonicalPauser);
55
- yield this.manager.createUnsignedTx(tx, "WormholeTransceiver.setPauser");
56
- }
57
- async getPeer(chain) {
58
- const peer = await this.transceiver.getWormholePeer((0, sdk_base_1.toChainId)(chain));
59
- const peerAddress = sdk_base_1.encoding.hex.decode(peer);
60
- const zeroAddress = new Uint8Array(32);
61
- if (sdk_base_1.encoding.bytes.equals(zeroAddress, peerAddress)) {
62
- return null;
63
- }
64
- return {
65
- chain: chain,
66
- address: (0, sdk_definitions_1.toUniversal)(chain, peerAddress),
67
- };
68
- }
69
- async isEvmChain(chain) {
70
- if (!("isWormholeEvmChain" in this.transceiver))
71
- return false;
72
- return await this.transceiver.isWormholeEvmChain((0, sdk_base_1.toChainId)(chain));
73
- }
74
- async *setIsEvmChain(chain, isEvm) {
75
- if (!("setIsWormholeEvmChain" in this.transceiver)) {
76
- throw new Error("setIsWormholeEvmChain is not supported by this ABI version");
77
- }
78
- const tx = await this.transceiver.setIsWormholeEvmChain.populateTransaction((0, sdk_base_1.toChainId)(chain), isEvm);
79
- yield this.manager.createUnsignedTx(tx, "WormholeTransceiver.setIsEvmChain");
80
- }
81
- async *receive(attestation) {
82
- const tx = await this.transceiver.receiveMessage.populateTransaction((0, sdk_definitions_1.serialize)(attestation));
83
- yield this.manager.createUnsignedTx(tx, "WormholeTransceiver.receiveMessage");
84
- }
85
- async isWormholeRelayingEnabled(destChain) {
86
- if (!("isWormholeRelayingEnabled" in this.transceiver))
87
- return false;
88
- return await this.transceiver.isWormholeRelayingEnabled((0, sdk_base_1.toChainId)(destChain));
89
- }
90
- async *setIsWormholeRelayingEnabled(destChain, enabled) {
91
- if (!("setIsWormholeRelayingEnabled" in this.transceiver)) {
92
- throw new Error("setIsWormholeRelayingEnabled is not supported by this ABI version");
93
- }
94
- const tx = await this.transceiver.setIsWormholeRelayingEnabled.populateTransaction((0, sdk_base_1.toChainId)(destChain), enabled);
95
- yield this.manager.createUnsignedTx(tx, "WormholeTransceiver.setWormholeRelayingEnabled");
96
- }
97
- async isSpecialRelayingEnabled(destChain) {
98
- if (!("isSpecialRelayingEnabled" in this.transceiver))
99
- return false;
100
- return await this.transceiver.isSpecialRelayingEnabled((0, sdk_base_1.toChainId)(destChain));
101
- }
102
- async *setIsSpecialRelayingEnabled(destChain, enabled) {
103
- if (!("setIsSpecialRelayingEnabled" in this.transceiver)) {
104
- throw new Error("setIsSpecialRelayingEnabled is not supported by this ABI version");
105
- }
106
- const tx = await this.transceiver.setIsSpecialRelayingEnabled.populateTransaction((0, sdk_base_1.toChainId)(destChain), enabled);
107
- yield this.manager.createUnsignedTx(tx, "WormholeTransceiver.setSpecialRelayingEnabled");
108
- }
109
- }
110
- exports.EvmNttWormholeTranceiver = EvmNttWormholeTranceiver;
111
- class EvmNtt {
112
- network;
113
- chain;
114
- provider;
115
- contracts;
116
- version;
117
- tokenAddress;
118
- chainId;
119
- manager;
120
- xcvrs;
121
- managerAddress;
122
- _transceiverIndicesInitialized = false;
123
- constructor(network, chain, provider, contracts, version = "1.0.0") {
124
- this.network = network;
125
- this.chain = chain;
126
- this.provider = provider;
127
- this.contracts = contracts;
128
- this.version = version;
129
- if (!contracts.ntt)
130
- throw new Error("No Ntt Contracts provided");
131
- this.chainId = sdk_base_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
132
- this.tokenAddress = contracts.ntt.token;
133
- this.managerAddress = contracts.ntt.manager;
134
- const abiBindings = (0, bindings_js_1.loadAbiVersion)(this.version);
135
- this.manager = abiBindings.NttManager.connect(contracts.ntt.manager, this.provider);
136
- this.xcvrs = [];
137
- const configuredTransceivers = contracts.ntt.transceiver;
138
- if (configuredTransceivers &&
139
- typeof configuredTransceivers === "object" &&
140
- "wormhole" in configuredTransceivers &&
141
- configuredTransceivers["wormhole"]) {
142
- const transceiverTypes = [
143
- "wormhole", // wormhole xcvr should be ix 0
144
- ...Object.keys(configuredTransceivers).filter((transceiverType) => transceiverType !== "wormhole"),
145
- ];
146
- transceiverTypes.map((transceiverType) => {
147
- // we currently only support wormhole transceivers
148
- if (transceiverType !== "wormhole") {
149
- throw new Error(`Unsupported transceiver type: ${transceiverType}`);
150
- }
151
- // Enable more Transceivers here
152
- this.xcvrs.push(new EvmNttWormholeTranceiver(this, configuredTransceivers[transceiverType], abiBindings));
153
- });
154
- }
155
- }
156
- /**
157
- * Fetches on-chain registered indices for each transceiver via getTransceiverInfo()
158
- * and caches them on the xcvr objects. This is needed because the on-chain registered
159
- * index may differ from the SDK array position (e.g. after removing and re-adding
160
- * a transceiver, the new one gets a higher index since indices are monotonically
161
- * increasing and never reused).
162
- */
163
- async initTransceiverIndices() {
164
- if (this._transceiverIndicesInitialized)
165
- return;
166
- try {
167
- if (!("getTransceiverInfo" in this.manager)) {
168
- // getTransceiverInfo not available on ABI < 1.0.0, fall back to default (0)
169
- this._transceiverIndicesInitialized = true;
170
- return;
171
- }
172
- const transceiverInfos = await this.manager.getTransceiverInfo();
173
- const transceiverAddresses = await this.manager.getTransceivers();
174
- // Both arrays are ordered the same way (enabled transceivers list)
175
- for (const xcvr of this.xcvrs) {
176
- const addrIndex = transceiverAddresses.findIndex((addr) => addr.toLowerCase() === xcvr.address.toLowerCase());
177
- if (addrIndex !== -1 && addrIndex < transceiverInfos.length) {
178
- xcvr.registeredIndex = Number(transceiverInfos[addrIndex].index);
179
- }
180
- }
181
- this._transceiverIndicesInitialized = true;
182
- }
183
- catch {
184
- // Do not mark initialized on failure: retry on next call so transient
185
- // RPC/provider errors don't permanently pin indices to default 0.
186
- }
187
- }
188
- async getTransceiver(ix) {
189
- // TODO: should we make an RPC call here, or just trust that the xcvrs are set up correctly?
190
- return this.xcvrs[ix] || null;
191
- }
192
- async getMode() {
193
- const mode = await this.manager.getMode();
194
- return mode === 0n ? "locking" : "burning";
195
- }
196
- async isPaused() {
197
- return await this.manager.isPaused();
198
- }
199
- async *pause() {
200
- const tx = await this.manager.pause.populateTransaction();
201
- yield this.createUnsignedTx(tx, "Ntt.pause");
202
- }
203
- async *unpause() {
204
- const tx = await this.manager.unpause.populateTransaction();
205
- yield this.createUnsignedTx(tx, "Ntt.unpause");
206
- }
207
- async getOwner() {
208
- return new sdk_evm_1.EvmAddress(await this.manager.owner());
209
- }
210
- async getPauser() {
211
- return new sdk_evm_1.EvmAddress(await this.manager.pauser());
212
- }
213
- async *setOwner(owner) {
214
- const canonicalOwner = new sdk_evm_1.EvmAddress(owner).toString();
215
- const tx = await this.manager.transferOwnership.populateTransaction(canonicalOwner);
216
- yield this.createUnsignedTx(tx, "Ntt.setOwner");
217
- }
218
- async *setPauser(pauser) {
219
- const canonicalPauser = new sdk_evm_1.EvmAddress(pauser).toString();
220
- const tx = await this.manager.transferPauserCapability.populateTransaction(canonicalPauser);
221
- yield this.createUnsignedTx(tx, "Ntt.setPauser");
222
- }
223
- async getThreshold() {
224
- return Number(await this.manager.getThreshold());
225
- }
226
- async *setThreshold(threshold, payer) {
227
- const tx = await this.manager.setThreshold.populateTransaction(threshold);
228
- yield this.createUnsignedTx(tx, "Ntt.setThreshold");
229
- }
230
- async isRelayingAvailable(destination) {
231
- const enabled = await Promise.all(this.xcvrs.map(async (x) => {
232
- const [wh, special] = await Promise.all([
233
- x.isWormholeRelayingEnabled(destination),
234
- x.isSpecialRelayingEnabled(destination),
235
- ]);
236
- return wh || special;
237
- }));
238
- return enabled.filter((x) => x).length > 0;
239
- }
240
- async getIsExecuted(attestation) {
241
- const payload = attestation.payloadName === "WormholeTransfer"
242
- ? attestation.payload
243
- : attestation.payload["payload"];
244
- const isExecuted = await this.manager.isMessageExecuted(sdk_definitions_ntt_1.Ntt.messageDigest(attestation.emitterChain, payload["nttManagerPayload"]));
245
- if (!isExecuted)
246
- return false;
247
- // Also check that the transfer is not queued for it to be considered complete
248
- return !(await this.getIsTransferInboundQueued(attestation));
249
- }
250
- async getIsTransferInboundQueued(attestation) {
251
- const payload = attestation.payloadName === "WormholeTransfer"
252
- ? attestation.payload
253
- : attestation.payload["payload"];
254
- return ((await this.getInboundQueuedTransfer(attestation.emitterChain, payload["nttManagerPayload"])) !== null);
255
- }
256
- getIsApproved(attestation) {
257
- const payload = attestation.payloadName === "WormholeTransfer"
258
- ? attestation.payload
259
- : attestation.payload["payload"];
260
- return this.manager.isMessageApproved(sdk_definitions_ntt_1.Ntt.messageDigest(attestation.emitterChain, payload["nttManagerPayload"]));
261
- }
262
- async getTokenDecimals() {
263
- return await sdk_evm_1.EvmPlatform.getDecimals(this.network, this.chain, this.provider, this.tokenAddress);
264
- }
265
- async getPeer(chain) {
266
- const peer = await this.manager.getPeer((0, sdk_base_1.toChainId)(chain));
267
- const peerAddress = sdk_base_1.encoding.hex.decode(peer.peerAddress);
268
- const zeroAddress = new Uint8Array(32);
269
- if (sdk_base_1.encoding.bytes.equals(zeroAddress, peerAddress)) {
270
- return null;
271
- }
272
- return {
273
- address: { chain: chain, address: (0, sdk_definitions_1.toUniversal)(chain, peerAddress) },
274
- tokenDecimals: Number(peer.tokenDecimals),
275
- inboundLimit: await this.getInboundLimit(chain),
276
- };
277
- }
278
- static async fromRpc(provider, config) {
279
- const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
280
- const conf = config[chain];
281
- if (conf.network !== network)
282
- throw new Error(`Network mismatch: ${conf.network} != ${network}`);
283
- const version = await EvmNtt.getVersion(provider, conf.contracts);
284
- const ntt = new EvmNtt(network, chain, provider, conf.contracts, version);
285
- await ntt.initTransceiverIndices();
286
- return ntt;
287
- }
288
- encodeOptions(options) {
289
- const ixs = [];
290
- for (const xcvr of this.xcvrs) {
291
- ixs.push({
292
- index: xcvr.registeredIndex,
293
- payload: xcvr.encodeFlags({
294
- skipRelay: !options.automatic,
295
- }),
296
- });
297
- }
298
- // On-chain parseTransceiverInstructions requires strictly increasing indices
299
- ixs.sort((a, b) => a.index - b.index);
300
- return ixs;
301
- }
302
- static async getVersion(provider, contracts) {
303
- const contract = new ethers_1.Contract(contracts.ntt.manager, ["function NTT_MANAGER_VERSION() public view returns (string)"], provider);
304
- try {
305
- const abiVersion = await contract
306
- .getFunction("NTT_MANAGER_VERSION")
307
- .staticCall();
308
- if (!abiVersion) {
309
- throw new Error("NTT_MANAGER_VERSION not found");
310
- }
311
- return abiVersion;
312
- }
313
- catch (e) {
314
- console.error(`Failed to get NTT_MANAGER_VERSION from contract ${contracts.ntt?.manager} on ${(await provider.getNetwork()).name}`);
315
- throw e;
316
- }
317
- }
318
- async getCustodyAddress() {
319
- return this.managerAddress;
320
- }
321
- async quoteDeliveryPrice(dstChain, options) {
322
- await this.initTransceiverIndices();
323
- // Bypass the manager's quoteDeliveryPrice because it has a bug: it sizes the
324
- // transceiver instructions array using enabledTransceivers.length instead of
325
- // numRegisteredTransceivers, causing an out-of-bounds access when the active
326
- // transceiver's registered index >= number of enabled transceivers.
327
- // Instead, we call each transceiver's quoteDeliveryPrice directly.
328
- const instructions = this.encodeOptions(options);
329
- let totalPrice = 0n;
330
- for (const xcvr of this.xcvrs) {
331
- const ix = instructions.find((i) => i.index === xcvr.registeredIndex);
332
- const instruction = ix ?? {
333
- index: xcvr.registeredIndex,
334
- payload: new Uint8Array(),
335
- };
336
- const price = await xcvr.transceiver.quoteDeliveryPrice((0, sdk_base_1.toChainId)(dstChain), instruction);
337
- totalPrice += price;
338
- }
339
- return totalPrice;
340
- }
341
- async *setPeer(peer, tokenDecimals, inboundLimit) {
342
- const tx = await this.manager.setPeer.populateTransaction((0, sdk_base_1.toChainId)(peer.chain), (0, sdk_definitions_1.universalAddress)(peer), tokenDecimals, inboundLimit);
343
- yield this.createUnsignedTx(tx, "Ntt.setPeer");
344
- }
345
- async *setWormholeTransceiverPeer(peer) {
346
- yield* this.setTransceiverPeer(0, peer);
347
- }
348
- async *setTransceiverPeer(ix, peer) {
349
- if (ix >= this.xcvrs.length) {
350
- throw new Error("Transceiver not found");
351
- }
352
- yield* this.xcvrs[ix].setPeer(peer);
353
- }
354
- async *transfer(sender, amount, destination, options) {
355
- const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
356
- // Note: these flags are indexed by transceiver index
357
- const totalPrice = await this.quoteDeliveryPrice(destination.chain, options);
358
- if (options.wrapNative) {
359
- yield this.wrapNative(sender, amount);
360
- }
361
- const approveTx = await this.approve(sender, amount);
362
- if (approveTx) {
363
- yield approveTx;
364
- }
365
- const receiver = (0, sdk_definitions_1.universalAddress)(destination);
366
- const txReq = await this.manager
367
- .getFunction("transfer(uint256,uint16,bytes32,bytes32,bool,bytes)")
368
- .populateTransaction(amount, (0, sdk_base_1.toChainId)(destination.chain), receiver, receiver, options.queue, sdk_definitions_ntt_1.Ntt.encodeTransceiverInstructions(this.encodeOptions(options)), { value: totalPrice });
369
- yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddress), "Ntt.transfer");
370
- }
371
- async wrapNative(sender, amount) {
372
- const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
373
- // TODO: the contract should handle this for us
374
- const wrappedNative = new ethers_1.Contract(this.tokenAddress, [
375
- "function deposit() public payable",
376
- ]);
377
- const txReq = await wrappedNative
378
- .getFunction("deposit")
379
- .populateTransaction({ value: amount });
380
- return this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddress), "Ntt.Deposit");
381
- }
382
- async approve(sender, amount) {
383
- const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
384
- const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, this.tokenAddress);
385
- const allowance = await tokenContract.allowance(senderAddress, this.managerAddress);
386
- if (allowance < amount) {
387
- const txReq = await tokenContract.approve.populateTransaction(this.managerAddress, amount);
388
- return this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddress), "Ntt.Approve");
389
- }
390
- }
391
- // TODO: should this be some map of idx to transceiver?
392
- async *redeem(attestations) {
393
- if (attestations.length !== this.xcvrs.length)
394
- throw new Error("Not enough attestations for the registered Transceivers");
395
- for (const idx in this.xcvrs) {
396
- const xcvr = this.xcvrs[idx];
397
- const attestation = attestations[idx];
398
- if (attestation?.payloadName !== "WormholeTransfer") {
399
- // TODO: support standard relayer attestations
400
- // which must be submitted to the delivery provider
401
- throw new Error("Invalid attestation type for redeem");
402
- }
403
- yield* xcvr.receive(attestation);
404
- }
405
- }
406
- async getCurrentOutboundCapacity() {
407
- return await this.manager.getCurrentOutboundCapacity();
408
- }
409
- async getOutboundLimit() {
410
- const encoded = (await this.manager.getOutboundLimitParams()).limit;
411
- const trimmedAmount = (0, sdk_definitions_ntt_1.decodeTrimmedAmount)(encoded);
412
- const tokenDecimals = await this.getTokenDecimals();
413
- return (0, sdk_definitions_ntt_1.untrim)(trimmedAmount, tokenDecimals);
414
- }
415
- async *setOutboundLimit(limit) {
416
- const tx = await this.manager.setOutboundLimit.populateTransaction(limit);
417
- yield this.createUnsignedTx(tx, "Ntt.setOutboundLimit");
418
- }
419
- async getCurrentInboundCapacity(fromChain) {
420
- return await this.manager.getCurrentInboundCapacity((0, sdk_base_1.toChainId)(fromChain));
421
- }
422
- async getInboundLimit(fromChain) {
423
- const encoded = (await this.manager.getInboundLimitParams((0, sdk_base_1.toChainId)(fromChain))).limit;
424
- const trimmedAmount = (0, sdk_definitions_ntt_1.decodeTrimmedAmount)(encoded);
425
- const tokenDecimals = await this.getTokenDecimals();
426
- return (0, sdk_definitions_ntt_1.untrim)(trimmedAmount, tokenDecimals);
427
- }
428
- async *setInboundLimit(fromChain, limit) {
429
- const tx = await this.manager.setInboundLimit.populateTransaction(limit, (0, sdk_base_1.toChainId)(fromChain));
430
- yield this.createUnsignedTx(tx, "Ntt.setInboundLimit");
431
- }
432
- async getRateLimitDuration() {
433
- return await this.manager.rateLimitDuration();
434
- }
435
- async getInboundQueuedTransfer(fromChain, transceiverMessage) {
436
- const queuedTransfer = await this.manager.getInboundQueuedTransfer(sdk_definitions_ntt_1.Ntt.messageDigest(fromChain, transceiverMessage));
437
- if (queuedTransfer.txTimestamp > 0n) {
438
- const { recipient, amount, txTimestamp } = queuedTransfer;
439
- const duration = await this.getRateLimitDuration();
440
- return {
441
- recipient: new sdk_evm_1.EvmAddress(recipient),
442
- amount: amount,
443
- rateLimitExpiryTimestamp: Number(txTimestamp + duration),
444
- };
445
- }
446
- return null;
447
- }
448
- async *completeInboundQueuedTransfer(fromChain, transceiverMessage, payer) {
449
- const tx = await this.manager.completeInboundQueuedTransfer.populateTransaction(sdk_definitions_ntt_1.Ntt.messageDigest(fromChain, transceiverMessage));
450
- yield this.createUnsignedTx(tx, "Ntt.completeInboundQueuedTransfer");
451
- }
452
- async verifyAddresses() {
453
- const local = {
454
- manager: this.managerAddress,
455
- token: this.tokenAddress,
456
- transceiver: {
457
- ...(this.xcvrs.length > 0 && { wormhole: this.xcvrs[0].address }),
458
- },
459
- // TODO: what about the quoter?
460
- };
461
- // Match the on-chain wormhole transceiver by address rather than assuming
462
- // it is at array index 0, since enabled transceiver ordering can change
463
- // after remove/re-add operations.
464
- const enabledTransceivers = await this.manager.getTransceivers();
465
- let wormholeTransceiverAddr;
466
- for (const xcvr of this.xcvrs) {
467
- wormholeTransceiverAddr = enabledTransceivers.find((addr) => addr.toLowerCase() === xcvr.address.toLowerCase());
468
- if (wormholeTransceiverAddr)
469
- break;
470
- }
471
- // Backward-compatible fallback for manager-only discovery flows (e.g. CLI pull):
472
- // if no local xcvr is configured, default to the first enabled transceiver.
473
- if (!wormholeTransceiverAddr && enabledTransceivers.length > 0) {
474
- wormholeTransceiverAddr = enabledTransceivers[0];
475
- }
476
- const remote = {
477
- manager: this.managerAddress,
478
- token: await this.manager.token(),
479
- transceiver: {
480
- ...(wormholeTransceiverAddr && { wormhole: wormholeTransceiverAddr }),
481
- },
482
- };
483
- const deleteMatching = (a, b) => {
484
- for (const k in a) {
485
- if (typeof a[k] === "object") {
486
- deleteMatching(a[k], b[k]);
487
- if (Object.keys(a[k]).length === 0)
488
- delete a[k];
489
- }
490
- else if (a[k] === b[k]) {
491
- delete a[k];
492
- }
493
- }
494
- };
495
- deleteMatching(remote, local);
496
- return Object.keys(remote).length > 0 ? remote : null;
497
- }
498
- createUnsignedTx(txReq, description, parallelizable = false) {
499
- return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
500
- }
501
- }
502
- exports.EvmNtt = EvmNtt;
503
- //# sourceMappingURL=ntt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ntt.js","sourceRoot":"","sources":["../../src/ntt.ts"],"names":[],"mappings":"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"}