@wormhole-foundation/sdk-connect 0.5.0-alpha.3 → 0.5.0-alpha.4

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 (133) 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 +42 -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 +41 -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 +42 -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 +48 -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 +45 -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 +70 -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 +3 -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 +2 -0
  62. package/dist/cjs/routes/portico/utils.d.ts.map +1 -0
  63. package/dist/cjs/routes/portico/utils.js +3 -0
  64. package/dist/cjs/routes/portico/utils.js.map +1 -0
  65. package/dist/cjs/routes/request.d.ts +26 -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 +13 -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 +48 -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 +44 -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 +173 -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/index.d.ts +4 -6
  114. package/dist/esm/index.d.ts.map +1 -1
  115. package/dist/esm/index.js +4 -4
  116. package/dist/esm/index.js.map +1 -1
  117. package/dist/esm/routes/cctp/index.d.ts +2 -2
  118. package/dist/esm/routes/cctp/index.d.ts.map +1 -1
  119. package/dist/esm/routes/cctp/index.js +2 -2
  120. package/dist/esm/routes/cctp/index.js.map +1 -1
  121. package/dist/esm/routes/index.d.ts +8 -10
  122. package/dist/esm/routes/index.d.ts.map +1 -1
  123. package/dist/esm/routes/index.js +8 -7
  124. package/dist/esm/routes/index.js.map +1 -1
  125. package/dist/esm/routes/portico/index.d.ts +2 -2
  126. package/dist/esm/routes/portico/index.d.ts.map +1 -1
  127. package/dist/esm/routes/portico/index.js +1 -1
  128. package/dist/esm/routes/portico/index.js.map +1 -1
  129. package/dist/esm/routes/tokenBridge/index.d.ts +2 -2
  130. package/dist/esm/routes/tokenBridge/index.d.ts.map +1 -1
  131. package/dist/esm/routes/tokenBridge/index.js +2 -2
  132. package/dist/esm/routes/tokenBridge/index.js.map +1 -1
  133. package/package.json +14 -5
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTokenDetails = exports.tokenAddresses = exports.uniqueTokens = void 0;
4
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
6
+ const wormhole_js_1 = require("../wormhole.js");
7
+ function uniqueTokens(tokens) {
8
+ if (tokens.length === 0)
9
+ return [];
10
+ // take the first chain, all should be equal
11
+ const { chain } = tokens[0];
12
+ if (!tokens.every((t) => t.chain === chain))
13
+ throw new Error("Not every chain is equal");
14
+ return Array.from(new Set(tokens.map((t) => (0, sdk_definitions_1.canonicalAddress)(t)))).map((a) => wormhole_js_1.Wormhole.tokenId(chain, a));
15
+ }
16
+ exports.uniqueTokens = uniqueTokens;
17
+ function tokenAddresses(tokens) {
18
+ return tokens.map((t) => (0, sdk_definitions_1.canonicalAddress)(t));
19
+ }
20
+ exports.tokenAddresses = tokenAddresses;
21
+ async function getTokenDetails(chain, token) {
22
+ const address = (0, sdk_definitions_1.canonicalAddress)(token);
23
+ const details = chain.config.tokenMap
24
+ ? sdk_base_1.tokens.filters.byAddress(chain.config.tokenMap, address)
25
+ : undefined;
26
+ const symbol = details ? details.symbol : undefined;
27
+ const wrapped = (0, sdk_definitions_1.isNative)(token.address) ? await chain.getNativeWrappedTokenId() : undefined;
28
+ const decimals = Number(await chain.getDecimals(token.address));
29
+ return {
30
+ id: token,
31
+ decimals,
32
+ wrapped,
33
+ symbol,
34
+ };
35
+ }
36
+ exports.getTokenDetails = getTokenDetails;
37
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/routes/token.ts"],"names":[],"mappings":";;;AACA,4DAAuD;AAEvD,0EAAkF;AAClF,gDAA0C;AAS1C,SAAgB,YAAY,CAAkB,MAAoB;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,4CAA4C;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEzF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAgB,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3E,sBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED,SAAgB,cAAc,CAAC,MAAiB;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAgB,EAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,wCAEC;AAEM,KAAK,UAAU,eAAe,CACnC,KAAsB,EACtB,KAAc;IAEd,MAAM,OAAO,GAAG,IAAA,kCAAgB,EAAC,KAAK,CAAC,CAAC;IAExC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ;QACnC,CAAC,CAAC,iBAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,QAAS,EAAE,OAAO,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,MAAM,OAAO,GAAG,IAAA,0BAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,EAAE,EAAE,KAAK;QACT,QAAQ;QACR,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AApBD,0CAoBC"}
@@ -0,0 +1,48 @@
1
+ import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { amount } from "@wormhole-foundation/sdk-base";
3
+ import type { ChainContext, Signer, TokenId } from "@wormhole-foundation/sdk-definitions";
4
+ import type { AttestationReceipt } from "../../types.js";
5
+ import type { StaticRouteMethods } from "../route.js";
6
+ import { AutomaticRoute } from "../route.js";
7
+ import type { Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
8
+ export declare namespace AutomaticTokenBridgeRoute {
9
+ type Options = {
10
+ nativeGas: number;
11
+ };
12
+ type NormalizedParams = {
13
+ fee: amount.Amount;
14
+ amount: amount.Amount;
15
+ nativeGasAmount: amount.Amount;
16
+ };
17
+ interface ValidatedParams extends ValidatedTransferParams<Options> {
18
+ normalizedParams: NormalizedParams;
19
+ }
20
+ }
21
+ type Op = AutomaticTokenBridgeRoute.Options;
22
+ type Vp = AutomaticTokenBridgeRoute.ValidatedParams;
23
+ type Tp = TransferParams<Op>;
24
+ type Vr = ValidationResult<Op>;
25
+ type R = Receipt<AttestationReceipt<"AutomaticTokenBridge">>;
26
+ type QR = QuoteResult<Op, Vp>;
27
+ type Q = Quote<Op, Vp>;
28
+ export declare class AutomaticTokenBridgeRoute<N extends Network> extends AutomaticRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof AutomaticTokenBridgeRoute> {
29
+ NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
30
+ static meta: {
31
+ name: string;
32
+ };
33
+ static supportedNetworks(): Network[];
34
+ static supportedChains(network: Network): Chain[];
35
+ static supportedSourceTokens(fromChain: ChainContext<Network>): Promise<TokenId[]>;
36
+ static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
37
+ static isProtocolSupported<N extends Network>(chain: ChainContext<N>): boolean;
38
+ getDefaultOptions(): Op;
39
+ isAvailable(): Promise<boolean>;
40
+ validate(params: Tp): Promise<Vr>;
41
+ private normalizeTransferParams;
42
+ quote(params: Vp): Promise<QR>;
43
+ initiate(signer: Signer, quote: Q): Promise<R>;
44
+ track(receipt: R, timeout?: number): AsyncGenerator<import("../../protocols/tokenTransfer.js").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>;
45
+ private toTransferDetails;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=automatic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/automatic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutomaticTokenBridgeRoute = void 0;
4
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
6
+ const tokenTransfer_js_1 = require("../../protocols/tokenTransfer.js");
7
+ const types_js_1 = require("../../types.js");
8
+ const route_js_1 = require("../route.js");
9
+ class AutomaticTokenBridgeRoute extends route_js_1.AutomaticRoute {
10
+ NATIVE_GAS_DROPOFF_SUPPORTED = true;
11
+ static meta = {
12
+ name: "AutomaticTokenBridge",
13
+ };
14
+ static supportedNetworks() {
15
+ return ["Mainnet", "Testnet"];
16
+ }
17
+ // get the list of chains this route supports
18
+ static supportedChains(network) {
19
+ if (sdk_base_1.contracts.tokenBridgeRelayerChains.has(network)) {
20
+ return sdk_base_1.contracts.tokenBridgeRelayerChains.get(network);
21
+ }
22
+ return [];
23
+ }
24
+ // get the list of source tokens that are possible to send
25
+ static async supportedSourceTokens(fromChain) {
26
+ const atb = await fromChain.getAutomaticTokenBridge();
27
+ const registered = await atb.getRegisteredTokens();
28
+ return [
29
+ (0, sdk_definitions_1.nativeTokenId)(fromChain.chain),
30
+ ...registered.map((v) => {
31
+ return { chain: fromChain.chain, address: v };
32
+ }),
33
+ ];
34
+ }
35
+ // get the list of destination tokens that may be recieved on the destination chain
36
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
37
+ return [await tokenTransfer_js_1.TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
38
+ }
39
+ static isProtocolSupported(chain) {
40
+ return chain.supportsAutomaticTokenBridge();
41
+ }
42
+ getDefaultOptions() {
43
+ return { nativeGas: 0.0 };
44
+ }
45
+ async isAvailable() {
46
+ const atb = await this.request.fromChain.getAutomaticTokenBridge();
47
+ if ((0, sdk_definitions_1.isTokenId)(this.request.source.id)) {
48
+ return await atb.isRegisteredToken(this.request.source.id.address);
49
+ }
50
+ return true;
51
+ }
52
+ async validate(params) {
53
+ try {
54
+ const options = params.options ?? this.getDefaultOptions();
55
+ if (options.nativeGas && (options.nativeGas > 1.0 || options.nativeGas < 0.0))
56
+ throw new Error("Native gas must be between 0.0 and 1.0 (0% and 100%)");
57
+ // If destination is native, max out the nativeGas requested
58
+ const { destination } = this.request;
59
+ if ((0, sdk_definitions_1.isNative)(destination.id.address) && options.nativeGas === 0.0)
60
+ options.nativeGas = 1.0;
61
+ const updatedParams = { ...params, options };
62
+ const validatedParams = {
63
+ ...updatedParams,
64
+ normalizedParams: await this.normalizeTransferParams(updatedParams),
65
+ };
66
+ return { valid: true, params: validatedParams };
67
+ }
68
+ catch (e) {
69
+ return { valid: false, params, error: e };
70
+ }
71
+ }
72
+ async normalizeTransferParams(params) {
73
+ const amt = this.request.parseAmount(params.amount);
74
+ const inputToken = (0, sdk_definitions_1.isNative)(this.request.source.id.address)
75
+ ? await this.request.fromChain.getNativeWrappedTokenId()
76
+ : this.request.source.id;
77
+ const atb = await this.request.fromChain.getAutomaticTokenBridge();
78
+ const fee = await atb.getRelayerFee(this.request.from.address, this.request.to, inputToken.address);
79
+ // Min amount is fee + 5%
80
+ const minAmount = (fee * 105n) / 100n;
81
+ if (sdk_base_1.amount.units(amt) < minAmount) {
82
+ throw new Error(`Minimum amount is ${sdk_base_1.amount.display({
83
+ amount: minAmount.toString(),
84
+ decimals: amt.decimals,
85
+ })}`);
86
+ }
87
+ const redeemableAmount = sdk_base_1.amount.units(amt) - fee;
88
+ // Determine nativeGas
89
+ let nativeGasAmount = 0n;
90
+ if (params.options && params.options.nativeGas > 0) {
91
+ const scale = 10000;
92
+ const scaledGas = BigInt(params.options.nativeGas * scale);
93
+ nativeGasAmount = (redeemableAmount * scaledGas) / BigInt(scale);
94
+ }
95
+ return {
96
+ fee: sdk_base_1.amount.fromBaseUnits(fee, this.request.source.decimals),
97
+ amount: amt,
98
+ nativeGasAmount: sdk_base_1.amount.fromBaseUnits(nativeGasAmount, this.request.source.decimals),
99
+ };
100
+ }
101
+ async quote(params) {
102
+ try {
103
+ let quote = await tokenTransfer_js_1.TokenTransfer.quoteTransfer(this.wh, this.request.fromChain, this.request.toChain, this.toTransferDetails(params));
104
+ return this.request.displayQuote(quote, params);
105
+ }
106
+ catch (e) {
107
+ return {
108
+ success: false,
109
+ error: e,
110
+ };
111
+ }
112
+ }
113
+ async initiate(signer, quote) {
114
+ const { params } = quote;
115
+ const transfer = this.toTransferDetails(params);
116
+ const txids = await tokenTransfer_js_1.TokenTransfer.transfer(this.request.fromChain, transfer, signer);
117
+ return {
118
+ from: transfer.from.chain,
119
+ to: transfer.to.chain,
120
+ state: types_js_1.TransferState.SourceInitiated,
121
+ originTxs: txids,
122
+ };
123
+ }
124
+ async *track(receipt, timeout) {
125
+ try {
126
+ yield* tokenTransfer_js_1.TokenTransfer.track(this.wh, receipt, timeout, this.request.fromChain, this.request.toChain);
127
+ }
128
+ catch (e) {
129
+ throw e;
130
+ }
131
+ }
132
+ toTransferDetails(params) {
133
+ const transfer = {
134
+ automatic: true,
135
+ from: this.request.from,
136
+ to: this.request.to,
137
+ amount: sdk_base_1.amount.units(params.normalizedParams.amount),
138
+ token: this.request.source.id,
139
+ nativeGas: sdk_base_1.amount.units(params.normalizedParams.nativeGasAmount),
140
+ };
141
+ return transfer;
142
+ }
143
+ }
144
+ exports.AutomaticTokenBridgeRoute = AutomaticTokenBridgeRoute;
145
+ //# 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.js";
2
+ export * from "./manual.js";
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,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./automatic.js"), exports);
18
+ __exportStar(require("./manual.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,8CAA4B"}
@@ -0,0 +1,44 @@
1
+ import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { amount } from "@wormhole-foundation/sdk-base";
3
+ import type { ChainContext, Signer, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
4
+ import type { AttestationReceipt, TransferReceipt } from "../../types.js";
5
+ import type { StaticRouteMethods } from "../route.js";
6
+ import { ManualRoute } from "../route.js";
7
+ import type { Quote, QuoteResult, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
8
+ export declare namespace TokenBridgeRoute {
9
+ type Options = {
10
+ payload?: Uint8Array;
11
+ };
12
+ type NormalizedParams = {
13
+ amount: amount.Amount;
14
+ };
15
+ interface ValidatedParams extends ValidatedTransferParams<Options> {
16
+ normalizedParams: NormalizedParams;
17
+ }
18
+ }
19
+ type Op = TokenBridgeRoute.Options;
20
+ type Vp = TokenBridgeRoute.ValidatedParams;
21
+ type Tp = TransferParams<Op>;
22
+ type Vr = ValidationResult<Op>;
23
+ type QR = QuoteResult<Op, Vp>;
24
+ type Q = Quote<Op, Vp>;
25
+ type R = TransferReceipt<AttestationReceipt<"TokenBridge">>;
26
+ export declare class TokenBridgeRoute<N extends Network> extends ManualRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof TokenBridgeRoute> {
27
+ static meta: {
28
+ name: string;
29
+ };
30
+ static supportedNetworks(): Network[];
31
+ static supportedChains(network: Network): Chain[];
32
+ static supportedSourceTokens(fromChain: ChainContext<Network>): Promise<TokenId[]>;
33
+ static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
34
+ static isProtocolSupported<N extends Network>(chain: ChainContext<N>): boolean;
35
+ getDefaultOptions(): Op;
36
+ validate(params: Tp): Promise<Vr>;
37
+ quote(params: Vp): Promise<QR>;
38
+ initiate(signer: Signer, quote: Q): Promise<R>;
39
+ complete(signer: Signer, receipt: R): Promise<TransactionId[]>;
40
+ track(receipt: R, timeout?: number): AsyncGenerator<import("../../protocols/tokenTransfer.js").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>;
41
+ private toTransferDetails;
42
+ }
43
+ export {};
44
+ //# 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,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAa,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,OAAO,EAEP,aAAa,EACd,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,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,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenBridgeRoute = void 0;
4
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
+ const tokenTransfer_js_1 = require("../../protocols/tokenTransfer.js");
6
+ const types_js_1 = require("../../types.js");
7
+ const wormhole_js_1 = require("../../wormhole.js");
8
+ const route_js_1 = require("../route.js");
9
+ class TokenBridgeRoute extends route_js_1.ManualRoute {
10
+ static meta = {
11
+ name: "ManualTokenBridge",
12
+ };
13
+ static supportedNetworks() {
14
+ return ["Mainnet", "Testnet"];
15
+ }
16
+ // get the list of chains this route supports
17
+ static supportedChains(network) {
18
+ return sdk_base_1.contracts.tokenBridgeChains(network);
19
+ }
20
+ // get the list of source tokens that are possible to send
21
+ static async supportedSourceTokens(fromChain) {
22
+ // Default list for the chain
23
+ return Object.values(fromChain.config.tokenMap).map((td) => wormhole_js_1.Wormhole.tokenId(td.chain, td.address));
24
+ }
25
+ // get the liist of destination tokens that may be recieved on the destination chain
26
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
27
+ return [await tokenTransfer_js_1.TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken)];
28
+ }
29
+ static isProtocolSupported(chain) {
30
+ return chain.supportsTokenBridge();
31
+ }
32
+ getDefaultOptions() {
33
+ return { payload: undefined };
34
+ }
35
+ async validate(params) {
36
+ const amt = sdk_base_1.amount.parse(params.amount, this.request.source.decimals);
37
+ const validatedParams = {
38
+ amount: params.amount,
39
+ normalizedParams: { amount: amt },
40
+ options: {},
41
+ };
42
+ return { valid: true, params: validatedParams };
43
+ }
44
+ async quote(params) {
45
+ try {
46
+ return this.request.displayQuote(await tokenTransfer_js_1.TokenTransfer.quoteTransfer(this.wh, this.request.fromChain, this.request.toChain, this.toTransferDetails(params)), params);
47
+ }
48
+ catch (e) {
49
+ return {
50
+ success: false,
51
+ error: e,
52
+ };
53
+ }
54
+ }
55
+ async initiate(signer, quote) {
56
+ const { params } = quote;
57
+ const transfer = this.toTransferDetails(params);
58
+ const txids = await tokenTransfer_js_1.TokenTransfer.transfer(this.request.fromChain, transfer, signer);
59
+ return {
60
+ from: transfer.from.chain,
61
+ to: transfer.to.chain,
62
+ state: types_js_1.TransferState.SourceInitiated,
63
+ originTxs: txids,
64
+ };
65
+ }
66
+ async complete(signer, receipt) {
67
+ if (!(0, types_js_1.isAttested)(receipt))
68
+ throw new Error("The source must be finalized in order to complete the transfer");
69
+ return await tokenTransfer_js_1.TokenTransfer.redeem(this.request.toChain,
70
+ // todo: ew?
71
+ receipt.attestation.attestation, signer);
72
+ }
73
+ async *track(receipt, timeout) {
74
+ yield* tokenTransfer_js_1.TokenTransfer.track(this.wh, receipt, timeout, this.request.fromChain, this.request.toChain);
75
+ }
76
+ toTransferDetails(params) {
77
+ return {
78
+ token: this.request.source.id,
79
+ from: this.request.from,
80
+ to: this.request.to,
81
+ amount: sdk_base_1.amount.units(params.normalizedParams.amount),
82
+ ...params.options,
83
+ };
84
+ }
85
+ }
86
+ exports.TokenBridgeRoute = TokenBridgeRoute;
87
+ //# 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 type { TokenId } from "@wormhole-foundation/sdk-definitions";
2
+ import type { AttestationReceipt, TransferReceipt } from "../types.js";
3
+ import type { 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,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAI5D,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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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 type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import type { 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,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,MAAM,EACP,MAAM,sCAAsC,CAAC;AAc9C,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,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchIbcXfer = exports.isTokenBridgeVaaRedeemed = exports.retry = void 0;
4
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
5
+ const config_js_1 = require("./config.js");
6
+ async function retry(task, interval, timeout = config_js_1.DEFAULT_TASK_TIMEOUT, title) {
7
+ const maxRetries = Math.floor(timeout / interval);
8
+ let retries = 0;
9
+ return new Promise((resolve, reject) => {
10
+ task().then((result) => {
11
+ if (result !== null) {
12
+ resolve(result);
13
+ return;
14
+ }
15
+ let intervalId = setInterval(async () => {
16
+ if (retries >= maxRetries) {
17
+ clearInterval(intervalId);
18
+ resolve(null);
19
+ return;
20
+ }
21
+ const result = await task();
22
+ if (result !== null) {
23
+ clearInterval(intervalId);
24
+ resolve(result);
25
+ }
26
+ else if (title) {
27
+ console.log(`Retrying ${title}, attempt ${retries}/${maxRetries} `);
28
+ }
29
+ retries++;
30
+ }, interval);
31
+ });
32
+ });
33
+ }
34
+ exports.retry = retry;
35
+ async function isTokenBridgeVaaRedeemed(tb, vaa) {
36
+ try {
37
+ const isRedeemed = await tb.isTransferCompleted(vaa);
38
+ // Only return a real value if its true, otherwise return null
39
+ // signaling that we should retry
40
+ return isRedeemed ? isRedeemed : null;
41
+ }
42
+ catch (e) {
43
+ console.error(`Caught an error checking if VAA is redeemed: ${e}\n`);
44
+ return null;
45
+ }
46
+ }
47
+ exports.isTokenBridgeVaaRedeemed = isTokenBridgeVaaRedeemed;
48
+ async function fetchIbcXfer(wcIbc, msg) {
49
+ try {
50
+ if ((0, sdk_definitions_1.isIbcMessageId)(msg))
51
+ return await wcIbc.lookupTransferFromIbcMsgId(msg);
52
+ else if ((0, sdk_definitions_1.isTransactionIdentifier)(msg))
53
+ return await wcIbc.lookupTransferFromTx(msg.txid);
54
+ else if ((0, sdk_definitions_1.isGatewayTransferMsg)(msg) || (0, sdk_definitions_1.isGatewayTransferWithPayloadMsg)(msg))
55
+ return await wcIbc.lookupTransferFromMsg(msg);
56
+ else
57
+ throw new Error("Invalid message type:" + JSON.stringify(msg));
58
+ }
59
+ catch (e) {
60
+ console.error("Caught an error looking for ibc transfer: ", e);
61
+ }
62
+ return null;
63
+ }
64
+ exports.fetchIbcXfer = fetchIbcXfer;
65
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":";;;AAWA,0EAK8C;AAC9C,2CAAmD;AAS5C,KAAK,UAAU,KAAK,CACzB,IAAa,EACb,QAAgB,EAChB,UAAkB,gCAAoB,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;AAnCD,sBAmCC;AAEM,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;AAbD,4DAaC;AAEM,KAAK,UAAU,YAAY,CAChC,KAAsB,EACtB,GAA+F;IAE/F,IAAI;QACF,IAAI,IAAA,gCAAc,EAAC,GAAG,CAAC;YAAE,OAAO,MAAM,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;aACvE,IAAI,IAAA,yCAAuB,EAAC,GAAG,CAAC;YAAE,OAAO,MAAM,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpF,IAAI,IAAA,sCAAoB,EAAC,GAAG,CAAC,IAAI,IAAA,iDAA+B,EAAC,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;AAdD,oCAcC"}