@wormhole-labs/cctp-executor-route 0.4.0 → 0.5.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 +21 -1
  7. package/dist/cjs/consts.d.ts.map +1 -1
  8. package/dist/cjs/consts.js +188 -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 +93 -0
  35. package/dist/cjs/routes/cctpV1.d.ts.map +1 -0
  36. package/dist/cjs/routes/cctpV1.js +180 -0
  37. package/dist/cjs/routes/cctpV1.js.map +1 -0
  38. package/dist/cjs/routes/cctpV2Base.d.ts +58 -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 +127 -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 +116 -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 +23 -2
  67. package/dist/cjs/utils.d.ts.map +1 -1
  68. package/dist/cjs/utils.js +119 -7
  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 +21 -1
  75. package/dist/esm/consts.d.ts.map +1 -1
  76. package/dist/esm/consts.js +181 -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 +93 -0
  103. package/dist/esm/routes/cctpV1.d.ts.map +1 -0
  104. package/dist/esm/routes/cctpV1.js +175 -0
  105. package/dist/esm/routes/cctpV1.js.map +1 -0
  106. package/dist/esm/routes/cctpV2Base.d.ts +58 -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 +122 -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 +111 -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 +23 -2
  135. package/dist/esm/utils.d.ts.map +1 -1
  136. package/dist/esm/utils.js +115 -8
  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,111 @@
