@wormhole-foundation/sdk-connect 0.5.0-alpha.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 (225) hide show
  1. package/dist/cjs/circle-api.d.ts +16 -0
  2. package/dist/cjs/circle-api.d.ts.map +1 -0
  3. package/dist/cjs/circle-api.js +47 -0
  4. package/dist/cjs/circle-api.js.map +1 -0
  5. package/dist/cjs/common.d.ts +4 -0
  6. package/dist/cjs/common.d.ts.map +1 -0
  7. package/dist/cjs/common.js +40 -0
  8. package/dist/cjs/common.js.map +1 -0
  9. package/dist/cjs/config.d.ts +34 -0
  10. package/dist/cjs/config.d.ts.map +1 -0
  11. package/dist/cjs/config.js +52 -0
  12. package/dist/cjs/config.js.map +1 -0
  13. package/dist/cjs/index.d.ts +15 -0
  14. package/dist/cjs/index.d.ts.map +1 -0
  15. package/dist/cjs/index.js +45 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/protocols/cctpTransfer.d.ts +41 -0
  18. package/dist/cjs/protocols/cctpTransfer.d.ts.map +1 -0
  19. package/dist/cjs/protocols/cctpTransfer.js +459 -0
  20. package/dist/cjs/protocols/cctpTransfer.js.map +1 -0
  21. package/dist/cjs/protocols/gatewayTransfer.d.ts +40 -0
  22. package/dist/cjs/protocols/gatewayTransfer.d.ts.map +1 -0
  23. package/dist/cjs/protocols/gatewayTransfer.js +406 -0
  24. package/dist/cjs/protocols/gatewayTransfer.js.map +1 -0
  25. package/dist/cjs/protocols/tokenTransfer.d.ts +40 -0
  26. package/dist/cjs/protocols/tokenTransfer.d.ts.map +1 -0
  27. package/dist/cjs/protocols/tokenTransfer.js +472 -0
  28. package/dist/cjs/protocols/tokenTransfer.js.map +1 -0
  29. package/dist/cjs/protocols/wormholeTransfer.d.ts +20 -0
  30. package/dist/cjs/protocols/wormholeTransfer.d.ts.map +1 -0
  31. package/dist/cjs/protocols/wormholeTransfer.js +3 -0
  32. package/dist/cjs/protocols/wormholeTransfer.js.map +1 -0
  33. package/dist/cjs/routes/cctp/automatic.d.ts +46 -0
  34. package/dist/cjs/routes/cctp/automatic.d.ts.map +1 -0
  35. package/dist/cjs/routes/cctp/automatic.js +135 -0
  36. package/dist/cjs/routes/cctp/automatic.js.map +1 -0
  37. package/dist/cjs/routes/cctp/index.d.ts +3 -0
  38. package/dist/cjs/routes/cctp/index.d.ts.map +1 -0
  39. package/dist/cjs/routes/cctp/index.js +19 -0
  40. package/dist/cjs/routes/cctp/index.js.map +1 -0
  41. package/dist/cjs/routes/cctp/manual.d.ts +43 -0
  42. package/dist/cjs/routes/cctp/manual.d.ts.map +1 -0
  43. package/dist/cjs/routes/cctp/manual.js +113 -0
  44. package/dist/cjs/routes/cctp/manual.js.map +1 -0
  45. package/dist/cjs/routes/common.d.ts +13 -0
  46. package/dist/cjs/routes/common.d.ts.map +1 -0
  47. package/dist/cjs/routes/common.js +45 -0
  48. package/dist/cjs/routes/common.js.map +1 -0
  49. package/dist/cjs/routes/index.d.ts +9 -0
  50. package/dist/cjs/routes/index.d.ts.map +1 -0
  51. package/dist/cjs/routes/index.js +25 -0
  52. package/dist/cjs/routes/index.js.map +1 -0
  53. package/dist/cjs/routes/portico/automatic.d.ts +68 -0
  54. package/dist/cjs/routes/portico/automatic.d.ts.map +1 -0
  55. package/dist/cjs/routes/portico/automatic.js +208 -0
  56. package/dist/cjs/routes/portico/automatic.js.map +1 -0
  57. package/dist/cjs/routes/portico/index.d.ts +2 -0
  58. package/dist/cjs/routes/portico/index.d.ts.map +1 -0
  59. package/dist/cjs/routes/portico/index.js +18 -0
  60. package/dist/cjs/routes/portico/index.js.map +1 -0
  61. package/dist/cjs/routes/portico/utils.d.ts +1 -0
  62. package/dist/cjs/routes/portico/utils.d.ts.map +1 -0
  63. package/dist/cjs/routes/portico/utils.js +2 -0
  64. package/dist/cjs/routes/portico/utils.js.map +1 -0
  65. package/dist/cjs/routes/request.d.ts +25 -0
  66. package/dist/cjs/routes/request.d.ts.map +1 -0
  67. package/dist/cjs/routes/request.js +65 -0
  68. package/dist/cjs/routes/request.js.map +1 -0
  69. package/dist/cjs/routes/resolver.d.ts +15 -0
  70. package/dist/cjs/routes/resolver.d.ts.map +1 -0
  71. package/dist/cjs/routes/resolver.js +87 -0
  72. package/dist/cjs/routes/resolver.js.map +1 -0
  73. package/dist/cjs/routes/route.d.ts +46 -0
  74. package/dist/cjs/routes/route.d.ts.map +1 -0
  75. package/dist/cjs/routes/route.js +34 -0
  76. package/dist/cjs/routes/route.js.map +1 -0
  77. package/dist/cjs/routes/token.d.ts +12 -0
  78. package/dist/cjs/routes/token.d.ts.map +1 -0
  79. package/dist/cjs/routes/token.js +37 -0
  80. package/dist/cjs/routes/token.js.map +1 -0
  81. package/dist/cjs/routes/tokenBridge/automatic.d.ts +46 -0
  82. package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +1 -0
  83. package/dist/cjs/routes/tokenBridge/automatic.js +145 -0
  84. package/dist/cjs/routes/tokenBridge/automatic.js.map +1 -0
  85. package/dist/cjs/routes/tokenBridge/index.d.ts +3 -0
  86. package/dist/cjs/routes/tokenBridge/index.d.ts.map +1 -0
  87. package/dist/cjs/routes/tokenBridge/index.js +19 -0
  88. package/dist/cjs/routes/tokenBridge/index.js.map +1 -0
  89. package/dist/cjs/routes/tokenBridge/manual.d.ts +42 -0
  90. package/dist/cjs/routes/tokenBridge/manual.d.ts.map +1 -0
  91. package/dist/cjs/routes/tokenBridge/manual.js +87 -0
  92. package/dist/cjs/routes/tokenBridge/manual.js.map +1 -0
  93. package/dist/cjs/routes/types.d.ts +44 -0
  94. package/dist/cjs/routes/types.d.ts.map +1 -0
  95. package/dist/cjs/routes/types.js +3 -0
  96. package/dist/cjs/routes/types.js.map +1 -0
  97. package/dist/cjs/tasks.d.ts +7 -0
  98. package/dist/cjs/tasks.d.ts.map +1 -0
  99. package/dist/cjs/tasks.js +65 -0
  100. package/dist/cjs/tasks.js.map +1 -0
  101. package/dist/cjs/types.d.ts +73 -0
  102. package/dist/cjs/types.d.ts.map +1 -0
  103. package/dist/cjs/types.js +35 -0
  104. package/dist/cjs/types.js.map +1 -0
  105. package/dist/cjs/whscan-api.d.ts +172 -0
  106. package/dist/cjs/whscan-api.d.ts.map +1 -0
  107. package/dist/cjs/whscan-api.js +243 -0
  108. package/dist/cjs/whscan-api.js.map +1 -0
  109. package/dist/cjs/wormhole.d.ts +198 -0
  110. package/dist/cjs/wormhole.d.ts.map +1 -0
  111. package/dist/cjs/wormhole.js +324 -0
  112. package/dist/cjs/wormhole.js.map +1 -0
  113. package/dist/esm/circle-api.d.ts +16 -0
  114. package/dist/esm/circle-api.d.ts.map +1 -0
  115. package/dist/esm/circle-api.js +39 -0
  116. package/dist/esm/circle-api.js.map +1 -0
  117. package/dist/esm/common.d.ts +4 -0
  118. package/dist/esm/common.d.ts.map +1 -0
  119. package/dist/esm/common.js +36 -0
  120. package/dist/esm/common.js.map +1 -0
  121. package/dist/esm/config.d.ts +34 -0
  122. package/dist/esm/config.d.ts.map +1 -0
  123. package/dist/esm/config.js +47 -0
  124. package/dist/esm/config.js.map +1 -0
  125. package/dist/esm/index.d.ts +15 -0
  126. package/dist/esm/index.d.ts.map +1 -0
  127. package/dist/esm/index.js +16 -0
  128. package/dist/esm/index.js.map +1 -0
  129. package/dist/esm/protocols/cctpTransfer.d.ts +41 -0
  130. package/dist/esm/protocols/cctpTransfer.d.ts.map +1 -0
  131. package/dist/esm/protocols/cctpTransfer.js +455 -0
  132. package/dist/esm/protocols/cctpTransfer.js.map +1 -0
  133. package/dist/esm/protocols/gatewayTransfer.d.ts +40 -0
  134. package/dist/esm/protocols/gatewayTransfer.d.ts.map +1 -0
  135. package/dist/esm/protocols/gatewayTransfer.js +402 -0
  136. package/dist/esm/protocols/gatewayTransfer.js.map +1 -0
  137. package/dist/esm/protocols/tokenTransfer.d.ts +40 -0
  138. package/dist/esm/protocols/tokenTransfer.d.ts.map +1 -0
  139. package/dist/esm/protocols/tokenTransfer.js +468 -0
  140. package/dist/esm/protocols/tokenTransfer.js.map +1 -0
  141. package/dist/esm/protocols/wormholeTransfer.d.ts +20 -0
  142. package/dist/esm/protocols/wormholeTransfer.d.ts.map +1 -0
  143. package/dist/esm/protocols/wormholeTransfer.js +2 -0
  144. package/dist/esm/protocols/wormholeTransfer.js.map +1 -0
  145. package/dist/esm/routes/cctp/automatic.d.ts +46 -0
  146. package/dist/esm/routes/cctp/automatic.d.ts.map +1 -0
  147. package/dist/esm/routes/cctp/automatic.js +131 -0
  148. package/dist/esm/routes/cctp/automatic.js.map +1 -0
  149. package/dist/esm/routes/cctp/index.d.ts +3 -0
  150. package/dist/esm/routes/cctp/index.d.ts.map +1 -0
  151. package/dist/esm/routes/cctp/index.js +3 -0
  152. package/dist/esm/routes/cctp/index.js.map +1 -0
  153. package/dist/esm/routes/cctp/manual.d.ts +43 -0
  154. package/dist/esm/routes/cctp/manual.d.ts.map +1 -0
  155. package/dist/esm/routes/cctp/manual.js +109 -0
  156. package/dist/esm/routes/cctp/manual.js.map +1 -0
  157. package/dist/esm/routes/common.d.ts +13 -0
  158. package/dist/esm/routes/common.d.ts.map +1 -0
  159. package/dist/esm/routes/common.js +41 -0
  160. package/dist/esm/routes/common.js.map +1 -0
  161. package/dist/esm/routes/index.d.ts +9 -0
  162. package/dist/esm/routes/index.d.ts.map +1 -0
  163. package/dist/esm/routes/index.js +9 -0
  164. package/dist/esm/routes/index.js.map +1 -0
  165. package/dist/esm/routes/portico/automatic.d.ts +68 -0
  166. package/dist/esm/routes/portico/automatic.d.ts.map +1 -0
  167. package/dist/esm/routes/portico/automatic.js +204 -0
  168. package/dist/esm/routes/portico/automatic.js.map +1 -0
  169. package/dist/esm/routes/portico/index.d.ts +2 -0
  170. package/dist/esm/routes/portico/index.d.ts.map +1 -0
  171. package/dist/esm/routes/portico/index.js +2 -0
  172. package/dist/esm/routes/portico/index.js.map +1 -0
  173. package/dist/esm/routes/portico/utils.d.ts +1 -0
  174. package/dist/esm/routes/portico/utils.d.ts.map +1 -0
  175. package/dist/esm/routes/portico/utils.js +2 -0
  176. package/dist/esm/routes/portico/utils.js.map +1 -0
  177. package/dist/esm/routes/request.d.ts +25 -0
  178. package/dist/esm/routes/request.d.ts.map +1 -0
  179. package/dist/esm/routes/request.js +61 -0
  180. package/dist/esm/routes/request.js.map +1 -0
  181. package/dist/esm/routes/resolver.d.ts +15 -0
  182. package/dist/esm/routes/resolver.d.ts.map +1 -0
  183. package/dist/esm/routes/resolver.js +83 -0
  184. package/dist/esm/routes/resolver.js.map +1 -0
  185. package/dist/esm/routes/route.d.ts +46 -0
  186. package/dist/esm/routes/route.d.ts.map +1 -0
  187. package/dist/esm/routes/route.js +26 -0
  188. package/dist/esm/routes/route.js.map +1 -0
  189. package/dist/esm/routes/token.d.ts +12 -0
  190. package/dist/esm/routes/token.d.ts.map +1 -0
  191. package/dist/esm/routes/token.js +31 -0
  192. package/dist/esm/routes/token.js.map +1 -0
  193. package/dist/esm/routes/tokenBridge/automatic.d.ts +46 -0
  194. package/dist/esm/routes/tokenBridge/automatic.d.ts.map +1 -0
  195. package/dist/esm/routes/tokenBridge/automatic.js +141 -0
  196. package/dist/esm/routes/tokenBridge/automatic.js.map +1 -0
  197. package/dist/esm/routes/tokenBridge/index.d.ts +3 -0
  198. package/dist/esm/routes/tokenBridge/index.d.ts.map +1 -0
  199. package/dist/esm/routes/tokenBridge/index.js +3 -0
  200. package/dist/esm/routes/tokenBridge/index.js.map +1 -0
  201. package/dist/esm/routes/tokenBridge/manual.d.ts +42 -0
  202. package/dist/esm/routes/tokenBridge/manual.d.ts.map +1 -0
  203. package/dist/esm/routes/tokenBridge/manual.js +83 -0
  204. package/dist/esm/routes/tokenBridge/manual.js.map +1 -0
  205. package/dist/esm/routes/types.d.ts +44 -0
  206. package/dist/esm/routes/types.d.ts.map +1 -0
  207. package/dist/esm/routes/types.js +2 -0
  208. package/dist/esm/routes/types.js.map +1 -0
  209. package/dist/esm/tasks.d.ts +7 -0
  210. package/dist/esm/tasks.d.ts.map +1 -0
  211. package/dist/esm/tasks.js +59 -0
  212. package/dist/esm/tasks.js.map +1 -0
  213. package/dist/esm/types.d.ts +73 -0
  214. package/dist/esm/types.d.ts.map +1 -0
  215. package/dist/esm/types.js +27 -0
  216. package/dist/esm/types.js.map +1 -0
  217. package/dist/esm/whscan-api.d.ts +172 -0
  218. package/dist/esm/whscan-api.d.ts.map +1 -0
  219. package/dist/esm/whscan-api.js +222 -0
  220. package/dist/esm/whscan-api.js.map +1 -0
  221. package/dist/esm/wormhole.d.ts +198 -0
  222. package/dist/esm/wormhole.d.ts.map +1 -0
  223. package/dist/esm/wormhole.js +320 -0
  224. package/dist/esm/wormhole.js.map +1 -0
  225. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cctpTransfer.js","sourceRoot":"","sources":["../../../src/protocols/cctpTransfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { AttestationId, ChainContext, GatewayTransferDetails, IbcTransferInfo, Signer, TokenBridge, TokenId, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
3
+ import { TransferState } from "../types";
4
+ import { Wormhole } from "../wormhole";
5
+ import { WormholeTransfer } from "./wormholeTransfer";
6
+ export declare class GatewayTransfer<N extends Network = Network> implements WormholeTransfer<"IbcBridge"> {
7
+ static chain: "Wormchain";
8
+ private readonly wh;
9
+ private readonly gateway;
10
+ private readonly gatewayIbcBridge;
11
+ private readonly gatewayAddress;
12
+ private _state;
13
+ private msg;
14
+ transfer: GatewayTransferDetails;
15
+ transactions: TransactionId[];
16
+ vaas?: {
17
+ id: WormholeMessageId;
18
+ vaa?: TokenBridge.TransferVAA;
19
+ }[];
20
+ ibcTransfers: IbcTransferInfo[];
21
+ private constructor();
22
+ getTransferState(): TransferState;
23
+ static from<N extends Network>(wh: Wormhole<N>, from: GatewayTransferDetails): Promise<GatewayTransfer<N>>;
24
+ static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number): Promise<GatewayTransfer<N>>;
25
+ static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number): Promise<GatewayTransfer<N>>;
26
+ private static _fromMsgId;
27
+ private static _fromTransaction;
28
+ private static ibcTransfertoGatewayTransfer;
29
+ initiateTransfer(signer: Signer): Promise<TxHash[]>;
30
+ private _transfer;
31
+ private _transferIbc;
32
+ fetchAttestation(timeout?: number): Promise<AttestationId[]>;
33
+ completeTransfer(signer: Signer): Promise<TxHash[]>;
34
+ static getTransferVaa<N extends Network>(wh: Wormhole<N>, whm: WormholeMessageId, timeout?: number): Promise<TokenBridge.TransferVAA>;
35
+ static destinationOverrides<N extends Network>(srcChain: ChainContext<N>, dstChain: ChainContext<N>, gatewayChain: ChainContext<N, "Wormchain">, transfer: GatewayTransferDetails): Promise<GatewayTransferDetails>;
36
+ static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, SC>, dstChain: ChainContext<N, DC>, gatewayChain: ChainContext<N, "Wormchain">, token: TokenId<SC>): Promise<TokenId<DC>>;
37
+ private fromGateway;
38
+ private toGateway;
39
+ }
40
+ //# sourceMappingURL=gatewayTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewayTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/gatewayTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EAKR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EAEb,YAAY,EACZ,sBAAsB,EAItB,eAAe,EAEf,MAAM,EACN,WAAW,EACX,OAAO,EACP,aAAa,EACb,MAAM,EAEN,iBAAiB,EAQlB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAE,YAAW,gBAAgB,CAAC,WAAW,CAAC;IAChG,MAAM,CAAC,KAAK,EAAE,WAAW,CAAe;IAExC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IAGjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAE9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAG9C,OAAO,CAAC,MAAM,CAAgB;IAK9B,OAAO,CAAC,GAAG,CAAqD;IAGhE,QAAQ,EAAE,sBAAsB,CAAC;IAGjC,YAAY,EAAE,aAAa,EAAE,CAAM;IAInC,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,iBAAiB,CAAC;QACtB,GAAG,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC;KAC/B,EAAE,CAAC;IAGJ,YAAY,EAAE,eAAe,EAAE,CAAM;IAErC,OAAO;IA4BP,gBAAgB,IAAI,aAAa;WAKpB,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;WACjB,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;WACjB,IAAI,CAAC,CAAC,SAAS,OAAO,EACjC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;mBAiDT,UAAU;mBA2DV,gBAAgB;IAyBrC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAkCrC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAmB3C,SAAS;YAiBT,YAAY;IAkBpB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA6J5D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAgC5C,cAAc,CAAC,CAAC,SAAS,OAAO,EAC3C,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,GAAG,EAAE,iBAAiB,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;WAMtB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EACjD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,YAAY,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,EAC1C,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,sBAAsB,CAAC;WAqBrB,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,KAAK,EACvF,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAC7B,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAC7B,YAAY,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,EAC1C,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,GACjB,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAqCvB,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,SAAS;CAGlB"}
@@ -0,0 +1,402 @@
1
+ import { chainToPlatform, encoding, toChain, } from "@wormhole-foundation/sdk-base";
2
+ import { TokenBridge, UniversalAddress, gatewayTransferMsg, isGatewayTransferDetails, isNative, isTransactionIdentifier, isWormholeMessageId, toGatewayMsg, toNative, } from "@wormhole-foundation/sdk-definitions";
3
+ import { signSendWait } from "../common";
4
+ import { fetchIbcXfer, isTokenBridgeVaaRedeemed, retry } from "../tasks";
5
+ import { TransferState } from "../types";
6
+ import { Wormhole } from "../wormhole";
7
+ export class GatewayTransfer {
8
+ static chain = "Wormchain";
9
+ wh;
10
+ // Wormchain context
11
+ gateway;
12
+ // Wormchain IBC Bridge
13
+ gatewayIbcBridge;
14
+ // Contract address
15
+ gatewayAddress;
16
+ // state machine tracker
17
+ _state;
18
+ // cached message derived from transfer details
19
+ // note: we dont want to create multiple different ones since
20
+ // the nonce may change and we want to keep it consistent
21
+ msg;
22
+ // Initial Transfer Settings
23
+ transfer;
24
+ // Transaction Ids from source chain
25
+ transactions = [];
26
+ // The corresponding vaa representing the GatewayTransfer
27
+ // on the source chain (if it came from outside cosmos and if its been completed and finalized)
28
+ vaas;
29
+ // Any transfers we do over ibc
30
+ ibcTransfers = [];
31
+ constructor(wh, transfer, gateway, gatewayIbc) {
32
+ this._state = TransferState.Created;
33
+ this.wh = wh;
34
+ this.transfer = transfer;
35
+ // reference from conf instead of asking the module
36
+ // so we can prevent weird imports
37
+ this.gatewayAddress = {
38
+ chain: GatewayTransfer.chain,
39
+ address: toNative(GatewayTransfer.chain, this.wh.config.chains[GatewayTransfer.chain].contracts.gateway),
40
+ };
41
+ // cache the wormchain chain context since we need it for checks
42
+ this.gateway = gateway;
43
+ this.gatewayIbcBridge = gatewayIbc;
44
+ // cache the message since we don't want to regenerate it any time we need it
45
+ this.msg = gatewayTransferMsg(this.transfer);
46
+ }
47
+ getTransferState() {
48
+ return this._state;
49
+ }
50
+ static async from(wh, from, timeout) {
51
+ // we need this regardless of the type of `from`
52
+ const wc = wh.getChain(GatewayTransfer.chain);
53
+ const wcibc = await wc.getIbcBridge();
54
+ // Fresh new transfer
55
+ if (isGatewayTransferDetails(from)) {
56
+ const fromChain = wh.getChain(from.from.chain);
57
+ const toChain = wh.getChain(from.to.chain);
58
+ const overrides = await GatewayTransfer.destinationOverrides(fromChain, toChain, wc, from);
59
+ // Override transfer params if necessary
60
+ from = { ...from, ...overrides };
61
+ return new GatewayTransfer(wh, from, wc, wcibc);
62
+ }
63
+ // Picking up where we left off
64
+ let gtd;
65
+ let txns = [];
66
+ if (isTransactionIdentifier(from)) {
67
+ txns.push(from);
68
+ gtd = await GatewayTransfer._fromTransaction(wh, from);
69
+ }
70
+ else if (isWormholeMessageId(from)) {
71
+ // TODO: we're missing the transaction that created this
72
+ // get it from transaction status search on wormholescan?
73
+ gtd = await GatewayTransfer._fromMsgId(wh, from);
74
+ }
75
+ else {
76
+ throw new Error("Invalid `from` parameter for GatewayTransfer");
77
+ }
78
+ const gt = new GatewayTransfer(wh, gtd, wc, wcibc);
79
+ gt.transactions = txns;
80
+ // Since we're picking up from somewhere we can move the
81
+ // state maching to initiated
82
+ gt._state = TransferState.SourceInitiated;
83
+ // Wait for what _can_ complete to complete
84
+ await gt.fetchAttestation(timeout);
85
+ return gt;
86
+ }
87
+ // Recover Transfer info from VAA details
88
+ static async _fromMsgId(wh, from, timeout) {
89
+ // Starting with the VAA
90
+ const vaa = await GatewayTransfer.getTransferVaa(wh, from, timeout);
91
+ // The VAA may have a payload which may have a nested GatewayTransferMessage
92
+ let payload = vaa.payloadName === "TransferWithPayload" ? vaa.payload.payload : undefined;
93
+ // Nonce for GatewayTransferMessage may be in the payload
94
+ // and since we use the payload to find the Wormchain transacton
95
+ // we need to preserve it
96
+ let nonce;
97
+ let to = { ...vaa.payload.to };
98
+ // The payload here may be the message for Gateway
99
+ // Lets be sure to pull the real payload if its set
100
+ // Otherwise revert to undefined
101
+ if (payload) {
102
+ try {
103
+ const maybeWithPayload = toGatewayMsg(encoding.bytes.decode(payload));
104
+ nonce = maybeWithPayload.nonce;
105
+ payload = maybeWithPayload.payload
106
+ ? encoding.bytes.encode(maybeWithPayload.payload)
107
+ : undefined;
108
+ const destChain = toChain(maybeWithPayload.chain);
109
+ // b64 decode the address to its string representation
110
+ const recipientAddress = encoding.bytes.decode(encoding.b64.decode(maybeWithPayload.recipient));
111
+ to = Wormhole.chainAddress(destChain, recipientAddress);
112
+ }
113
+ catch {
114
+ /*Ignoring, throws if not the payload isnt JSON*/
115
+ }
116
+ }
117
+ const { chain, address, amount } = vaa.payload.token;
118
+ // Reconstruct the details
119
+ const details = {
120
+ token: { chain, address },
121
+ amount: amount,
122
+ // TODO: the `from.address` here is a lie, but we don't
123
+ // immediately have enough info to get the _correct_ one
124
+ from: { chain: from.chain, address: from.emitter },
125
+ to,
126
+ nonce,
127
+ payload: payload,
128
+ };
129
+ return details;
130
+ }
131
+ // Init from source tx hash, depending on the source chain
132
+ // we pull Transfer info from either IBC or a wh message
133
+ static async _fromTransaction(wh, from, timeout) {
134
+ const { chain, txid } = from;
135
+ const originChain = wh.getChain(chain);
136
+ // If its origin chain supports IBC, it should be an IBC message
137
+ if (originChain.supportsIbcBridge()) {
138
+ // Get the ibc tx info from the origin
139
+ const ibcBridge = await originChain.getIbcBridge();
140
+ const [xfer] = await ibcBridge.lookupTransferFromTx(from.txid);
141
+ return GatewayTransfer.ibcTransfertoGatewayTransfer(xfer);
142
+ }
143
+ // Otherwise grab the vaa details from the origin tx
144
+ const msgs = await Wormhole.parseMessageFromTx(originChain, txid);
145
+ if (!msgs)
146
+ throw new Error("No messages found in transaction");
147
+ return await GatewayTransfer._fromMsgId(wh, msgs[0], timeout);
148
+ }
149
+ // Recover transfer info the first step in the transfer
150
+ static ibcTransfertoGatewayTransfer(xfer) {
151
+ const token = Wormhole.tokenId(xfer.id.chain, xfer.data.denom);
152
+ const msg = toGatewayMsg(xfer.data.memo);
153
+ const destChain = toChain(msg.chain);
154
+ const _recip = encoding.b64.decode(msg.recipient);
155
+ const recipient = chainToPlatform(destChain) === "Cosmwasm"
156
+ ? Wormhole.chainAddress(destChain, encoding.bytes.decode(_recip))
157
+ : {
158
+ chain: destChain,
159
+ address: new UniversalAddress(_recip).toNative(destChain),
160
+ };
161
+ const payload = msg.payload ? encoding.bytes.encode(msg.payload) : undefined;
162
+ const details = {
163
+ token,
164
+ amount: BigInt(xfer.data.amount),
165
+ from: {
166
+ chain: xfer.id.chain,
167
+ address: toNative(xfer.id.chain, xfer.data.sender),
168
+ },
169
+ to: recipient,
170
+ fee: BigInt(msg.fee),
171
+ payload,
172
+ };
173
+ return details;
174
+ }
175
+ // start the WormholeTransfer by submitting transactions to the source chain
176
+ // returns a transaction hash
177
+ async initiateTransfer(signer) {
178
+ /*
179
+ 0) Check current `state` is valid to call this (eg: state == Created)
180
+ 1) Figure out where to call and issue transactions
181
+ 2) Update state
182
+ 3) return transaction ids
183
+ */
184
+ if (this._state !== TransferState.Created)
185
+ throw new Error("Invalid state transition in `start`");
186
+ this.transactions = await (this.fromGateway()
187
+ ? this._transferIbc(signer)
188
+ : this._transfer(signer));
189
+ // Update State Machine
190
+ this._state = TransferState.SourceInitiated;
191
+ return this.transactions.map((tx) => tx.txid);
192
+ }
193
+ async _transfer(signer) {
194
+ const tokenAddress = this.transfer.token.address;
195
+ const fromChain = this.wh.getChain(this.transfer.from.chain);
196
+ // Build the message needed to send a transfer through the gateway
197
+ const tb = await fromChain.getTokenBridge();
198
+ const xfer = tb.transfer(this.transfer.from.address, this.gatewayAddress, tokenAddress, this.transfer.amount, encoding.bytes.encode(JSON.stringify(this.msg)));
199
+ return signSendWait(fromChain, xfer, signer);
200
+ }
201
+ async _transferIbc(signer) {
202
+ if (isNative(this.transfer.token.address))
203
+ throw new Error("Native not supported for IBC transfers");
204
+ const fromChain = this.wh.getChain(this.transfer.from.chain);
205
+ const ibcBridge = await fromChain.getIbcBridge();
206
+ const xfer = ibcBridge.transfer(this.transfer.from.address, this.transfer.to, this.transfer.token.address, this.transfer.amount);
207
+ return signSendWait(fromChain, xfer, signer);
208
+ }
209
+ // wait for the Attestations to be ready
210
+ async fetchAttestation(timeout) {
211
+ // Note: this method probably does too much
212
+ if (this._state < TransferState.SourceInitiated || this._state > TransferState.Attested)
213
+ throw new Error("Invalid state transition in `fetchAttestation`");
214
+ const attestations = [];
215
+ const chain = this.wh.getChain(this.transfer.from.chain);
216
+ // collect ibc transfers and additional transaction ids
217
+ if (this.fromGateway()) {
218
+ // assume all the txs are from the same chain
219
+ // and get the ibc bridge once
220
+ const originIbcbridge = await chain.getIbcBridge();
221
+ // Ultimately we need to find the corresponding Wormchain transaction
222
+ // from the intitiating cosmos chain, this will contain the details of the
223
+ // outbound transaction to the destination chain
224
+ // start by getting the IBC transfers into wormchain
225
+ // from the cosmos chain
226
+ this.ibcTransfers = (await Promise.all(this.transactions.map((tx) => originIbcbridge.lookupTransferFromTx(tx.txid)))).flat();
227
+ // I don't know why this would happen so lmk if you see this
228
+ if (this.ibcTransfers.length != 1)
229
+ throw new Error("why?");
230
+ const [xfer] = this.ibcTransfers;
231
+ if (!this.toGateway()) {
232
+ // If we're leaving cosmos, grab the VAA from the gateway
233
+ // now find the corresponding wormchain transaction given the ibcTransfer info
234
+ const retryInterval = 5000;
235
+ const task = () => this.gatewayIbcBridge.lookupMessageFromIbcMsgId(xfer.id);
236
+ const whm = await retry(task, retryInterval, timeout, "Gateway:IbcBridge:LookupWormholeMessageFromIncomingIbcMessage");
237
+ if (!whm)
238
+ throw new Error("Matching wormhole message not found after retries exhausted");
239
+ const vaa = await GatewayTransfer.getTransferVaa(this.wh, whm);
240
+ this.vaas = [{ id: whm, vaa }];
241
+ attestations.push(whm);
242
+ }
243
+ else {
244
+ // Otherwise we need to get the transfer on the destination chain
245
+ // using the transfer from wormchain
246
+ const gatewayTransferTask = () => fetchIbcXfer(this.gatewayIbcBridge, xfer.id);
247
+ const gatewayIbcTransfers = await retry(gatewayTransferTask, 5000, timeout, "Gateway:IbcBridge:LookupWormchainIbcTransfer");
248
+ if (gatewayIbcTransfers === null)
249
+ throw new Error("Gateway IBC transfer not found after retries exhausted");
250
+ const toDestChainIbcTransfer = gatewayIbcTransfers[1];
251
+ const dstChain = this.wh.getChain(this.transfer.to.chain);
252
+ const dstIbcBridge = await dstChain.getIbcBridge();
253
+ const dstMsgTask = () => fetchIbcXfer(dstIbcBridge, toDestChainIbcTransfer.id);
254
+ const dstIbcTransfers = await retry(dstMsgTask, 5000, timeout, "Gateway:IbcBridge:LookupDestinationIbcTransfer");
255
+ if (!dstIbcTransfers)
256
+ throw new Error("Destination IBC transfer not found after retries exhausted");
257
+ this.ibcTransfers.push(dstIbcTransfers[0]);
258
+ }
259
+ }
260
+ else {
261
+ // Otherwise, we're coming from outside cosmos and
262
+ // we need to find the wormchain ibc transaction information
263
+ // by searching for the transaction containing the
264
+ // GatewayTransferMsg
265
+ const transferTransaction = this.transactions[this.transactions.length - 1];
266
+ const [whm] = await Wormhole.parseMessageFromTx(chain, transferTransaction.txid);
267
+ const vaa = await GatewayTransfer.getTransferVaa(this.wh, whm);
268
+ this.vaas = [{ id: whm, vaa }];
269
+ attestations.push(whm);
270
+ // TODO: conf for these settings? how do we choose them?
271
+ const vaaRedeemedRetryInterval = 2000;
272
+ const transferCompleteInterval = 5000;
273
+ // Wait until the vaa is redeemed before trying to look up the
274
+ // transfer message
275
+ const wcTb = await this.gateway.getTokenBridge();
276
+ // Since we want to retry until its redeemed, return null
277
+ // in the case that its not redeemed
278
+ const isRedeemedTask = () => isTokenBridgeVaaRedeemed(wcTb, vaa);
279
+ const redeemed = await retry(isRedeemedTask, vaaRedeemedRetryInterval, timeout, "Gateway:TokenBridge:IsVaaRedeemed");
280
+ if (!redeemed)
281
+ throw new Error("VAA not redeemed after retries exhausted");
282
+ // Next, get the IBC transactions from wormchain
283
+ // Note: Because we search by GatewayTransferMsg payload
284
+ // there is a possibility of dupe messages being returned
285
+ // using a nonce should help
286
+ const wcTransferTask = () => fetchIbcXfer(this.gatewayIbcBridge, this.msg);
287
+ const wcTransfers = await retry(wcTransferTask, vaaRedeemedRetryInterval, timeout, "Gateway:IbcBridge:WormchainTransferInitiated");
288
+ if (!wcTransfers)
289
+ throw new Error("Wormchain transfer not found after retries exhausted");
290
+ const [wcTransfer] = wcTransfers;
291
+ if (wcTransfer.pending) {
292
+ // TODO: check if pending and bail(?) if so
293
+ }
294
+ this.ibcTransfers.push(wcTransfer);
295
+ // Finally, get the IBC transfer to the destination chain
296
+ const destChain = this.wh.getChain(this.transfer.to.chain);
297
+ const destIbcBridge = await destChain.getIbcBridge();
298
+ const destTransferTask = () => fetchIbcXfer(destIbcBridge, wcTransfer.id);
299
+ const destTransfer = await retry(destTransferTask, transferCompleteInterval, timeout, "Destination:IbcBridge:WormchainTransferCompleted");
300
+ if (!destTransfer)
301
+ throw new Error("IBC Transfer into destination not found after retries exhausted" +
302
+ JSON.stringify(wcTransfer));
303
+ this.ibcTransfers.push(destTransfer[0]);
304
+ }
305
+ // Add transfers to attestations we return
306
+ // Note: there is no ordering guarantee here
307
+ attestations.push(...this.ibcTransfers.map((xfer) => xfer.id));
308
+ this._state = TransferState.Attested;
309
+ return attestations;
310
+ }
311
+ // finish the WormholeTransfer by submitting transactions to the destination chain
312
+ // returns a transaction hash
313
+ async completeTransfer(signer) {
314
+ /*
315
+ 0) check that the current `state` is valid to call this (eg: state == Ready)
316
+ 1) prepare the transactions and sign them given the signer
317
+ 2) submit the VAA and transactions on chain
318
+ 3) return txid of submission
319
+ */
320
+ if (this._state < TransferState.Attested)
321
+ throw new Error("Invalid state transition in `finish`. Be sure to call `fetchAttestation`.");
322
+ if (this.toGateway())
323
+ // TODO: assuming the last transaction captured is the one from gateway to the destination
324
+ return [this.transactions[this.transactions.length - 1].txid];
325
+ if (!this.vaas)
326
+ throw new Error("No VAA details available to redeem");
327
+ if (this.vaas.length > 1)
328
+ throw new Error("Expected 1 vaa");
329
+ const toChain = this.wh.getChain(signer.chain());
330
+ const toAddress = toNative(signer.chain(), signer.address());
331
+ const tb = await toChain.getTokenBridge();
332
+ const { vaa } = this.vaas[0];
333
+ if (!vaa)
334
+ throw new Error(`No VAA found for ${this.vaas[0].id.sequence}`);
335
+ const xfer = tb.redeem(toAddress, vaa);
336
+ const redeemTxs = await signSendWait(toChain, xfer, signer);
337
+ this.transactions.push(...redeemTxs);
338
+ this._state = TransferState.DestinationInitiated;
339
+ return redeemTxs.map(({ txid }) => txid);
340
+ }
341
+ static async getTransferVaa(wh, whm, timeout) {
342
+ const vaa = await wh.getVaa(whm, TokenBridge.getTransferDiscriminator(), timeout);
343
+ if (!vaa)
344
+ throw new Error(`No VAA Available: ${whm.chain}/${whm.emitter}/${whm.sequence}`);
345
+ return vaa;
346
+ }
347
+ static async destinationOverrides(srcChain, dstChain, gatewayChain, transfer) {
348
+ const _transfer = { ...transfer };
349
+ // Bit of (temporary) hackery until solana contracts support being
350
+ // sent a VAA with the primary address
351
+ if (transfer.to.chain === "Solana") {
352
+ const destinationToken = await GatewayTransfer.lookupDestinationToken(srcChain, dstChain, gatewayChain, _transfer.token);
353
+ _transfer.to = await dstChain.getTokenAccount(_transfer.to.address, destinationToken.address);
354
+ }
355
+ return _transfer;
356
+ }
357
+ // Lookup the token id for the destination chain given the source chain
358
+ // and token id
359
+ static async lookupDestinationToken(srcChain, dstChain, gatewayChain, token) {
360
+ // that will be minted when the transfer is redeemed
361
+ let lookup;
362
+ if (isNative(token.address)) {
363
+ // if native, get the wrapped asset id
364
+ lookup = await srcChain.getNativeWrappedTokenId();
365
+ }
366
+ else {
367
+ try {
368
+ // otherwise, check to see if it is a wrapped token locally
369
+ const tb = await srcChain.getTokenBridge();
370
+ lookup = await tb.getOriginalAsset(token.address);
371
+ }
372
+ catch (e) {
373
+ // not a from-chain native token, check the gateway chain
374
+ try {
375
+ const gtb = await gatewayChain.getTokenBridge();
376
+ lookup = await gtb.getOriginalAsset(token.address);
377
+ }
378
+ catch (e) {
379
+ lookup = token;
380
+ }
381
+ }
382
+ }
383
+ // if the token id is actually native to the destination, return it
384
+ if (lookup.chain === dstChain.chain) {
385
+ return lookup;
386
+ }
387
+ // otherwise, figure out what the token address representing the wormhole-wrapped token we're transferring
388
+ const dstTb = await dstChain.getTokenBridge();
389
+ const dstAddress = await dstTb.getWrappedAsset(lookup);
390
+ return { chain: dstChain.chain, address: dstAddress };
391
+ }
392
+ // Implicitly determine if the chain is Gateway enabled by
393
+ // checking to see if the Gateway IBC bridge has a transfer channel setup
394
+ // If this is a new chain, add the channels to the constants file
395
+ fromGateway() {
396
+ return this.gatewayIbcBridge.getTransferChannel(this.transfer.from.chain) !== null;
397
+ }
398
+ toGateway() {
399
+ return this.gatewayIbcBridge.getTransferChannel(this.transfer.to.chain) !== null;
400
+ }
401
+ }
402
+ //# sourceMappingURL=gatewayTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewayTransfer.js","sourceRoot":"","sources":["../../../src/protocols/gatewayTransfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { AttestationId, AutomaticTokenBridge, ChainContext, Signer, TokenBridge, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt, TransferQuote, TransferReceipt, TransferState } from "../types";
4
+ import { Wormhole } from "../wormhole";
5
+ import { WormholeTransfer } from "./wormholeTransfer";
6
+ export type TokenTransferProtocol = "TokenBridge" | "AutomaticTokenBridge";
7
+ export type TokenTransferVAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA;
8
+ export type TokenTransferAttestationReceipt = AttestationReceipt<TokenTransferProtocol>;
9
+ export type TokenTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<TokenTransferAttestationReceipt, SC, DC>;
10
+ export declare class TokenTransfer<N extends Network = Network> implements WormholeTransfer<TokenTransferProtocol> {
11
+ private readonly wh;
12
+ fromChain: ChainContext<N, Chain>;
13
+ toChain: ChainContext<N, Chain>;
14
+ private _state;
15
+ transfer: TokenTransferDetails;
16
+ txids: TransactionId[];
17
+ attestations?: AttestationReceipt<TokenTransferProtocol>[];
18
+ private constructor();
19
+ getTransferState(): TransferState;
20
+ static from<N extends Network>(wh: Wormhole<N>, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
21
+ static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
22
+ static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
23
+ private static fromIdentifier;
24
+ private static fromTransaction;
25
+ initiateTransfer(signer: Signer): Promise<TxHash[]>;
26
+ fetchAttestation(timeout?: number): Promise<AttestationId[]>;
27
+ completeTransfer(signer: Signer): Promise<TxHash[]>;
28
+ static transfer<N extends Network>(fromChain: ChainContext<N, Chain>, transfer: TokenTransferDetails, signer: Signer<N, Chain>): Promise<TransactionId[]>;
29
+ static redeem<N extends Network>(toChain: ChainContext<N, Chain>, vaa: TokenTransferVAA, signer: Signer<N, Chain>): Promise<TransactionId[]>;
30
+ static isTransferComplete<N extends Network, C extends Chain>(toChain: ChainContext<N, C>, vaa: TokenTransferVAA): Promise<boolean>;
31
+ static getTransferMessage<N extends Network, C extends Chain>(chain: ChainContext<N, C>, txid: TxHash, timeout?: number): Promise<WormholeMessageId>;
32
+ static getTransferVaa<N extends Network>(wh: Wormhole<N>, key: WormholeMessageId | TxHash, timeout?: number): Promise<TokenTransferVAA>;
33
+ static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, SC>, dstChain: ChainContext<N, DC>, token: TokenId<SC>): Promise<TokenId<DC>>;
34
+ static validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): void;
35
+ static quoteTransfer<N extends Network>(wh: Wormhole<N>, srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TransferQuote>;
36
+ static destinationOverrides<N extends Network>(srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TokenTransferDetails>;
37
+ static getReceipt<N extends Network>(xfer: TokenTransfer<N>): TokenTransferReceipt;
38
+ static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: TokenTransferReceipt<SC, DC>, timeout?: number, fromChain?: ChainContext<N, SC>, toChain?: ChainContext<N, DC>): AsyncGenerator<TokenTransferReceipt<SC, DC>>;
39
+ }
40
+ //# sourceMappingURL=tokenTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/tokenTransfer.ts"],"names":[],"mappings":"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"}