@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,46 @@
1
+ import { Chain, Network, amount } from "@wormhole-foundation/sdk-base";
2
+ import { ChainContext, Signer, TokenId } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt } from "../../types";
4
+ import { AutomaticRoute, StaticRouteMethods } from "../route";
5
+ import { Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "../types";
6
+ export declare namespace AutomaticTokenBridgeRoute {
7
+ type Options = {
8
+ nativeGas: number;
9
+ };
10
+ type NormalizedParams = {
11
+ fee: amount.Amount;
12
+ amount: amount.Amount;
13
+ nativeGasAmount: amount.Amount;
14
+ };
15
+ interface ValidatedParams extends ValidatedTransferParams<Options> {
16
+ normalizedParams: NormalizedParams;
17
+ }
18
+ }
19
+ type Op = AutomaticTokenBridgeRoute.Options;
20
+ type Vp = AutomaticTokenBridgeRoute.ValidatedParams;
21
+ type Tp = TransferParams<Op>;
22
+ type Vr = ValidationResult<Op>;
23
+ type R = Receipt<AttestationReceipt<"AutomaticTokenBridge">>;
24
+ type QR = QuoteResult<Op, Vp>;
25
+ type Q = Quote<Op, Vp>;
26
+ export declare class AutomaticTokenBridgeRoute<N extends Network> extends AutomaticRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof AutomaticTokenBridgeRoute> {
27
+ NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
28
+ static meta: {
29
+ name: string;
30
+ };
31
+ static supportedNetworks(): Network[];
32
+ static supportedChains(network: Network): Chain[];
33
+ static supportedSourceTokens(fromChain: ChainContext<Network>): Promise<TokenId[]>;
34
+ static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
35
+ static isProtocolSupported<N extends Network>(chain: ChainContext<N>): boolean;
36
+ getDefaultOptions(): Op;
37
+ isAvailable(): Promise<boolean>;
38
+ validate(params: Tp): Promise<Vr>;
39
+ private normalizeTransferParams;
40
+ quote(params: Vp): Promise<QR>;
41
+ initiate(signer: Signer, quote: Q): Promise<R>;
42
+ track(receipt: R, timeout?: number): AsyncGenerator<import("../../protocols/tokenTransfer").TokenTransferReceipt<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia", "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia">, void, unknown>;
43
+ private toTransferDetails;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=automatic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/automatic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAa,MAAM,+BAA+B,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EAKR,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAiD,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EACL,KAAK,EACL,WAAW,EACX,OAAO,EACP,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,OAAO,GAAG;QAGpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,KAAY,gBAAgB,GAAG;QAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;KAChC,CAAC;IAEF,UAAiB,eAAgB,SAAQ,uBAAuB,CAAC,OAAO,CAAC;QACvE,gBAAgB,EAAE,gBAAgB,CAAC;KACpC;CACF;AAED,KAAK,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC;AAC5C,KAAK,EAAE,GAAG,yBAAyB,CAAC,eAAe,CAAC;AAEpD,KAAK,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AAC7B,KAAK,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC/B,KAAK,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC7D,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvB,qBAAa,yBAAyB,CAAC,CAAC,SAAS,OAAO,CACtD,SAAQ,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACnC,YAAW,kBAAkB,CAAC,OAAO,yBAAyB,CAAC;IAE/D,4BAA4B,UAAQ;IAEpC,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,iBAAiB,IAAI,OAAO,EAAE;IAIrC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE;WAQpC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAY3E,0BAA0B,CAAC,CAAC,SAAS,OAAO,EACvD,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,OAAO,EAAE,CAAC;IAIrB,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI9E,iBAAiB,IAAI,EAAE;IAIjB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YAuBzB,uBAAuB;IA4C/B,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAiB9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY7B,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAczD,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -0,0 +1,141 @@
1
+ import { amount, contracts } from "@wormhole-foundation/sdk-base";
2
+ import { isNative, isTokenId, nativeTokenId, } from "@wormhole-foundation/sdk-definitions";
3
+ import { TokenTransfer } from "../../protocols/tokenTransfer";
4
+ import { TransferState } from "../../types";
5
+ import { AutomaticRoute } from "../route";
6
+ export class AutomaticTokenBridgeRoute extends AutomaticRoute {
7
+ NATIVE_GAS_DROPOFF_SUPPORTED = true;
8
+ static meta = {
9
+ name: "AutomaticTokenBridge",
10
+ };
11
+ static supportedNetworks() {
12
+ return ["Mainnet", "Testnet"];
13
+ }
14
+ // get the list of chains this route supports
15
+ static supportedChains(network) {
16
+ if (contracts.tokenBridgeRelayerChains.has(network)) {
17
+ return contracts.tokenBridgeRelayerChains.get(network);
18
+ }
19
+ return [];
20
+ }
21
+ // get the list of source tokens that are possible to send
22
+ static async supportedSourceTokens(fromChain) {
23
+ const atb = await fromChain.getAutomaticTokenBridge();
24
+ const registered = await atb.getRegisteredTokens();
25
+ return [
26
+ nativeTokenId(fromChain.chain),
27
+ ...registered.map((v) => {
28
+ return { chain: fromChain.chain, address: v };
29
+ }),
30
+ ];
31
+ }
32
+ // get the list of destination tokens that may be recieved on the destination chain
33
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
34
+ return [await TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
35
+ }
36
+ static isProtocolSupported(chain) {
37
+ return chain.supportsAutomaticTokenBridge();
38
+ }
39
+ getDefaultOptions() {
40
+ return { nativeGas: 0.0 };
41
+ }
42
+ async isAvailable() {
43
+ const atb = await this.request.fromChain.getAutomaticTokenBridge();
44
+ if (isTokenId(this.request.source.id)) {
45
+ return await atb.isRegisteredToken(this.request.source.id.address);
46
+ }
47
+ return true;
48
+ }
49
+ async validate(params) {
50
+ try {
51
+ const options = params.options ?? this.getDefaultOptions();
52
+ if (options.nativeGas && (options.nativeGas > 1.0 || options.nativeGas < 0.0))
53
+ throw new Error("Native gas must be between 0.0 and 1.0 (0% and 100%)");
54
+ // If destination is native, max out the nativeGas requested
55
+ const { destination } = this.request;
56
+ if (isNative(destination.id.address) && options.nativeGas === 0.0)
57
+ options.nativeGas = 1.0;
58
+ const updatedParams = { ...params, options };
59
+ const validatedParams = {
60
+ ...updatedParams,
61
+ normalizedParams: await this.normalizeTransferParams(updatedParams),
62
+ };
63
+ return { valid: true, params: validatedParams };
64
+ }
65
+ catch (e) {
66
+ return { valid: false, params, error: e };
67
+ }
68
+ }
69
+ async normalizeTransferParams(params) {
70
+ const amt = this.request.parseAmount(params.amount);
71
+ const inputToken = isNative(this.request.source.id.address)
72
+ ? await this.request.fromChain.getNativeWrappedTokenId()
73
+ : this.request.source.id;
74
+ const atb = await this.request.fromChain.getAutomaticTokenBridge();
75
+ const fee = await atb.getRelayerFee(this.request.from.address, this.request.to, inputToken.address);
76
+ // Min amount is fee + 5%
77
+ const minAmount = (fee * 105n) / 100n;
78
+ if (amount.units(amt) < minAmount) {
79
+ throw new Error(`Minimum amount is ${amount.display({
80
+ amount: minAmount.toString(),
81
+ decimals: amt.decimals,
82
+ })}`);
83
+ }
84
+ const redeemableAmount = amount.units(amt) - fee;
85
+ // Determine nativeGas
86
+ let nativeGasAmount = 0n;
87
+ if (params.options && params.options.nativeGas > 0) {
88
+ const scale = 10000;
89
+ const scaledGas = BigInt(params.options.nativeGas * scale);
90
+ nativeGasAmount = (redeemableAmount * scaledGas) / BigInt(scale);
91
+ }
92
+ return {
93
+ fee: amount.fromBaseUnits(fee, this.request.source.decimals),
94
+ amount: amt,
95
+ nativeGasAmount: amount.fromBaseUnits(nativeGasAmount, this.request.source.decimals),
96
+ };
97
+ }
98
+ async quote(params) {
99
+ try {
100
+ let quote = await TokenTransfer.quoteTransfer(this.wh, this.request.fromChain, this.request.toChain, this.toTransferDetails(params));
101
+ return this.request.displayQuote(quote, params);
102
+ }
103
+ catch (e) {
104
+ return {
105
+ success: false,
106
+ error: e,
107
+ };
108
+ }
109
+ }
110
+ async initiate(signer, quote) {
111
+ const { params } = quote;
112
+ const transfer = this.toTransferDetails(params);
113
+ const txids = await TokenTransfer.transfer(this.request.fromChain, transfer, signer);
114
+ return {
115
+ from: transfer.from.chain,
116
+ to: transfer.to.chain,
117
+ state: TransferState.SourceInitiated,
118
+ originTxs: txids,
119
+ };
120
+ }
121
+ async *track(receipt, timeout) {
122
+ try {
123
+ yield* TokenTransfer.track(this.wh, receipt, timeout, this.request.fromChain, this.request.toChain);
124
+ }
125
+ catch (e) {
126
+ throw e;
127
+ }
128
+ }
129
+ toTransferDetails(params) {
130
+ const transfer = {
131
+ automatic: true,
132
+ from: this.request.from,
133
+ to: this.request.to,
134
+ amount: amount.units(params.normalizedParams.amount),
135
+ token: this.request.source.id,
136
+ nativeGas: amount.units(params.normalizedParams.nativeGasAmount),
137
+ };
138
+ return transfer;
139
+ }
140
+ }
141
+ //# sourceMappingURL=automatic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/automatic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./automatic";
2
+ export * from "./manual";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./automatic";
2
+ export * from "./manual";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Chain, Network, amount } from "@wormhole-foundation/sdk-base";
2
+ import { ChainContext, Signer, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt, TransferReceipt } from "../../types";
4
+ import { ManualRoute, StaticRouteMethods } from "../route";
5
+ import { Quote, QuoteResult, TransferParams, ValidatedTransferParams, ValidationResult } from "../types";
6
+ export declare namespace TokenBridgeRoute {
7
+ type Options = {
8
+ payload?: Uint8Array;
9
+ };
10
+ type NormalizedParams = {
11
+ amount: amount.Amount;
12
+ };
13
+ interface ValidatedParams extends ValidatedTransferParams<Options> {
14
+ normalizedParams: NormalizedParams;
15
+ }
16
+ }
17
+ type Op = TokenBridgeRoute.Options;
18
+ type Vp = TokenBridgeRoute.ValidatedParams;
19
+ type Tp = TransferParams<Op>;
20
+ type Vr = ValidationResult<Op>;
21
+ type QR = QuoteResult<Op, Vp>;
22
+ type Q = Quote<Op, Vp>;
23
+ type R = TransferReceipt<AttestationReceipt<"TokenBridge">>;
24
+ export declare class TokenBridgeRoute<N extends Network> extends ManualRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof TokenBridgeRoute> {
25
+ static meta: {
26
+ name: string;
27
+ };
28
+ static supportedNetworks(): Network[];
29
+ static supportedChains(network: Network): Chain[];
30
+ static supportedSourceTokens(fromChain: ChainContext<Network>): Promise<TokenId[]>;
31
+ static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
32
+ static isProtocolSupported<N extends Network>(chain: ChainContext<N>): boolean;
33
+ getDefaultOptions(): Op;
34
+ validate(params: Tp): Promise<Vr>;
35
+ quote(params: Vp): Promise<QR>;
36
+ initiate(signer: Signer, quote: Q): Promise<R>;
37
+ complete(signer: Signer, receipt: R): Promise<TransactionId[]>;
38
+ track(receipt: R, timeout?: number): AsyncGenerator<import("../../protocols/tokenTransfer").TokenTransferReceipt<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia", "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia">, void, unknown>;
39
+ private toTransferDetails;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=manual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/manual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAa,MAAM,+BAA+B,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EAEP,aAAa,EACd,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,kBAAkB,EAElB,eAAe,EAGhB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,KAAK,EACL,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,yBAAiB,gBAAgB,CAAC;IAChC,KAAY,OAAO,GAAG;QACpB,OAAO,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IAEF,KAAY,gBAAgB,GAAG;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;IAEF,UAAiB,eAAgB,SAAQ,uBAAuB,CAAC,OAAO,CAAC;QACvE,gBAAgB,EAAE,gBAAgB,CAAC;KACpC;CACF;AAED,KAAK,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;AACnC,KAAK,EAAE,GAAG,gBAAgB,CAAC,eAAe,CAAC;AAE3C,KAAK,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AAC7B,KAAK,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAE/B,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvB,KAAK,CAAC,GAAG,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;AAE5D,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAC7C,SAAQ,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAChC,YAAW,kBAAkB,CAAC,OAAO,gBAAgB,CAAC;IAEtD,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,iBAAiB,IAAI,OAAO,EAAE;IAIrC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE;WAKpC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAQ3E,0BAA0B,CAAC,CAAC,SAAS,OAAO,EACvD,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,OAAO,EAAE,CAAC;IAIrB,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI9E,iBAAiB,IAAI,EAAE;IAIjB,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAYjC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAmB9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAW7C,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAUzD,OAAO,CAAC,iBAAiB;CAS1B"}
@@ -0,0 +1,83 @@
1
+ import { amount, contracts } from "@wormhole-foundation/sdk-base";
2
+ import { TokenTransfer } from "../../protocols/tokenTransfer";
3
+ import { TransferState, isAttested, } from "../../types";
4
+ import { Wormhole } from "../../wormhole";
5
+ import { ManualRoute } from "../route";
6
+ export class TokenBridgeRoute extends ManualRoute {
7
+ static meta = {
8
+ name: "ManualTokenBridge",
9
+ };
10
+ static supportedNetworks() {
11
+ return ["Mainnet", "Testnet"];
12
+ }
13
+ // get the list of chains this route supports
14
+ static supportedChains(network) {
15
+ return contracts.tokenBridgeChains(network);
16
+ }
17
+ // get the list of source tokens that are possible to send
18
+ static async supportedSourceTokens(fromChain) {
19
+ // Default list for the chain
20
+ return Object.values(fromChain.config.tokenMap).map((td) => Wormhole.tokenId(td.chain, td.address));
21
+ }
22
+ // get the liist of destination tokens that may be recieved on the destination chain
23
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
24
+ return [await TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
25
+ }
26
+ static isProtocolSupported(chain) {
27
+ return chain.supportsTokenBridge();
28
+ }
29
+ getDefaultOptions() {
30
+ return { payload: undefined };
31
+ }
32
+ async validate(params) {
33
+ const amt = amount.parse(params.amount, this.request.source.decimals);
34
+ const validatedParams = {
35
+ amount: params.amount,
36
+ normalizedParams: { amount: amt },
37
+ options: {},
38
+ };
39
+ return { valid: true, params: validatedParams };
40
+ }
41
+ async quote(params) {
42
+ try {
43
+ return this.request.displayQuote(await TokenTransfer.quoteTransfer(this.wh, this.request.fromChain, this.request.toChain, this.toTransferDetails(params)), params);
44
+ }
45
+ catch (e) {
46
+ return {
47
+ success: false,
48
+ error: e,
49
+ };
50
+ }
51
+ }
52
+ async initiate(signer, quote) {
53
+ const { params } = quote;
54
+ const transfer = this.toTransferDetails(params);
55
+ const txids = await TokenTransfer.transfer(this.request.fromChain, transfer, signer);
56
+ return {
57
+ from: transfer.from.chain,
58
+ to: transfer.to.chain,
59
+ state: TransferState.SourceInitiated,
60
+ originTxs: txids,
61
+ };
62
+ }
63
+ async complete(signer, receipt) {
64
+ if (!isAttested(receipt))
65
+ throw new Error("The source must be finalized in order to complete the transfer");
66
+ return await TokenTransfer.redeem(this.request.toChain,
67
+ // todo: ew?
68
+ receipt.attestation.attestation, signer);
69
+ }
70
+ async *track(receipt, timeout) {
71
+ yield* TokenTransfer.track(this.wh, receipt, timeout, this.request.fromChain, this.request.toChain);
72
+ }
73
+ toTransferDetails(params) {
74
+ return {
75
+ token: this.request.source.id,
76
+ from: this.request.from,
77
+ to: this.request.to,
78
+ amount: amount.units(params.normalizedParams.amount),
79
+ ...params.options,
80
+ };
81
+ }
82
+ }
83
+ //# sourceMappingURL=manual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/manual.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { TokenId } from "@wormhole-foundation/sdk-definitions";
2
+ import { AttestationReceipt, TransferReceipt } from "../types";
3
+ import { amount } from "@wormhole-foundation/sdk-base";
4
+ export interface Options {
5
+ }
6
+ export interface TransferParams<OP> {
7
+ amount: string;
8
+ options?: OP;
9
+ }
10
+ export type Receipt<AT extends AttestationReceipt = AttestationReceipt> = TransferReceipt<AT>;
11
+ export interface ValidatedTransferParams<OP> extends Required<TransferParams<OP>> {
12
+ }
13
+ export type ValidationResult<OP> = {
14
+ params: ValidatedTransferParams<OP>;
15
+ valid: true;
16
+ } | {
17
+ params: TransferParams<OP>;
18
+ valid: false;
19
+ error: Error;
20
+ };
21
+ export type QuoteResult<OP, VP extends ValidatedTransferParams<OP> = ValidatedTransferParams<OP>, D = any> = Quote<OP, VP, D> | QuoteError;
22
+ export type Quote<OP, VP extends ValidatedTransferParams<OP> = ValidatedTransferParams<OP>, D = any> = {
23
+ success: true;
24
+ params: VP;
25
+ sourceToken: {
26
+ token: TokenId;
27
+ amount: amount.Amount;
28
+ };
29
+ destinationToken: {
30
+ token: TokenId;
31
+ amount: amount.Amount;
32
+ };
33
+ relayFee?: {
34
+ token: TokenId;
35
+ amount: amount.Amount;
36
+ };
37
+ destinationNativeGas?: amount.Amount;
38
+ details?: D;
39
+ };
40
+ export type QuoteError = {
41
+ success: false;
42
+ error: Error;
43
+ };
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAIvD,MAAM,WAAW,OAAO;CAAG;AAI3B,MAAM,WAAW,cAAc,CAAC,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,EAAE,CAAC;CACd;AAED,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,kBAAkB,GAAG,kBAAkB,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAK9F,MAAM,WAAW,uBAAuB,CAAC,EAAE,CAAE,SAAQ,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;CAAG;AAOpF,MAAM,MAAM,gBAAgB,CAAC,EAAE,IAC3B;IAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,WAAW,CACrB,EAAE,EACF,EAAE,SAAS,uBAAuB,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,EAAE,CAAC,EACpE,CAAC,GAAG,GAAG,IACL,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;AAGlC,MAAM,MAAM,KAAK,CACf,EAAE,EACF,EAAE,SAAS,uBAAuB,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,EAAE,CAAC,EACpE,CAAC,GAAG,GAAG,IACL;IACF,OAAO,EAAE,IAAI,CAAC;IAGd,MAAM,EAAE,EAAE,CAAC;IAGX,WAAW,EAAE;QACX,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;IAIF,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;IAKF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;IAGrC,OAAO,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { GatewayTransferMsg, GatewayTransferWithPayloadMsg, IbcBridge, IbcMessageId, IbcTransferInfo, TokenBridge, TransactionId, TxHash } from "@wormhole-foundation/sdk-definitions";
3
+ export type Task<T> = () => Promise<T | null>;
4
+ export declare function retry<T>(task: Task<T>, interval: number, timeout?: number, title?: string): Promise<T | null>;
5
+ export declare function isTokenBridgeVaaRedeemed<N extends Network, C extends Chain>(tb: TokenBridge<N, C>, vaa: TokenBridge.TransferVAA): Promise<boolean | null>;
6
+ export declare function fetchIbcXfer<N extends Network, C extends Chain>(wcIbc: IbcBridge<N, C>, msg: TxHash | TransactionId | IbcMessageId | GatewayTransferMsg | GatewayTransferWithPayloadMsg): Promise<IbcTransferInfo[] | null>;
7
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,MAAM,EAKP,MAAM,sCAAsC,CAAC;AAQ9C,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAE9C,wBAAsB,KAAK,CAAC,CAAC,EAC3B,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAA6B,EACtC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA8BnB;AAED,wBAAsB,wBAAwB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,EAC/E,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,GAAG,EAAE,WAAW,CAAC,WAAW,GAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAUzB;AAED,wBAAsB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,EACnE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,6BAA6B,GAC9F,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAWnC"}
@@ -0,0 +1,59 @@
1
+ import { isGatewayTransferMsg, isGatewayTransferWithPayloadMsg, isIbcMessageId, isTransactionIdentifier, } from "@wormhole-foundation/sdk-definitions";
2
+ import { DEFAULT_TASK_TIMEOUT } from "./config";
3
+ export async function retry(task, interval, timeout = DEFAULT_TASK_TIMEOUT, title) {
4
+ const maxRetries = Math.floor(timeout / interval);
5
+ let retries = 0;
6
+ return new Promise((resolve, reject) => {
7
+ task().then((result) => {
8
+ if (result !== null) {
9
+ resolve(result);
10
+ return;
11
+ }
12
+ let intervalId = setInterval(async () => {
13
+ if (retries >= maxRetries) {
14
+ clearInterval(intervalId);
15
+ resolve(null);
16
+ return;
17
+ }
18
+ const result = await task();
19
+ if (result !== null) {
20
+ clearInterval(intervalId);
21
+ resolve(result);
22
+ }
23
+ else if (title) {
24
+ console.log(`Retrying ${title}, attempt ${retries}/${maxRetries} `);
25
+ }
26
+ retries++;
27
+ }, interval);
28
+ });
29
+ });
30
+ }
31
+ export async function isTokenBridgeVaaRedeemed(tb, vaa) {
32
+ try {
33
+ const isRedeemed = await tb.isTransferCompleted(vaa);
34
+ // Only return a real value if its true, otherwise return null
35
+ // signaling that we should retry
36
+ return isRedeemed ? isRedeemed : null;
37
+ }
38
+ catch (e) {
39
+ console.error(`Caught an error checking if VAA is redeemed: ${e}\n`);
40
+ return null;
41
+ }
42
+ }
43
+ export async function fetchIbcXfer(wcIbc, msg) {
44
+ try {
45
+ if (isIbcMessageId(msg))
46
+ return await wcIbc.lookupTransferFromIbcMsgId(msg);
47
+ else if (isTransactionIdentifier(msg))
48
+ return await wcIbc.lookupTransferFromTx(msg.txid);
49
+ else if (isGatewayTransferMsg(msg) || isGatewayTransferWithPayloadMsg(msg))
50
+ return await wcIbc.lookupTransferFromMsg(msg);
51
+ else
52
+ throw new Error("Invalid message type:" + JSON.stringify(msg));
53
+ }
54
+ catch (e) {
55
+ console.error("Caught an error looking for ibc transfer: ", e);
56
+ }
57
+ return null;
58
+ }
59
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AACA,OAAO,EASL,oBAAoB,EACpB,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,IAAa,EACb,QAAgB,EAChB,UAAkB,oBAAoB,EACtC,KAAc;IAEd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;IAElD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO;aACR;YAED,IAAI,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBACtC,IAAI,OAAO,IAAI,UAAU,EAAE;oBACzB,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;iBACR;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBAC5B,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;iBACjB;qBAAM,IAAI,KAAK,EAAE;oBAChB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,aAAa,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC;iBACrE;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAqB,EACrB,GAA4B;IAE5B,IAAI;QACF,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrD,8DAA8D;QAC9D,iCAAiC;QACjC,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;KACvC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAsB,EACtB,GAA+F;IAE/F,IAAI;QACF,IAAI,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;aACvE,IAAI,uBAAuB,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpF,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,+BAA+B,CAAC,GAAG,CAAC;YACxE,OAAO,MAAM,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;;YAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACrE;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;KAChE;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Chain } from "@wormhole-foundation/sdk-base";
2
+ import { Attestation, AttestationId, ProtocolName, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
3
+ export declare enum TransferState {
4
+ Failed = -1,
5
+ Created = 0,
6
+ SourceInitiated = 1,
7
+ SourceFinalized = 2,
8
+ Attested = 3,
9
+ DestinationInitiated = 4,
10
+ DestinationFinalized = 5
11
+ }
12
+ export type AttestationReceipt<PN extends ProtocolName = ProtocolName> = {
13
+ id: AttestationId<PN>;
14
+ attestation?: Attestation<PN>;
15
+ };
16
+ interface BaseTransferReceipt<SC extends Chain, DC extends Chain> {
17
+ from: SC;
18
+ to: DC;
19
+ state: TransferState;
20
+ }
21
+ export interface CreatedTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
22
+ state: TransferState.Created;
23
+ }
24
+ export interface SourceInitiatedTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
25
+ state: TransferState.SourceInitiated;
26
+ originTxs: TransactionId<SC>[];
27
+ }
28
+ export interface SourceFinalizedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
29
+ state: TransferState.SourceFinalized;
30
+ originTxs: TransactionId<SC>[];
31
+ attestation: AT;
32
+ }
33
+ export interface AttestedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
34
+ state: TransferState.Attested;
35
+ originTxs: TransactionId<SC>[];
36
+ attestation: Required<AT>;
37
+ }
38
+ export interface CompletedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
39
+ state: TransferState.DestinationInitiated | TransferState.DestinationFinalized;
40
+ originTxs: TransactionId<SC>[];
41
+ attestation: AT;
42
+ destinationTxs?: TransactionId<DC>[];
43
+ }
44
+ export interface FailedTransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> extends BaseTransferReceipt<SC, DC> {
45
+ state: TransferState.Failed;
46
+ originTxs: TransactionId<SC>[];
47
+ destinationTxs?: TransactionId<DC>[];
48
+ attestation?: AT;
49
+ error: string;
50
+ }
51
+ export declare function isSourceInitiated<AT>(receipt: TransferReceipt<AT>): receipt is SourceInitiatedTransferReceipt;
52
+ export declare function isSourceFinalized<AT>(receipt: TransferReceipt<AT>): receipt is SourceFinalizedTransferReceipt<AT>;
53
+ export declare function isAttested<AT>(receipt: TransferReceipt<AT>): receipt is AttestedTransferReceipt<AT>;
54
+ export declare function isCompleted<AT>(receipt: TransferReceipt<AT>): receipt is CompletedTransferReceipt<AT>;
55
+ export declare function isFailed<AT>(receipt: TransferReceipt<AT>): receipt is FailedTransferReceipt<AT>;
56
+ export type TransferReceipt<AT, SC extends Chain = Chain, DC extends Chain = Chain> = FailedTransferReceipt<AT, SC, DC> | CreatedTransferReceipt<SC, DC> | SourceInitiatedTransferReceipt<SC, DC> | SourceFinalizedTransferReceipt<AT, SC, DC> | AttestedTransferReceipt<AT, SC, DC> | CompletedTransferReceipt<AT, SC, DC>;
57
+ export interface TransferQuote {
58
+ sourceToken: {
59
+ token: TokenId;
60
+ amount: bigint;
61
+ };
62
+ destinationToken: {
63
+ token: TokenId;
64
+ amount: bigint;
65
+ };
66
+ relayFee?: {
67
+ token: TokenId;
68
+ amount: bigint;
69
+ };
70
+ destinationNativeGas?: bigint;
71
+ }
72
+ export {};
73
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ // Transfer state machine states
2
+ export var TransferState;
3
+ (function (TransferState) {
4
+ TransferState[TransferState["Failed"] = -1] = "Failed";
5
+ TransferState[TransferState["Created"] = 0] = "Created";
6
+ TransferState[TransferState["SourceInitiated"] = 1] = "SourceInitiated";
7
+ TransferState[TransferState["SourceFinalized"] = 2] = "SourceFinalized";
8
+ TransferState[TransferState["Attested"] = 3] = "Attested";
9
+ TransferState[TransferState["DestinationInitiated"] = 4] = "DestinationInitiated";
10
+ TransferState[TransferState["DestinationFinalized"] = 5] = "DestinationFinalized";
11
+ })(TransferState || (TransferState = {}));
12
+ export function isSourceInitiated(receipt) {
13
+ return receipt.state === TransferState.SourceInitiated;
14
+ }
15
+ export function isSourceFinalized(receipt) {
16
+ return receipt.state === TransferState.SourceFinalized;
17
+ }
18
+ export function isAttested(receipt) {
19
+ return receipt.state === TransferState.Attested;
20
+ }
21
+ export function isCompleted(receipt) {
22
+ return receipt.state > TransferState.Attested;
23
+ }
24
+ export function isFailed(receipt) {
25
+ return receipt.state < 0;
26
+ }
27
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AASA,gCAAgC;AAChC,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,sDAAW,CAAA;IACX,uDAAW,CAAA;IACX,uEAAe,CAAA;IACf,uEAAe,CAAA;IACf,yDAAQ,CAAA;IACR,iFAAoB,CAAA;IACpB,iFAAoB,CAAA;AACtB,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AA8DD,MAAM,UAAU,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,eAAe,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,eAAe,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,OAA4B;IAE5B,OAAO,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,QAAQ,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAA4B;IAE5B,OAAO,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAK,OAA4B;IACvD,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3B,CAAC"}