1
+ import { amount, finality } from "@wormhole-foundation/sdk-base";
2
+ import { nativeTokenId, } from "@wormhole-foundation/sdk-definitions";
3
+ import { CircleV2FinalityThreshold, isCircleV2Chain } from "../consts";
4
+ import { CCTPv2BaseRoute, } from "./cctpV2Base";
5
+ import { fetchExecutorQuote } from "./helpers";
6
+ import { getUsdcDestinationAddress } from "../utils";
7
+ // Use this function to create a new CCTPv2StandardExecutorRoute with custom config
8
+ export function cctpV2StandardExecutorRoute(config = { referrerFeeDbps: 0n }) {
9
+ if (config.referrerFeeDbps < 0 || config.referrerFeeDbps > 65535n) {
10
+ throw new Error("Referrer fee must be between 0 and 65535");
11
+ }
12
+ class CCTPv2StandardExecutorRouteImpl extends CCTPv2StandardExecutorRoute {
13
+ static config = config;
14
+ }
15
+ return CCTPv2StandardExecutorRouteImpl;
16
+ }
17
+ export class CCTPv2StandardExecutorRoute extends CCTPv2BaseRoute {
18
+ // @ts-ignore
19
+ // Since we set the config on the static class, access it with this param
20
+ // the CCTPv2StandardExecutorRoute.config will always be empty
21
+ staticConfig = this.constructor.config;
22
+ static config = { referrerFeeDbps: 0n };
23
+ static meta = {
24
+ name: "CCTPv2StandardExecutorRoute",
25
+ provider: "Circle",
26
+ };
27
+ static isPathSupported(fromChain, toChain) {
28
+ return (isCircleV2Chain(fromChain.network, fromChain.chain) &&
29
+ isCircleV2Chain(toChain.network, toChain.chain) &&
30
+ // We don't support slow transfers from Linea because the attestation time
31
+ // can be anywhere between 6 and 32 hours! Fast transfer should be used instead.
32
+ fromChain.chain !== "Linea");
33
+ }
34
+ static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
35
+ if (!this.isPathSupported(fromChain, toChain)) {
36
+ return [];
37
+ }
38
+ return getUsdcDestinationAddress(sourceToken, fromChain, toChain);
39
+ }
40
+ async validate(request, params) {
41
+ if (!CCTPv2StandardExecutorRoute.isPathSupported(request.fromChain, request.toChain)) {
42
+ return {
43
+ valid: false,
44
+ error: new Error("Can only transfer between Circle V2 chains"),
45
+ params,
46
+ };
47
+ }
48
+ if (params.options?.nativeGas &&
49
+ (params.options.nativeGas < 0 || params.options.nativeGas > 1)) {
50
+ return {
51
+ valid: false,
52
+ error: new Error("Invalid native gas percentage"),
53
+ params,
54
+ };
55
+ }
56
+ const validatedParams = {
57
+ normalizedParams: {
58
+ amount: request.parseAmount(params.amount),
59
+ },
60
+ options: params.options ?? this.getDefaultOptions(),
61
+ ...params,
62
+ };
63
+ return { valid: true, params: validatedParams };
64
+ }
65
+ async quote(request, params) {
66
+ const { fromChain, toChain } = request;
67
+ try {
68
+ const quoteDetails = await fetchExecutorQuote(request, params, this.staticConfig, "ERC2");
69
+ const { remainingAmount, estimatedCost, gasDropOff, expiryTime } = quoteDetails;
70
+ // https://developers.circle.com/stablecoins/docs/required-block-confirmations
71
+ const eta = fromChain.chain === "Polygon"
72
+ ? 2_000 * 200
73
+ : finality.estimateFinalityTime(fromChain.chain) + 1_000; // buffer for the relayer
74
+ const [srcNativeDecimals, dstNativeDecimals] = await Promise.all([
75
+ fromChain.getDecimals("native"),
76
+ toChain.getDecimals("native"),
77
+ ]);
78
+ return {
79
+ success: true,
80
+ params,
81
+ sourceToken: {
82
+ token: request.source.id,
83
+ amount: params.normalizedParams.amount,
84
+ },
85
+ destinationToken: {
86
+ token: request.destination.id,
87
+ amount: amount.fromBaseUnits(remainingAmount, request.destination.decimals),
88
+ },
89
+ relayFee: {
90
+ token: nativeTokenId(fromChain.chain),
91
+ amount: amount.fromBaseUnits(estimatedCost, srcNativeDecimals),
92
+ },
93
+ destinationNativeGas: amount.fromBaseUnits(gasDropOff, dstNativeDecimals),
94
+ eta,
95
+ expires: expiryTime,
96
+ details: {
97
+ ...quoteDetails,
98
+ minFinalityThreshold: CircleV2FinalityThreshold.FINALIZED,
99
+ fastTransferMaxFee: 0n, // no fee for standard / slow transfer
100
+ },
101
+ };
102
+ }
103
+ catch (e) {
104
+ return {
105
+ success: false,
106
+ error: new Error(e instanceof Error ? e.message : `${e}`),
107
+ };
108
+ }
109
+ }
110
+ }
111
+ //# 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, config: CCTPExecutorRoute.Config | CCTPv2ExecutorRoute.Config, 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,EAIZ,OAAO,EACP,MAAM,EAEN,MAAM,EAEN,8BAA8B,EAK/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAY3D,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,MAAM,EAAE,iBAAiB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAC7D,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,YAAY,CAAC,CAuJvB;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,177 @@
1
+ import { amount, circle, deserializeLayout, encoding, serializeLayout, signSendWait, toChainId, TransferState, UniversalAddress, Wormhole, } from "@wormhole-foundation/sdk-connect";
2
+ import { gasLimits, referrers, SOLANA_MSG_VALUE_BASE_FEE } from "../consts";
3
+ import { calculateReferrerFee, fetchCapabilities, fetchSignedQuote, fetchStatus, sleep, } from "../utils";
4
+ import { SolanaAddress } from "@wormhole-foundation/sdk-solana";
5
+ import { relayInstructionsLayout, signedQuoteLayout } from "../layouts";
6
+ // The minimum rent exemption amount for a 165 byte account (e.g. an ATA)
7
+ // cache it here to avoid fetching it from the Solana RPC
8
+ let ataMinRentAmount = undefined;
9
+ export async function fetchExecutorQuote(request, params, config, capability) {
10
+ const { fromChain, toChain } = request;
11
+ const srcUsdcAddress = circle.usdcContract.get(fromChain.network, fromChain.chain);
12
+ if (!srcUsdcAddress) {
13
+ throw new Error("Invalid transfer, no USDC contract on source");
14
+ }
15
+ const dstUsdcAddress = circle.usdcContract.get(toChain.network, toChain.chain);
16
+ if (!dstUsdcAddress) {
17
+ throw new Error("Invalid transfer, no USDC contract on destination");
18
+ }
19
+ const referrerAddress = referrers[fromChain.network]?.[fromChain.chain];
20
+ if (!referrerAddress) {
21
+ throw new Error("No referrer address found");
22
+ }
23
+ const referrer = Wormhole.chainAddress(fromChain.chain, referrerAddress);
24
+ const { referrerFee, remainingAmount, referrerFeeDbps } = calculateReferrerFee(amount.units(params.normalizedParams.amount), config.referrerFeeDbps, config.referrerFeeThreshold);
25
+ if (remainingAmount <= 0n) {
26
+ throw new Error("Amount after fee <= 0");
27
+ }
28
+ const gasLimit = gasLimits[toChain.network]?.[toChain.chain];
29
+ if (!gasLimit) {
30
+ throw new Error("Gas limit not found");
31
+ }
32
+ const capabilities = await fetchCapabilities(fromChain.network);
33
+ const srcCapabilities = capabilities[toChainId(fromChain.chain)];
34
+ if (!srcCapabilities) {
35
+ throw new Error("Unsupported source chain");
36
+ }
37
+ const dstCapabilities = capabilities[toChainId(toChain.chain)];
38
+ if (!dstCapabilities ||
39
+ !dstCapabilities.requestPrefixes.includes(capability)) {
40
+ throw new Error("Unsupported destination chain");
41
+ }
42
+ const { recipient } = request;
43
+ let tokenAccountExists = true;
44
+ // Check if the associated token account (ATA) exists on Solana.
45
+ // If it doesn't, include a gas drop-off instruction so the relayer can create it.
46
+ // Note: There's a potential race condition — the account might exist during this check,
47
+ // but could be closed before the transfer completes.
48
+ if (recipient && toChain.chain === "Solana") {
49
+ const usdcAddress = Wormhole.parseAddress("Solana", dstUsdcAddress);
50
+ const ata = await toChain.getTokenAccount(recipient.address, usdcAddress);
51
+ const connection = await toChain.getRpc();
52
+ const ataAccount = await connection.getAccountInfo(new SolanaAddress(ata.address).unwrap());
53
+ tokenAccountExists = ataAccount !== null;
54
+ if (!tokenAccountExists && !ataMinRentAmount) {
55
+ ataMinRentAmount = BigInt(await connection.getMinimumBalanceForRentExemption(165));
56
+ }
57
+ }
58
+ let msgValue = 0n;
59
+ if (toChain.chain === "Solana") {
60
+ msgValue += SOLANA_MSG_VALUE_BASE_FEE;
61
+ if (!tokenAccountExists && ataMinRentAmount) {
62
+ msgValue += ataMinRentAmount;
63
+ }
64
+ }
65
+ const relayRequests = [];
66
+ // Add the gas instruction
67
+ relayRequests.push({
68
+ request: {
69
+ type: "GasInstruction",
70
+ gasLimit,
71
+ msgValue,
72
+ },
73
+ });
74
+ // Calculate the gas dropOff value
75
+ const gasDropOffLimit = BigInt(dstCapabilities.gasDropOffLimit);
76
+ const dropOff = params.options.nativeGas && gasDropOffLimit > 0n
77
+ ? (BigInt(Math.round(params.options.nativeGas * 100)) * gasDropOffLimit) /
78
+ 100n
79
+ : 0n;
80
+ // Add the gas drop-off instruction if applicable
81
+ if (dropOff > 0n || !tokenAccountExists) {
82
+ relayRequests.push({
83
+ request: {
84
+ type: "GasDropOffInstruction",
85
+ dropOff,
86
+ // If the recipient is undefined (e.g. the user hasn’t connected their wallet yet),
87
+ // we temporarily use a dummy address to fetch a quote.
88
+ // The recipient address is validated later in the `initiate` method, which will throw if it's still missing.
89
+ recipient: recipient
90
+ ? recipient.address.toUniversalAddress()
91
+ : new UniversalAddress(new Uint8Array(32)),
92
+ },
93
+ });
94
+ }
95
+ const relayInstructions = serializeLayout(relayInstructionsLayout, {
96
+ requests: relayRequests,
97
+ });
98
+ const quote = await fetchSignedQuote(fromChain.network, fromChain.chain, toChain.chain, encoding.hex.encode(relayInstructions, true));
99
+ if (!quote.estimatedCost) {
100
+ throw new Error("No estimated cost");
101
+ }
102
+ const signedQuoteBytes = encoding.hex.decode(quote.signedQuote);
103
+ const signedQuote = deserializeLayout(signedQuoteLayout, signedQuoteBytes);
104
+ const estimatedCost = BigInt(quote.estimatedCost);
105
+ const details = {
106
+ signedQuote: signedQuoteBytes,
107
+ relayInstructions: relayInstructions,
108
+ estimatedCost,
109
+ referrer,
110
+ referrerFee,
111
+ remainingAmount,
112
+ referrerFeeDbps,
113
+ expiryTime: signedQuote.quote.expiryTime,
114
+ gasDropOff: dropOff,
115
+ };
116
+ return details;
117
+ }
118
+ export async function initiateTransfer(request, signer, to, params) {
119
+ const relayInstructions = deserializeLayout(relayInstructionsLayout, params.details.relayInstructions);
120
+ // Make sure that the gas drop-off recipient matches the actual recipient
121
+ relayInstructions.requests.forEach(({ request }) => {
122
+ if (request.type === "GasDropOffInstruction" &&
123
+ !request.recipient.equals(to.address.toUniversalAddress())) {
124
+ throw new Error("Gas drop-off recipient does not match");
125
+ }
126
+ });
127
+ const sender = Wormhole.parseAddress(signer.chain(), signer.address());
128
+ const recipient = await resolveRecipient(to, request);
129
+ let xfer;
130
+ if (params.protocol === "CCTPExecutor") {
131
+ const executor = await request.fromChain.getProtocol(params.protocol);
132
+ xfer = await executor.transfer(sender, recipient, params.details);
133
+ }
134
+ else {
135
+ const executor = await request.fromChain.getProtocol(params.protocol);
136
+ xfer = await executor.transfer(sender, recipient, params.details);
137
+ }
138
+ const txids = await signSendWait(request.fromChain, xfer, signer);
139
+ // Status the transfer immediately before returning
140
+ let statusAttempts = 0;
141
+ const statusTransferImmediately = async () => {
142
+ while (statusAttempts < 20) {
143
+ try {
144
+ const [txStatus] = await fetchStatus(request.fromChain.network, txids.at(-1).txid, request.fromChain.chain);
145
+ if (txStatus) {
146
+ break;
147
+ }
148
+ }
149
+ catch (_) {
150
+ // is ok we just try again!
151
+ }
152
+ statusAttempts++;
153
+ await sleep(2_000);
154
+ }
155
+ };
156
+ // Spawn a loop in the background that will status this transfer until
157
+ // the API gives a successful response. We don't await the result
158
+ // here because we don't need it for the return value.
159
+ statusTransferImmediately();
160
+ return {
161
+ from: request.fromChain.chain,
162
+ to: request.toChain.chain,
163
+ state: TransferState.SourceInitiated,
164
+ originTxs: txids,
165
+ };
166
+ }
167
+ async function resolveRecipient(to, request) {
168
+ if (to.chain !== "Solana")
169
+ return to;
170
+ // When transferring to Solana, the recipient address is the ATA
171
+ const solanaUsdc = circle.usdcContract.get(request.toChain.network, request.toChain.chain);
172
+ if (!solanaUsdc)
173
+ throw new Error("No USDC contract found for Solana");
174
+ const usdcAddress = Wormhole.parseAddress("Solana", solanaUsdc);
175
+ return request.toChain.getTokenAccount(to.address, usdcAddress);
176
+ }
177
+ //# 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,5 @@
1
+ export * from "./cctpV1";
2
+ export * from "./cctpV2Base";
3
+ export * from "./cctpV2Fast";
4
+ export * from "./cctpV2Standard";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  import { circle, deserializeLayout, toChainId, } from "@wormhole-foundation/sdk-connect";
2
2
  import { utils, SolanaAddress, SolanaPlatform, SolanaUnsignedTransaction, } from "@wormhole-foundation/sdk-solana";
