@wormhole-labs/cctp-executor-route 1.0.3 → 2.0.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 (127) hide show
  1. package/dist/esm/layouts/relayInstruction.d.ts +6 -6
  2. package/dist/esm/routes/cctpV2Fast.d.ts +1 -1
  3. package/dist/esm/routes/cctpV2Standard.d.ts +1 -1
  4. package/dist/esm/sui/executor.d.ts +4 -4
  5. package/dist/esm/sui/executor.d.ts.map +1 -1
  6. package/dist/esm/sui/executor.js.map +1 -1
  7. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  8. package/package.json +28 -29
  9. package/dist/cjs/aptos/executor.d.ts +0 -18
  10. package/dist/cjs/aptos/executor.d.ts.map +0 -1
  11. package/dist/cjs/aptos/executor.js +0 -73
  12. package/dist/cjs/aptos/executor.js.map +0 -1
  13. package/dist/cjs/aptos/index.d.ts +0 -4
  14. package/dist/cjs/aptos/index.d.ts.map +0 -1
  15. package/dist/cjs/aptos/index.js +0 -28
  16. package/dist/cjs/aptos/index.js.map +0 -1
  17. package/dist/cjs/consts.d.ts +0 -34
  18. package/dist/cjs/consts.d.ts.map +0 -1
  19. package/dist/cjs/consts.js +0 -347
  20. package/dist/cjs/consts.js.map +0 -1
  21. package/dist/cjs/evm/executor.d.ts +0 -19
  22. package/dist/cjs/evm/executor.d.ts.map +0 -1
  23. package/dist/cjs/evm/executor.js +0 -71
  24. package/dist/cjs/evm/executor.js.map +0 -1
  25. package/dist/cjs/evm/executorV2.d.ts +0 -25
  26. package/dist/cjs/evm/executorV2.d.ts.map +0 -1
  27. package/dist/cjs/evm/executorV2.js +0 -102
  28. package/dist/cjs/evm/executorV2.js.map +0 -1
  29. package/dist/cjs/evm/index.d.ts +0 -5
  30. package/dist/cjs/evm/index.d.ts.map +0 -1
  31. package/dist/cjs/evm/index.js +0 -33
  32. package/dist/cjs/evm/index.js.map +0 -1
  33. package/dist/cjs/index.d.ts +0 -4
  34. package/dist/cjs/index.d.ts.map +0 -1
  35. package/dist/cjs/index.js +0 -31
  36. package/dist/cjs/index.js.map +0 -1
  37. package/dist/cjs/layouts/circle.d.ts +0 -161
  38. package/dist/cjs/layouts/circle.d.ts.map +0 -1
  39. package/dist/cjs/layouts/circle.js +0 -48
  40. package/dist/cjs/layouts/circle.js.map +0 -1
  41. package/dist/cjs/layouts/conversions.d.ts +0 -5
  42. package/dist/cjs/layouts/conversions.d.ts.map +0 -1
  43. package/dist/cjs/layouts/conversions.js +0 -8
  44. package/dist/cjs/layouts/conversions.js.map +0 -1
  45. package/dist/cjs/layouts/index.d.ts +0 -4
  46. package/dist/cjs/layouts/index.d.ts.map +0 -1
  47. package/dist/cjs/layouts/index.js +0 -20
  48. package/dist/cjs/layouts/index.js.map +0 -1
  49. package/dist/cjs/layouts/relayInstruction.d.ts +0 -86
  50. package/dist/cjs/layouts/relayInstruction.d.ts.map +0 -1
  51. package/dist/cjs/layouts/relayInstruction.js +0 -32
  52. package/dist/cjs/layouts/relayInstruction.js.map +0 -1
  53. package/dist/cjs/layouts/signedQuote.d.ts +0 -102
  54. package/dist/cjs/layouts/signedQuote.d.ts.map +0 -1
  55. package/dist/cjs/layouts/signedQuote.js +0 -46
  56. package/dist/cjs/layouts/signedQuote.js.map +0 -1
  57. package/dist/cjs/routes/cctpV1.d.ts +0 -101
  58. package/dist/cjs/routes/cctpV1.d.ts.map +0 -1
  59. package/dist/cjs/routes/cctpV1.js +0 -228
  60. package/dist/cjs/routes/cctpV1.js.map +0 -1
  61. package/dist/cjs/routes/cctpV2Base.d.ts +0 -68
  62. package/dist/cjs/routes/cctpV2Base.d.ts.map +0 -1
  63. package/dist/cjs/routes/cctpV2Base.js +0 -231
  64. package/dist/cjs/routes/cctpV2Base.js.map +0 -1
  65. package/dist/cjs/routes/cctpV2Fast.d.ts +0 -45
  66. package/dist/cjs/routes/cctpV2Fast.d.ts.map +0 -1
  67. package/dist/cjs/routes/cctpV2Fast.js +0 -124
  68. package/dist/cjs/routes/cctpV2Fast.js.map +0 -1
  69. package/dist/cjs/routes/cctpV2Standard.d.ts +0 -45
  70. package/dist/cjs/routes/cctpV2Standard.d.ts.map +0 -1
  71. package/dist/cjs/routes/cctpV2Standard.js +0 -114
  72. package/dist/cjs/routes/cctpV2Standard.js.map +0 -1
  73. package/dist/cjs/routes/helpers.d.ts +0 -29
  74. package/dist/cjs/routes/helpers.d.ts.map +0 -1
  75. package/dist/cjs/routes/helpers.js +0 -232
  76. package/dist/cjs/routes/helpers.js.map +0 -1
  77. package/dist/cjs/routes/index.d.ts +0 -5
  78. package/dist/cjs/routes/index.d.ts.map +0 -1
  79. package/dist/cjs/routes/index.js +0 -21
  80. package/dist/cjs/routes/index.js.map +0 -1
  81. package/dist/cjs/sui/executor.d.ts +0 -24
  82. package/dist/cjs/sui/executor.d.ts.map +0 -1
  83. package/dist/cjs/sui/executor.js +0 -135
  84. package/dist/cjs/sui/executor.js.map +0 -1
  85. package/dist/cjs/sui/index.d.ts +0 -4
  86. package/dist/cjs/sui/index.d.ts.map +0 -1
  87. package/dist/cjs/sui/index.js +0 -28
  88. package/dist/cjs/sui/index.js.map +0 -1
  89. package/dist/cjs/svm/executor.d.ts +0 -21
  90. package/dist/cjs/svm/executor.d.ts.map +0 -1
  91. package/dist/cjs/svm/executor.js +0 -98
  92. package/dist/cjs/svm/executor.js.map +0 -1
  93. package/dist/cjs/svm/executorV2.d.ts +0 -28
  94. package/dist/cjs/svm/executorV2.d.ts.map +0 -1
  95. package/dist/cjs/svm/executorV2.js +0 -351
  96. package/dist/cjs/svm/executorV2.js.map +0 -1
  97. package/dist/cjs/svm/idl/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC-idl.d.ts +0 -1316
  98. package/dist/cjs/svm/idl/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC-idl.d.ts.map +0 -1
  99. package/dist/cjs/svm/idl/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC-idl.js +0 -3
  100. package/dist/cjs/svm/idl/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC-idl.js.map +0 -1
  101. package/dist/cjs/svm/idl/CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC-idl.json +0 -1315
  102. package/dist/cjs/svm/idl/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe-id.d.ts +0 -2198
  103. package/dist/cjs/svm/idl/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe-id.d.ts.map +0 -1
  104. package/dist/cjs/svm/idl/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe-id.js +0 -3
  105. package/dist/cjs/svm/idl/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe-id.js.map +0 -1
  106. package/dist/cjs/svm/idl/CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe-id.json +0 -2197
  107. package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts +0 -72
  108. package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts.map +0 -1
  109. package/dist/cjs/svm/idl/example_cctp_with_executor.js +0 -74
  110. package/dist/cjs/svm/idl/example_cctp_with_executor.js.map +0 -1
  111. package/dist/cjs/svm/idl/executor.d.ts +0 -103
  112. package/dist/cjs/svm/idl/executor.d.ts.map +0 -1
  113. package/dist/cjs/svm/idl/executor.js +0 -105
  114. package/dist/cjs/svm/idl/executor.js.map +0 -1
  115. package/dist/cjs/svm/index.d.ts +0 -5
  116. package/dist/cjs/svm/index.d.ts.map +0 -1
  117. package/dist/cjs/svm/index.js +0 -33
  118. package/dist/cjs/svm/index.js.map +0 -1
  119. package/dist/cjs/types.d.ts +0 -13
  120. package/dist/cjs/types.d.ts.map +0 -1
  121. package/dist/cjs/types.js +0 -3
  122. package/dist/cjs/types.js.map +0 -1
  123. package/dist/cjs/utils.d.ts +0 -30
  124. package/dist/cjs/utils.d.ts.map +0 -1
  125. package/dist/cjs/utils.js +0 -166
  126. package/dist/cjs/utils.js.map +0 -1
  127. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
