@wormhole-labs/cctp-executor-route 0.0.1-beta.10

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 +68 -0
  2. package/dist/cjs/aptos/executor.d.ts +18 -0
  3. package/dist/cjs/aptos/executor.d.ts.map +1 -0
  4. package/dist/cjs/aptos/executor.js +73 -0
  5. package/dist/cjs/aptos/executor.js.map +1 -0
  6. package/dist/cjs/aptos/index.d.ts +2 -0
  7. package/dist/cjs/aptos/index.d.ts.map +1 -0
  8. package/dist/cjs/aptos/index.js +22 -0
  9. package/dist/cjs/aptos/index.js.map +1 -0
  10. package/dist/cjs/consts.d.ts +13 -0
  11. package/dist/cjs/consts.d.ts.map +1 -0
  12. package/dist/cjs/consts.js +94 -0
  13. package/dist/cjs/consts.js.map +1 -0
  14. package/dist/cjs/evm/executor.d.ts +19 -0
  15. package/dist/cjs/evm/executor.d.ts.map +1 -0
  16. package/dist/cjs/evm/executor.js +69 -0
  17. package/dist/cjs/evm/executor.js.map +1 -0
  18. package/dist/cjs/evm/index.d.ts +2 -0
  19. package/dist/cjs/evm/index.d.ts.map +1 -0
  20. package/dist/cjs/evm/index.js +22 -0
  21. package/dist/cjs/evm/index.js.map +1 -0
  22. package/dist/cjs/index.d.ts +96 -0
  23. package/dist/cjs/index.d.ts.map +1 -0
  24. package/dist/cjs/index.js +321 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/layouts/conversions.d.ts +5 -0
  27. package/dist/cjs/layouts/conversions.d.ts.map +1 -0
  28. package/dist/cjs/layouts/conversions.js +8 -0
  29. package/dist/cjs/layouts/conversions.js.map +1 -0
  30. package/dist/cjs/layouts/index.d.ts +4 -0
  31. package/dist/cjs/layouts/index.d.ts.map +1 -0
  32. package/dist/cjs/layouts/index.js +20 -0
  33. package/dist/cjs/layouts/index.js.map +1 -0
  34. package/dist/cjs/layouts/relayInstruction.d.ts +86 -0
  35. package/dist/cjs/layouts/relayInstruction.d.ts.map +1 -0
  36. package/dist/cjs/layouts/relayInstruction.js +32 -0
  37. package/dist/cjs/layouts/relayInstruction.js.map +1 -0
  38. package/dist/cjs/layouts/requestForExecution.d.ts +18 -0
  39. package/dist/cjs/layouts/requestForExecution.d.ts.map +1 -0
  40. package/dist/cjs/layouts/requestForExecution.js +15 -0
  41. package/dist/cjs/layouts/requestForExecution.js.map +1 -0
  42. package/dist/cjs/layouts/signedQuote.d.ts +102 -0
  43. package/dist/cjs/layouts/signedQuote.d.ts.map +1 -0
  44. package/dist/cjs/layouts/signedQuote.js +46 -0
  45. package/dist/cjs/layouts/signedQuote.js.map +1 -0
  46. package/dist/cjs/sui/executor.d.ts +24 -0
  47. package/dist/cjs/sui/executor.d.ts.map +1 -0
  48. package/dist/cjs/sui/executor.js +129 -0
  49. package/dist/cjs/sui/executor.js.map +1 -0
  50. package/dist/cjs/sui/index.d.ts +2 -0
  51. package/dist/cjs/sui/index.d.ts.map +1 -0
  52. package/dist/cjs/sui/index.js +22 -0
  53. package/dist/cjs/sui/index.js.map +1 -0
  54. package/dist/cjs/svm/executor.d.ts +21 -0
  55. package/dist/cjs/svm/executor.d.ts.map +1 -0
  56. package/dist/cjs/svm/executor.js +89 -0
  57. package/dist/cjs/svm/executor.js.map +1 -0
  58. package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts +72 -0
  59. package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts.map +1 -0
  60. package/dist/cjs/svm/idl/example_cctp_with_executor.js +74 -0
  61. package/dist/cjs/svm/idl/example_cctp_with_executor.js.map +1 -0
  62. package/dist/cjs/svm/index.d.ts +2 -0
  63. package/dist/cjs/svm/index.d.ts.map +1 -0
  64. package/dist/cjs/svm/index.js +22 -0
  65. package/dist/cjs/svm/index.js.map +1 -0
  66. package/dist/cjs/types.d.ts +6 -0
  67. package/dist/cjs/types.d.ts.map +1 -0
  68. package/dist/cjs/types.js +3 -0
  69. package/dist/cjs/types.js.map +1 -0
  70. package/dist/cjs/utils.d.ts +64 -0
  71. package/dist/cjs/utils.d.ts.map +1 -0
  72. package/dist/cjs/utils.js +74 -0
  73. package/dist/cjs/utils.js.map +1 -0
  74. package/dist/esm/aptos/executor.d.ts +18 -0
  75. package/dist/esm/aptos/executor.d.ts.map +1 -0
  76. package/dist/esm/aptos/executor.js +69 -0
  77. package/dist/esm/aptos/executor.js.map +1 -0
  78. package/dist/esm/aptos/index.d.ts +2 -0
  79. package/dist/esm/aptos/index.d.ts.map +1 -0
  80. package/dist/esm/aptos/index.js +6 -0
  81. package/dist/esm/aptos/index.js.map +1 -0
  82. package/dist/esm/consts.d.ts +13 -0
  83. package/dist/esm/consts.d.ts.map +1 -0
  84. package/dist/esm/consts.js +91 -0
  85. package/dist/esm/consts.js.map +1 -0
  86. package/dist/esm/evm/executor.d.ts +19 -0
  87. package/dist/esm/evm/executor.d.ts.map +1 -0
  88. package/dist/esm/evm/executor.js +65 -0
  89. package/dist/esm/evm/executor.js.map +1 -0
  90. package/dist/esm/evm/index.d.ts +2 -0
  91. package/dist/esm/evm/index.d.ts.map +1 -0
  92. package/dist/esm/evm/index.js +6 -0
  93. package/dist/esm/evm/index.js.map +1 -0
  94. package/dist/esm/index.d.ts +96 -0
  95. package/dist/esm/index.d.ts.map +1 -0
  96. package/dist/esm/index.js +316 -0
  97. package/dist/esm/index.js.map +1 -0
  98. package/dist/esm/layouts/conversions.d.ts +5 -0
  99. package/dist/esm/layouts/conversions.d.ts.map +1 -0
  100. package/dist/esm/layouts/conversions.js +5 -0
  101. package/dist/esm/layouts/conversions.js.map +1 -0
  102. package/dist/esm/layouts/index.d.ts +4 -0
  103. package/dist/esm/layouts/index.d.ts.map +1 -0
  104. package/dist/esm/layouts/index.js +4 -0
  105. package/dist/esm/layouts/index.js.map +1 -0
  106. package/dist/esm/layouts/relayInstruction.d.ts +86 -0
  107. package/dist/esm/layouts/relayInstruction.d.ts.map +1 -0
  108. package/dist/esm/layouts/relayInstruction.js +29 -0
  109. package/dist/esm/layouts/relayInstruction.js.map +1 -0
  110. package/dist/esm/layouts/requestForExecution.d.ts +18 -0
  111. package/dist/esm/layouts/requestForExecution.d.ts.map +1 -0
  112. package/dist/esm/layouts/requestForExecution.js +12 -0
  113. package/dist/esm/layouts/requestForExecution.js.map +1 -0
  114. package/dist/esm/layouts/signedQuote.d.ts +102 -0
  115. package/dist/esm/layouts/signedQuote.d.ts.map +1 -0
  116. package/dist/esm/layouts/signedQuote.js +43 -0
  117. package/dist/esm/layouts/signedQuote.js.map +1 -0
  118. package/dist/esm/sui/executor.d.ts +24 -0
  119. package/dist/esm/sui/executor.d.ts.map +1 -0
  120. package/dist/esm/sui/executor.js +125 -0
  121. package/dist/esm/sui/executor.js.map +1 -0
  122. package/dist/esm/sui/index.d.ts +2 -0
  123. package/dist/esm/sui/index.d.ts.map +1 -0
  124. package/dist/esm/sui/index.js +6 -0
  125. package/dist/esm/sui/index.js.map +1 -0
  126. package/dist/esm/svm/executor.d.ts +21 -0
  127. package/dist/esm/svm/executor.d.ts.map +1 -0
  128. package/dist/esm/svm/executor.js +85 -0
  129. package/dist/esm/svm/executor.js.map +1 -0
  130. package/dist/esm/svm/idl/example_cctp_with_executor.d.ts +72 -0
  131. package/dist/esm/svm/idl/example_cctp_with_executor.d.ts.map +1 -0
  132. package/dist/esm/svm/idl/example_cctp_with_executor.js +71 -0
  133. package/dist/esm/svm/idl/example_cctp_with_executor.js.map +1 -0
  134. package/dist/esm/svm/index.d.ts +2 -0
  135. package/dist/esm/svm/index.d.ts.map +1 -0
  136. package/dist/esm/svm/index.js +6 -0
  137. package/dist/esm/svm/index.js.map +1 -0
  138. package/dist/esm/types.d.ts +6 -0
  139. package/dist/esm/types.d.ts.map +1 -0
  140. package/dist/esm/types.js +2 -0
  141. package/dist/esm/types.js.map +1 -0
  142. package/dist/esm/utils.d.ts +64 -0
  143. package/dist/esm/utils.d.ts.map +1 -0
  144. package/dist/esm/utils.js +64 -0
  145. package/dist/esm/utils.js.map +1 -0
  146. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  147. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  148. package/package.json +52 -0
