@wormhole-labs/cctp-executor-route 0.4.0 → 0.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/aptos/executor.d.ts +1 -1
  3. package/dist/cjs/aptos/executor.d.ts.map +1 -1
  4. package/dist/cjs/aptos/executor.js +1 -1
  5. package/dist/cjs/aptos/executor.js.map +1 -1
  6. package/dist/cjs/consts.d.ts +22 -1
  7. package/dist/cjs/consts.d.ts.map +1 -1
  8. package/dist/cjs/consts.js +223 -5
  9. package/dist/cjs/consts.js.map +1 -1
  10. package/dist/cjs/evm/executor.d.ts +1 -1
  11. package/dist/cjs/evm/executor.d.ts.map +1 -1
  12. package/dist/cjs/evm/executor.js +1 -1
  13. package/dist/cjs/evm/executor.js.map +1 -1
  14. package/dist/cjs/evm/executorV2.d.ts +25 -0
  15. package/dist/cjs/evm/executorV2.d.ts.map +1 -0
  16. package/dist/cjs/evm/executorV2.js +100 -0
  17. package/dist/cjs/evm/executorV2.js.map +1 -0
  18. package/dist/cjs/evm/index.d.ts +1 -0
  19. package/dist/cjs/evm/index.d.ts.map +1 -1
  20. package/dist/cjs/evm/index.js +3 -0
  21. package/dist/cjs/evm/index.js.map +1 -1
  22. package/dist/cjs/index.d.ts +1 -91
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/index.js +15 -334
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/layouts/circle.d.ts +161 -0
  27. package/dist/cjs/layouts/circle.d.ts.map +1 -0
  28. package/dist/cjs/layouts/circle.js +48 -0
  29. package/dist/cjs/layouts/circle.js.map +1 -0
  30. package/dist/cjs/layouts/index.d.ts +1 -1
  31. package/dist/cjs/layouts/index.d.ts.map +1 -1
  32. package/dist/cjs/layouts/index.js +1 -1
  33. package/dist/cjs/layouts/index.js.map +1 -1
  34. package/dist/cjs/routes/cctpV1.d.ts +92 -0
  35. package/dist/cjs/routes/cctpV1.d.ts.map +1 -0
  36. package/dist/cjs/routes/cctpV1.js +190 -0
  37. package/dist/cjs/routes/cctpV1.js.map +1 -0
  38. package/dist/cjs/routes/cctpV2Base.d.ts +57 -0
  39. package/dist/cjs/routes/cctpV2Base.d.ts.map +1 -0
  40. package/dist/cjs/routes/cctpV2Base.js +179 -0
  41. package/dist/cjs/routes/cctpV2Base.js.map +1 -0
  42. package/dist/cjs/routes/cctpV2Fast.d.ts +42 -0
  43. package/dist/cjs/routes/cctpV2Fast.d.ts.map +1 -0
  44. package/dist/cjs/routes/cctpV2Fast.js +138 -0
  45. package/dist/cjs/routes/cctpV2Fast.js.map +1 -0
  46. package/dist/cjs/routes/cctpV2Standard.d.ts +42 -0
  47. package/dist/cjs/routes/cctpV2Standard.d.ts.map +1 -0
  48. package/dist/cjs/routes/cctpV2Standard.js +126 -0
  49. package/dist/cjs/routes/cctpV2Standard.js.map +1 -0
  50. package/dist/cjs/routes/helpers.d.ts +12 -0
  51. package/dist/cjs/routes/helpers.d.ts.map +1 -0
  52. package/dist/cjs/routes/helpers.js +181 -0
  53. package/dist/cjs/routes/helpers.js.map +1 -0
  54. package/dist/cjs/routes/index.d.ts +5 -0
  55. package/dist/cjs/routes/index.d.ts.map +1 -0
  56. package/dist/cjs/routes/index.js +21 -0
  57. package/dist/cjs/routes/index.js.map +1 -0
  58. package/dist/cjs/sui/executor.d.ts +1 -1
  59. package/dist/cjs/sui/executor.d.ts.map +1 -1
  60. package/dist/cjs/svm/executor.d.ts +1 -1
  61. package/dist/cjs/svm/executor.d.ts.map +1 -1
  62. package/dist/cjs/svm/executor.js +1 -1
  63. package/dist/cjs/svm/executor.js.map +1 -1
  64. package/dist/cjs/types.d.ts +8 -1
  65. package/dist/cjs/types.d.ts.map +1 -1
  66. package/dist/cjs/utils.d.ts +20 -1
  67. package/dist/cjs/utils.d.ts.map +1 -1
  68. package/dist/cjs/utils.js +86 -2
  69. package/dist/cjs/utils.js.map +1 -1
  70. package/dist/esm/aptos/executor.d.ts +1 -1
  71. package/dist/esm/aptos/executor.d.ts.map +1 -1
  72. package/dist/esm/aptos/executor.js +2 -2
  73. package/dist/esm/aptos/executor.js.map +1 -1
  74. package/dist/esm/consts.d.ts +22 -1
  75. package/dist/esm/consts.d.ts.map +1 -1
  76. package/dist/esm/consts.js +216 -4
  77. package/dist/esm/consts.js.map +1 -1
  78. package/dist/esm/evm/executor.d.ts +1 -1
  79. package/dist/esm/evm/executor.d.ts.map +1 -1
  80. package/dist/esm/evm/executor.js +2 -2
  81. package/dist/esm/evm/executor.js.map +1 -1
  82. package/dist/esm/evm/executorV2.d.ts +25 -0
  83. package/dist/esm/evm/executorV2.d.ts.map +1 -0
  84. package/dist/esm/evm/executorV2.js +96 -0
  85. package/dist/esm/evm/executorV2.js.map +1 -0
  86. package/dist/esm/evm/index.d.ts +1 -0
  87. package/dist/esm/evm/index.d.ts.map +1 -1
  88. package/dist/esm/evm/index.js +3 -0
  89. package/dist/esm/evm/index.js.map +1 -1
  90. package/dist/esm/index.d.ts +1 -91
  91. package/dist/esm/index.d.ts.map +1 -1
  92. package/dist/esm/index.js +1 -331
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/layouts/circle.d.ts +161 -0
  95. package/dist/esm/layouts/circle.d.ts.map +1 -0
  96. package/dist/esm/layouts/circle.js +43 -0
  97. package/dist/esm/layouts/circle.js.map +1 -0
  98. package/dist/esm/layouts/index.d.ts +1 -1
  99. package/dist/esm/layouts/index.d.ts.map +1 -1
  100. package/dist/esm/layouts/index.js +1 -1
  101. package/dist/esm/layouts/index.js.map +1 -1
  102. package/dist/esm/routes/cctpV1.d.ts +92 -0
  103. package/dist/esm/routes/cctpV1.d.ts.map +1 -0
  104. package/dist/esm/routes/cctpV1.js +185 -0
  105. package/dist/esm/routes/cctpV1.js.map +1 -0
  106. package/dist/esm/routes/cctpV2Base.d.ts +57 -0
  107. package/dist/esm/routes/cctpV2Base.d.ts.map +1 -0
  108. package/dist/esm/routes/cctpV2Base.js +175 -0
  109. package/dist/esm/routes/cctpV2Base.js.map +1 -0
  110. package/dist/esm/routes/cctpV2Fast.d.ts +42 -0
  111. package/dist/esm/routes/cctpV2Fast.d.ts.map +1 -0
  112. package/dist/esm/routes/cctpV2Fast.js +133 -0
  113. package/dist/esm/routes/cctpV2Fast.js.map +1 -0
  114. package/dist/esm/routes/cctpV2Standard.d.ts +42 -0
  115. package/dist/esm/routes/cctpV2Standard.d.ts.map +1 -0
  116. package/dist/esm/routes/cctpV2Standard.js +121 -0
  117. package/dist/esm/routes/cctpV2Standard.js.map +1 -0
  118. package/dist/esm/routes/helpers.d.ts +12 -0
  119. package/dist/esm/routes/helpers.d.ts.map +1 -0
  120. package/dist/esm/routes/helpers.js +177 -0
  121. package/dist/esm/routes/helpers.js.map +1 -0
  122. package/dist/esm/routes/index.d.ts +5 -0
  123. package/dist/esm/routes/index.d.ts.map +1 -0
  124. package/dist/esm/routes/index.js +5 -0
  125. package/dist/esm/routes/index.js.map +1 -0
  126. package/dist/esm/sui/executor.d.ts +1 -1
  127. package/dist/esm/sui/executor.d.ts.map +1 -1
  128. package/dist/esm/svm/executor.d.ts +1 -1
  129. package/dist/esm/svm/executor.d.ts.map +1 -1
  130. package/dist/esm/svm/executor.js +2 -2
  131. package/dist/esm/svm/executor.js.map +1 -1
  132. package/dist/esm/types.d.ts +8 -1
  133. package/dist/esm/types.d.ts.map +1 -1
  134. package/dist/esm/utils.d.ts +20 -1
  135. package/dist/esm/utils.d.ts.map +1 -1
  136. package/dist/esm/utils.js +83 -3
  137. package/dist/esm/utils.js.map +1 -1
  138. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  139. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  140. package/package.json +8 -8
  141. package/dist/cjs/layouts/requestForExecution.d.ts +0 -18
  142. package/dist/cjs/layouts/requestForExecution.d.ts.map +0 -1
  143. package/dist/cjs/layouts/requestForExecution.js +0 -15
  144. package/dist/cjs/layouts/requestForExecution.js.map +0 -1
  145. package/dist/esm/layouts/requestForExecution.d.ts +0 -18
  146. package/dist/esm/layouts/requestForExecution.d.ts.map +0 -1
  147. package/dist/esm/layouts/requestForExecution.js +0 -12
  148. package/dist/esm/layouts/requestForExecution.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCTPv2StandardExecutorRoute = void 0;