3
- import { shimContracts, solanaExecutorId } from "../consts";
3
+ import { shimContractsV1, solanaExecutorId } from "../consts";
4
4
  import { Keypair, PublicKey, Transaction } from "@solana/web3.js";
5
5
  import { createAssociatedTokenAccountIdempotentInstruction, createTransferInstruction, getAssociatedTokenAddressSync, } from "@solana/spl-token";
6
6
  import { createDepositForBurnInstruction } from "@wormhole-foundation/sdk-solana-cctp";
@@ -30,7 +30,7 @@ export class SvmCCTPExecutor {
30
30
  };
31
31
  this.tokenMessengerProgramId = getContractAddress(contracts.cctp?.tokenMessenger, `Circle Token Messenger contract for domain ${chain} not found`);
32
32
  this.messageTransmitterProgramId = getContractAddress(contracts.cctp?.messageTransmitter, `Circle Message Transmitter contract for domain ${chain} not found`);
33
- this.shimProgramId = getContractAddress(shimContracts[network]?.[chain], `Shim contract for ${chain} not found`);
33
+ this.shimProgramId = getContractAddress(shimContractsV1[network]?.[chain], `Shim contract for ${chain} not found`);
34
34
  this.executorProgramId = getContractAddress(solanaExecutorId[network], `Executor contract for ${network} not found`);
