@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,102 @@
|
|
|
1
|
+
import { DeriveType } from "binary-layout";
|
|
2
|
+
export declare const quoteLayout: readonly [{
|
|
3
|
+
readonly name: "quote";
|
|
4
|
+
readonly binary: "switch";
|
|
5
|
+
readonly idSize: 4;
|
|
6
|
+
readonly idTag: "prefix";
|
|
7
|
+
readonly layouts: readonly [readonly [readonly [1162948657, "EQ01"], readonly [{
|
|
8
|
+
readonly name: "quoterAddress";
|
|
9
|
+
readonly binary: "bytes";
|
|
10
|
+
readonly size: 20;
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: "payeeAddress";
|
|
13
|
+
readonly binary: "bytes";
|
|
14
|
+
readonly size: 32;
|
|
15
|
+
}, {
|
|
16
|
+
readonly name: "srcChain";
|
|
17
|
+
readonly binary: "uint";
|
|
18
|
+
readonly size: 2;
|
|
19
|
+
}, {
|
|
20
|
+
readonly name: "dstChain";
|
|
21
|
+
readonly binary: "uint";
|
|
22
|
+
readonly size: 2;
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "expiryTime";
|
|
25
|
+
readonly binary: "uint";
|
|
26
|
+
readonly size: 8;
|
|
27
|
+
readonly custom: {
|
|
28
|
+
readonly to: (encoded: bigint) => Date;
|
|
29
|
+
readonly from: (decoded: Date) => bigint;
|
|
30
|
+
};
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "baseFee";
|
|
33
|
+
readonly binary: "uint";
|
|
34
|
+
readonly size: 8;
|
|
35
|
+
}, {
|
|
36
|
+
readonly name: "dstGasPrice";
|
|
37
|
+
readonly binary: "uint";
|
|
38
|
+
readonly size: 8;
|
|
39
|
+
}, {
|
|
40
|
+
readonly name: "srcPrice";
|
|
41
|
+
readonly binary: "uint";
|
|
42
|
+
readonly size: 8;
|
|
43
|
+
}, {
|
|
44
|
+
readonly name: "dstPrice";
|
|
45
|
+
readonly binary: "uint";
|
|
46
|
+
readonly size: 8;
|
|
47
|
+
}]]];
|
|
48
|
+
}];
|
|
49
|
+
export type Quote = DeriveType<typeof quoteLayout>;
|
|
50
|
+
export declare const signedQuoteLayout: readonly [{
|
|
51
|
+
readonly name: "quote";
|
|
52
|
+
readonly binary: "switch";
|
|
53
|
+
readonly idSize: 4;
|
|
54
|
+
readonly idTag: "prefix";
|
|
55
|
+
readonly layouts: readonly [readonly [readonly [1162948657, "EQ01"], readonly [{
|
|
56
|
+
readonly name: "quoterAddress";
|
|
57
|
+
readonly binary: "bytes";
|
|
58
|
+
readonly size: 20;
|
|
59
|
+
}, {
|
|
60
|
+
readonly name: "payeeAddress";
|
|
61
|
+
readonly binary: "bytes";
|
|
62
|
+
readonly size: 32;
|
|
63
|
+
}, {
|
|
64
|
+
readonly name: "srcChain";
|
|
65
|
+
readonly binary: "uint";
|
|
66
|
+
readonly size: 2;
|
|
67
|
+
}, {
|
|
68
|
+
readonly name: "dstChain";
|
|
69
|
+
readonly binary: "uint";
|
|
70
|
+
readonly size: 2;
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "expiryTime";
|
|
73
|
+
readonly binary: "uint";
|
|
74
|
+
readonly size: 8;
|
|
75
|
+
readonly custom: {
|
|
76
|
+
readonly to: (encoded: bigint) => Date;
|
|
77
|
+
readonly from: (decoded: Date) => bigint;
|
|
78
|
+
};
|
|
79
|
+
}, {
|
|
80
|
+
readonly name: "baseFee";
|
|
81
|
+
readonly binary: "uint";
|
|
82
|
+
readonly size: 8;
|
|
83
|
+
}, {
|
|
84
|
+
readonly name: "dstGasPrice";
|
|
85
|
+
readonly binary: "uint";
|
|
86
|
+
readonly size: 8;
|
|
87
|
+
}, {
|
|
88
|
+
readonly name: "srcPrice";
|
|
89
|
+
readonly binary: "uint";
|
|
90
|
+
readonly size: 8;
|
|
91
|
+
}, {
|
|
92
|
+
readonly name: "dstPrice";
|
|
93
|
+
readonly binary: "uint";
|
|
94
|
+
readonly size: 8;
|
|
95
|
+
}]]];
|
|
96
|
+
}, {
|
|
97
|
+
readonly name: "signature";
|
|
98
|
+
readonly binary: "bytes";
|
|
99
|
+
readonly size: 65;
|
|
100
|
+
}];
|
|
101
|
+
export type SignedQuote = DeriveType<typeof signedQuoteLayout>;
|
|
102
|
+
//# sourceMappingURL=signedQuote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signedQuote.d.ts","sourceRoot":"","sources":["../../../src/layouts/signedQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAU,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCG,CAAC;AAE5B,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAEnD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGH,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signedQuoteLayout = exports.quoteLayout = void 0;
|
|
4
|
+
const conversions_js_1 = require("./conversions.js");
|
|
5
|
+
exports.quoteLayout = [
|
|
6
|
+
{
|
|
7
|
+
name: "quote",
|
|
8
|
+
binary: "switch",
|
|
9
|
+
idSize: 4,
|
|
10
|
+
idTag: "prefix",
|
|
11
|
+
layouts: [
|
|
12
|
+
[
|
|
13
|
+
[0x45513031, "EQ01"],
|
|
14
|
+
[
|
|
15
|
+
{
|
|
16
|
+
name: "quoterAddress",
|
|
17
|
+
binary: "bytes",
|
|
18
|
+
size: 20,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "payeeAddress",
|
|
22
|
+
binary: "bytes",
|
|
23
|
+
size: 32,
|
|
24
|
+
},
|
|
25
|
+
{ name: "srcChain", binary: "uint", size: 2 },
|
|
26
|
+
{ name: "dstChain", binary: "uint", size: 2 },
|
|
27
|
+
{
|
|
28
|
+
name: "expiryTime",
|
|
29
|
+
binary: "uint",
|
|
30
|
+
size: 8,
|
|
31
|
+
custom: conversions_js_1.dateConversion,
|
|
32
|
+
},
|
|
33
|
+
{ name: "baseFee", binary: "uint", size: 8 },
|
|
34
|
+
{ name: "dstGasPrice", binary: "uint", size: 8 },
|
|
35
|
+
{ name: "srcPrice", binary: "uint", size: 8 },
|
|
36
|
+
{ name: "dstPrice", binary: "uint", size: 8 },
|
|
37
|
+
],
|
|
38
|
+
],
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
exports.signedQuoteLayout = [
|
|
43
|
+
...exports.quoteLayout,
|
|
44
|
+
{ name: "signature", binary: "bytes", size: 65 },
|
|
45
|
+
];
|
|
46
|
+
//# sourceMappingURL=signedQuote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signedQuote.js","sourceRoot":"","sources":["../../../src/layouts/signedQuote.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAErC,QAAA,WAAW,GAAG;IACzB;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE;YACP;gBACE,CAAC,UAAU,EAAE,MAAM,CAAC;gBACpB;oBACE;wBACE,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,EAAE;qBACT;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,EAAE;qBACT;oBACD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC7C;wBACE,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,+BAAc;qBACvB;oBACD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAChD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;iBAC9C;aACF;SACF;KACF;CACwB,CAAC;AAIf,QAAA,iBAAiB,GAAG;IAC/B,GAAG,mBAAW;IACd,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;CACvB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SuiClient } from "@mysten/sui/client";
|
|
2
|
+
import { type AccountAddress, type ChainAddress, type ChainsConfig, type Contracts, type Network, type Platform } from "@wormhole-foundation/sdk-connect";
|
|
3
|
+
import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui";
|
|
4
|
+
import { CCTPW7Executor } from "../types";
|
|
5
|
+
import { QuoteDetails } from "..";
|
|
6
|
+
export declare class SuiCCTPW7Executor<N extends Network, C extends SuiChains> implements CCTPW7Executor<N, C> {
|
|
7
|
+
readonly network: N;
|
|
8
|
+
readonly chain: C;
|
|
9
|
+
readonly provider: SuiClient;
|
|
10
|
+
readonly contracts: Contracts;
|
|
11
|
+
readonly usdcId: string;
|
|
12
|
+
readonly usdcTreasuryId: string;
|
|
13
|
+
readonly tokenMessengerId: string;
|
|
14
|
+
readonly tokenMessengerStateId: string;
|
|
15
|
+
readonly messageTransmitterId: string;
|
|
16
|
+
readonly messageTransmitterStateId: string;
|
|
17
|
+
readonly executorId: string;
|
|
18
|
+
readonly executorRequestsId: string;
|
|
19
|
+
constructor(network: N, chain: C, provider: SuiClient, contracts: Contracts);
|
|
20
|
+
static fromRpc<N extends Network>(provider: SuiClient, config: ChainsConfig<N, Platform>): Promise<SuiCCTPW7Executor<N, SuiChains>>;
|
|
21
|
+
transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<SuiUnsignedTransaction<N, C>>;
|
|
22
|
+
private createUnsignedTx;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/sui/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACnE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAa7B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAd/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAE3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGzB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS;WAiDlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,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;IA4F/C,OAAO,CAAC,gBAAgB;CAazB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuiCCTPW7Executor = void 0;
|
|
4
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
5
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
6
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
7
|
+
const sdk_sui_1 = require("@wormhole-foundation/sdk-sui");
|
|
8
|
+
const sdk_sui_2 = require("@wormhole-foundation/sdk-sui");
|
|
9
|
+
const consts_1 = require("../consts");
|
|
10
|
+
const sdk_sui_cctp_1 = require("@wormhole-foundation/sdk-sui-cctp");
|
|
11
|
+
class SuiCCTPW7Executor {
|
|
12
|
+
network;
|
|
13
|
+
chain;
|
|
14
|
+
provider;
|
|
15
|
+
contracts;
|
|
16
|
+
usdcId;
|
|
17
|
+
usdcTreasuryId;
|
|
18
|
+
tokenMessengerId;
|
|
19
|
+
tokenMessengerStateId;
|
|
20
|
+
messageTransmitterId;
|
|
21
|
+
messageTransmitterStateId;
|
|
22
|
+
executorId;
|
|
23
|
+
executorRequestsId;
|
|
24
|
+
constructor(network, chain, provider, contracts) {
|
|
25
|
+
this.network = network;
|
|
26
|
+
this.chain = chain;
|
|
27
|
+
this.provider = provider;
|
|
28
|
+
this.contracts = contracts;
|
|
29
|
+
if (network === "Devnet")
|
|
30
|
+
throw new Error("CCTPW7Executor not supported on Devnet");
|
|
31
|
+
const getContractAddress = (contract, errorMessage) => {
|
|
32
|
+
if (!contract) {
|
|
33
|
+
throw new Error(errorMessage);
|
|
34
|
+
}
|
|
35
|
+
return contract;
|
|
36
|
+
};
|
|
37
|
+
this.usdcId = getContractAddress(sdk_connect_1.circle.usdcContract.get(this.network, this.chain), `No USDC contract configured for network=${this.network} chain=${this.chain}`);
|
|
38
|
+
const { tokenMessengerState, messageTransmitterState, usdcTreasury } = (0, sdk_sui_cctp_1.suiCircleObjects)(network);
|
|
39
|
+
this.usdcTreasuryId = usdcTreasury;
|
|
40
|
+
this.tokenMessengerId = getContractAddress(contracts.cctp?.tokenMessenger, `Circle Token Messenger contract for domain ${chain} not found`);
|
|
41
|
+
this.messageTransmitterId = getContractAddress(contracts.cctp?.messageTransmitter, `Circle Message Transmitter contract for domain ${chain} not found`);
|
|
42
|
+
this.tokenMessengerStateId = tokenMessengerState;
|
|
43
|
+
this.messageTransmitterStateId = messageTransmitterState;
|
|
44
|
+
this.executorId = getContractAddress(consts_1.suiExecutorIds[network]?.executorId, `Executor contract for ${network} not found`);
|
|
45
|
+
this.executorRequestsId = getContractAddress(consts_1.suiExecutorIds[network]?.executorRequestsId, `Executor requests contract for ${network} not found`);
|
|
46
|
+
}
|
|
47
|
+
static async fromRpc(provider, config) {
|
|
48
|
+
const [network, chain] = await sdk_sui_2.SuiPlatform.chainFromRpc(provider);
|
|
49
|
+
const conf = config[chain];
|
|
50
|
+
if (conf.network !== network)
|
|
51
|
+
throw new Error(`Network mismatch: ${conf.network} != ${network}`);
|
|
52
|
+
return new SuiCCTPW7Executor(network, chain, provider, conf.contracts);
|
|
53
|
+
}
|
|
54
|
+
async *transfer(sender, recipient, details) {
|
|
55
|
+
const tx = new transactions_1.Transaction();
|
|
56
|
+
const senderAddress = new sdk_sui_1.SuiAddress(sender).unwrap();
|
|
57
|
+
const destinationDomain = sdk_connect_1.circle.circleChainId.get(this.network, recipient.chain);
|
|
58
|
+
const [primaryCoin, ...mergeCoins] = await sdk_sui_2.SuiPlatform.getCoins(this.provider, sender, this.usdcId);
|
|
59
|
+
if (primaryCoin === undefined) {
|
|
60
|
+
throw new Error("No USDC in wallet");
|
|
61
|
+
}
|
|
62
|
+
const primaryCoinInput = tx.object(primaryCoin.coinObjectId);
|
|
63
|
+
if (mergeCoins.length > 0) {
|
|
64
|
+
tx.mergeCoins(primaryCoinInput, mergeCoins.map((coin) => tx.object(coin.coinObjectId)));
|
|
65
|
+
}
|
|
66
|
+
let coin;
|
|
67
|
+
if (details.referrerFee > 0n) {
|
|
68
|
+
const [txCoin, referrerFeeCoin] = tx.splitCoins(primaryCoinInput, [
|
|
69
|
+
details.remainingAmount,
|
|
70
|
+
details.referrerFee,
|
|
71
|
+
]);
|
|
72
|
+
coin = txCoin;
|
|
73
|
+
tx.transferObjects([referrerFeeCoin], (0, sdk_connect_1.canonicalAddress)(details.referrer));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const [txCoin] = tx.splitCoins(primaryCoinInput, [
|
|
77
|
+
details.remainingAmount,
|
|
78
|
+
]);
|
|
79
|
+
coin = txCoin;
|
|
80
|
+
}
|
|
81
|
+
const [_, message] = tx.moveCall({
|
|
82
|
+
target: `${this.tokenMessengerId}::deposit_for_burn::deposit_for_burn`,
|
|
83
|
+
arguments: [
|
|
84
|
+
coin,
|
|
85
|
+
tx.pure.u32(destinationDomain), // destination_domain
|
|
86
|
+
tx.pure.address(recipient.address.toUniversalAddress().toString()), // mint_recipient
|
|
87
|
+
tx.object(this.tokenMessengerStateId), // token_messenger_minter state
|
|
88
|
+
tx.object(this.messageTransmitterStateId), // message_transmitter state
|
|
89
|
+
tx.object("0x403"), // deny_list id, fixed address
|
|
90
|
+
tx.object(this.usdcTreasuryId), // treasury object Treasury<USDC>
|
|
91
|
+
],
|
|
92
|
+
typeArguments: [this.usdcId],
|
|
93
|
+
});
|
|
94
|
+
const [source_domain] = tx.moveCall({
|
|
95
|
+
target: `${this.messageTransmitterId}::message::source_domain`,
|
|
96
|
+
arguments: [message],
|
|
97
|
+
});
|
|
98
|
+
const [nonce] = tx.moveCall({
|
|
99
|
+
target: `${this.messageTransmitterId}::message::nonce`,
|
|
100
|
+
arguments: [message],
|
|
101
|
+
});
|
|
102
|
+
const [requestBytes] = tx.moveCall({
|
|
103
|
+
target: `${this.executorRequestsId}::executor_requests::make_cctp_v1_request`,
|
|
104
|
+
arguments: [source_domain, nonce],
|
|
105
|
+
});
|
|
106
|
+
const [executorCoin] = tx.splitCoins(tx.gas, [
|
|
107
|
+
tx.pure.u64(details.estimatedCost),
|
|
108
|
+
]);
|
|
109
|
+
tx.moveCall({
|
|
110
|
+
target: `${this.executorId}::executor::request_execution`,
|
|
111
|
+
arguments: [
|
|
112
|
+
executorCoin,
|
|
113
|
+
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
114
|
+
tx.pure.u16((0, sdk_connect_1.toChainId)(recipient.chain)),
|
|
115
|
+
tx.pure.address("0x0"),
|
|
116
|
+
tx.pure.address(senderAddress),
|
|
117
|
+
tx.pure.vector("u8", details.signedQuote),
|
|
118
|
+
requestBytes,
|
|
119
|
+
tx.pure.vector("u8", details.relayInstructions),
|
|
120
|
+
],
|
|
121
|
+
});
|
|
122
|
+
yield this.createUnsignedTx(tx, "SuiCCTPW7Executor.Transfer");
|
|
123
|
+
}
|
|
124
|
+
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
125
|
+
return new sdk_sui_1.SuiUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.SuiCCTPW7Executor = SuiCCTPW7Executor;
|
|
129
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/sui/executor.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,2DAAuD;AACvD,kEAU0C;AAC1C,0DAIsC;AACtC,0DAA2D;AAE3D,sCAA2C;AAE3C,oEAAqE;AAErE,MAAa,iBAAiB;IAcjB;IACA;IACA;IACA;IAdF,MAAM,CAAS;IACf,cAAc,CAAS;IACvB,gBAAgB,CAAS;IACzB,qBAAqB,CAAS;IAC9B,oBAAoB,CAAS;IAC7B,yBAAyB,CAAS;IAElC,UAAU,CAAS;IACnB,kBAAkB,CAAS;IAEpC,YACW,OAAU,EACV,KAAQ,EACR,QAAmB,EACnB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,OAAO,KAAK,QAAQ;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE5D,MAAM,kBAAkB,GAAG,CACzB,QAA4B,EAC5B,YAAoB,EACpB,EAAE;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAC9B,oBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EACjD,2CAA2C,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,CAC9E,CAAC;QAEF,MAAM,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,YAAY,EAAE,GAClE,IAAA,+BAAgB,EAAC,OAAgC,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;QAEnC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CACxC,SAAS,CAAC,IAAI,EAAE,cAAc,EAC9B,8CAA8C,KAAK,YAAY,CAChE,CAAC;QAEF,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAC5C,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAClC,kDAAkD,KAAK,YAAY,CACpE,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,uBAAuB,CAAC;QAEzD,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAClC,uBAAc,CAAC,OAAO,CAAC,EAAE,UAAU,EACnC,yBAAyB,OAAO,YAAY,CAC7C,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAC1C,uBAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAC3C,kCAAkC,OAAO,YAAY,CACtD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAmB,EACnB,MAAiC;QAEjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,qBAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,iBAAiB,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,SAAuB,EACvB,OAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,0BAAW,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAEtD,MAAM,iBAAiB,GAAG,oBAAM,CAAC,aAAa,CAAC,GAAG,CAChD,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,KAAK,CACf,CAAC;QAEH,MAAM,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,GAAG,MAAM,qBAAW,CAAC,QAAQ,CAC7D,IAAI,CAAC,QAAQ,EACb,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAC;QAEF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,EAAE,CAAC,UAAU,CACX,gBAAgB,EAChB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CACvD,CAAC;QACJ,CAAC;QAED,IAAI,IAAS,CAAC;QACd,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE;gBAChE,OAAO,CAAC,eAAe;gBACvB,OAAO,CAAC,WAAW;aACpB,CAAC,CAAC;YACH,IAAI,GAAG,MAAM,CAAC;YACd,EAAE,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,EAAE,IAAA,8BAAgB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE;gBAC/C,OAAO,CAAC,eAAe;aACxB,CAAC,CAAC;YACH,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,sCAAsC;YACtE,SAAS,EAAE;gBACT,IAAI;gBACJ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,qBAAqB;gBACrD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB;gBACrF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,+BAA+B;gBACtE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,4BAA4B;gBACvE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,8BAA8B;gBAClD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,iCAAiC;aAClE;YACD,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,0BAA0B;YAC9D,SAAS,EAAE,CAAC,OAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,kBAAkB;YACtD,SAAS,EAAE,CAAC,OAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,2CAA2C;YAC7E,SAAS,EAAE,CAAC,aAAc,EAAE,KAAM,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;YAC3C,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;SACnC,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,+BAA+B;YACzD,SAAS,EAAE;gBACT,YAAY;gBACZ,EAAE,CAAC,MAAM,CAAC,2BAAmB,CAAC;gBAC9B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAA,uBAAS,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACvC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC9B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;gBACzC,YAAa;gBACb,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;aAChD;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAChE,CAAC;IAEO,gBAAgB,CACtB,KAAkB,EAClB,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,gCAAsB,CAC/B,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AA1LD,8CA0LC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sui/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_sui_1 = require("@wormhole-foundation/sdk-sui");
|
|
19
|
+
const executor_1 = require("./executor");
|
|
20
|
+
__exportStar(require("./executor"), exports);
|
|
21
|
+
(0, sdk_definitions_1.registerProtocol)(sdk_sui_1._platform, "CCTPW7Executor", executor_1.SuiCCTPW7Executor);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sui/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,21 @@
|
|
|
1
|
+
import { type AccountAddress, type ChainAddress, type ChainsConfig, type Contracts, type Network, type Platform } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import type { SolanaChains } from "@wormhole-foundation/sdk-solana";
|
|
3
|
+
import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana";
|
|
4
|
+
import { CCTPW7Executor } from "../types";
|
|
5
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
6
|
+
import { QuoteDetails } from "..";
|
|
7
|
+
export declare class SvmCCTPW7Executor<N extends Network, C extends SolanaChains> implements CCTPW7Executor<N, C> {
|
|
8
|
+
readonly network: N;
|
|
9
|
+
readonly chain: C;
|
|
10
|
+
readonly connection: Connection;
|
|
11
|
+
readonly contracts: Contracts;
|
|
12
|
+
readonly tokenMessengerProgramId: PublicKey;
|
|
13
|
+
readonly messageTransmitterProgramId: PublicKey;
|
|
14
|
+
readonly shimProgramId: PublicKey;
|
|
15
|
+
readonly executorProgramId: PublicKey;
|
|
16
|
+
constructor(network: N, chain: C, connection: Connection, contracts: Contracts);
|
|
17
|
+
static fromRpc<N extends Network>(provider: Connection, config: ChainsConfig<N, Platform>): Promise<SvmCCTPW7Executor<N, SolanaChains>>;
|
|
18
|
+
transfer(sender: AccountAddress<C>, recipient: ChainAddress, details: QuoteDetails): AsyncGenerator<SolanaUnsignedTransaction<N, C>>;
|
|
19
|
+
private createUnsignedTx;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAW,SAAS,EAAe,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAclC,qBAAa,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,CACtE,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAS7B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAV/B,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;IAEhD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;gBAG3B,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;WAkClB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAQvC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAkGlD,OAAO,CAAC,gBAAgB;CAazB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SvmCCTPW7Executor = void 0;
|
|
4
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
5
|
+
const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
|
|
6
|
+
const consts_1 = require("../consts");
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
9
|
+
const sdk_solana_cctp_1 = require("@wormhole-foundation/sdk-solana-cctp");
|
|
10
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
11
|
+
const example_cctp_with_executor_1 = require("./idl/example_cctp_with_executor");
|
|
12
|
+
const layouts_1 = require("../layouts");
|
|
13
|
+
class SvmCCTPW7Executor {
|
|
14
|
+
network;
|
|
15
|
+
chain;
|
|
16
|
+
connection;
|
|
17
|
+
contracts;
|
|
18
|
+
tokenMessengerProgramId;
|
|
19
|
+
messageTransmitterProgramId;
|
|
20
|
+
shimProgramId;
|
|
21
|
+
executorProgramId;
|
|
22
|
+
constructor(network, chain, connection, contracts) {
|
|
23
|
+
this.network = network;
|
|
24
|
+
this.chain = chain;
|
|
25
|
+
this.connection = connection;
|
|
26
|
+
this.contracts = contracts;
|
|
27
|
+
if (network === "Devnet")
|
|
28
|
+
throw new Error("CCTPW7Executor not supported on Devnet");
|
|
29
|
+
const getContractAddress = (contract, errorMessage) => {
|
|
30
|
+
if (!contract)
|
|
31
|
+
throw new Error(errorMessage);
|
|
32
|
+
return new web3_js_1.PublicKey(contract);
|
|
33
|
+
};
|
|
34
|
+
this.tokenMessengerProgramId = getContractAddress(contracts.cctp?.tokenMessenger, `Circle Token Messenger contract for domain ${chain} not found`);
|
|
35
|
+
this.messageTransmitterProgramId = getContractAddress(contracts.cctp?.messageTransmitter, `Circle Message Transmitter contract for domain ${chain} not found`);
|
|
36
|
+
this.shimProgramId = getContractAddress(consts_1.shimContracts[network]?.[chain], `Shim contract for ${chain} not found`);
|
|
37
|
+
this.executorProgramId = getContractAddress(consts_1.solanaExecutorId[network], `Executor contract for ${network} not found`);
|
|
38
|
+
}
|
|
39
|
+
static async fromRpc(provider, config) {
|
|
40
|
+
const [network, chain] = await sdk_solana_1.SolanaPlatform.chainFromRpc(provider);
|
|
41
|
+
const conf = config[chain];
|
|
42
|
+
if (conf.network !== network)
|
|
43
|
+
throw new Error(`Network mismatch: ${conf.network} != ${network}`);
|
|
44
|
+
return new SvmCCTPW7Executor(network, chain, provider, conf.contracts);
|
|
45
|
+
}
|
|
46
|
+
async *transfer(sender, recipient, details) {
|
|
47
|
+
const usdc = new web3_js_1.PublicKey(sdk_connect_1.circle.usdcContract.get(this.network, this.chain));
|
|
48
|
+
const senderPk = new sdk_solana_1.SolanaAddress(sender).unwrap();
|
|
49
|
+
const senderAta = (0, spl_token_1.getAssociatedTokenAddressSync)(usdc, senderPk);
|
|
50
|
+
const referrer = new sdk_solana_1.SolanaAddress(details.referrer.address).unwrap();
|
|
51
|
+
const transaction = new web3_js_1.Transaction();
|
|
52
|
+
transaction.feePayer = senderPk;
|
|
53
|
+
if (details.referrerFee > 0n) {
|
|
54
|
+
const referrerAta = (0, spl_token_1.getAssociatedTokenAddressSync)(usdc, referrer);
|
|
55
|
+
const referrerAtaAccount = await this.connection.getAccountInfo(referrerAta);
|
|
56
|
+
if (!referrerAtaAccount) {
|
|
57
|
+
transaction.add((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(senderPk, referrerAta, referrer, usdc));
|
|
58
|
+
}
|
|
59
|
+
transaction.add((0, spl_token_1.createTransferInstruction)(senderAta, referrerAta, senderPk, details.referrerFee));
|
|
60
|
+
}
|
|
61
|
+
const destinationDomain = sdk_connect_1.circle.circleChainId.get(this.network, recipient.chain);
|
|
62
|
+
const destinationAddress = recipient.address.toUniversalAddress();
|
|
63
|
+
const msgSendEvent = web3_js_1.Keypair.generate();
|
|
64
|
+
transaction.add(await (0, sdk_solana_cctp_1.createDepositForBurnInstruction)(this.messageTransmitterProgramId, this.tokenMessengerProgramId, usdc, destinationDomain, senderPk, senderAta, destinationAddress, details.remainingAmount, msgSendEvent.publicKey));
|
|
65
|
+
const shimProgram = new anchor_1.Program(example_cctp_with_executor_1.ExampleCctpWithExecutorIdl, this.shimProgramId, { connection: null });
|
|
66
|
+
const signedQuote = (0, sdk_connect_1.deserializeLayout)(layouts_1.signedQuoteLayout, details.signedQuote);
|
|
67
|
+
const messageTransmitter = sdk_solana_1.utils.deriveAddress("message_transmitter", this.messageTransmitterProgramId);
|
|
68
|
+
transaction.add(await shimProgram.methods
|
|
69
|
+
.relayLastMessage({
|
|
70
|
+
execAmount: new anchor_1.BN(details.estimatedCost.toString()),
|
|
71
|
+
recipientChain: (0, sdk_connect_1.toChainId)(recipient.chain),
|
|
72
|
+
signedQuoteBytes: Buffer.from(details.signedQuote),
|
|
73
|
+
relayInstructions: Buffer.from(details.relayInstructions),
|
|
74
|
+
})
|
|
75
|
+
.accounts({
|
|
76
|
+
payer: senderPk,
|
|
77
|
+
messageTransmitter,
|
|
78
|
+
payee: new web3_js_1.PublicKey(signedQuote.quote.payeeAddress),
|
|
79
|
+
executorProgram: this.executorProgramId,
|
|
80
|
+
})
|
|
81
|
+
.instruction());
|
|
82
|
+
yield this.createUnsignedTx({ transaction, signers: [msgSendEvent] }, "SvmCCTPW7Executor.Transfer");
|
|
83
|
+
}
|
|
84
|
+
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
85
|
+
return new sdk_solana_1.SolanaUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.SvmCCTPW7Executor = SvmCCTPW7Executor;
|
|
89
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/svm/executor.ts"],"names":[],"mappings":";;;AAAA,kEAU0C;AAK1C,gEAKyC;AAEzC,sCAA4D;AAC5D,6CAA8E;AAE9E,iDAI2B;AAC3B,0EAAuF;AACvF,8CAAgD;AAChD,iFAG0C;AAC1C,wCAA+C;AAE/C,MAAa,iBAAiB;IAUjB;IACA;IACA;IACA;IAVF,uBAAuB,CAAY;IACnC,2BAA2B,CAAY;IAEvC,aAAa,CAAY;IACzB,iBAAiB,CAAY;IAEtC,YACW,OAAU,EACV,KAAQ,EACR,UAAsB,EACtB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,OAAO,KAAK,QAAQ;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE5D,MAAM,kBAAkB,GAAG,CACzB,QAA4B,EAC5B,YAAoB,EACpB,EAAE;YACF,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,IAAI,mBAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,kBAAkB,CAC/C,SAAS,CAAC,IAAI,EAAE,cAAc,EAC9B,8CAA8C,KAAK,YAAY,CAChE,CAAC;QAEF,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CACnD,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAClC,kDAAkD,KAAK,YAAY,CACpE,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,kBAAkB,CACrC,sBAAa,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAC/B,qBAAqB,KAAK,YAAY,CACvC,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CACzC,yBAAgB,CAAC,OAAO,CAAC,EACzB,yBAAyB,OAAO,YAAY,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAoB,EACpB,MAAiC;QAEjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,2BAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,iBAAiB,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,SAAuB,EACvB,OAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,mBAAS,CACxB,oBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAE,CACnD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,yCAA6B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,0BAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAEtE,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACtC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEhC,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAA,yCAA6B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,WAAW,CACZ,CAAC;YACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,WAAW,CAAC,GAAG,CACb,IAAA,6DAAiD,EAC/C,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YACD,WAAW,CAAC,GAAG,CACb,IAAA,qCAAyB,EACvB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,CAAC,WAAW,CACpB,CACF,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,oBAAM,CAAC,aAAa,CAAC,GAAG,CAChD,IAAI,CAAC,OAAO,EACZ,SAAS,CAAC,KAAK,CACf,CAAC;QACH,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAElE,MAAM,YAAY,GAAG,iBAAO,CAAC,QAAQ,EAAE,CAAC;QAExC,WAAW,CAAC,GAAG,CACb,MAAM,IAAA,iDAA+B,EACnC,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,uBAAuB,EAC5B,IAAI,EACJ,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,OAAO,CAAC,eAAe,EACvB,YAAY,CAAC,SAAS,CACvB,CACF,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,gBAAO,CAC7B,uDAA0B,EAC1B,IAAI,CAAC,aAAa,EAClB,EAAE,UAAU,EAAE,IAAI,EAAS,CAC5B,CAAC;QAEF,MAAM,WAAW,GAAG,IAAA,+BAAiB,EACnC,2BAAiB,EACjB,OAAO,CAAC,WAAW,CACpB,CAAC;QAEF,MAAM,kBAAkB,GAAG,kBAAK,CAAC,aAAa,CAC5C,qBAAqB,EACrB,IAAI,CAAC,2BAA2B,CACjC,CAAC;QAEF,WAAW,CAAC,GAAG,CACb,MAAM,WAAW,CAAC,OAAO;aACtB,gBAAgB,CAAC;YAChB,UAAU,EAAE,IAAI,WAAE,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACpD,cAAc,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAClD,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC1D,CAAC;aACD,QAAQ,CAAC;YACR,KAAK,EAAE,QAAQ;YACf,kBAAkB;YAClB,KAAK,EAAE,IAAI,mBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;YACpD,eAAe,EAAE,IAAI,CAAC,iBAAiB;SACxC,CAAC;aACD,WAAW,EAAE,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EACxC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,KAAwB,EACxB,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,sCAAyB,CAClC,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AA7KD,8CA6KC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export type ExampleCctpWithExecutor = {
|
|
2
|
+
version: "0.1.0";
|
|
3
|
+
name: "example_cctp_with_executor";
|
|
4
|
+
instructions: [
|
|
5
|
+
{
|
|
6
|
+
name: "relayLastMessage";
|
|
7
|
+
accounts: [
|
|
8
|
+
{
|
|
9
|
+
name: "payer";
|
|
10
|
+
isMut: true;
|
|
11
|
+
isSigner: true;
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: "payee";
|
|
15
|
+
isMut: true;
|
|
16
|
+
isSigner: false;
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: "messageTransmitter";
|
|
20
|
+
isMut: false;
|
|
21
|
+
isSigner: false;
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "executorProgram";
|
|
25
|
+
isMut: false;
|
|
26
|
+
isSigner: false;
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "systemProgram";
|
|
30
|
+
isMut: false;
|
|
31
|
+
isSigner: false;
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
args: [
|
|
35
|
+
{
|
|
36
|
+
name: "args";
|
|
37
|
+
type: {
|
|
38
|
+
defined: "relayLastMessageArgs";
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
types: [
|
|
45
|
+
{
|
|
46
|
+
name: "relayLastMessageArgs";
|
|
47
|
+
type: {
|
|
48
|
+
kind: "struct";
|
|
49
|
+
fields: [
|
|
50
|
+
{
|
|
51
|
+
name: "recipientChain";
|
|
52
|
+
type: "u16";
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "execAmount";
|
|
56
|
+
type: "u64";
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: "signedQuoteBytes";
|
|
60
|
+
type: "bytes";
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: "relayInstructions";
|
|
64
|
+
type: "bytes";
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
};
|
|
71
|
+
export declare const ExampleCctpWithExecutorIdl: ExampleCctpWithExecutor;
|
|
72
|
+
//# sourceMappingURL=example_cctp_with_executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example_cctp_with_executor.d.ts","sourceRoot":"","sources":["../../../../src/svm/idl/example_cctp_with_executor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,4BAA4B,CAAC;IACnC,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,kBAAkB,CAAC;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,OAAO,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,OAAO,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,oBAAoB,CAAC;oBAC3B,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,iBAAiB,CAAC;oBACxB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,sBAAsB,CAAC;qBACjC,CAAC;iBACH;aACF,CAAC;SACH;KACF,CAAC;IACF,KAAK,EAAE;QACL;YACE,IAAI,EAAE,sBAAsB,CAAC;YAC7B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,gBAAgB,CAAC;wBACvB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,kBAAkB,CAAC;wBACzB,IAAI,EAAE,OAAO,CAAC;qBACf;oBACD;wBACE,IAAI,EAAE,mBAAmB,CAAC;wBAC1B,IAAI,EAAE,OAAO,CAAC;qBACf;iBACF,CAAC;aACH,CAAC;SACH;KACF,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAqExC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExampleCctpWithExecutorIdl = void 0;
|
|
4
|
+
exports.ExampleCctpWithExecutorIdl = {
|
|
5
|
+
version: "0.1.0",
|
|
6
|
+
name: "example_cctp_with_executor",
|
|
7
|
+
instructions: [
|
|
8
|
+
{
|
|
9
|
+
name: "relayLastMessage",
|
|
10
|
+
accounts: [
|
|
11
|
+
{
|
|
12
|
+
name: "payer",
|
|
13
|
+
isMut: true,
|
|
14
|
+
isSigner: true,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "payee",
|
|
18
|
+
isMut: true,
|
|
19
|
+
isSigner: false,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "messageTransmitter",
|
|
23
|
+
isMut: false,
|
|
24
|
+
isSigner: false,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "executorProgram",
|
|
28
|
+
isMut: false,
|
|
29
|
+
isSigner: false,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "systemProgram",
|
|
33
|
+
isMut: false,
|
|
34
|
+
isSigner: false,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
args: [
|
|
38
|
+
{
|
|
39
|
+
name: "args",
|
|
40
|
+
type: {
|
|
41
|
+
defined: "relayLastMessageArgs",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
types: [
|
|
48
|
+
{
|
|
49
|
+
name: "relayLastMessageArgs",
|
|
50
|
+
type: {
|
|
51
|
+
kind: "struct",
|
|
52
|
+
fields: [
|
|
53
|
+
{
|
|
54
|
+
name: "recipientChain",
|
|
55
|
+
type: "u16",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "execAmount",
|
|
59
|
+
type: "u64",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "signedQuoteBytes",
|
|
63
|
+
type: "bytes",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "relayInstructions",
|
|
67
|
+
type: "bytes",
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=example_cctp_with_executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example_cctp_with_executor.js","sourceRoot":"","sources":["../../../../src/svm/idl/example_cctp_with_executor.ts"],"names":[],"mappings":";;;AAuEa,QAAA,0BAA0B,GAA4B;IACjE,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,OAAO,EAAE,sBAAsB;qBAChC;iBACF;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,KAAK;qBACZ;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,KAAK;qBACZ;oBACD;wBACE,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,OAAO;qBACd;oBACD;wBACE,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,OAAO;qBACd;iBACF;aACF;SACF;KACF;CACF,CAAC"}
|