4
+ exports.cctpV2StandardExecutorRoute = cctpV2StandardExecutorRoute;
5
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
6
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
7
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
8
+ const consts_1 = require("../consts");
9
+ const cctpV2Base_1 = require("./cctpV2Base");
10
+ const helpers_1 = require("./helpers");
11
+ // Use this function to create a new CCTPv2StandardExecutorRoute with custom config
12
+ function cctpV2StandardExecutorRoute(config = { referrerFeeDbps: 0n }) {
13
+ if (config.referrerFeeDbps < 0 || config.referrerFeeDbps > 65535n) {
14
+ throw new Error("Referrer fee must be between 0 and 65535");
15
+ }
16
+ class CCTPv2StandardExecutorRouteImpl extends CCTPv2StandardExecutorRoute {
17
+ static config = config;
18
+ }
19
+ return CCTPv2StandardExecutorRouteImpl;
20
+ }
21
+ class CCTPv2StandardExecutorRoute extends cctpV2Base_1.CCTPv2BaseRoute {
22
+ // @ts-ignore
23
+ // Since we set the config on the static class, access it with this param
24
+ // the CCTPv2StandardExecutorRoute.config will always be empty
25
+ staticConfig = this.constructor.config;
26
+ static config = { referrerFeeDbps: 0n };
27
+ static meta = {
28
+ name: "CCTPv2StandardExecutorRoute",
29
+ provider: "Circle",
30
+ };
31
+ static isPathSupported(fromChain, toChain) {
32
+ return ((0, consts_1.isCircleV2Chain)(fromChain.network, fromChain.chain) &&
33
+ (0, consts_1.isCircleV2Chain)(toChain.network, toChain.chain) &&
34
+ // We don't support slow transfers from Linea because the attestation time
35
+ // can be anywhere between 6 and 32 hours! Fast transfer should be used instead.
36
+ fromChain.chain !== "Linea");
37
+ }
38
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
39
+ if (!this.isPathSupported(fromChain, toChain)) {
40
+ return [];
41
+ }
42
+ // Ensure the source token is USDC
43
+ const sourceChainUsdcContract = consts_1.usdcContracts[fromChain.network]?.[fromChain.chain];
44
+ if (!(sourceChainUsdcContract &&
45
+ (0, sdk_definitions_1.isSameToken)(sourceToken, sdk_connect_1.Wormhole.tokenId(fromChain.chain, sourceChainUsdcContract)))) {
46
+ return [];
47
+ }
48
+ const { network, chain } = toChain;
49
+ const destChainUsdcContract = consts_1.usdcContracts[network]?.[chain];
50
+ if (!destChainUsdcContract)
51
+ return [];
52
+ return [sdk_connect_1.Wormhole.chainAddress(chain, destChainUsdcContract)];
53
+ }
54
+ async validate(request, params) {
55
+ if (!CCTPv2StandardExecutorRoute.isPathSupported(request.fromChain, request.toChain)) {
56
+ return {
57
+ valid: false,
58
+ error: new Error("Can only transfer between Circle V2 chains"),
59
+ params,
60
+ };
61
+ }
62
+ if (params.options?.nativeGas &&
63
+ (params.options.nativeGas < 0 || params.options.nativeGas > 1)) {
64
+ return {
65
+ valid: false,
66
+ error: new Error("Invalid native gas percentage"),
67
+ params,
68
+ };
69
+ }
70
+ const validatedParams = {
71
+ normalizedParams: {
72
+ amount: request.parseAmount(params.amount),
73
+ },
74
+ options: params.options ?? this.getDefaultOptions(),
75
+ ...params,
76
+ };
77
+ return { valid: true, params: validatedParams };
78
+ }
79
+ async quote(request, params) {
80
+ const { fromChain, toChain } = request;
81
+ try {
82
+ const quoteDetails = await (0, helpers_1.fetchExecutorQuote)(request, params, this.staticConfig.referrerFeeDbps, "ERC2");
83
+ const { remainingAmount, estimatedCost, gasDropOff, expiryTime } = quoteDetails;
84
+ // https://developers.circle.com/stablecoins/docs/required-block-confirmations
85
+ const eta = fromChain.chain === "Polygon"
86
+ ? 2_000 * 200
87
+ : sdk_base_1.finality.estimateFinalityTime(fromChain.chain) + 1_000; // buffer for the relayer
88
+ const [srcNativeDecimals, dstNativeDecimals] = await Promise.all([
89
+ fromChain.getDecimals("native"),
90
+ toChain.getDecimals("native"),
91
+ ]);
92
+ return {
93
+ success: true,
94
+ params,
95
+ sourceToken: {
96
+ token: request.source.id,
97
+ amount: params.normalizedParams.amount,
98
+ },
99
+ destinationToken: {
100
+ token: request.destination.id,
101
+ amount: sdk_base_1.amount.fromBaseUnits(remainingAmount, request.destination.decimals),
102
+ },
103
+ relayFee: {
104
+ token: (0, sdk_definitions_1.nativeTokenId)(fromChain.chain),
105
+ amount: sdk_base_1.amount.fromBaseUnits(estimatedCost, srcNativeDecimals),
106
+ },
107
+ destinationNativeGas: sdk_base_1.amount.fromBaseUnits(gasDropOff, dstNativeDecimals),
108
+ eta,
109
+ expires: expiryTime,
110
+ details: {
111
+ ...quoteDetails,
112
+ minFinalityThreshold: consts_1.CircleV2FinalityThreshold.FINALIZED,
113
+ fastTransferMaxFee: 0n, // no fee for standard / slow transfer
114
+ },
115
+ };
116
+ }
117
+ catch (e) {
118
+ return {
119
+ success: false,
120
+ error: new Error(e instanceof Error ? e.message : `${e}`),
121
+ };
122
+ }
123
+ }
124
+ }
125
+ exports.CCTPv2StandardExecutorRoute = CCTPv2StandardExecutorRoute;
126
+ //# sourceMappingURL=cctpV2Standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cctpV2Standard.js","sourceRoot":"","sources":["../../../src/routes/cctpV2Standard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ChainAddress, Network, routes, Signer, SourceInitiatedTransferReceipt } from "@wormhole-foundation/sdk-connect";
2
+ import { CCTPExecutorRoute, QuoteDetails } from "./cctpV1";
3
+ import { CCTPv2ExecutorRoute, CCTPv2QuoteDetails } from "./cctpV2Base";
4
+ export declare function fetchExecutorQuote(request: routes.RouteTransferRequest<Network>, params: CCTPExecutorRoute.ValidatedParams | CCTPv2ExecutorRoute.ValidatedParams, referrerFeeDbps: bigint, capability: "ERC1" | "ERC2"): Promise<QuoteDetails>;
5
+ export declare function initiateTransfer(request: routes.RouteTransferRequest<Network>, signer: Signer, to: ChainAddress, params: {
6
+ protocol: "CCTPExecutor";
7
+ details: QuoteDetails;
8
+ } | {
9
+ protocol: "CCTPv2Executor";
10
+ details: CCTPv2QuoteDetails;
11
+ }): Promise<SourceInitiatedTransferReceipt>;
12
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/routes/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAGZ,OAAO,EACP,MAAM,EAEN,MAAM,EAEN,8BAA8B,EAK/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAiB3D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMvE,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAC7C,MAAM,EACF,iBAAiB,CAAC,eAAe,GACjC,mBAAmB,CAAC,eAAe,EACvC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,YAAY,CAAC,CAgJvB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,YAAY,EAChB,MAAM,EACF;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACnD;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAC9D,OAAO,CAAC,8BAA8B,CAAC,CAiEzC"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchExecutorQuote = fetchExecutorQuote;
4
+ exports.initiateTransfer = initiateTransfer;
5
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
6
+ const consts_1 = require("../consts");
7
+ const utils_1 = require("../utils");
8
+ const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
9
+ const layouts_1 = require("../layouts");
10
+ // The minimum rent exemption amount for a 165 byte account (e.g. an ATA)
11
+ // cache it here to avoid fetching it from the Solana RPC
12
+ let ataMinRentAmount = undefined;
13
+ async function fetchExecutorQuote(request, params, referrerFeeDbps, capability) {
14
+ const { fromChain, toChain } = request;
15
+ const srcUsdcAddress = consts_1.usdcContracts[fromChain.network]?.[fromChain.chain];
16
+ if (!srcUsdcAddress) {
17
+ throw new Error("Invalid transfer, no USDC contract on source");
18
+ }
19
+ const dstUsdcAddress = consts_1.usdcContracts[toChain.network]?.[toChain.chain];
20
+ if (!dstUsdcAddress) {
21
+ throw new Error("Invalid transfer, no USDC contract on destination");
22
+ }
23
+ const referrerAddress = consts_1.referrers[fromChain.network]?.[fromChain.chain];
24
+ if (!referrerAddress) {
25
+ throw new Error("No referrer address found");
26
+ }
27
+ const referrer = sdk_connect_1.Wormhole.chainAddress(fromChain.chain, referrerAddress);
28
+ const { referrerFee, remainingAmount } = (0, utils_1.calculateReferrerFee)(sdk_connect_1.amount.units(params.normalizedParams.amount), referrerFeeDbps);
29
+ if (remainingAmount <= 0n) {
30
+ throw new Error("Amount after fee <= 0");
31
+ }
32
+ const gasLimit = consts_1.gasLimits[toChain.network]?.[toChain.chain];
33
+ if (!gasLimit) {
34
+ throw new Error("Gas limit not found");
35
+ }
36
+ const capabilities = await (0, utils_1.fetchCapabilities)(fromChain.network);
37
+ const srcCapabilities = capabilities[(0, sdk_connect_1.toChainId)(fromChain.chain)];
38
+ if (!srcCapabilities) {
39
+ throw new Error("Unsupported source chain");
40
+ }
41
+ const dstCapabilities = capabilities[(0, sdk_connect_1.toChainId)(toChain.chain)];
42
+ if (!dstCapabilities ||
43
+ !dstCapabilities.requestPrefixes.includes(capability)) {
44
+ throw new Error("Unsupported destination chain");
45
+ }
46
+ const { recipient } = request;
47
+ let tokenAccountExists = true;
48
+ // Check if the associated token account (ATA) exists on Solana.
49
+ // If it doesn't, include a gas drop-off instruction so the relayer can create it.
50
+ // Note: There's a potential race condition — the account might exist during this check,
51
+ // but could be closed before the transfer completes.
52
+ if (recipient && toChain.chain === "Solana") {
53
+ const usdcAddress = sdk_connect_1.Wormhole.parseAddress("Solana", dstUsdcAddress);
54
+ const ata = await toChain.getTokenAccount(recipient.address, usdcAddress);
55
+ const connection = await toChain.getRpc();
56
+ const ataAccount = await connection.getAccountInfo(new sdk_solana_1.SolanaAddress(ata.address).unwrap());
57
+ tokenAccountExists = ataAccount !== null;
58
+ if (!tokenAccountExists && !ataMinRentAmount) {
59
+ ataMinRentAmount = BigInt(await connection.getMinimumBalanceForRentExemption(165));
60
+ }
61
+ }
62
+ let msgValue = 0n;
63
+ if (toChain.chain === "Solana") {
64
+ msgValue += consts_1.SOLANA_MSG_VALUE_BASE_FEE;
65
+ if (!tokenAccountExists && ataMinRentAmount) {
66
+ msgValue += ataMinRentAmount;
67
+ }
68
+ }
69
+ const relayRequests = [];
70
+ // Add the gas instruction
71
+ relayRequests.push({
72
+ request: {
73
+ type: "GasInstruction",
74
+ gasLimit,
75
+ msgValue,
76
+ },
77
+ });
78
+ // Calculate the gas dropOff value
79
+ const gasDropOffLimit = BigInt(dstCapabilities.gasDropOffLimit);
80
+ const dropOff = params.options.nativeGas && gasDropOffLimit > 0n
81
+ ? (BigInt(Math.round(params.options.nativeGas * 100)) * gasDropOffLimit) /
82
+ 100n
83
+ : 0n;
84
+ // Add the gas drop-off instruction if applicable
85
+ if (dropOff > 0n || !tokenAccountExists) {
86
+ relayRequests.push({
87
+ request: {
88
+ type: "GasDropOffInstruction",
89
+ dropOff,
90
+ // If the recipient is undefined (e.g. the user hasn’t connected their wallet yet),
91
+ // we temporarily use a dummy address to fetch a quote.
92
+ // The recipient address is validated later in the `initiate` method, which will throw if it's still missing.
93
+ recipient: recipient
94
+ ? recipient.address.toUniversalAddress()
95
+ : new sdk_connect_1.UniversalAddress(new Uint8Array(32)),
96
+ },
97
+ });
98
+ }
99
+ const relayInstructions = (0, sdk_connect_1.serializeLayout)(layouts_1.relayInstructionsLayout, {
100
+ requests: relayRequests,
101
+ });
102
+ const quote = await (0, utils_1.fetchSignedQuote)(fromChain.network, fromChain.chain, toChain.chain, sdk_connect_1.encoding.hex.encode(relayInstructions, true));
103
+ if (!quote.estimatedCost) {
104
+ throw new Error("No estimated cost");
105
+ }
106
+ const signedQuoteBytes = sdk_connect_1.encoding.hex.decode(quote.signedQuote);
107
+ const signedQuote = (0, sdk_connect_1.deserializeLayout)(layouts_1.signedQuoteLayout, signedQuoteBytes);
108
+ const estimatedCost = BigInt(quote.estimatedCost);
109
+ const details = {
110
+ signedQuote: signedQuoteBytes,
111
+ relayInstructions: relayInstructions,
112
+ estimatedCost,
113
+ referrer,
114
+ referrerFee,
115
+ remainingAmount,
116
+ referrerFeeDbps,
117
+ expiryTime: signedQuote.quote.expiryTime,
118
+ gasDropOff: dropOff,
119
+ };
120
+ return details;
121
+ }
122
+ async function initiateTransfer(request, signer, to, params) {
123
+ const relayInstructions = (0, sdk_connect_1.deserializeLayout)(layouts_1.relayInstructionsLayout, params.details.relayInstructions);
124
+ // Make sure that the gas drop-off recipient matches the actual recipient
125
+ relayInstructions.requests.forEach(({ request }) => {
126
+ if (request.type === "GasDropOffInstruction" &&
127
+ !request.recipient.equals(to.address.toUniversalAddress())) {
128
+ throw new Error("Gas drop-off recipient does not match");
129
+ }
130
+ });
131
+ const sender = sdk_connect_1.Wormhole.parseAddress(signer.chain(), signer.address());
132
+ const recipient = await resolveRecipient(to, request);
133
+ let xfer;
134
+ if (params.protocol === "CCTPExecutor") {
135
+ const executor = await request.fromChain.getProtocol(params.protocol);
136
+ xfer = await executor.transfer(sender, recipient, params.details);
137
+ }
138
+ else {
139
+ const executor = await request.fromChain.getProtocol(params.protocol);
140
+ xfer = await executor.transfer(sender, recipient, params.details);
141
+ }
142
+ const txids = await (0, sdk_connect_1.signSendWait)(request.fromChain, xfer, signer);
143
+ // Status the transfer immediately before returning
144
+ let statusAttempts = 0;
145
+ const statusTransferImmediately = async () => {
146
+ while (statusAttempts < 20) {
147
+ try {
148
+ const [txStatus] = await (0, utils_1.fetchStatus)(request.fromChain.network, txids.at(-1).txid, request.fromChain.chain);
149
+ if (txStatus) {
150
+ break;
151
+ }
152
+ }
153
+ catch (_) {
154
+ // is ok we just try again!
155
+ }
156
+ statusAttempts++;
157
+ await (0, utils_1.sleep)(2_000);
158
+ }
159
+ };
160
+ // Spawn a loop in the background that will status this transfer until
161
+ // the API gives a successful response. We don't await the result
162
+ // here because we don't need it for the return value.
163
+ statusTransferImmediately();
164
+ return {
165
+ from: request.fromChain.chain,
166
+ to: request.toChain.chain,
167
+ state: sdk_connect_1.TransferState.SourceInitiated,
168
+ originTxs: txids,
169
+ };
170
+ }
171
+ async function resolveRecipient(to, request) {
172
+ if (to.chain !== "Solana")
173
+ return to;
174
+ // When transferring to Solana, the recipient address is the ATA
175
+ const solanaUsdc = consts_1.usdcContracts[request.toChain.network]?.[request.toChain.chain];
176
+ if (!solanaUsdc)
177
+ throw new Error("No USDC contract found for Solana");
178
+ const usdcAddress = sdk_connect_1.Wormhole.parseAddress("Solana", solanaUsdc);
179
+ return request.toChain.getTokenAccount(to.address, usdcAddress);
180
+ }
181
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/routes/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./cctpV1";
2
+ export * from "./cctpV2Base";
3
+ export * from "./cctpV2Fast";
4
+ export * from "./cctpV2Standard";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
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("./cctpV1"), exports);
18
+ __exportStar(require("./cctpV2Base"), exports);
19
+ __exportStar(require("./cctpV2Fast"), exports);
20
+ __exportStar(require("./cctpV2Standard"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,+CAA6B;AAC7B,mDAAiC"}
@@ -2,7 +2,7 @@ import type { SuiClient } from "@mysten/sui/client";
2
2
  import { type AccountAddress, type ChainAddress, type ChainsConfig, type Contracts, type Network, type Platform } from "@wormhole-foundation/sdk-connect";
3
3
  import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui";
4
4
  import { CCTPExecutor } from "../types";
5
- import { QuoteDetails } from "..";
5
+ import { QuoteDetails } from "../routes/cctpV1";
6
6
  export declare class SuiCCTPExecutor<N extends Network, C extends SuiChains> implements CCTPExecutor<N, C> {
7
7
  readonly network: N;
8
8
  readonly chain: C;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/sui/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACjE,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAa3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAd/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAE3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGzB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS;WAiDlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAQlC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4F/C,OAAO,CAAC,gBAAgB;CAazB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/sui/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACjE,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAa3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAd/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAE3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGzB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS;WAiDlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAQlC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4F/C,OAAO,CAAC,gBAAgB;CAazB"}
@@ -3,7 +3,7 @@ import type { SolanaChains } from "@wormhole-foundation/sdk-solana";
3
3
  import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana";
4
4
  import { CCTPExecutor } from "../types";
5
5
  import { Connection, PublicKey } from "@solana/web3.js";
6
- import { QuoteDetails } from "..";
6
+ import { QuoteDetails } from "../routes/cctpV1";
7
7
  export declare class SvmCCTPExecutor<N extends Network, C extends SolanaChains> implements CCTPExecutor<N, C> {
8
8
  readonly network: N;
9
9
  readonly chain: C;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,UAAU,EAAW,SAAS,EAAe,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAclC,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,CACpE,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAS3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAV/B,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;IAEhD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;gBAG3B,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;WAkClB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAQrC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAkGlD,OAAO,CAAC,gBAAgB;CAazB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,UAAU,EAAW,SAAS,EAAe,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAchD,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,CACpE,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAS3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAV/B,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;IAEhD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;gBAG3B,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;WAkClB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAQrC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAkGlD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -33,7 +33,7 @@ class SvmCCTPExecutor {
33
33
  };
34
34
  this.tokenMessengerProgramId = getContractAddress(contracts.cctp?.tokenMessenger, `Circle Token Messenger contract for domain ${chain} not found`);
35
35
  this.messageTransmitterProgramId = getContractAddress(contracts.cctp?.messageTransmitter, `Circle Message Transmitter contract for domain ${chain} not found`);
36
- this.shimProgramId = getContractAddress(consts_1.shimContracts[network]?.[chain], `Shim contract for ${chain} not found`);
36
+ this.shimProgramId = getContractAddress(consts_1.shimContractsV1[network]?.[chain], `Shim contract for ${chain} not found`);
37
37
  this.executorProgramId = getContractAddress(consts_1.solanaExecutorId[network], `Executor contract for ${network} not found`);
38
38
  }
39
39
  static async fromRpc(provider, config) {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":";;;AAAA,kEAU0C;AAK1C,gEAKyC;AAEzC,sCAA8D;AAC9D,6CAA8E;AAE9E,iDAI2B;AAC3B,0EAAuF;AACvF,8CAAgD;AAChD,iFAG0C;AAC1C,wCAA+C;AAE/C,MAAa,eAAe;IAUf;IACA;IACA;IACA;IAVF,uBAAuB,CAAY;IACnC,2BAA2B,CAAY;IAEvC,aAAa,CAAY;IACzB,iBAAiB,CAAY;IAEtC,YACW,OAAU,EACV,KAAQ,EACR,UAAsB,EACtB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,OAAO,KAAK,QAAQ;YACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAE1D,MAAM,kBAAkB,GAAG,CACzB,QAA4B,EAC5B,YAAoB,EACpB,EAAE;YACF,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,IAAI,mBAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,kBAAkB,CAC/C,SAAS,CAAC,IAAI,EAAE,cAAc,EAC9B,8CAA8C,KAAK,YAAY,CAChE,CAAC;QAEF,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CACnD,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAClC,kDAAkD,KAAK,YAAY,CACpE,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,kBAAkB,CACrC,wBAAe,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EACjC,qBAAqB,KAAK,YAAY,CACvC,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CACzC,yBAAgB,CAAC,OAAO,CAAC,EACzB,yBAAyB,OAAO,YAAY,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAoB,EACpB,MAAiC;QAEjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,2BAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,eAAe,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,SAAuB,EACvB,OAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,mBAAS,CACxB,oBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAE,CACnD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,yCAA6B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,0BAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAEtE,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACtC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEhC,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAA,yCAA6B,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxE,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,WAAW,CACZ,CAAC;YACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,WAAW,CAAC,GAAG,CACb,IAAA,6DAAiD,EAC/C,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YACD,WAAW,CAAC,GAAG,CACb,IAAA,qCAAyB,EACvB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,CAAC,WAAW,CACpB,CACF,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,oBAAM,CAAC,aAAa,CAAC,GAAG,CAChD,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,KAAK,CACf,CAAC;QACH,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAElE,MAAM,YAAY,GAAG,iBAAO,CAAC,QAAQ,EAAE,CAAC;QAExC,WAAW,CAAC,GAAG,CACb,MAAM,IAAA,iDAA+B,EACnC,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,uBAAuB,EAC5B,IAAI,EACJ,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,OAAO,CAAC,eAAe,EACvB,YAAY,CAAC,SAAS,CACvB,CACF,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,gBAAO,CAC7B,uDAA0B,EAC1B,IAAI,CAAC,aAAa,EAClB,EAAE,UAAU,EAAE,IAAI,EAAS,CAC5B,CAAC;QAEF,MAAM,WAAW,GAAG,IAAA,+BAAiB,EACnC,2BAAiB,EACjB,OAAO,CAAC,WAAW,CACpB,CAAC;QAEF,MAAM,kBAAkB,GAAG,kBAAK,CAAC,aAAa,CAC5C,qBAAqB,EACrB,IAAI,CAAC,2BAA2B,CACjC,CAAC;QAEF,WAAW,CAAC,GAAG,CACb,MAAM,WAAW,CAAC,OAAO;aACtB,gBAAgB,CAAC;YAChB,UAAU,EAAE,IAAI,WAAE,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACpD,cAAc,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAClD,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC1D,CAAC;aACD,QAAQ,CAAC;YACR,KAAK,EAAE,QAAQ;YACf,kBAAkB;YAClB,KAAK,EAAE,IAAI,mBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;YACpD,eAAe,EAAE,IAAI,CAAC,iBAAiB;SACxC,CAAC;aACD,WAAW,EAAE,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EACxC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,KAAwB,EACxB,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,sCAAyB,CAClC,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AA7KD,0CA6KC"}
@@ -1,6 +1,13 @@
1
1
  import { Chain, AccountAddress, ChainAddress, UnsignedTransaction, Network } from "@wormhole-foundation/sdk-connect";
2
- import { QuoteDetails } from ".";
2
+ import { CCTPv2QuoteDetails, QuoteDetails } from ".";
3
+ import { CircleV2Message } from "./layouts";
3
4
  export interface CCTPExecutor<N extends Network = Network, C extends Chain = Chain> {
4
5
  transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<UnsignedTransaction<N, C>>;
5
6
  }
7
+ export interface CCTPv2Executor<N extends Network = Network, C extends Chain = Chain> {
8
+ transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: CCTPv2QuoteDetails): AsyncGenerator<UnsignedTransaction<N, C>>;
9
+ isTransferCompleted(message: CircleV2Message): Promise<boolean>;
10
+ redeem(sender: AccountAddress<C>, message: CircleV2Message, attestation: string): AsyncGenerator<UnsignedTransaction<N, C>>;
11
+ getCurrentBlock(): Promise<bigint>;
12
+ }
6
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAEjC,MAAM,WAAW,YAAY,CAC3B,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,KAAK,GAAG,KAAK;IAEvB,QAAQ,CACN,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,YAAY,CAC3B,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,KAAK,GAAG,KAAK;IAEvB,QAAQ,CACN,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9C;AAGD,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,KAAK,GAAG,KAAK;IAEvB,QAAQ,CACN,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,kBAAkB,GAC1B,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7C,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE,MAAM,CACJ,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,GAClB,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7C,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC"}
@@ -1,5 +1,7 @@
1
1
  import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
- import { RequestPrefix, SignedQuote } from "./layouts";
2
+ import { CircleV2Message, SignedQuote } from "./layouts";
3
+ import { TransactionId } from "@wormhole-foundation/sdk-connect";
4
+ import { CCTPv2ExecutorRoute } from "./routes";
3
5
  export declare enum RelayStatus {
4
6
  Pending = "pending",
5
7
  Failed = "failed",
@@ -37,6 +39,13 @@ export type RelayData = {
37
39
  txs?: TxInfo[];
38
40
  indexed_at: Date;
39
41
  };
42
+ export declare enum RequestPrefix {
43
+ ERM1 = "ERM1",// MM
44
+ ERV1 = "ERV1",// VAA_V1
45
+ ERN1 = "ERN1",// NTT_V1
46
+ ERC1 = "ERC1",// CCTP_V1
47
+ ERC2 = "ERC2"
48
+ }
40
49
  export type Capabilities = {
41
50
  requestPrefixes: Array<keyof typeof RequestPrefix>;
42
51
  gasDropOffLimit: string;
@@ -62,4 +71,14 @@ export declare function calculateReferrerFee(amount: bigint, dBps: bigint): {
62
71
  remainingAmount: bigint;
63
72
  };
64
73
  export declare function sleep(ms: number): Promise<void>;
74
+ export declare function getCircleV2Attestation(tx: TransactionId, network: Network, timeout?: number): Promise<{
75
+ message: CircleV2Message;
76
+ attestation: string;
77
+ } | null>;
78
+ export declare function getCircleV2FastBurnFee(network: Network, fromChain: Chain, toChain: Chain): Promise<bigint>;
79
+ export declare function reattestCircleV2Message(network: Network, attestation: CCTPv2ExecutorRoute.Attestation): Promise<{
80
+ message: CircleV2Message;
81
+ attestation: string;
82
+ } | null>;
83
+ export declare function getCircleV2FastBurnAllowance(network: Network): Promise<bigint>;
65
84
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAa,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIvD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe,EAAE,KAAK,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;CACjC;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,cAAc,EAAE,CAAC,CAY3B;AAGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAUlD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}