package/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # CCTP W7 Executor Route
2
+
3
+ ## Releasing
4
+
5
+ To release this package, follow these steps:
6
+
7
+ 1. **Create a New GitHub Release**
8
+ - Tag the release with an appropriate [semantic version](https://semver.org/) (e.g., `0.1.0`, `1.0.0-beta`, etc.).
9
+ - This will trigger the GitHub Actions workflow responsible for building and packing the package.
10
+
11
+ 2. **GitHub Workflow**
12
+ - The workflow will:
13
+ - Build the package.
14
+ - Create a tarball (`.tgz`).
15
+ - Upload the resulting artifact to the assets section of the GitHub Release page.
16
+
17
+ 3. **Installation**
18
+ - The packed package can be installed in **Connect** or **Portal**.
19
+
20
+ 4. **Usage**
21
+ - Once installed, import the route using:
22
+
23
+ ```ts
24
+ import { CCTPW7ExecutorRoute } from "@wormhole-labs/cctp-w7-executor-route";
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Transfer Example
30
+
31
+ This project includes a script for testing a USDC token transfer using the CCTPv1 Executor route with a referrer fee. You can change the source and destination chains in the `examples/transfer.ts` file.
32
+
33
+ ### Prerequisites
34
+
35
+ First, install dependencies and build the project:
36
+
37
+ ```bash
38
+ npm ci && npm run build
39
+ ```
40
+
41
+ ### Configure Environment Variables
42
+
43
+ Set your private keys as environment variables:
44
+
45
+ ```bash
46
+ export EVM_PRIVATE_KEY=<your_evm_private_key>
47
+ export SVM_PRIVATE_KEY=<your_svm_private_key>
48
+ export SUI_PRIVATE_KEY=<your_sui_private_key>
49
+ ```
50
+
51
+ ### Run the Example
52
+
53
+ To fetch a quote for the transfer:
54
+
55
+ ```bash
56
+ npm run examples:test
57
+ ```
58
+
59
+ To actually send the transfer, set an additional environment variable:
60
+
61
+ ```bash
62
+ SEND_TRANSFER=true npm run examples:test
63
+ ```
64
+
65
+ > ⚠️ **Note:**
66
+ >
67
+ > - All relevant contract addresses and constants are defined in `src/consts`.
68
+ > - Referrer fee is set to **1 basis point** in `src/consts`.
@@ -0,0 +1,18 @@
1
+ import { Aptos } from "@aptos-labs/ts-sdk";
2
+ import { type AccountAddress, type ChainAddress, type ChainsConfig, type Contracts, type Network, type Platform } from "@wormhole-foundation/sdk-connect";
3
+ import { AptosChains, AptosUnsignedTransaction } from "@wormhole-foundation/sdk-aptos";
4
+ import { CCTPW7Executor } from "../types";
5
+ import { QuoteDetails } from "..";
6
+ export declare class AptosCCTPW7Executor<N extends Network, C extends AptosChains> implements CCTPW7Executor<N, C> {
7
+ readonly network: N;
8
+ readonly chain: C;
9
+ readonly provider: Aptos;
10
+ readonly contracts: Contracts;
11
+ readonly usdcId: string;
12
+ readonly shimContract: string;
13
+ constructor(network: N, chain: C, provider: Aptos, contracts: Contracts);
14
+ static fromRpc<N extends Network>(provider: Aptos, config: ChainsConfig<N, Platform>): Promise<AptosCCTPW7Executor<N, AptosChains>>;
15
+ transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<AptosUnsignedTransaction<N, C>>;
16
+ private createUnsignedTx;
17
+ }
18
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,WAAW,EAEX,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,qBAAa,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,CACvE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAM7B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,KAAK;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAP/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAGnB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,SAAS;WAkBlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAgBxC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAwCjD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AptosCCTPW7Executor = void 0;
4
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
5
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
6
+ const sdk_aptos_1 = require("@wormhole-foundation/sdk-aptos");
7
+ const consts_1 = require("../consts");
8
+ class AptosCCTPW7Executor {
9
+ network;
10
+ chain;
11
+ provider;
12
+ contracts;
13
+ usdcId;
14
+ shimContract;
15
+ constructor(network, chain, provider, contracts) {
16
+ this.network = network;
17
+ this.chain = chain;
18
+ this.provider = provider;
19
+ this.contracts = contracts;
20
+ if (network === "Devnet")
21
+ throw new Error("CCTPW7Executor not supported on Devnet");
22
+ const usdcId = sdk_connect_1.circle.usdcContract.get(this.network, this.chain);
23
+ if (!usdcId) {
24
+ throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);
25
+ }
26
+ this.usdcId = usdcId;
27
+ const shimContract = consts_1.shimContracts[network]?.[chain];
28
+ if (!shimContract)
29
+ throw new Error(`Shim contract for ${chain} not found`);
30
+ this.shimContract = shimContract;
31
+ }
32
+ static async fromRpc(provider, config) {
33
+ const [network, chain] = await sdk_aptos_1.AptosPlatform.chainFromRpc(provider);
34
+ const conf = config[chain];
35
+ if (!conf)
36
+ throw new Error(`No config found for ${chain}`);
37
+ if (conf.network !== network)
38
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
39
+ return new AptosCCTPW7Executor(network, chain, provider, conf.contracts);
40
+ }
41
+ async *transfer(sender, recipient, details) {
42
+ const senderAddress = new sdk_aptos_1.AptosAddress(sender).unwrap();
43
+ const mintRecipient = ts_sdk_1.AccountAddress.from(recipient.address.toUniversalAddress().toUint8Array());
44
+ const burnToken = ts_sdk_1.AccountAddress.from(this.usdcId);
45
+ const amount = details.remainingAmount + details.referrerFee;
46
+ const destinationDomain = sdk_connect_1.circle.circleChainId.get(this.network, recipient.chain);
47
+ const refundAddr = senderAddress;
48
+ const payee = senderAddress;
49
+ const functionArguments = [
50
+ amount,
51
+ destinationDomain,
52
+ mintRecipient.toString(),
53
+ burnToken.toString(),
54
+ details.estimatedCost,
55
+ (0, sdk_connect_1.toChainId)(recipient.chain),
56
+ refundAddr,
57
+ details.signedQuote,
58
+ details.relayInstructions,
59
+ details.referrerFeeDbps,
60
+ payee,
61
+ ];
62
+ const tx = {
63
+ function: `${this.shimContract}::cctp_v1_with_executor::deposit_for_burn_entry`,
64
+ functionArguments,
65
+ };
66
+ yield this.createUnsignedTx(tx, "AtposCCTPW7Executor.Transfer");
67
+ }
68
+ createUnsignedTx(txReq, description, parallelizable = false) {
69
+ return new sdk_aptos_1.AptosUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
70
+ }
71
+ }
72
+ exports.AptosCCTPW7Executor = AptosCCTPW7Executor;
73
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./executor";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aptos/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,22 @@
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
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
18
+ const sdk_aptos_1 = require("@wormhole-foundation/sdk-aptos");
19
+ const executor_1 = require("./executor");
20
+ __exportStar(require("./executor"), exports);
21
+ (0, sdk_definitions_1.registerProtocol)(sdk_aptos_1._platform, "CCTPW7Executor", executor_1.AptosCCTPW7Executor);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aptos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0EAAwE;AACxE,8DAA2D;AAC3D,yCAAiD;AAEjD,6CAA2B;AAE3B,IAAA,kCAAgB,EAAC,qBAAS,EAAE,gBAAgB,EAAE,8BAAmB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Chain, Network } from "@wormhole-foundation/sdk-connect";
2
+ export declare const apiBaseUrl: Partial<Record<Network, string>>;
3
+ export declare const shimContracts: Partial<Record<Network, Partial<Record<Chain, string>>>>;
4
+ export type SuiExecutorIds = {
5
+ executorId: string;
6
+ executorRequestsId: string;
7
+ };
8
+ export declare const suiExecutorIds: Partial<Record<Network, SuiExecutorIds>>;
9
+ export declare const solanaExecutorId: Partial<Record<Network, string>>;
10
+ export declare const SOLANA_MSG_VALUE_BASE_FEE = 5001n;
11
+ export declare const gasLimits: Partial<Record<Network, Partial<Record<Chain, bigint>>>>;
12
+ export declare const referrers: Partial<Record<Network, Partial<Record<Chain, string>>>>;
13
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAElE,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAGvD,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OAAO,CACjC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAoBhD,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAChF,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAWnE,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAG7D,CAAC;AAGF,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAKhD,eAAO,MAAM,SAAS,EAAE,OAAO,CAC7B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBhD,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAAO,CAC7B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBhD,CAAC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.referrers = exports.gasLimits = exports.SOLANA_MSG_VALUE_BASE_FEE = exports.solanaExecutorId = exports.suiExecutorIds = exports.shimContracts = exports.apiBaseUrl = void 0;
4
+ exports.apiBaseUrl = {
5
+ Testnet: "https://executor-testnet.labsapis.com",
6
+ Mainnet: "https://executor.labsapis.com",
7
+ };
8
+ // Shim Contract Addresses (e.g. CCTPv1WithExecutor.sol)
9
+ exports.shimContracts = {
10
+ Testnet: {
11
+ Aptos: "0x14a12d1fd6ef371b70c2113155534ec152ec7f779e281b54866c796c9a4a58d3",
12
+ Avalanche: "0x2cfEC91B50f657Cc86Ec693542527ac3e03bF742",
13
+ BaseSepolia: "0x4983C6bD3bB7DA9EECe71cfa7AE4C67CAbf362F0",
14
+ Sepolia: "0x0F78904c750801391EbBf308181e9d6fc892B0f3",
15
+ Solana: "CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs",
16
+ },
17
+ Mainnet: {
18
+ Aptos: "0x9f5ad7d5c2d067ca4abb6d8d6aba44c15596b71a1def8eb4596089b527bb2eb1",
19
+ Arbitrum: "0x55Dd4466BFec29527C54A72fd306efb54e5F7027",
20
+ Avalanche: "0xd331819478b74d8a7B8EA631118B4a4e50F6EbD1",
21
+ Base: "0x08FEB1838C3d7F8509DA1EBb9a11a94c1f006cb2",
22
+ Ethereum: "0xeEFb36c4458dA7798742cf038C5c27E07aB9c51E",
23
+ Optimism: "0xBC6f9d1CBa49DB365728478cefa02F6743617637",
24
+ Polygon: "0x007995f2AEcfBC745f20a7AE8D3a02c0EbF46264",
25
+ Unichain: "0xA7aBDb8f2108901c586543BD5e10E4fA263F4A47",
26
+ Solana: "CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs",
27
+ }
28
+ };
29
+ exports.suiExecutorIds = {
30
+ Testnet: {
31
+ executorId: "0x4000cfe2955d8355b3d3cf186f854fea9f787a457257056926fde1ec977670eb",
32
+ executorRequestsId: "0x2d9ccf3cce3f7dce408e5455e90b80a8161ad9673d1366c2a5def60ad93657a8",
33
+ },
34
+ Mainnet: {
35
+ executorId: "0xdb0fe8bb1e2b5be628adbea0636063325073e1070ee11e4281457dfd7f158235",
36
+ executorRequestsId: "0xc030df7a3eed1494fa4b64aa8ab63a79041cf1114f4ff2b7ab5aca1c684a21a7 ",
37
+ }
38
+ };
39
+ // Solana Executor Program IDs
40
+ exports.solanaExecutorId = {
41
+ Testnet: "execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV",
42
+ Mainnet: "execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV"
43
+ };
44
+ // cost of 1 signature + rounding error on priority fee
45
+ exports.SOLANA_MSG_VALUE_BASE_FEE = 5001n;
46
+ // Gas limits must be high enough to cover the worst-case scenario for each chain
47
+ // to avoid relay failures. However, they should not be too high to reduce the
48
+ // `estimatedCost` returned by the quote endpoint.
49
+ exports.gasLimits = {
50
+ Testnet: {
51
+ Aptos: 5000n,
52
+ Avalanche: 200000n,
53
+ BaseSepolia: 200000n,
54
+ Sepolia: 200000n,
55
+ Solana: 250000n,
56
+ Sui: 8000000n,
57
+ },
58
+ Mainnet: {
59
+ Aptos: 5000n,
60
+ Arbitrum: 200000n,
61
+ Avalanche: 200000n,
62
+ Base: 200000n,
63
+ Ethereum: 200000n,
64
+ Optimism: 200000n,
65
+ Polygon: 200000n,
66
+ Unichain: 200000n,
67
+ Solana: 250000n,
68
+ Sui: 8000000n,
69
+ },
70
+ };
71
+ // Referrer addresses (to whom the referrer fee should be paid)
72
+ exports.referrers = {
73
+ Testnet: {
74
+ Aptos: "0x23b54f6e29bba7f4123d088f4cfcd83f5e23a049de15895b119ce5a6cb5faa91",
75
+ Avalanche: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
76
+ BaseSepolia: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
77
+ Sepolia: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
78
+ Solana: "9r6q2iEg4MBevjC8reaLmQUDxueF3vabUoqDkZ2LoAYe",
79
+ Sui: "0x30bd9b3d5ad00f38fd0c314139ba47ccb3c78353d99880d81125ca0c370b415e",
80
+ },
81
+ Mainnet: {
82
+ Aptos: "0x1f177e724a874ab6267172a3049291c480fc665883e6a3ac95d0909492c09dc8",
83
+ Solana: "JB3rmygUVuVZzgkxvMdV8mSKLJeQAkSXEK284Dqsziah",
84
+ Sui: "0xbfa1240e48c622d97881473953be730091161b7931d89bd6afe667841cf69ef4",
85
+ Arbitrum: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
86
+ Avalanche: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
87
+ Base: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
88
+ Ethereum: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
89
+ Optimism: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
90
+ Polygon: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
91
+ Unichain: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
92
+ }
93
+ };
94
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAqC;IAC1D,OAAO,EAAE,uCAAuC;IAChD,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,wDAAwD;AAC3C,QAAA,aAAa,GAEtB;IACF,OAAO,EAAE;QACP,KAAK,EAAE,oEAAoE;QAC3E,SAAS,EAAE,4CAA4C;QACvD,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,8CAA8C;KACvD;IACD,OAAO,EAAC;QACN,KAAK,EAAE,oEAAoE;QAC3E,QAAQ,EAAE,4CAA4C;QACtD,SAAS,EAAE,4CAA4C;QACvD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,4CAA4C;QACtD,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAC,4CAA4C;QACpD,QAAQ,EAAE,4CAA4C;QACtD,MAAM,EAAE,8CAA8C;KACvD;CACF,CAAC;AAIW,QAAA,cAAc,GAA6C;IACtE,OAAO,EAAE;QACP,UAAU,EACR,oEAAoE;QACtE,kBAAkB,EAChB,oEAAoE;KACvE;IACD,OAAO,EAAE;QACP,UAAU,EAAE,oEAAoE;QAChF,kBAAkB,EAAE,qEAAqE;KAC1F;CACF,CAAC;AAEF,8BAA8B;AACjB,QAAA,gBAAgB,GAAqC;IAChE,OAAO,EAAE,6CAA6C;IACtD,OAAO,EAAE,6CAA6C;CACvD,CAAC;AAEF,uDAAuD;AAC1C,QAAA,yBAAyB,GAAG,KAAM,CAAC;AAEhD,iFAAiF;AACjF,8EAA8E;AAC9E,kDAAkD;AACrC,QAAA,SAAS,GAElB;IACF,OAAO,EAAE;QACP,KAAK,EAAE,KAAM;QACb,SAAS,EAAE,OAAQ;QACnB,WAAW,EAAE,OAAQ;QACrB,OAAO,EAAE,OAAQ;QACjB,MAAM,EAAE,OAAQ;QAChB,GAAG,EAAE,QAAU;KAChB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,KAAM;QACb,QAAQ,EAAE,OAAQ;QAClB,SAAS,EAAE,OAAQ;QACnB,IAAI,EAAE,OAAQ;QACd,QAAQ,EAAE,OAAQ;QAClB,QAAQ,EAAE,OAAQ;QAClB,OAAO,EAAE,OAAQ;QACjB,QAAQ,EAAE,OAAQ;QAClB,MAAM,EAAE,OAAQ;QAChB,GAAG,EAAE,QAAU;KAChB;CACF,CAAC;AAEF,+DAA+D;AAClD,QAAA,SAAS,GAElB;IACF,OAAO,EAAE;QACP,KAAK,EAAE,oEAAoE;QAC3E,SAAS,EAAE,4CAA4C;QACvD,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,8CAA8C;QACtD,GAAG,EAAE,oEAAoE;KAC1E;IACD,OAAO,EAAC;QACN,KAAK,EAAE,oEAAoE;QAC3E,MAAM,EAAC,8CAA8C;QACrD,GAAG,EAAE,oEAAoE;QACzE,QAAQ,EAAE,4CAA4C;QACtD,SAAS,EAAE,4CAA4C;QACvD,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,4CAA4C;QACtD,QAAQ,EAAE,4CAA4C;QACtD,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,4CAA4C;KACvD;CACF,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AccountAddress, ChainAddress, ChainsConfig, Contracts, Network, Platform } from "@wormhole-foundation/sdk-connect";
2
+ import type { EvmChains } from "@wormhole-foundation/sdk-evm";
3
+ import { EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm";
4
+ import type { Provider } from "ethers";
5
+ import { CCTPW7Executor } from "../types";
6
+ import { QuoteDetails } from "..";
7
+ export declare class EvmCCTPW7Executor<N extends Network, C extends EvmChains> implements CCTPW7Executor<N, C> {
8
+ readonly network: N;
9
+ readonly chain: C;
10
+ readonly provider: Provider;
11
+ readonly contracts: Contracts;
12
+ readonly chainId: bigint;
13
+ readonly shimContract: string;
14
+ constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
15
+ static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, Platform>): Promise<EvmCCTPW7Executor<N, EvmChains>>;
16
+ transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<EvmUnsignedTransaction<N, C>>;
17
+ private createUnsignedTx;
18
+ }
19
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/evm/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACT,MAAM,kCAAkC,CAAC;AAO1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACnE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAM7B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAP/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAGnB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;WAelB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAQpC,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;IA+D/C,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmCCTPW7Executor = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const sdk_evm_1 = require("@wormhole-foundation/sdk-evm");
6
+ const ethers_1 = require("ethers");
7
+ const consts_1 = require("../consts");
8
+ class EvmCCTPW7Executor {
9
+ network;
10
+ chain;
11
+ provider;
12
+ contracts;
13
+ chainId;
14
+ shimContract;
15
+ constructor(network, chain, provider, contracts) {
16
+ this.network = network;
17
+ this.chain = chain;
18
+ this.provider = provider;
19
+ this.contracts = contracts;
20
+ if (network === "Devnet")
21
+ throw new Error("CCTPW7Executor not supported on Devnet");
22
+ this.chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
23
+ const shimContract = consts_1.shimContracts[network]?.[chain];
24
+ if (!shimContract)
25
+ throw new Error(`Shim contract for ${chain} not found`);
26
+ this.shimContract = shimContract;
27
+ }
28
+ static async fromRpc(provider, config) {
29
+ const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
30
+ const conf = config[chain];
31
+ if (conf.network !== network)
32
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
33
+ return new EvmCCTPW7Executor(network, chain, provider, conf.contracts);
34
+ }
35
+ async *transfer(sender, recipient, details) {
36
+ const senderAddress = new sdk_evm_1.EvmAddress(sender).toString();
37
+ const recipientAddress = recipient.address
38
+ .toUniversalAddress()
39
+ .toUint8Array();
40
+ const amount = details.remainingAmount + details.referrerFee;
41
+ const tokenAddr = sdk_connect_1.circle.usdcContract.get(this.network, this.chain);
42
+ const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, tokenAddr);
43
+ const allowance = await tokenContract.allowance(senderAddress, this.shimContract);
44
+ if (allowance < amount) {
45
+ const txReq = await tokenContract.approve.populateTransaction(this.shimContract, amount);
46
+ yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddress), "ERC20.approve of EvmCCTPW7Executor", false);
47
+ }
48
+ // TODO: type safety. typechain brings in so much boilerplate code and is soft deprecated. use viem?
49
+ const shimAbi = [
50
+ "function depositForBurn(uint256 amount, uint16 destinationChain, uint32 destinationDomain, bytes32 mintRecipient, address burnToken, (address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 nonce)",
51
+ ];
52
+ const shim = new ethers_1.Contract(this.shimContract, shimAbi, this.provider);
53
+ const txReq = await shim.getFunction("depositForBurn").populateTransaction(amount, (0, sdk_connect_1.toChainId)(recipient.chain), sdk_connect_1.circle.circleChainId.get(this.network, recipient.chain), recipientAddress, tokenAddr, {
54
+ refundAddress: senderAddress,
55
+ signedQuote: details.signedQuote,
56
+ instructions: details.relayInstructions,
57
+ }, {
58
+ dbps: details.referrerFeeDbps,
59
+ payee: details.referrer.address.toString(),
60
+ });
61
+ txReq.value = details.estimatedCost;
62
+ yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddress), "EvmCCTPW7Executor.depositForBurn");
63
+ }
64
+ createUnsignedTx(txReq, description, parallelizable = false) {
65
+ return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
66
+ }
67
+ }
68
+ exports.EvmCCTPW7Executor = EvmCCTPW7Executor;
69
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/evm/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./executor";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,22 @@
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
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
18
+ const sdk_evm_1 = require("@wormhole-foundation/sdk-evm");
19
+ const executor_1 = require("./executor");
20
+ __exportStar(require("./executor"), exports);
21
+ (0, sdk_definitions_1.registerProtocol)(sdk_evm_1._platform, "CCTPW7Executor", executor_1.EvmCCTPW7Executor);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0EAAwE;AACxE,0DAAyD;AACzD,yCAA+C;AAE/C,6CAA2B;AAE3B,IAAA,kCAAgB,EAAC,mBAAS,EAAE,gBAAgB,EAAE,4BAAiB,CAAC,CAAC"}
@@ -0,0 +1,96 @@
1
+ import type { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { amount } from "@wormhole-foundation/sdk-base";
3
+ import { EmptyPlatformMap, type ChainAddress, type ChainContext, type Signer, type TokenId } from "@wormhole-foundation/sdk-definitions";
4
+ import { routes, Wormhole } from "@wormhole-foundation/sdk-connect";
5
+ import { CCTPW7Executor } from "./types";
6
+ import "./aptos/index.js";
7
+ import "./evm/index.js";
8
+ import "./sui/index.js";
9
+ import "./svm/index.js";
10
+ export declare namespace CCTPW7ExecutorRoute {
11
+ type Options = {
12
+ nativeGas?: number;
13
+ };
14
+ type NormalizedParams = {
15
+ amount: amount.Amount;
16
+ };
17
+ interface ValidatedParams extends routes.ValidatedTransferParams<Options> {
18
+ normalizedParams: NormalizedParams;
19
+ }
20
+ }
21
+ type Op = CCTPW7ExecutorRoute.Options;
22
+ type Vp = CCTPW7ExecutorRoute.ValidatedParams;
23
+ type Tp = routes.TransferParams<Op>;
24
+ type Vr = routes.ValidationResult<Op>;
25
+ export type QuoteDetails = {
26
+ signedQuote: Uint8Array;
27
+ relayInstructions: Uint8Array;
28
+ estimatedCost: bigint;
29
+ referrer: ChainAddress;
30
+ referrerFee: bigint;
31
+ remainingAmount: bigint;
32
+ referrerFeeDbps: bigint;
33
+ };
34
+ type Q = routes.Quote<Op, Vp, QuoteDetails>;
35
+ type QR = routes.QuoteResult<Op, Vp>;
36
+ type AT = {
37
+ id: string;
38
+ attestation: {};
39
+ };
40
+ type R = routes.Receipt<AT>;
41
+ export declare namespace CCTPW7ExecutorRoute {
42
+ type Config = {
43
+ referrerFeeDbps: bigint;
44
+ };
45
+ }
46
+ export declare function cctpW7ExecutorRoute(config: CCTPW7ExecutorRoute.Config): {
47
+ new <N extends Network>(wh: Wormhole<N>): {
48
+ readonly staticConfig: any;
49
+ getDefaultOptions(): Op;
50
+ validate(request: routes.RouteTransferRequest<N>, params: Tp): Promise<Vr>;
51
+ quote(request: routes.RouteTransferRequest<N>, params: Vp): Promise<QR>;
52
+ initiate(request: routes.RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
53
+ track(receipt: R, timeout?: number): AsyncGenerator<import("@wormhole-foundation/sdk-connect").SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").FailedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").SourceFinalizedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").AttestedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").CompletedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia">, R, unknown>;
54
+ wh: Wormhole<N>;
55
+ transferUrl(txid: string): string;
56
+ };
57
+ config: CCTPW7ExecutorRoute.Config;
58
+ NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
59
+ meta: {
60
+ name: string;
61
+ provider: string;
62
+ };
63
+ supportedNetworks(): Network[];
64
+ supportedChains(network: Network): Chain[];
65
+ supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
66
+ IS_AUTOMATIC: boolean;
67
+ };
68
+ export declare class CCTPW7ExecutorRoute<N extends Network> extends routes.AutomaticRoute<N, Op, Vp, R> implements routes.StaticRouteMethods<typeof CCTPW7ExecutorRoute> {
69
+ static NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
70
+ readonly staticConfig: any;
71
+ static config: CCTPW7ExecutorRoute.Config;
72
+ static meta: {
73
+ name: string;
74
+ provider: string;
75
+ };
76
+ static supportedNetworks(): Network[];
77
+ static supportedChains(network: Network): Chain[];
78
+ static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
79
+ getDefaultOptions(): Op;
80
+ validate(request: routes.RouteTransferRequest<N>, params: Tp): Promise<Vr>;
81
+ quote(request: routes.RouteTransferRequest<N>, params: Vp): Promise<QR>;
82
+ initiate(request: routes.RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
83
+ track(receipt: R, timeout?: number): AsyncGenerator<import("@wormhole-foundation/sdk-connect").SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").FailedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").SourceFinalizedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").AttestedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia"> | import("@wormhole-foundation/sdk-connect").CompletedTransferReceipt<AT, "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Scroll" | "Mantle" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Snaxchain" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Neutron" | "Celestia" | "Stargaze" | "Seda" | "Dymension" | "Provenance" | "Noble" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia">, R, unknown>;
84
+ }
85
+ declare module "@wormhole-foundation/sdk-definitions" {
86
+ namespace WormholeRegistry {
87
+ interface ProtocolToInterfaceMapping<N, C> {
88
+ CCTPW7Executor: CCTPW7Executor<N, C>;
89
+ }
90
+ interface ProtocolToPlatformMapping {
91
+ CCTPW7Executor: EmptyPlatformMap<"CCTPW7Executor">;
92
+ }
93
+ }
94
+ }
95
+ export {};
96
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}