35
35
  }
36
36
  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":"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"}
@@ -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 { ChainContext, TokenId, 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;
@@ -57,9 +66,21 @@ export interface StatusResponse extends RelayData {
57
66
  estimatedCost: string;
58
67
  }
59
68
  export declare function fetchStatus(network: Network, txHash: string, chain: Chain): Promise<StatusResponse[]>;
60
- export declare function calculateReferrerFee(amount: bigint, dBps: bigint): {
69
+ export declare function calculateReferrerFee(amount: bigint, dBps: bigint, threshold?: bigint): {
61
70
  referrerFee: bigint;
62
71
  remainingAmount: bigint;
72
+ referrerFeeDbps: bigint;
63
73
  };
64
74
  export declare function sleep(ms: number): Promise<void>;
75
+ export declare function getCircleV2Attestation(tx: TransactionId, network: Network, timeout?: number): Promise<{
76
+ message: CircleV2Message;
77
+ attestation: string;
78
+ } | null>;
79
+ export declare function getCircleV2FastBurnFee(network: Network, fromChain: Chain, toChain: Chain): Promise<bigint>;
80
+ export declare function reattestCircleV2Message(network: Network, attestation: CCTPv2ExecutorRoute.Attestation): Promise<{
81
+ message: CircleV2Message;
82
+ attestation: string;
83
+ } | null>;
84
+ export declare function getCircleV2FastBurnAllowance(network: Network): Promise<bigint>;
85
+ export declare function getUsdcDestinationAddress<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): TokenId[];
65
86
  //# 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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"}