@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.
- package/README.md +68 -0
- package/dist/cjs/aptos/executor.d.ts +18 -0
- package/dist/cjs/aptos/executor.d.ts.map +1 -0
- package/dist/cjs/aptos/executor.js +73 -0
- package/dist/cjs/aptos/executor.js.map +1 -0
- package/dist/cjs/aptos/index.d.ts +2 -0
- package/dist/cjs/aptos/index.d.ts.map +1 -0
- package/dist/cjs/aptos/index.js +22 -0
- package/dist/cjs/aptos/index.js.map +1 -0
- package/dist/cjs/consts.d.ts +13 -0
- package/dist/cjs/consts.d.ts.map +1 -0
- package/dist/cjs/consts.js +94 -0
- package/dist/cjs/consts.js.map +1 -0
- package/dist/cjs/evm/executor.d.ts +19 -0
- package/dist/cjs/evm/executor.d.ts.map +1 -0
- package/dist/cjs/evm/executor.js +69 -0
- package/dist/cjs/evm/executor.js.map +1 -0
- package/dist/cjs/evm/index.d.ts +2 -0
- package/dist/cjs/evm/index.d.ts.map +1 -0
- package/dist/cjs/evm/index.js +22 -0
- package/dist/cjs/evm/index.js.map +1 -0
- package/dist/cjs/index.d.ts +96 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +321 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/layouts/conversions.d.ts +5 -0
- package/dist/cjs/layouts/conversions.d.ts.map +1 -0
- package/dist/cjs/layouts/conversions.js +8 -0
- package/dist/cjs/layouts/conversions.js.map +1 -0
- package/dist/cjs/layouts/index.d.ts +4 -0
- package/dist/cjs/layouts/index.d.ts.map +1 -0
- package/dist/cjs/layouts/index.js +20 -0
- package/dist/cjs/layouts/index.js.map +1 -0
- package/dist/cjs/layouts/relayInstruction.d.ts +86 -0
- package/dist/cjs/layouts/relayInstruction.d.ts.map +1 -0
- package/dist/cjs/layouts/relayInstruction.js +32 -0
- package/dist/cjs/layouts/relayInstruction.js.map +1 -0
- package/dist/cjs/layouts/requestForExecution.d.ts +18 -0
- package/dist/cjs/layouts/requestForExecution.d.ts.map +1 -0
- package/dist/cjs/layouts/requestForExecution.js +15 -0
- package/dist/cjs/layouts/requestForExecution.js.map +1 -0
- package/dist/cjs/layouts/signedQuote.d.ts +102 -0
- package/dist/cjs/layouts/signedQuote.d.ts.map +1 -0
- package/dist/cjs/layouts/signedQuote.js +46 -0
- package/dist/cjs/layouts/signedQuote.js.map +1 -0
- package/dist/cjs/sui/executor.d.ts +24 -0
- package/dist/cjs/sui/executor.d.ts.map +1 -0
- package/dist/cjs/sui/executor.js +129 -0
- package/dist/cjs/sui/executor.js.map +1 -0
- package/dist/cjs/sui/index.d.ts +2 -0
- package/dist/cjs/sui/index.d.ts.map +1 -0
- package/dist/cjs/sui/index.js +22 -0
- package/dist/cjs/sui/index.js.map +1 -0
- package/dist/cjs/svm/executor.d.ts +21 -0
- package/dist/cjs/svm/executor.d.ts.map +1 -0
- package/dist/cjs/svm/executor.js +89 -0
- package/dist/cjs/svm/executor.js.map +1 -0
- package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts +72 -0
- package/dist/cjs/svm/idl/example_cctp_with_executor.d.ts.map +1 -0
- package/dist/cjs/svm/idl/example_cctp_with_executor.js +74 -0
- package/dist/cjs/svm/idl/example_cctp_with_executor.js.map +1 -0
- package/dist/cjs/svm/index.d.ts +2 -0
- package/dist/cjs/svm/index.d.ts.map +1 -0
- package/dist/cjs/svm/index.js +22 -0
- package/dist/cjs/svm/index.js.map +1 -0
- package/dist/cjs/types.d.ts +6 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +64 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +74 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/aptos/executor.d.ts +18 -0
- package/dist/esm/aptos/executor.d.ts.map +1 -0
- package/dist/esm/aptos/executor.js +69 -0
- package/dist/esm/aptos/executor.js.map +1 -0
- package/dist/esm/aptos/index.d.ts +2 -0
- package/dist/esm/aptos/index.d.ts.map +1 -0
- package/dist/esm/aptos/index.js +6 -0
- package/dist/esm/aptos/index.js.map +1 -0
- package/dist/esm/consts.d.ts +13 -0
- package/dist/esm/consts.d.ts.map +1 -0
- package/dist/esm/consts.js +91 -0
- package/dist/esm/consts.js.map +1 -0
- package/dist/esm/evm/executor.d.ts +19 -0
- package/dist/esm/evm/executor.d.ts.map +1 -0
- package/dist/esm/evm/executor.js +65 -0
- package/dist/esm/evm/executor.js.map +1 -0
- package/dist/esm/evm/index.d.ts +2 -0
- package/dist/esm/evm/index.d.ts.map +1 -0
- package/dist/esm/evm/index.js +6 -0
- package/dist/esm/evm/index.js.map +1 -0
- package/dist/esm/index.d.ts +96 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +316 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/layouts/conversions.d.ts +5 -0
- package/dist/esm/layouts/conversions.d.ts.map +1 -0
- package/dist/esm/layouts/conversions.js +5 -0
- package/dist/esm/layouts/conversions.js.map +1 -0
- package/dist/esm/layouts/index.d.ts +4 -0
- package/dist/esm/layouts/index.d.ts.map +1 -0
- package/dist/esm/layouts/index.js +4 -0
- package/dist/esm/layouts/index.js.map +1 -0
- package/dist/esm/layouts/relayInstruction.d.ts +86 -0
- package/dist/esm/layouts/relayInstruction.d.ts.map +1 -0
- package/dist/esm/layouts/relayInstruction.js +29 -0
- package/dist/esm/layouts/relayInstruction.js.map +1 -0
- package/dist/esm/layouts/requestForExecution.d.ts +18 -0
- package/dist/esm/layouts/requestForExecution.d.ts.map +1 -0
- package/dist/esm/layouts/requestForExecution.js +12 -0
- package/dist/esm/layouts/requestForExecution.js.map +1 -0
- package/dist/esm/layouts/signedQuote.d.ts +102 -0
- package/dist/esm/layouts/signedQuote.d.ts.map +1 -0
- package/dist/esm/layouts/signedQuote.js +43 -0
- package/dist/esm/layouts/signedQuote.js.map +1 -0
- package/dist/esm/sui/executor.d.ts +24 -0
- package/dist/esm/sui/executor.d.ts.map +1 -0
- package/dist/esm/sui/executor.js +125 -0
- package/dist/esm/sui/executor.js.map +1 -0
- package/dist/esm/sui/index.d.ts +2 -0
- package/dist/esm/sui/index.d.ts.map +1 -0
- package/dist/esm/sui/index.js +6 -0
- package/dist/esm/sui/index.js.map +1 -0
- package/dist/esm/svm/executor.d.ts +21 -0
- package/dist/esm/svm/executor.d.ts.map +1 -0
- package/dist/esm/svm/executor.js +85 -0
- package/dist/esm/svm/executor.js.map +1 -0
- package/dist/esm/svm/idl/example_cctp_with_executor.d.ts +72 -0
- package/dist/esm/svm/idl/example_cctp_with_executor.d.ts.map +1 -0
- package/dist/esm/svm/idl/example_cctp_with_executor.js +71 -0
- package/dist/esm/svm/idl/example_cctp_with_executor.js.map +1 -0
- package/dist/esm/svm/index.d.ts +2 -0
- package/dist/esm/svm/index.d.ts.map +1 -0
- package/dist/esm/svm/index.js +6 -0
- package/dist/esm/svm/index.js.map +1 -0
- package/dist/esm/types.d.ts +6 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +64 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +64 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svm/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_solana_1 = require("@wormhole-foundation/sdk-solana");
|
|
19
|
+
const executor_1 = require("./executor");
|
|
20
|
+
__exportStar(require("./executor"), exports);
|
|
21
|
+
(0, sdk_definitions_1.registerProtocol)(sdk_solana_1._platform, "CCTPW7Executor", executor_1.SvmCCTPW7Executor);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/svm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0EAAwE;AACxE,gEAA4D;AAC5D,yCAA+C;AAE/C,6CAA2B;AAE3B,IAAA,kCAAgB,EAAC,sBAAS,EAAE,gBAAgB,EAAE,4BAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Chain, AccountAddress, ChainAddress, UnsignedTransaction, Network } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { QuoteDetails } from ".";
|
|
3
|
+
export interface CCTPW7Executor<N extends Network = Network, C extends Chain = Chain> {
|
|
4
|
+
transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<UnsignedTransaction<N, C>>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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,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,YAAY,GACpB,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
import { RequestPrefix, SignedQuote } from "./layouts";
|
|
3
|
+
export declare enum RelayStatus {
|
|
4
|
+
Pending = "pending",
|
|
5
|
+
Failed = "failed",
|
|
6
|
+
Unsupported = "unsupported",
|
|
7
|
+
Submitted = "submitted",
|
|
8
|
+
Underpaid = "underpaid",
|
|
9
|
+
Aborted = "aborted"
|
|
10
|
+
}
|
|
11
|
+
export type RequestForExecution = {
|
|
12
|
+
quoterAddress: `0x${string}`;
|
|
13
|
+
amtPaid: string;
|
|
14
|
+
dstChain: number;
|
|
15
|
+
dstAddr: `0x${string}`;
|
|
16
|
+
refundAddr: `0x${string}`;
|
|
17
|
+
signedQuoteBytes: `0x${string}`;
|
|
18
|
+
requestBytes: `0x${string}`;
|
|
19
|
+
relayInstructionsBytes: `0x${string}`;
|
|
20
|
+
timestamp: Date;
|
|
21
|
+
};
|
|
22
|
+
export type TxInfo = {
|
|
23
|
+
txHash: string;
|
|
24
|
+
chainId: number;
|
|
25
|
+
blockNumber: string;
|
|
26
|
+
blockTime: Date | null;
|
|
27
|
+
cost: string;
|
|
28
|
+
};
|
|
29
|
+
export type RelayData = {
|
|
30
|
+
id: `0x${string}`;
|
|
31
|
+
txHash: string;
|
|
32
|
+
chainId: number;
|
|
33
|
+
status: string;
|
|
34
|
+
estimatedCost: string;
|
|
35
|
+
requestForExecution: RequestForExecution;
|
|
36
|
+
instruction?: Request;
|
|
37
|
+
txs?: TxInfo[];
|
|
38
|
+
indexed_at: Date;
|
|
39
|
+
};
|
|
40
|
+
export type Capabilities = {
|
|
41
|
+
requestPrefixes: Array<keyof typeof RequestPrefix>;
|
|
42
|
+
gasDropOffLimit: string;
|
|
43
|
+
maxGasLimit: string;
|
|
44
|
+
maxMsgValue: string;
|
|
45
|
+
};
|
|
46
|
+
export interface CapabilitiesResponse {
|
|
47
|
+
[chainId: string]: Capabilities;
|
|
48
|
+
}
|
|
49
|
+
export declare function fetchCapabilities(network: Network): Promise<CapabilitiesResponse>;
|
|
50
|
+
export interface QuoteResponse {
|
|
51
|
+
signedQuote: `0x${string}`;
|
|
52
|
+
estimatedCost?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare function fetchSignedQuote(network: Network, srcChain: Chain, dstChain: Chain, relayInstructions: string): Promise<QuoteResponse>;
|
|
55
|
+
export interface StatusResponse extends RelayData {
|
|
56
|
+
signedQuote: SignedQuote;
|
|
57
|
+
estimatedCost: string;
|
|
58
|
+
}
|
|
59
|
+
export declare function fetchStatus(network: Network, txHash: string, chain: Chain): Promise<StatusResponse[]>;
|
|
60
|
+
export declare function calculateReferrerFee(amount: bigint, dBps: bigint): {
|
|
61
|
+
referrerFee: bigint;
|
|
62
|
+
remainingAmount: bigint;
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RelayStatus = void 0;
|
|
7
|
+
exports.fetchCapabilities = fetchCapabilities;
|
|
8
|
+
exports.fetchSignedQuote = fetchSignedQuote;
|
|
9
|
+
exports.fetchStatus = fetchStatus;
|
|
10
|
+
exports.calculateReferrerFee = calculateReferrerFee;
|
|
11
|
+
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
12
|
+
const axios_1 = __importDefault(require("axios"));
|
|
13
|
+
const consts_1 = require("./consts");
|
|
14
|
+
var RelayStatus;
|
|
15
|
+
(function (RelayStatus) {
|
|
16
|
+
RelayStatus["Pending"] = "pending";
|
|
17
|
+
RelayStatus["Failed"] = "failed";
|
|
18
|
+
RelayStatus["Unsupported"] = "unsupported";
|
|
19
|
+
RelayStatus["Submitted"] = "submitted";
|
|
20
|
+
RelayStatus["Underpaid"] = "underpaid";
|
|
21
|
+
RelayStatus["Aborted"] = "aborted";
|
|
22
|
+
})(RelayStatus || (exports.RelayStatus = RelayStatus = {}));
|
|
23
|
+
async function fetchCapabilities(network) {
|
|
24
|
+
const url = `${consts_1.apiBaseUrl[network]}/v0/capabilities`;
|
|
25
|
+
try {
|
|
26
|
+
const response = await axios_1.default.get(url);
|
|
27
|
+
return response.data;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`Failed to fetch capabilities for network: ${network}.`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function fetchSignedQuote(network, srcChain, dstChain, relayInstructions // TODO: `0x:${string}`
|
|
34
|
+
) {
|
|
35
|
+
const url = `${consts_1.apiBaseUrl[network]}/v0/quote`;
|
|
36
|
+
try {
|
|
37
|
+
const response = await axios_1.default.post(url, {
|
|
38
|
+
srcChain: (0, sdk_base_1.toChainId)(srcChain),
|
|
39
|
+
dstChain: (0, sdk_base_1.toChainId)(dstChain),
|
|
40
|
+
relayInstructions,
|
|
41
|
+
});
|
|
42
|
+
return response.data;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
throw new Error(`Failed to fetch signed quote.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Fetch Status
|
|
49
|
+
async function fetchStatus(network, txHash, chain) {
|
|
50
|
+
const url = `${consts_1.apiBaseUrl[network]}/v0/status/tx`;
|
|
51
|
+
try {
|
|
52
|
+
const response = await axios_1.default.post(url, {
|
|
53
|
+
txHash,
|
|
54
|
+
chainId: (0, sdk_base_1.toChainId)(chain),
|
|
55
|
+
});
|
|
56
|
+
return response.data;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
throw new Error(`Failed to fetch status for txHash: ${txHash}.`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const MAX_U16 = 65535n;
|
|
63
|
+
function calculateReferrerFee(amount, dBps) {
|
|
64
|
+
if (dBps > MAX_U16) {
|
|
65
|
+
throw new Error("dBps exceeds max u16");
|
|
66
|
+
}
|
|
67
|
+
if (dBps > 0) {
|
|
68
|
+
const referrerFee = (amount * dBps) / 100000n;
|
|
69
|
+
const remainingAmount = amount - referrerFee;
|
|
70
|
+
return { referrerFee, remainingAmount };
|
|
71
|
+
}
|
|
72
|
+
return { referrerFee: 0n, remainingAmount: amount };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;;AAyDA,8CAWC;AAOD,4CAkBC;AAQD,kCAgBC;AAGD,oDAaC;AArID,4DAA0E;AAE1E,kDAA0B;AAC1B,qCAAsC;AAEtC,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;IAC3B,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;AACrB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AA6CM,KAAK,UAAU,iBAAiB,CACrC,OAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,mBAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,GAAG,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAOM,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,QAAe,EACf,QAAe,EACf,iBAAyB,CAAC,uBAAuB;;IAEjD,MAAM,GAAG,GAAG,GAAG,mBAAU,CAAC,OAAO,CAAC,WAAW,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAgB,GAAG,EAAE;YACpD,QAAQ,EAAE,IAAA,oBAAS,EAAC,QAAQ,CAAC;YAC7B,QAAQ,EAAE,IAAA,oBAAS,EAAC,QAAQ,CAAC;YAC7B,iBAAiB;SAClB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAOD,eAAe;AACR,KAAK,UAAU,WAAW,CAC/B,OAAgB,EAChB,MAAc,EACd,KAAY;IAEZ,MAAM,GAAG,GAAG,GAAG,mBAAU,CAAC,OAAO,CAAC,eAAe,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAmB,GAAG,EAAE;YACvD,MAAM;YACN,OAAO,EAAE,IAAA,oBAAS,EAAC,KAAK,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,MAAO,CAAC;AACxB,SAAgB,oBAAoB,CAClC,MAAc,EACd,IAAY;IAEZ,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,OAAQ,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,CAAC;QAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -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,69 @@
|
|
|
1
|
+
import { AccountAddress as AptosAccountAddress, } from "@aptos-labs/ts-sdk";
|
|
2
|
+
import { circle, toChainId, } from "@wormhole-foundation/sdk-connect";
|
|
3
|
+
import { AptosAddress, AptosPlatform, AptosUnsignedTransaction, } from "@wormhole-foundation/sdk-aptos";
|
|
4
|
+
import { shimContracts } from "../consts";
|
|
5
|
+
export class AptosCCTPW7Executor {
|
|
6
|
+
network;
|
|
7
|
+
chain;
|
|
8
|
+
provider;
|
|
9
|
+
contracts;
|
|
10
|
+
usdcId;
|
|
11
|
+
shimContract;
|
|
12
|
+
constructor(network, chain, provider, contracts) {
|
|
13
|
+
this.network = network;
|
|
14
|
+
this.chain = chain;
|
|
15
|
+
this.provider = provider;
|
|
16
|
+
this.contracts = contracts;
|
|
17
|
+
if (network === "Devnet")
|
|
18
|
+
throw new Error("CCTPW7Executor not supported on Devnet");
|
|
19
|
+
const usdcId = circle.usdcContract.get(this.network, this.chain);
|
|
20
|
+
if (!usdcId) {
|
|
21
|
+
throw new Error(`No USDC contract configured for network=${this.network} chain=${this.chain}`);
|
|
22
|
+
}
|
|
23
|
+
this.usdcId = usdcId;
|
|
24
|
+
const shimContract = shimContracts[network]?.[chain];
|
|
25
|
+
if (!shimContract)
|
|
26
|
+
throw new Error(`Shim contract for ${chain} not found`);
|
|
27
|
+
this.shimContract = shimContract;
|
|
28
|
+
}
|
|
29
|
+
static async fromRpc(provider, config) {
|
|
30
|
+
const [network, chain] = await AptosPlatform.chainFromRpc(provider);
|
|
31
|
+
const conf = config[chain];
|
|
32
|
+
if (!conf)
|
|
33
|
+
throw new Error(`No config found for ${chain}`);
|
|
34
|
+
if (conf.network !== network)
|
|
35
|
+
throw new Error(`Network mismatch: ${conf.network} != ${network}`);
|
|
36
|
+
return new AptosCCTPW7Executor(network, chain, provider, conf.contracts);
|
|
37
|
+
}
|
|
38
|
+
async *transfer(sender, recipient, details) {
|
|
39
|
+
const senderAddress = new AptosAddress(sender).unwrap();
|
|
40
|
+
const mintRecipient = AptosAccountAddress.from(recipient.address.toUniversalAddress().toUint8Array());
|
|
41
|
+
const burnToken = AptosAccountAddress.from(this.usdcId);
|
|
42
|
+
const amount = details.remainingAmount + details.referrerFee;
|
|
43
|
+
const destinationDomain = circle.circleChainId.get(this.network, recipient.chain);
|
|
44
|
+
const refundAddr = senderAddress;
|
|
45
|
+
const payee = senderAddress;
|
|
46
|
+
const functionArguments = [
|
|
47
|
+
amount,
|
|
48
|
+
destinationDomain,
|
|
49
|
+
mintRecipient.toString(),
|
|
50
|
+
burnToken.toString(),
|
|
51
|
+
details.estimatedCost,
|
|
52
|
+
toChainId(recipient.chain),
|
|
53
|
+
refundAddr,
|
|
54
|
+
details.signedQuote,
|
|
55
|
+
details.relayInstructions,
|
|
56
|
+
details.referrerFeeDbps,
|
|
57
|
+
payee,
|
|
58
|
+
];
|
|
59
|
+
const tx = {
|
|
60
|
+
function: `${this.shimContract}::cctp_v1_with_executor::deposit_for_burn_entry`,
|
|
61
|
+
functionArguments,
|
|
62
|
+
};
|
|
63
|
+
yield this.createUnsignedTx(tx, "AtposCCTPW7Executor.Transfer");
|
|
64
|
+
}
|
|
65
|
+
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
66
|
+
return new AptosUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aptos/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { registerProtocol } from "@wormhole-foundation/sdk-definitions";
|
|
2
|
+
import { _platform } from "@wormhole-foundation/sdk-aptos";
|
|
3
|
+
import { AptosCCTPW7Executor } from "./executor";
|
|
4
|
+
export * from "./executor";
|
|
5
|
+
registerProtocol(_platform, "CCTPW7Executor", AptosCCTPW7Executor);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,cAAc,YAAY,CAAC;AAE3B,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,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,91 @@
|
|
|
1
|
+
export const apiBaseUrl = {
|
|
2
|
+
Testnet: "https://executor-testnet.labsapis.com",
|
|
3
|
+
Mainnet: "https://executor.labsapis.com",
|
|
4
|
+
};
|
|
5
|
+
// Shim Contract Addresses (e.g. CCTPv1WithExecutor.sol)
|
|
6
|
+
export const shimContracts = {
|
|
7
|
+
Testnet: {
|
|
8
|
+
Aptos: "0x14a12d1fd6ef371b70c2113155534ec152ec7f779e281b54866c796c9a4a58d3",
|
|
9
|
+
Avalanche: "0x2cfEC91B50f657Cc86Ec693542527ac3e03bF742",
|
|
10
|
+
BaseSepolia: "0x4983C6bD3bB7DA9EECe71cfa7AE4C67CAbf362F0",
|
|
11
|
+
Sepolia: "0x0F78904c750801391EbBf308181e9d6fc892B0f3",
|
|
12
|
+
Solana: "CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs",
|
|
13
|
+
},
|
|
14
|
+
Mainnet: {
|
|
15
|
+
Aptos: "0x9f5ad7d5c2d067ca4abb6d8d6aba44c15596b71a1def8eb4596089b527bb2eb1",
|
|
16
|
+
Arbitrum: "0x55Dd4466BFec29527C54A72fd306efb54e5F7027",
|
|
17
|
+
Avalanche: "0xd331819478b74d8a7B8EA631118B4a4e50F6EbD1",
|
|
18
|
+
Base: "0x08FEB1838C3d7F8509DA1EBb9a11a94c1f006cb2",
|
|
19
|
+
Ethereum: "0xeEFb36c4458dA7798742cf038C5c27E07aB9c51E",
|
|
20
|
+
Optimism: "0xBC6f9d1CBa49DB365728478cefa02F6743617637",
|
|
21
|
+
Polygon: "0x007995f2AEcfBC745f20a7AE8D3a02c0EbF46264",
|
|
22
|
+
Unichain: "0xA7aBDb8f2108901c586543BD5e10E4fA263F4A47",
|
|
23
|
+
Solana: "CXGRA5SCc8jxDbaQPZrmmZNu2JV34DP7gFW4m31uC1zs",
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const suiExecutorIds = {
|
|
27
|
+
Testnet: {
|
|
28
|
+
executorId: "0x4000cfe2955d8355b3d3cf186f854fea9f787a457257056926fde1ec977670eb",
|
|
29
|
+
executorRequestsId: "0x2d9ccf3cce3f7dce408e5455e90b80a8161ad9673d1366c2a5def60ad93657a8",
|
|
30
|
+
},
|
|
31
|
+
Mainnet: {
|
|
32
|
+
executorId: "0xdb0fe8bb1e2b5be628adbea0636063325073e1070ee11e4281457dfd7f158235",
|
|
33
|
+
executorRequestsId: "0xc030df7a3eed1494fa4b64aa8ab63a79041cf1114f4ff2b7ab5aca1c684a21a7 ",
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
// Solana Executor Program IDs
|
|
37
|
+
export const solanaExecutorId = {
|
|
38
|
+
Testnet: "execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV",
|
|
39
|
+
Mainnet: "execXUrAsMnqMmTHj5m7N1YQgsDz3cwGLYCYyuDRciV"
|
|
40
|
+
};
|
|
41
|
+
// cost of 1 signature + rounding error on priority fee
|
|
42
|
+
export const SOLANA_MSG_VALUE_BASE_FEE = 5001n;
|
|
43
|
+
// Gas limits must be high enough to cover the worst-case scenario for each chain
|
|
44
|
+
// to avoid relay failures. However, they should not be too high to reduce the
|
|
45
|
+
// `estimatedCost` returned by the quote endpoint.
|
|
46
|
+
export const gasLimits = {
|
|
47
|
+
Testnet: {
|
|
48
|
+
Aptos: 5000n,
|
|
49
|
+
Avalanche: 200000n,
|
|
50
|
+
BaseSepolia: 200000n,
|
|
51
|
+
Sepolia: 200000n,
|
|
52
|
+
Solana: 250000n,
|
|
53
|
+
Sui: 8000000n,
|
|
54
|
+
},
|
|
55
|
+
Mainnet: {
|
|
56
|
+
Aptos: 5000n,
|
|
57
|
+
Arbitrum: 200000n,
|
|
58
|
+
Avalanche: 200000n,
|
|
59
|
+
Base: 200000n,
|
|
60
|
+
Ethereum: 200000n,
|
|
61
|
+
Optimism: 200000n,
|
|
62
|
+
Polygon: 200000n,
|
|
63
|
+
Unichain: 200000n,
|
|
64
|
+
Solana: 250000n,
|
|
65
|
+
Sui: 8000000n,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
// Referrer addresses (to whom the referrer fee should be paid)
|
|
69
|
+
export const referrers = {
|
|
70
|
+
Testnet: {
|
|
71
|
+
Aptos: "0x23b54f6e29bba7f4123d088f4cfcd83f5e23a049de15895b119ce5a6cb5faa91",
|
|
72
|
+
Avalanche: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
|
|
73
|
+
BaseSepolia: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
|
|
74
|
+
Sepolia: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7",
|
|
75
|
+
Solana: "9r6q2iEg4MBevjC8reaLmQUDxueF3vabUoqDkZ2LoAYe",
|
|
76
|
+
Sui: "0x30bd9b3d5ad00f38fd0c314139ba47ccb3c78353d99880d81125ca0c370b415e",
|
|
77
|
+
},
|
|
78
|
+
Mainnet: {
|
|
79
|
+
Aptos: "0x1f177e724a874ab6267172a3049291c480fc665883e6a3ac95d0909492c09dc8",
|
|
80
|
+
Solana: "JB3rmygUVuVZzgkxvMdV8mSKLJeQAkSXEK284Dqsziah",
|
|
81
|
+
Sui: "0xbfa1240e48c622d97881473953be730091161b7931d89bd6afe667841cf69ef4",
|
|
82
|
+
Arbitrum: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
83
|
+
Avalanche: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
84
|
+
Base: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
85
|
+
Ethereum: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
86
|
+
Optimism: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
87
|
+
Polygon: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
88
|
+
Unichain: "0xF11e0efF8b11Ce382645dd75352fC16b3aB3551E",
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAqC;IAC1D,OAAO,EAAE,uCAAuC;IAChD,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,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;AAIF,MAAM,CAAC,MAAM,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;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,OAAO,EAAE,6CAA6C;IACtD,OAAO,EAAE,6CAA6C;CACvD,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAM,CAAC;AAEhD,iFAAiF;AACjF,8EAA8E;AAC9E,kDAAkD;AAClD,MAAM,CAAC,MAAM,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;AAC/D,MAAM,CAAC,MAAM,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,65 @@
|
|
|
1
|
+
import { circle, nativeChainIds, toChainId, } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { EvmAddress, EvmPlatform, EvmUnsignedTransaction, addChainId, addFrom, } from "@wormhole-foundation/sdk-evm";
|
|
3
|
+
import { Contract } from "ethers";
|
|
4
|
+
import { shimContracts } from "../consts";
|
|
5
|
+
export class EvmCCTPW7Executor {
|
|
6
|
+
network;
|
|
7
|
+
chain;
|
|
8
|
+
provider;
|
|
9
|
+
contracts;
|
|
10
|
+
chainId;
|
|
11
|
+
shimContract;
|
|
12
|
+
constructor(network, chain, provider, contracts) {
|
|
13
|
+
this.network = network;
|
|
14
|
+
this.chain = chain;
|
|
15
|
+
this.provider = provider;
|
|
16
|
+
this.contracts = contracts;
|
|
17
|
+
if (network === "Devnet")
|
|
18
|
+
throw new Error("CCTPW7Executor not supported on Devnet");
|
|
19
|
+
this.chainId = nativeChainIds.networkChainToNativeChainId.get(network, chain);
|
|
20
|
+
const shimContract = shimContracts[network]?.[chain];
|
|
21
|
+
if (!shimContract)
|
|
22
|
+
throw new Error(`Shim contract for ${chain} not found`);
|
|
23
|
+
this.shimContract = shimContract;
|
|
24
|
+
}
|
|
25
|
+
static async fromRpc(provider, config) {
|
|
26
|
+
const [network, chain] = await EvmPlatform.chainFromRpc(provider);
|
|
27
|
+
const conf = config[chain];
|
|
28
|
+
if (conf.network !== network)
|
|
29
|
+
throw new Error(`Network mismatch: ${conf.network} != ${network}`);
|
|
30
|
+
return new EvmCCTPW7Executor(network, chain, provider, conf.contracts);
|
|
31
|
+
}
|
|
32
|
+
async *transfer(sender, recipient, details) {
|
|
33
|
+
const senderAddress = new EvmAddress(sender).toString();
|
|
34
|
+
const recipientAddress = recipient.address
|
|
35
|
+
.toUniversalAddress()
|
|
36
|
+
.toUint8Array();
|
|
37
|
+
const amount = details.remainingAmount + details.referrerFee;
|
|
38
|
+
const tokenAddr = circle.usdcContract.get(this.network, this.chain);
|
|
39
|
+
const tokenContract = EvmPlatform.getTokenImplementation(this.provider, tokenAddr);
|
|
40
|
+
const allowance = await tokenContract.allowance(senderAddress, this.shimContract);
|
|
41
|
+
if (allowance < amount) {
|
|
42
|
+
const txReq = await tokenContract.approve.populateTransaction(this.shimContract, amount);
|
|
43
|
+
yield this.createUnsignedTx(addFrom(txReq, senderAddress), "ERC20.approve of EvmCCTPW7Executor", false);
|
|
44
|
+
}
|
|
45
|
+
// TODO: type safety. typechain brings in so much boilerplate code and is soft deprecated. use viem?
|
|
46
|
+
const shimAbi = [
|
|
47
|
+
"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)",
|
|
48
|
+
];
|
|
49
|
+
const shim = new Contract(this.shimContract, shimAbi, this.provider);
|
|
50
|
+
const txReq = await shim.getFunction("depositForBurn").populateTransaction(amount, toChainId(recipient.chain), circle.circleChainId.get(this.network, recipient.chain), recipientAddress, tokenAddr, {
|
|
51
|
+
refundAddress: senderAddress,
|
|
52
|
+
signedQuote: details.signedQuote,
|
|
53
|
+
instructions: details.relayInstructions,
|
|
54
|
+
}, {
|
|
55
|
+
dbps: details.referrerFeeDbps,
|
|
56
|
+
payee: details.referrer.address.toString(),
|
|
57
|
+
});
|
|
58
|
+
txReq.value = details.estimatedCost;
|
|
59
|
+
yield this.createUnsignedTx(addFrom(txReq, senderAddress), "EvmCCTPW7Executor.depositForBurn");
|
|
60
|
+
}
|
|
61
|
+
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
62
|
+
return new EvmUnsignedTransaction(addChainId(txReq, this.chainId), this.network, this.chain, description, parallelizable);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { registerProtocol } from "@wormhole-foundation/sdk-definitions";
|
|
2
|
+
import { _platform } from "@wormhole-foundation/sdk-evm";
|
|
3
|
+
import { EvmCCTPW7Executor } from "./executor";
|
|
4
|
+
export * from "./executor";
|
|
5
|
+
registerProtocol(_platform, "CCTPW7Executor", EvmCCTPW7Executor);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,cAAc,YAAY,CAAC;AAE3B,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC"}
|