@@ -1,228 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CCTPExecutorRoute = void 0;
37
- exports.cctpExecutorRoute = cctpExecutorRoute;
38
- const sdk_base_1 = require("@wormhole-foundation/sdk-base");
39
- const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
40
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
41
- const routes = __importStar(require("@wormhole-foundation/sdk-connect/routes"));
42
- const sdk_definitions_2 = require("@wormhole-foundation/sdk-definitions");
43
- const utils_1 = require("../utils");
44
- const consts_1 = require("../consts");
45
- const helpers_1 = require("./helpers");
46
- // Use this function to create a new CCTPExecutorRoute with custom config
47
- function cctpExecutorRoute(config = {
48
- transferTokenFee: 0n,
49
- nativeTokenFee: 0n,
50
- }) {
51
- (0, helpers_1.validateFeeConfig)(config);
52
- class CCTPExecutorRouteImpl extends CCTPExecutorRoute {
53
- static config = config;
54
- }
55
- return CCTPExecutorRouteImpl;
56
- }
57
- // CCTPv1
58
- class CCTPExecutorRoute extends routes.AutomaticRoute {
59
- static NATIVE_GAS_DROPOFF_SUPPORTED = true;
60
- // @ts-ignore
61
- // Since we set the config on the static class, access it with this param
62
- // the CCTPExecutorRoute.config will always be empty
63
- staticConfig = this.constructor.config;
64
- static config = {
65
- transferTokenFee: 0n,
66
- nativeTokenFee: 0n,
67
- };
68
- static meta = {
69
- name: "CCTPExecutorRoute",
70
- provider: "Circle CCTP",
71
- };
72
- static supportedNetworks() {
73
- return ["Mainnet", "Testnet"];
74
- }
75
- static supportedChains(network) {
76
- return [...Object.keys(consts_1.circleV1Domains[network] ?? {})];
77
- }
78
- static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
79
- if (!(0, consts_1.isCircleV1Chain)(fromChain.network, fromChain.chain) ||
80
- !(0, consts_1.isCircleV1Chain)(toChain.network, toChain.chain)) {
81
- return [];
82
- }
83
- return (0, utils_1.getUsdcDestinationAddress)(sourceToken, fromChain, toChain);
84
- }
85
- getDefaultOptions() {
86
- return {
87
- nativeGas: 0,
88
- };
89
- }
90
- async validate(request, params) {
91
- const { fromChain, toChain } = request;
92
- if (!(0, consts_1.isCircleV1Chain)(fromChain.network, fromChain.chain) ||
93
- !(0, consts_1.isCircleV1Chain)(toChain.network, toChain.chain)) {
94
- return {
95
- valid: false,
96
- error: new Error("Unsupported source or destination chain"),
97
- params,
98
- };
99
- }
100
- if (params.options?.nativeGas &&
101
- (params.options.nativeGas < 0 || params.options.nativeGas > 1)) {
102
- return {
103
- valid: false,
104
- error: new Error("Invalid native gas percentage"),
105
- params,
106
- };
107
- }
108
- const validatedParams = {
109
- normalizedParams: {
110
- amount: request.parseAmount(params.amount),
111
- },
112
- options: params.options ?? this.getDefaultOptions(),
113
- ...params,
114
- };
115
- return { valid: true, params: validatedParams };
116
- }
117
- async quote(request, params) {
118
- const { fromChain, toChain } = request;
119
- try {
120
- const quoteDetails = await (0, helpers_1.fetchExecutorQuote)(request, params, this.staticConfig, "ERC1");
121
- const { remainingAmount, estimatedCost, gasDropOff, expiryTime } = quoteDetails;
122
- // https://developers.circle.com/stablecoins/docs/required-block-confirmations
123
- const eta = fromChain.chain === "Polygon"
124
- ? 2_000 * 200
125
- : sdk_base_1.finality.estimateFinalityTime(fromChain.chain) + 1_000; // buffer for the relayer
126
- const [srcNativeDecimals, dstNativeDecimals] = await Promise.all([
127
- fromChain.getDecimals("native"),
128
- toChain.getDecimals("native"),
129
- ]);
130
- return {
131
- success: true,
132
- params,
133
- sourceToken: {
134
- token: request.source.id,
135
- amount: params.normalizedParams.amount,
136
- },
137
- destinationToken: {
138
- token: request.destination.id,
139
- amount: sdk_base_1.amount.fromBaseUnits(remainingAmount, request.destination.decimals),
140
- },
141
- relayFee: {
142
- token: (0, sdk_definitions_1.nativeTokenId)(fromChain.chain),
143
- amount: sdk_base_1.amount.fromBaseUnits(estimatedCost, srcNativeDecimals),
144
- },
145
- destinationNativeGas: sdk_base_1.amount.fromBaseUnits(gasDropOff, dstNativeDecimals),
146
- eta,
147
- expires: expiryTime,
148
- details: quoteDetails,
149
- };
150
- }
151
- catch (e) {
152
- return {
153
- success: false,
154
- error: new Error(e instanceof Error ? e.message : `${e}`),
155
- };
156
- }
157
- }
158
- async initiate(request, signer, quote, to) {
159
- if (!quote.details) {
160
- throw new Error("Missing quote details");
161
- }
162
- return await (0, helpers_1.initiateTransfer)(request, signer, to, {
163
- protocol: "CCTPExecutor",
164
- details: quote.details,
165
- });
166
- }
167
- async buildInitiateTransactions(request, sender, recipient, quote) {
168
- if (!quote.details) {
169
- throw new Error("Missing quote details");
170
- }
171
- return (0, helpers_1.buildInitiateTransactions)(request, sender, recipient, {
172
- protocol: "CCTPExecutor",
173
- details: quote.details,
174
- });
175
- }
176
- async *track(receipt, timeout) {
177
- if ((0, sdk_connect_1.isCompleted)(receipt) || (0, sdk_connect_1.isFailed)(receipt))
178
- return receipt;
179
- let leftover = timeout ? timeout : 60 * 60 * 1000;
180
- while (leftover > 0) {
181
- const start = Date.now();
182
- if ((0, sdk_connect_1.isSourceInitiated)(receipt) ||
183
- (0, sdk_connect_1.isSourceFinalized)(receipt) ||
184
- (0, sdk_connect_1.isAttested)(receipt)) {
185
- try {
186
- const [txStatus] = await (0, utils_1.fetchStatus)(this.wh.network, receipt.originTxs.at(-1).txid, receipt.from);
187
- if (!txStatus) {
188
- throw new Error("No transaction status found");
189
- }
190
- const relayStatus = txStatus?.status;
191
- if (relayStatus === sdk_definitions_2.RelayStatus.Failed || // this could happen if simulation fails
192
- relayStatus === sdk_definitions_2.RelayStatus.Underpaid || // only happens if you don't pay at least the costEstimate
193
- relayStatus === sdk_definitions_2.RelayStatus.Unsupported || // capabilities check didn't pass
194
- relayStatus === sdk_definitions_2.RelayStatus.Aborted // An unrecoverable error indicating the attempt should stop (bad data, pre-flight checks failed, or chain-specific conditions)
195
- ) {
196
- receipt = {
197
- ...receipt,
198
- state: sdk_connect_1.TransferState.Failed,
199
- error: new routes.RelayFailedError(`Relay failed with status: ${relayStatus}`),
200
- };
201
- }
202
- if (relayStatus === sdk_definitions_2.RelayStatus.Submitted) {
203
- receipt = {
204
- ...receipt,
205
- state: sdk_connect_1.TransferState.DestinationFinalized,
206
- attestation: { id: txStatus.id, attestation: {} },
207
- };
208
- }
209
- // Important to yield before checking for completion
210
- // so the caller can update the receipt state
211
- yield receipt;
212
- if ((0, sdk_connect_1.isCompleted)(receipt) || (0, sdk_connect_1.isFailed)(receipt)) {
213
- return receipt;
214
- }
215
- }
216
- catch (error) {
217
- console.error(`Error fetching transaction status: ${error.message || error}`);
218
- }
219
- }
220
- // Sleep so we don't spam the endpoint
221
- await new Promise((resolve) => setTimeout(resolve, 3000));
222
- leftover -= Date.now() - start;
223
- }
224
- return receipt;
225
- }
226
- }
227
- exports.CCTPExecutorRoute = CCTPExecutorRoute;
228
- //# sourceMappingURL=cctpV1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cctpV1.js","sourceRoot":"","sources":["../../../src/routes/cctpV1.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import { amount, Chain, ChainAddress, EmptyPlatformMap, Network, Signer, TransactionId, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
2
- import * as routes from "@wormhole-foundation/sdk-connect/routes";
3
- import type { CapabilitiesResponse } from "@wormhole-foundation/sdk-definitions";
4
- import { CircleV2Message } from "../layouts";
5
- import { QuoteDetails } from "./cctpV1";
6
- import { CCTPv2Executor } from "../types";
7
- export declare namespace CCTPv2ExecutorRoute {
8
- type Options = {
9
- nativeGas?: number;
10
- };
11
- type NormalizedParams = {
12
- amount: amount.Amount;
13
- };
14
- interface ValidatedParams extends routes.ValidatedTransferParams<Options> {
15
- normalizedParams: NormalizedParams;
16
- }
17
- type Config = {
18
- transferTokenFee?: bigint | ((amount: bigint, sourceChain: Chain) => bigint);
19
- nativeTokenFee?: bigint | ((amount: bigint, sourceChain: Chain) => bigint);
20
- referrerAddresses?: Partial<Record<Network, Partial<Record<Chain, string>>>>;
21
- executor?: {
22
- /** Override the default capabilities fetcher (e.g. to cache or use a custom endpoint). */
23
- getCapabilities?: (network: Network) => Promise<CapabilitiesResponse>;
24
- };
25
- };
26
- type Attestation = {
27
- id: string;
28
- attestation: {
29
- message: CircleV2Message;
30
- attestation: string;
31
- };
32
- };
33
- }
34
- export type Op = CCTPv2ExecutorRoute.Options;
35
- export type Vp = CCTPv2ExecutorRoute.ValidatedParams;
36
- export type Tp = routes.TransferParams<Op>;
37
- export type Vr = routes.ValidationResult<Op>;
38
- export type CCTPv2QuoteDetails = QuoteDetails & {
39
- fastTransferMaxFee: bigint;
40
- minFinalityThreshold: number;
41
- };
42
- export type Q = routes.Quote<Op, Vp, CCTPv2QuoteDetails>;
43
- export type Qr = routes.QuoteResult<Op, Vp>;
44
- export type R = routes.Receipt<CCTPv2ExecutorRoute.Attestation>;
45
- export declare abstract class CCTPv2BaseRoute<N extends Network> extends routes.AutomaticRoute<N, Op, Vp, R> {
46
- static NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
47
- static supportedNetworks(): Network[];
48
- static supportedChains(network: Network): Chain[];
49
- getDefaultOptions(): Op;
50
- initiate(request: routes.RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
51
- buildInitiateTransactions(request: routes.RouteTransferRequest<N>, sender: ChainAddress, recipient: ChainAddress, quote: Q): Promise<UnsignedTransaction<N, Chain>[]>;
52
- track(receipt: R, timeout?: number): AsyncGenerator<import("@wormhole-foundation/sdk-connect").SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore", "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore"> | import("@wormhole-foundation/sdk-connect").FailedTransferReceipt<CCTPv2ExecutorRoute.Attestation, "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore", "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore"> | import("@wormhole-foundation/sdk-connect").SourceFinalizedTransferReceipt<CCTPv2ExecutorRoute.Attestation, "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore", "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore"> | import("@wormhole-foundation/sdk-connect").AttestedTransferReceipt<CCTPv2ExecutorRoute.Attestation, "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore", "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore"> | import("@wormhole-foundation/sdk-connect").CompletedTransferReceipt<CCTPv2ExecutorRoute.Attestation, "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore", "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore">, R, unknown>;
53
- complete(signer: Signer, receipt: R): Promise<R>;
54
- _buildCompleteXfer(sender: ChainAddress, receipt: R): Promise<AsyncGenerator<UnsignedTransaction<N, "Solana" | "Ethereum" | "Bsc" | "Polygon" | "Avalanche" | "Algorand" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Pythnet" | "Btc" | "Base" | "Sei" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Fogo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "Stacks" | "Moca" | "MegaETH" | "Xrpl" | "ZeroGravity" | "Tempo" | "Nexus" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "MonadTestnet" | "HyperCore">, any, any>>;
55
- buildCompleteTransactions(sender: ChainAddress, receipt: R): Promise<UnsignedTransaction<N, Chain>[]>;
56
- resume(tx: TransactionId): Promise<R>;
57
- }
58
- declare module "@wormhole-foundation/sdk-definitions" {
59
- namespace WormholeRegistry {
60
- interface ProtocolToInterfaceMapping<N, C> {
61
- CCTPv2Executor: CCTPv2Executor<N, C>;
62
- }
63
- interface ProtocolToPlatformMapping {
64
- CCTPv2Executor: EmptyPlatformMap<"CCTPv2Executor">;
65
- }
66
- }
67
- }
68
- //# sourceMappingURL=cctpV2Base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cctpV2Base.d.ts","sourceRoot":"","sources":["../../../src/routes/cctpV2Base.ts"],"names":[],"mappings":"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"}
@@ -1,231 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CCTPv2BaseRoute = void 0;
37
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
38
- const routes = __importStar(require("@wormhole-foundation/sdk-connect/routes"));
39
- const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
40
- const utils_1 = require("../utils");
41
- const consts_1 = require("../consts");
42
- const helpers_1 = require("./helpers");
43
- class CCTPv2BaseRoute extends routes.AutomaticRoute {
44
- static NATIVE_GAS_DROPOFF_SUPPORTED = true;
45
- static supportedNetworks() {
46
- return ["Mainnet", "Testnet"];
47
- }
48
- static supportedChains(network) {
49
- return Object.keys(consts_1.circleV2Domains[network] ?? {});
50
- }
51
- getDefaultOptions() {
52
- return {
53
- nativeGas: 0,
54
- };
55
- }
56
- async initiate(request, signer, quote, to) {
57
- if (!quote.details) {
58
- throw new Error("Missing quote details");
59
- }
60
- return await (0, helpers_1.initiateTransfer)(request, signer, to, {
61
- protocol: "CCTPv2Executor",
62
- details: quote.details,
63
- });
64
- }
65
- async buildInitiateTransactions(request, sender, recipient, quote) {
66
- if (!quote.details) {
67
- throw new Error("Missing quote details");
68
- }
69
- return (0, helpers_1.buildInitiateTransactions)(request, sender, recipient, {
70
- protocol: "CCTPv2Executor",
71
- details: quote.details,
72
- });
73
- }
74
- async *track(receipt, timeout) {
75
- if ((0, sdk_connect_1.isCompleted)(receipt))
76
- return receipt;
77
- let leftover = timeout ? timeout : 60 * 60 * 1000;
78
- while (leftover > 0) {
79
- const start = Date.now();
80
- if ((0, sdk_connect_1.isSourceInitiated)(receipt) ||
81
- (0, sdk_connect_1.isSourceFinalized)(receipt) ||
82
- (0, sdk_connect_1.isAttested)(receipt) ||
83
- (0, sdk_connect_1.isFailed)(receipt)) {
84
- try {
85
- const txId = receipt.originTxs.at(-1).txid;
86
- // First we fetch the circle attestation
87
- if ((0, sdk_connect_1.isSourceInitiated)(receipt) || (0, sdk_connect_1.isSourceFinalized)(receipt)) {
88
- const attestation = await (0, utils_1.getCircleV2Attestation)({ chain: receipt.from, txid: txId }, this.wh.network);
89
- if (attestation) {
90
- receipt = {
91
- ...receipt,
92
- state: sdk_connect_1.TransferState.Attested,
93
- attestation: {
94
- id: txId,
95
- attestation,
96
- },
97
- };
98
- }
99
- yield receipt;
100
- }
101
- // Next we check the relay status
102
- // This will either mark it as completed or failed
103
- if ((0, sdk_connect_1.isAttested)(receipt)) {
104
- const [txStatus] = await (0, utils_1.fetchStatus)(this.wh.network, txId, receipt.from);
105
- if (!txStatus) {
106
- throw new Error("No transaction status found");
107
- }
108
- const relayStatus = txStatus?.status;
109
- if (relayStatus === sdk_definitions_1.RelayStatus.Submitted) {
110
- receipt = {
111
- ...receipt,
112
- state: sdk_connect_1.TransferState.DestinationFinalized,
113
- };
114
- }
115
- else if (relayStatus === sdk_definitions_1.RelayStatus.Failed || // this could happen if simulation fails
116
- relayStatus === sdk_definitions_1.RelayStatus.Underpaid || // only happens if you don't pay at least the costEstimate
117
- relayStatus === sdk_definitions_1.RelayStatus.Unsupported || // capabilities check didn't pass
118
- relayStatus === sdk_definitions_1.RelayStatus.Aborted // An unrecoverable error indicating the attempt should stop (bad data, pre-flight checks failed, or chain-specific conditions)
119
- ) {
120
- receipt = {
121
- ...receipt,
122
- state: sdk_connect_1.TransferState.Failed,
123
- error: new routes.RelayFailedError(`Relay failed with status: ${relayStatus}`),
124
- };
125
- }
126
- }
127
- // If the relay failed, then we check if it was completed
128
- // through another method (e.g. manual delivery)
129
- if ((0, sdk_connect_1.isFailed)(receipt)) {
130
- if (!receipt.attestation) {
131
- // This should never happen since we set the attestation
132
- // on the receipt before checking the relay status
133
- throw new Error("Receipt is missing attestation");
134
- }
135
- const attestation = receipt.attestation;
136
- const executor = await this.wh
137
- .getChain(receipt.to)
138
- .getProtocol("CCTPv2Executor");
139
- const isTransferCompleted = await executor.isTransferCompleted(attestation.attestation.message);
140
- if (isTransferCompleted) {
141
- receipt = {
142
- ...receipt,
143
- state: sdk_connect_1.TransferState.DestinationFinalized,
144
- attestation,
145
- };
146
- }
147
- }
148
- // Important to yield before checking for completion
149
- // so the caller can update the receipt state
150
- yield receipt;
151
- if ((0, sdk_connect_1.isCompleted)(receipt)) {
152
- return receipt;
153
- }
154
- }
155
- catch (error) {
156
- console.error(`Error fetching transaction status: ${error.message || error}`);
157
- }
158
- }
159
- // Sleep so we don't spam the endpoint
160
- await new Promise((resolve) => setTimeout(resolve, 3000));
161
- leftover -= Date.now() - start;
162
- }
163
- return receipt;
164
- }
165
- async complete(signer, receipt) {
166
- const sender = sdk_connect_1.Wormhole.chainAddress(signer.chain(), signer.address());
167
- const xfer = await this._buildCompleteXfer(sender, receipt);
168
- const toChain = this.wh.getChain(receipt.to);
169
- const dstTxIds = await (0, sdk_connect_1.signSendWait)(toChain, xfer, signer);
170
- return {
171
- ...receipt,
172
- state: sdk_connect_1.TransferState.DestinationInitiated,
173
- destinationTxs: dstTxIds,
174
- };
175
- }
176
- async _buildCompleteXfer(sender, receipt) {
177
- if (!(0, sdk_connect_1.isAttested)(receipt) && !(0, sdk_connect_1.isFailed)(receipt)) {
178
- throw new Error("Transfer is not attested");
179
- }
180
- if (!receipt.attestation) {
181
- throw new Error("No attestation found");
182
- }
183
- const toChain = this.wh.getChain(receipt.to);
184
- const executor = await toChain.getProtocol("CCTPv2Executor");
185
- // check if the attestation is expired and, if so, re-attest and fetch
186
- let { attestation, message } = receipt.attestation.attestation;
187
- const { expirationBlock } = message.messageBody;
188
- const currentBlock = await executor.getCurrentBlock();
189
- if (expirationBlock !== 0n && expirationBlock < currentBlock) {
190
- const newAttestation = await (0, utils_1.reattestCircleV2Message)(toChain.network, receipt.attestation);
191
- if (!newAttestation) {
192
- throw new Error("Failed to reattest message");
193
- }
194
- attestation = newAttestation.attestation;
195
- message = newAttestation.message;
196
- }
197
- const senderAddress = sdk_connect_1.Wormhole.parseAddress(sender.chain, sender.address.toString());
198
- return executor.redeem(senderAddress, message, attestation);
199
- }
200
- async buildCompleteTransactions(sender, receipt) {
201
- const txs = await (0, helpers_1.collectTransactions)(await this._buildCompleteXfer(sender, receipt));
202
- return txs;
203
- }
204
- async resume(tx) {
205
- const attestation = await (0, utils_1.getCircleV2Attestation)(tx, this.wh.network);
206
- if (!attestation)
207
- throw new Error("No attestation found");
208
- const { message } = attestation;
209
- const to = (0, consts_1.getCircleV2Chain)(this.wh.network, message.destinationDomain);
210
- const executor = await this.wh.getChain(to).getProtocol("CCTPv2Executor");
211
- const isCompleted = await executor.isTransferCompleted(message);
212
- if (isCompleted) {
213
- return {
214
- from: tx.chain,
215
- to,
216
- state: sdk_connect_1.TransferState.DestinationFinalized,
217
- originTxs: [tx],
218
- attestation: { id: tx.txid, attestation },
219
- };
220
- }
221
- return {
222
- from: tx.chain,
223
- to,
224
- state: sdk_connect_1.TransferState.Attested,
225
- originTxs: [tx],
226
- attestation: { id: tx.txid, attestation },
227
- };
228
- }
229
- }
230
- exports.CCTPv2BaseRoute = CCTPv2BaseRoute;
231
- //# sourceMappingURL=cctpV2Base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cctpV2Base.js","sourceRoot":"","sources":["../../../src/routes/cctpV2Base.ts"],"names":[],"mappings":"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"}