@chainlink/ccip-sdk 0.94.0 → 0.96.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/all-chains.d.ts +23 -0
- package/dist/all-chains.d.ts.map +1 -0
- package/dist/all-chains.js +24 -0
- package/dist/all-chains.js.map +1 -0
- package/dist/api/index.d.ts +86 -7
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +270 -10
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +134 -13
- package/dist/api/types.d.ts.map +1 -1
- package/dist/aptos/index.d.ts +38 -17
- package/dist/aptos/index.d.ts.map +1 -1
- package/dist/aptos/index.js +91 -61
- package/dist/aptos/index.js.map +1 -1
- package/dist/aptos/logs.js +3 -3
- package/dist/aptos/logs.js.map +1 -1
- package/dist/chain.d.ts +300 -42
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js +160 -9
- package/dist/chain.js.map +1 -1
- package/dist/errors/codes.d.ts +9 -3
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/errors/codes.js +10 -3
- package/dist/errors/codes.js.map +1 -1
- package/dist/errors/index.d.ts +8 -8
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +8 -8
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/recovery.d.ts.map +1 -1
- package/dist/errors/recovery.js +10 -4
- package/dist/errors/recovery.js.map +1 -1
- package/dist/errors/specialized.d.ts +62 -21
- package/dist/errors/specialized.d.ts.map +1 -1
- package/dist/errors/specialized.js +128 -41
- package/dist/errors/specialized.js.map +1 -1
- package/dist/evm/extra-args.d.ts +25 -0
- package/dist/evm/extra-args.d.ts.map +1 -0
- package/dist/evm/extra-args.js +328 -0
- package/dist/evm/extra-args.js.map +1 -0
- package/dist/evm/gas.d.ts +14 -0
- package/dist/evm/gas.d.ts.map +1 -0
- package/dist/evm/gas.js +92 -0
- package/dist/evm/gas.js.map +1 -0
- package/dist/evm/index.d.ts +76 -32
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +94 -104
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/offchain.d.ts.map +1 -1
- package/dist/evm/offchain.js +8 -8
- package/dist/evm/offchain.js.map +1 -1
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +24 -3
- package/dist/execution.js.map +1 -1
- package/dist/extra-args.d.ts +103 -4
- package/dist/extra-args.d.ts.map +1 -1
- package/dist/extra-args.js +28 -3
- package/dist/extra-args.js.map +1 -1
- package/dist/gas.d.ts +46 -19
- package/dist/gas.d.ts.map +1 -1
- package/dist/gas.js +56 -68
- package/dist/gas.js.map +1 -1
- package/dist/index.d.ts +18 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -13
- package/dist/index.js.map +1 -1
- package/dist/offchain.d.ts +5 -4
- package/dist/offchain.d.ts.map +1 -1
- package/dist/offchain.js +7 -6
- package/dist/offchain.js.map +1 -1
- package/dist/requests.d.ts +30 -20
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +86 -56
- package/dist/requests.js.map +1 -1
- package/dist/selectors.d.ts +2 -1
- package/dist/selectors.d.ts.map +1 -1
- package/dist/selectors.js +625 -278
- package/dist/selectors.js.map +1 -1
- package/dist/solana/exec.d.ts.map +1 -1
- package/dist/solana/exec.js +2 -1
- package/dist/solana/exec.js.map +1 -1
- package/dist/solana/index.d.ts +73 -22
- package/dist/solana/index.d.ts.map +1 -1
- package/dist/solana/index.js +91 -28
- package/dist/solana/index.js.map +1 -1
- package/dist/solana/offchain.js +2 -2
- package/dist/solana/offchain.js.map +1 -1
- package/dist/solana/send.d.ts.map +1 -1
- package/dist/solana/send.js +6 -9
- package/dist/solana/send.js.map +1 -1
- package/dist/solana/utils.d.ts +29 -1
- package/dist/solana/utils.d.ts.map +1 -1
- package/dist/solana/utils.js +39 -1
- package/dist/solana/utils.js.map +1 -1
- package/dist/sui/discovery.d.ts +7 -4
- package/dist/sui/discovery.d.ts.map +1 -1
- package/dist/sui/discovery.js +66 -19
- package/dist/sui/discovery.js.map +1 -1
- package/dist/sui/events.d.ts +23 -12
- package/dist/sui/events.d.ts.map +1 -1
- package/dist/sui/events.js +267 -128
- package/dist/sui/events.js.map +1 -1
- package/dist/sui/index.d.ts +57 -41
- package/dist/sui/index.d.ts.map +1 -1
- package/dist/sui/index.js +286 -159
- package/dist/sui/index.js.map +1 -1
- package/dist/sui/objects.d.ts +14 -4
- package/dist/sui/objects.d.ts.map +1 -1
- package/dist/sui/objects.js +61 -68
- package/dist/sui/objects.js.map +1 -1
- package/dist/sui/types.d.ts +33 -0
- package/dist/sui/types.d.ts.map +1 -1
- package/dist/sui/types.js.map +1 -1
- package/dist/ton/index.d.ts +67 -21
- package/dist/ton/index.d.ts.map +1 -1
- package/dist/ton/index.js +159 -30
- package/dist/ton/index.js.map +1 -1
- package/dist/ton/send.d.ts +52 -0
- package/dist/ton/send.d.ts.map +1 -0
- package/dist/ton/send.js +166 -0
- package/dist/ton/send.js.map +1 -0
- package/dist/ton/utils.d.ts +3 -3
- package/dist/ton/utils.d.ts.map +1 -1
- package/dist/ton/utils.js +6 -5
- package/dist/ton/utils.js.map +1 -1
- package/dist/types.d.ts +126 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -5
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +67 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +126 -17
- package/dist/utils.js.map +1 -1
- package/package.json +14 -9
- package/src/all-chains.ts +26 -0
- package/src/api/index.ts +348 -13
- package/src/api/types.ts +160 -13
- package/src/aptos/index.ts +98 -76
- package/src/aptos/logs.ts +3 -3
- package/src/chain.ts +408 -51
- package/src/errors/codes.ts +10 -3
- package/src/errors/index.ts +8 -5
- package/src/errors/recovery.ts +18 -5
- package/src/errors/specialized.ts +168 -49
- package/src/evm/extra-args.ts +377 -0
- package/src/evm/gas.ts +150 -0
- package/src/evm/index.ts +123 -155
- package/src/evm/offchain.ts +15 -9
- package/src/execution.ts +26 -3
- package/src/extra-args.ts +108 -4
- package/src/gas.ts +101 -115
- package/src/index.ts +27 -14
- package/src/offchain.ts +12 -6
- package/src/requests.ts +117 -67
- package/src/selectors.ts +632 -280
- package/src/solana/exec.ts +3 -1
- package/src/solana/index.ts +97 -37
- package/src/solana/offchain.ts +2 -2
- package/src/solana/send.ts +5 -23
- package/src/solana/utils.ts +66 -0
- package/src/sui/discovery.ts +92 -31
- package/src/sui/events.ts +346 -239
- package/src/sui/index.ts +365 -212
- package/src/sui/objects.ts +74 -98
- package/src/sui/types.ts +35 -0
- package/src/ton/index.ts +199 -35
- package/src/ton/send.ts +222 -0
- package/src/ton/utils.ts +7 -6
- package/src/types.ts +128 -9
- package/src/utils.ts +169 -21
package/dist/evm/offchain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offchain.js","sourceRoot":"","sources":["../../src/evm/offchain.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,QAAQ,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"offchain.js","sourceRoot":"","sources":["../../src/evm/offchain.ts"],"names":[],"mappings":"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"}
|
package/dist/execution.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,YAAY,CAAA;AAOpD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;IASI;AACJ,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAC1E,eAAe,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAC1C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,IAAI,CAAC,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAC,CA2BxD;AAED,eAAO,MAAM,eAAe,4CAEhB,KAAK,QACP,KAAK,UACH,MAAM,eACQ,UAAU,KAC/B,OAAO,CAAC,MAAM,CAAC;;
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,YAAY,CAAA;AAOpD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;IASI;AACJ,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAC1E,eAAe,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAC1C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,IAAI,CAAC,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAC,CA2BxD;AAED,eAAO,MAAM,eAAe,4CAEhB,KAAK,QACP,KAAK,UACH,MAAM,eACQ,UAAU,KAC/B,OAAO,CAAC,MAAM,CAAC;;EAoDnB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAuB,oBAAoB,CACzC,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,KAAK,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,cAAc,CAAC,aAAa,CAAC,CAgB/B"}
|
package/dist/execution.js
CHANGED
|
@@ -39,12 +39,33 @@ export const discoverOffRamp = memoize(async function discoverOffRamp_(source, d
|
|
|
39
39
|
const sourceRouter = await source.getRouterForOnRamp(onRamp, dest.network.chainSelector);
|
|
40
40
|
const sourceOffRamps = await source.getOffRampsForRouter(sourceRouter, dest.network.chainSelector);
|
|
41
41
|
for (const offRamp of sourceOffRamps) {
|
|
42
|
-
|
|
42
|
+
let destOnRamp;
|
|
43
|
+
try {
|
|
44
|
+
destOnRamp = await source.getOnRampForOffRamp(offRamp, dest.network.chainSelector);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
logger.debug('discoverOffRamp: skipping offRamp', offRamp, '(no valid source chain config)');
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
43
50
|
const destRouter = await dest.getRouterForOnRamp(destOnRamp, source.network.chainSelector);
|
|
44
51
|
const destOffRamps = await dest.getOffRampsForRouter(destRouter, source.network.chainSelector);
|
|
45
52
|
for (const offRamp of destOffRamps) {
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
let offRampsOnRamp;
|
|
54
|
+
try {
|
|
55
|
+
offRampsOnRamp = await dest.getOnRampForOffRamp(offRamp, source.network.chainSelector);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
logger.debug('discoverOffRamp: skipping dest offRamp', offRamp, '(no valid source chain config)');
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
logger.debug('discoverOffRamp: found, from', {
|
|
62
|
+
sourceOnRamp: onRamp,
|
|
63
|
+
sourceRouter,
|
|
64
|
+
sourceOffRamps,
|
|
65
|
+
destOnRamp,
|
|
66
|
+
destOffRamps,
|
|
67
|
+
offRampsOnRamp,
|
|
68
|
+
}, '=', offRamp);
|
|
48
69
|
if (offRampsOnRamp === onRamp) {
|
|
49
70
|
return offRamp;
|
|
50
71
|
}
|
package/dist/execution.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EASL,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;IASI;AACJ,MAAM,UAAU,wBAAwB,CACtC,eAA0C,EAC1C,IAAa,EACb,SAAiB,EACjB,UAAmB,EACnB,GAAgB;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA;IACtF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,0BAA0B,CAAC,SAAS,EAAE;YAC9C,GAAG,EAAE,eAAe,CAAC,CAAC,CAAE,CAAC,cAAc;YACvC,GAAG,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,cAAc;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAEhE,2BAA2B;IAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7B,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,wCAAwC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAElC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;KACxB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CACpC,KAAK,UAAU,gBAAgB,CAC7B,MAAa,EACb,IAAW,EACX,MAAc,EACd,EAAE,MAAM,GAAG,OAAO,KAAiB,EAAE;IAErC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACxF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,oBAAoB,CACtD,YAAY,EACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAC3B,CAAA;IACD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
|
package/dist/extra-args.d.ts
CHANGED
|
@@ -4,12 +4,21 @@ import { ChainFamily } from './types.ts';
|
|
|
4
4
|
export declare const EVMExtraArgsV1Tag: "0x97a657c9";
|
|
5
5
|
/** Tag identifier for EVMExtraArgsV2 encoding. */
|
|
6
6
|
export declare const EVMExtraArgsV2Tag: "0x181dcf10";
|
|
7
|
+
/** Tag identifier for GenericExtraArgsV3 encoding (tightly packed binary format). */
|
|
8
|
+
export declare const GenericExtraArgsV3Tag: "0x302326cb";
|
|
7
9
|
/** Tag identifier for SVMExtraArgsV1 encoding. */
|
|
8
10
|
export declare const SVMExtraArgsV1Tag: "0x1f3b3aba";
|
|
9
11
|
/** Tag identifier for SuiExtraArgsV1 encoding. */
|
|
10
12
|
export declare const SuiExtraArgsV1Tag: "0x21ea4ca9";
|
|
11
13
|
/**
|
|
12
14
|
* EVM extra arguments version 1 with gas limit only.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const args: EVMExtraArgsV1 = {
|
|
19
|
+
* gasLimit: 200_000n,
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
13
22
|
*/
|
|
14
23
|
export type EVMExtraArgsV1 = {
|
|
15
24
|
/** Gas limit for execution on the destination chain. */
|
|
@@ -18,13 +27,68 @@ export type EVMExtraArgsV1 = {
|
|
|
18
27
|
/**
|
|
19
28
|
* EVM extra arguments version 2 with out-of-order execution support.
|
|
20
29
|
* Also known as GenericExtraArgsV2.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const args: EVMExtraArgsV2 = {
|
|
34
|
+
* gasLimit: 200_000n,
|
|
35
|
+
* allowOutOfOrderExecution: true,
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
21
38
|
*/
|
|
22
39
|
export type EVMExtraArgsV2 = EVMExtraArgsV1 & {
|
|
23
40
|
/** Whether to allow out-of-order message execution. */
|
|
24
41
|
allowOutOfOrderExecution: boolean;
|
|
25
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Generic extra arguments version 3 with cross-chain verifiers and executor support.
|
|
45
|
+
* Uses tightly packed binary encoding (NOT ABI-encoded).
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const args: GenericExtraArgsV3 = {
|
|
50
|
+
* gasLimit: 200_000n,
|
|
51
|
+
* blockConfirmations: 5,
|
|
52
|
+
* ccvs: ['0x1234...'],
|
|
53
|
+
* ccvArgs: ['0x010203'],
|
|
54
|
+
* executor: '0x5678...',
|
|
55
|
+
* executorArgs: '0x',
|
|
56
|
+
* tokenReceiver: '0xReceiverAddress...',
|
|
57
|
+
* tokenArgs: '0x',
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export type GenericExtraArgsV3 = {
|
|
62
|
+
/** Gas limit for execution on the destination chain (uint32). */
|
|
63
|
+
gasLimit: bigint;
|
|
64
|
+
/** Number of block confirmations required. */
|
|
65
|
+
blockConfirmations: number;
|
|
66
|
+
/** Cross-chain verifier addresses (EVM addresses). */
|
|
67
|
+
ccvs: string[];
|
|
68
|
+
/** Per-CCV arguments (BytesLike). */
|
|
69
|
+
ccvArgs: BytesLike[];
|
|
70
|
+
/** Executor address (EVM address or empty string for none). */
|
|
71
|
+
executor: string;
|
|
72
|
+
/** Executor-specific arguments (BytesLike). */
|
|
73
|
+
executorArgs: BytesLike;
|
|
74
|
+
/** Token receiver address (checksummed EVM address or hex string). */
|
|
75
|
+
tokenReceiver: string;
|
|
76
|
+
/** Token pool-specific arguments (BytesLike). */
|
|
77
|
+
tokenArgs: BytesLike;
|
|
78
|
+
};
|
|
26
79
|
/**
|
|
27
80
|
* Solana (SVM) extra arguments version 1.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const args: SVMExtraArgsV1 = {
|
|
85
|
+
* computeUnits: 200_000n,
|
|
86
|
+
* accountIsWritableBitmap: 0n,
|
|
87
|
+
* allowOutOfOrderExecution: true,
|
|
88
|
+
* tokenReceiver: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
|
|
89
|
+
* accounts: [],
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
28
92
|
*/
|
|
29
93
|
export type SVMExtraArgsV1 = {
|
|
30
94
|
/** Compute units for Solana execution. */
|
|
@@ -40,6 +104,16 @@ export type SVMExtraArgsV1 = {
|
|
|
40
104
|
};
|
|
41
105
|
/**
|
|
42
106
|
* Sui extra arguments version 1.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const args: SuiExtraArgsV1 = {
|
|
111
|
+
* gasLimit: 200_000n,
|
|
112
|
+
* allowOutOfOrderExecution: true,
|
|
113
|
+
* tokenReceiver: '0x1234...abcd',
|
|
114
|
+
* receiverObjectIds: ['0xobject1...', '0xobject2...'],
|
|
115
|
+
* }
|
|
116
|
+
* ```
|
|
43
117
|
*/
|
|
44
118
|
export type SuiExtraArgsV1 = EVMExtraArgsV2 & {
|
|
45
119
|
/** Token receiver address on Sui. */
|
|
@@ -50,23 +124,48 @@ export type SuiExtraArgsV1 = EVMExtraArgsV2 & {
|
|
|
50
124
|
/**
|
|
51
125
|
* Union type of all supported extra arguments formats.
|
|
52
126
|
*/
|
|
53
|
-
export type ExtraArgs = EVMExtraArgsV1 | EVMExtraArgsV2 | SVMExtraArgsV1 | SuiExtraArgsV1;
|
|
127
|
+
export type ExtraArgs = EVMExtraArgsV1 | EVMExtraArgsV2 | GenericExtraArgsV3 | SVMExtraArgsV1 | SuiExtraArgsV1;
|
|
54
128
|
/**
|
|
55
129
|
* Encodes extra arguments for CCIP messages.
|
|
56
|
-
* The args are *to* a dest network, but are encoded as a message *from* this source chain
|
|
57
|
-
*
|
|
58
|
-
|
|
130
|
+
* The args are *to* a dest network, but are encoded as a message *from* this source chain.
|
|
131
|
+
* E.g. Solana uses Borsh to encode extraArgs in its produced requests, even those targeting EVM.
|
|
132
|
+
* @param args - Extra arguments to encode
|
|
133
|
+
* @param from - Source chain family for encoding format (defaults to EVM)
|
|
134
|
+
* @returns Encoded extra arguments as hex string
|
|
135
|
+
* @throws {@link CCIPChainFamilyUnsupportedError} if chain family not supported
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const encoded = encodeExtraArgs({
|
|
140
|
+
* gasLimit: 200_000n,
|
|
141
|
+
* allowOutOfOrderExecution: true,
|
|
142
|
+
* })
|
|
143
|
+
* // Returns: '0x181dcf10...'
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
59
146
|
export declare function encodeExtraArgs(args: ExtraArgs, from?: ChainFamily): string;
|
|
60
147
|
/**
|
|
61
148
|
* Parses extra arguments from CCIP messages.
|
|
62
149
|
* @param data - Extra arguments bytearray data.
|
|
63
150
|
* @param from - Optional chain family to narrow decoding attempts.
|
|
64
151
|
* @returns Extra arguments object if found, undefined otherwise.
|
|
152
|
+
* @throws {@link CCIPChainFamilyUnsupportedError} if specified chain family not supported
|
|
153
|
+
* @throws {@link CCIPExtraArgsParseError} if data cannot be parsed as valid extra args
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const decoded = decodeExtraArgs('0x181dcf10...')
|
|
158
|
+
* if (decoded?._tag === 'EVMExtraArgsV2') {
|
|
159
|
+
* console.log(decoded.gasLimit, decoded.allowOutOfOrderExecution)
|
|
160
|
+
* }
|
|
161
|
+
* ```
|
|
65
162
|
*/
|
|
66
163
|
export declare function decodeExtraArgs(data: BytesLike, from?: ChainFamily): (EVMExtraArgsV1 & {
|
|
67
164
|
_tag: 'EVMExtraArgsV1';
|
|
68
165
|
}) | (EVMExtraArgsV2 & {
|
|
69
166
|
_tag: 'EVMExtraArgsV2';
|
|
167
|
+
}) | (GenericExtraArgsV3 & {
|
|
168
|
+
_tag: 'GenericExtraArgsV3';
|
|
70
169
|
}) | (SVMExtraArgsV1 & {
|
|
71
170
|
_tag: 'SVMExtraArgsV1';
|
|
72
171
|
}) | (SuiExtraArgsV1 & {
|
package/dist/extra-args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-args.d.ts","sourceRoot":"","sources":["../src/extra-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAM,MAAM,QAAQ,CAAA;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAE3F
|
|
1
|
+
{"version":3,"file":"extra-args.d.ts","sourceRoot":"","sources":["../src/extra-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAM,MAAM,QAAQ,CAAA;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAG,YAAqB,CAAA;AAC1D,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAC3F,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAiD,YAAY,CAAA;AAE3F;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,uDAAuD;IACvD,wBAAwB,EAAE,OAAO,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,qCAAqC;IACrC,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,YAAY,EAAE,SAAS,CAAA;IACvB,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uDAAuD;IACvD,wBAAwB,EAAE,OAAO,CAAA;IACjC,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,cAAc,GACd,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,cAAc,CAAA;AAElB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,WAA6B,GAAG,MAAM,CAI5F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,EAAE,WAAW,GAEhB,CAAC,cAAc,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,GAC7C,CAAC,cAAc,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,GAC7C,CAAC,kBAAkB,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC,GACrD,CAAC,cAAc,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,GAC7C,CAAC,cAAc,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,GAC7C,SAAS,CAeZ"}
|
package/dist/extra-args.js
CHANGED
|
@@ -6,15 +6,30 @@ import { ChainFamily } from "./types.js";
|
|
|
6
6
|
export const EVMExtraArgsV1Tag = id('CCIP EVMExtraArgsV1').substring(0, 10);
|
|
7
7
|
/** Tag identifier for EVMExtraArgsV2 encoding. */
|
|
8
8
|
export const EVMExtraArgsV2Tag = id('CCIP EVMExtraArgsV2').substring(0, 10);
|
|
9
|
+
/** Tag identifier for GenericExtraArgsV3 encoding (tightly packed binary format). */
|
|
10
|
+
export const GenericExtraArgsV3Tag = '0x302326cb';
|
|
9
11
|
/** Tag identifier for SVMExtraArgsV1 encoding. */
|
|
10
12
|
export const SVMExtraArgsV1Tag = id('CCIP SVMExtraArgsV1').substring(0, 10);
|
|
11
13
|
/** Tag identifier for SuiExtraArgsV1 encoding. */
|
|
12
14
|
export const SuiExtraArgsV1Tag = id('CCIP SuiExtraArgsV1').substring(0, 10);
|
|
13
15
|
/**
|
|
14
16
|
* Encodes extra arguments for CCIP messages.
|
|
15
|
-
* The args are *to* a dest network, but are encoded as a message *from* this source chain
|
|
16
|
-
*
|
|
17
|
-
|
|
17
|
+
* The args are *to* a dest network, but are encoded as a message *from* this source chain.
|
|
18
|
+
* E.g. Solana uses Borsh to encode extraArgs in its produced requests, even those targeting EVM.
|
|
19
|
+
* @param args - Extra arguments to encode
|
|
20
|
+
* @param from - Source chain family for encoding format (defaults to EVM)
|
|
21
|
+
* @returns Encoded extra arguments as hex string
|
|
22
|
+
* @throws {@link CCIPChainFamilyUnsupportedError} if chain family not supported
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const encoded = encodeExtraArgs({
|
|
27
|
+
* gasLimit: 200_000n,
|
|
28
|
+
* allowOutOfOrderExecution: true,
|
|
29
|
+
* })
|
|
30
|
+
* // Returns: '0x181dcf10...'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
18
33
|
export function encodeExtraArgs(args, from = ChainFamily.EVM) {
|
|
19
34
|
const chain = supportedChains[from];
|
|
20
35
|
if (!chain)
|
|
@@ -26,6 +41,16 @@ export function encodeExtraArgs(args, from = ChainFamily.EVM) {
|
|
|
26
41
|
* @param data - Extra arguments bytearray data.
|
|
27
42
|
* @param from - Optional chain family to narrow decoding attempts.
|
|
28
43
|
* @returns Extra arguments object if found, undefined otherwise.
|
|
44
|
+
* @throws {@link CCIPChainFamilyUnsupportedError} if specified chain family not supported
|
|
45
|
+
* @throws {@link CCIPExtraArgsParseError} if data cannot be parsed as valid extra args
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const decoded = decodeExtraArgs('0x181dcf10...')
|
|
50
|
+
* if (decoded?._tag === 'EVMExtraArgsV2') {
|
|
51
|
+
* console.log(decoded.gasLimit, decoded.allowOutOfOrderExecution)
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
29
54
|
*/
|
|
30
55
|
export function decodeExtraArgs(data, from) {
|
|
31
56
|
if (!data || data === '')
|
package/dist/extra-args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-args.js","sourceRoot":"","sources":["../src/extra-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"extra-args.js","sourceRoot":"","sources":["../src/extra-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAqB,CAAA;AAC1D,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAC3F,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AAgI3F;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,OAAoB,WAAW,CAAC,GAAG;IAClF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAe,EACf,IAAkB;IAQlB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAM;IAChC,IAAI,MAAM,CAAA;IACV,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACzC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;IAC7B,CAAC;IACD,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAA;AACzD,CAAC"}
|
package/dist/gas.d.ts
CHANGED
|
@@ -1,25 +1,52 @@
|
|
|
1
1
|
import { type BytesLike } from 'ethers';
|
|
2
2
|
import type { Chain } from './chain.ts';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* A subset of {@link MessageInput} for estimating receive execution gas.
|
|
5
|
+
*/
|
|
6
|
+
export type EstimateMessageInput = {
|
|
7
|
+
/** receiver contract address */
|
|
8
|
+
receiver: string;
|
|
9
|
+
/** optional messageId; random hash will be passed if omitted */
|
|
10
|
+
messageId?: string;
|
|
11
|
+
/** optional sender: zero address will be used if omitted */
|
|
12
|
+
sender?: string;
|
|
13
|
+
/** optional data: zero bytes will be used if omitted */
|
|
14
|
+
data?: BytesLike;
|
|
15
|
+
/**
|
|
16
|
+
* optional tokenAmounts; `amount` with either source `token` (as in MessageInput) or
|
|
17
|
+
* `{ sourceTokenAddress?, sourcePoolAddress, destTokenAddress }` (as in v1.5..v1.7 tokenAmounts)
|
|
18
|
+
* can be provided
|
|
19
|
+
*/
|
|
20
|
+
tokenAmounts?: readonly ({
|
|
21
|
+
amount: bigint;
|
|
22
|
+
} & ({
|
|
23
|
+
token: string;
|
|
24
|
+
} | {
|
|
25
|
+
sourceTokenAddress?: string;
|
|
26
|
+
sourcePoolAddress: string;
|
|
27
|
+
destTokenAddress: string;
|
|
28
|
+
}))[];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Options for {@link estimateReceiveExecution} function.
|
|
32
|
+
*/
|
|
33
|
+
export type EstimateReceiveExecutionOpts = {
|
|
34
|
+
/** Source chain instance (for token data retrieval) */
|
|
35
|
+
source: Chain;
|
|
36
|
+
/** Dest chain instance (for token and execution simulation) */
|
|
37
|
+
dest: Chain;
|
|
38
|
+
/** source router or onRamp, or dest offRamp contract address */
|
|
39
|
+
routerOrRamp: string;
|
|
40
|
+
/** message to be simulated */
|
|
41
|
+
message: EstimateMessageInput;
|
|
42
|
+
};
|
|
5
43
|
/**
|
|
6
44
|
* Estimate CCIP gasLimit needed to execute a request on a contract receiver.
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
9
|
-
* @
|
|
10
|
-
* @
|
|
45
|
+
* @param opts - Options for estimation: source and dest chains, router or ramp address, and message
|
|
46
|
+
* @returns Estimated gasLimit.
|
|
47
|
+
* @throws {@link CCIPMethodUnsupportedError} if dest chain doesn't support estimation
|
|
48
|
+
* @throws {@link CCIPContractTypeInvalidError} if routerOrRamp is not a valid contract type
|
|
49
|
+
* @throws {@link CCIPTokenDecimalsInsufficientError} if dest token has insufficient decimals
|
|
11
50
|
*/
|
|
12
|
-
export declare function
|
|
13
|
-
lane: Lane;
|
|
14
|
-
message: {
|
|
15
|
-
sender: string;
|
|
16
|
-
receiver: string;
|
|
17
|
-
data: BytesLike;
|
|
18
|
-
tokenAmounts: readonly {
|
|
19
|
-
sourcePoolAddress: string;
|
|
20
|
-
destTokenAddress: string;
|
|
21
|
-
amount: bigint;
|
|
22
|
-
}[];
|
|
23
|
-
};
|
|
24
|
-
}): Promise<number>;
|
|
51
|
+
export declare function estimateReceiveExecution({ source, dest, routerOrRamp, message, }: EstimateReceiveExecutionOpts): Promise<number>;
|
|
25
52
|
//# sourceMappingURL=gas.d.ts.map
|
package/dist/gas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqC,MAAM,QAAQ,CAAA;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AASvC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;QACvB,MAAM,EAAE,MAAM,CAAA;KACf,GAAG,CACA;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACjB;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CACvF,CAAC,EAAE,CAAA;CACL,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,uDAAuD;IACvD,MAAM,EAAE,KAAK,CAAA;IACb,+DAA+D;IAC/D,IAAI,EAAE,KAAK,CAAA;IACX,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAA;IACpB,8BAA8B;IAC9B,OAAO,EAAE,oBAAoB,CAAA;CAC9B,CAAA;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,OAAO,GACR,EAAE,4BAA4B,mBA8D9B"}
|
package/dist/gas.js
CHANGED
|
@@ -1,79 +1,67 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import TokenABI from "./evm/abi/BurnMintERC677Token.js";
|
|
4
|
-
import RouterABI from "./evm/abi/Router.js";
|
|
5
|
-
import { defaultAbiCoder } from "./evm/const.js";
|
|
1
|
+
import { formatUnits, hexlify, randomBytes } from 'ethers';
|
|
2
|
+
import { CCIPContractTypeInvalidError, CCIPMethodUnsupportedError, CCIPTokenDecimalsInsufficientError, } from "./errors/index.js";
|
|
6
3
|
import { discoverOffRamp } from "./execution.js";
|
|
7
|
-
|
|
8
|
-
const ccipReceive = FunctionFragment.from({
|
|
9
|
-
type: 'function',
|
|
10
|
-
name: 'ccipReceive',
|
|
11
|
-
stateMutability: 'nonpayable',
|
|
12
|
-
inputs: RouterABI.find((v) => v.type === 'function' && v.name === 'routeMessage').inputs.slice(0, 1),
|
|
13
|
-
outputs: [],
|
|
14
|
-
});
|
|
4
|
+
import { sourceToDestTokenAddresses } from "./requests.js";
|
|
15
5
|
/**
|
|
16
6
|
* Estimate CCIP gasLimit needed to execute a request on a contract receiver.
|
|
17
|
-
* @param
|
|
18
|
-
* @
|
|
19
|
-
* @
|
|
20
|
-
* @
|
|
7
|
+
* @param opts - Options for estimation: source and dest chains, router or ramp address, and message
|
|
8
|
+
* @returns Estimated gasLimit.
|
|
9
|
+
* @throws {@link CCIPMethodUnsupportedError} if dest chain doesn't support estimation
|
|
10
|
+
* @throws {@link CCIPContractTypeInvalidError} if routerOrRamp is not a valid contract type
|
|
11
|
+
* @throws {@link CCIPTokenDecimalsInsufficientError} if dest token has insufficient decimals
|
|
21
12
|
*/
|
|
22
|
-
export async function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
export async function estimateReceiveExecution({ source, dest, routerOrRamp, message, }) {
|
|
14
|
+
if (!dest.estimateReceiveExecution)
|
|
15
|
+
throw new CCIPMethodUnsupportedError(dest.constructor.name, 'estimateReceiveExecution');
|
|
16
|
+
let onRamp, offRamp;
|
|
17
|
+
try {
|
|
18
|
+
const tnv = await source.typeAndVersion(routerOrRamp);
|
|
19
|
+
if (!tnv[0].includes('OnRamp'))
|
|
20
|
+
onRamp = await source.getOnRampForRouter(routerOrRamp, dest.network.chainSelector);
|
|
21
|
+
else
|
|
22
|
+
onRamp = routerOrRamp;
|
|
23
|
+
offRamp = await discoverOffRamp(source, dest, onRamp, source);
|
|
24
|
+
}
|
|
25
|
+
catch (sourceErr) {
|
|
26
|
+
try {
|
|
27
|
+
const tnv = await dest.typeAndVersion(routerOrRamp);
|
|
28
|
+
if (!tnv[0].includes('OffRamp'))
|
|
29
|
+
throw new CCIPContractTypeInvalidError(routerOrRamp, tnv[2], ['OffRamp']);
|
|
30
|
+
offRamp = routerOrRamp;
|
|
31
|
+
onRamp = await dest.getOnRampForOffRamp(offRamp, source.network.chainSelector);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw sourceErr; // re-throw original error
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const destTokenAmounts = await Promise.all((message.tokenAmounts ?? []).map(async (ta) => {
|
|
38
|
+
const tokenAmount = 'destTokenAddress' in ta
|
|
39
|
+
? ta
|
|
40
|
+
: await sourceToDestTokenAddresses(source, dest.network.chainSelector, onRamp, ta);
|
|
41
|
+
const sourceTokenAddress = 'token' in ta
|
|
42
|
+
? ta.token
|
|
43
|
+
: ta.sourceTokenAddress
|
|
44
|
+
? ta.sourceTokenAddress
|
|
45
|
+
: await source.getTokenForTokenPool(tokenAmount.sourcePoolAddress);
|
|
28
46
|
const [{ decimals: sourceDecimals }, { decimals: destDecimals }] = await Promise.all([
|
|
29
|
-
source
|
|
30
|
-
|
|
31
|
-
.then((token) => source.getTokenInfo(token)),
|
|
32
|
-
dest.getTokenInfo(ta.destTokenAddress),
|
|
47
|
+
source.getTokenInfo(sourceTokenAddress),
|
|
48
|
+
dest.getTokenInfo(tokenAmount.destTokenAddress),
|
|
33
49
|
]);
|
|
34
|
-
const destAmount = (
|
|
50
|
+
const destAmount = (tokenAmount.amount * 10n ** BigInt(destDecimals)) / 10n ** BigInt(sourceDecimals);
|
|
35
51
|
if (destAmount === 0n)
|
|
36
|
-
throw new CCIPTokenDecimalsInsufficientError(
|
|
37
|
-
return { token:
|
|
52
|
+
throw new CCIPTokenDecimalsInsufficientError(tokenAmount.destTokenAddress, destDecimals, dest.network.name, formatUnits(tokenAmount.amount, sourceDecimals));
|
|
53
|
+
return { token: tokenAmount.destTokenAddress, amount: destAmount };
|
|
38
54
|
}));
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const destAmounts = {};
|
|
49
|
-
const stateOverrides = {};
|
|
50
|
-
for (const { token, amount } of destTokenAmounts) {
|
|
51
|
-
if (!(token in destAmounts)) {
|
|
52
|
-
const tokenContract = new Contract(token, TokenABI, dest);
|
|
53
|
-
const currentBalance = await tokenContract.balanceOf(request.message.receiver);
|
|
54
|
-
destAmounts[token] = currentBalance;
|
|
55
|
-
}
|
|
56
|
-
destAmounts[token] += amount;
|
|
57
|
-
stateOverrides[token] = {
|
|
58
|
-
stateDiff: {
|
|
59
|
-
[solidityPackedKeccak256(['uint256', 'uint256'], [request.message.receiver, BALANCES_SLOT])]: toBeHex(destAmounts[token], 32),
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const calldata = concat([
|
|
64
|
-
ccipReceive.selector,
|
|
65
|
-
defaultAbiCoder.encode(ccipReceive.inputs, [message]),
|
|
66
|
-
]);
|
|
67
|
-
return (getNumber((await dest.provider.send('eth_estimateGas', [
|
|
68
|
-
{
|
|
69
|
-
from: destRouter,
|
|
70
|
-
to: request.message.receiver,
|
|
71
|
-
data: calldata,
|
|
55
|
+
return dest.estimateReceiveExecution({
|
|
56
|
+
receiver: message.receiver,
|
|
57
|
+
offRamp,
|
|
58
|
+
message: {
|
|
59
|
+
messageId: message.messageId ?? hexlify(randomBytes(32)),
|
|
60
|
+
sender: message.sender,
|
|
61
|
+
data: message.data,
|
|
62
|
+
sourceChainSelector: source.network.chainSelector,
|
|
63
|
+
destTokenAmounts,
|
|
72
64
|
},
|
|
73
|
-
|
|
74
|
-
...(Object.keys(stateOverrides).length ? [stateOverrides] : []),
|
|
75
|
-
]))) -
|
|
76
|
-
(21_000 - 700) // 21k is the base gas cost for a transaction, 700 is the gas cost of the call
|
|
77
|
-
);
|
|
65
|
+
});
|
|
78
66
|
}
|
|
79
67
|
//# sourceMappingURL=gas.js.map
|
package/dist/gas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* \@chainlink/ccip-sdk - SDK for interacting with Chainlink CCIP (Cross-Chain Interoperability Protocol).
|
|
3
|
+
*
|
|
4
|
+
* This package provides tools for sending cross-chain messages, tracking message status,
|
|
5
|
+
* and executing manual message delivery across supported blockchain networks.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export type { APICCIPRequestMetadata, APIErrorResponse, CCIPAPIClientContext, LaneLatencyResponse, } from './api/index.ts';
|
|
2
10
|
export { CCIPAPIClient, DEFAULT_API_BASE_URL } from './api/index.ts';
|
|
3
|
-
export type { Chain, ChainContext, ChainGetter, ChainStatic, LogFilter, RateLimiterState, TokenInfo, TokenPoolRemote, } from './chain.ts';
|
|
11
|
+
export type { ApiRetryConfig, Chain, ChainContext, ChainGetter, ChainStatic, GetBalanceOpts, LogFilter, RateLimiterState, RegistryTokenConfig, TokenInfo, TokenPoolConfig, TokenPoolRemote, } from './chain.ts';
|
|
12
|
+
export { DEFAULT_API_RETRY_CONFIG } from './chain.ts';
|
|
4
13
|
export { calculateManualExecProof, discoverOffRamp } from './execution.ts';
|
|
5
14
|
export { type EVMExtraArgsV1, type EVMExtraArgsV2, type ExtraArgs, type SVMExtraArgsV1, type SuiExtraArgsV1, decodeExtraArgs, encodeExtraArgs, } from './extra-args.ts';
|
|
6
|
-
export {
|
|
7
|
-
export { decodeMessage, getMessagesForSender,
|
|
8
|
-
export { type CCIPCommit, type CCIPExecution, type CCIPMessage, type CCIPRequest, type ChainTransaction, type CommitReport, type ExecutionReceipt, type ExecutionReport, type Lane, type Logger, type
|
|
9
|
-
export {
|
|
15
|
+
export { estimateReceiveExecution } from './gas.ts';
|
|
16
|
+
export { decodeMessage, getMessagesForSender, sourceToDestTokenAddresses } from './requests.ts';
|
|
17
|
+
export { type CCIPCommit, type CCIPExecution, type CCIPMessage, type CCIPRequest, type ChainTransaction, type CommitReport, type ExecutionReceipt, type ExecutionReport, type Lane, type Logger, type MessageInput, type NetworkInfo, type OffchainTokenData, type WithLogger, CCIPVersion, ExecutionState, IntentStatus, MessageStatus, } from './types.ts';
|
|
18
|
+
export type { WithRetryConfig } from './utils.ts';
|
|
19
|
+
export { bigIntReplacer, bigIntReviver, bytesToBuffer, decodeAddress, getDataBytes, isSupportedTxHash, networkInfo, withRetry, } from './utils.ts';
|
|
10
20
|
export { type CCIPExplorerLinks, type ExplorerLinkType, CCIP_EXPLORER_BASE_URL, getCCIPExplorerLinks, getCCIPExplorerUrl, } from './explorer.ts';
|
|
11
21
|
export * from './errors/index.ts';
|
|
12
22
|
import { AptosChain } from './aptos/index.ts';
|
|
@@ -18,14 +28,7 @@ export type { UnsignedSolanaTx } from './solana/index.ts';
|
|
|
18
28
|
import { SuiChain } from './sui/index.ts';
|
|
19
29
|
import { TONChain } from './ton/index.ts';
|
|
20
30
|
export type { UnsignedTONTx } from './ton/index.ts';
|
|
21
|
-
import { ChainFamily } from './types.ts';
|
|
22
|
-
export { AptosChain, ChainFamily, EVMChain, SolanaChain, SuiChain, TONChain };
|
|
31
|
+
import { ChainFamily, NetworkType } from './types.ts';
|
|
32
|
+
export { AptosChain, ChainFamily, EVMChain, NetworkType, SolanaChain, SuiChain, TONChain };
|
|
23
33
|
export { supportedChains } from './supported-chains.ts';
|
|
24
|
-
export declare const allSupportedChains: {
|
|
25
|
-
evm: typeof EVMChain;
|
|
26
|
-
solana: typeof SolanaChain;
|
|
27
|
-
aptos: typeof AptosChain;
|
|
28
|
-
sui: typeof SuiChain;
|
|
29
|
-
ton: typeof TONChain;
|
|
30
|
-
};
|
|
31
34
|
//# sourceMappingURL=index.d.ts.map
|