@chainlink/ccip-sdk 0.96.0 → 0.97.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/dist/api/index.d.ts +17 -8
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +27 -10
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +0 -2
- package/dist/api/types.d.ts.map +1 -1
- package/dist/aptos/exec.d.ts +2 -2
- package/dist/aptos/exec.d.ts.map +1 -1
- package/dist/aptos/exec.js.map +1 -1
- package/dist/aptos/hasher.d.ts.map +1 -1
- package/dist/aptos/hasher.js +1 -1
- package/dist/aptos/hasher.js.map +1 -1
- package/dist/aptos/index.d.ts +13 -10
- package/dist/aptos/index.d.ts.map +1 -1
- package/dist/aptos/index.js +42 -68
- package/dist/aptos/index.js.map +1 -1
- package/dist/aptos/types.d.ts +2 -19
- package/dist/aptos/types.d.ts.map +1 -1
- package/dist/aptos/types.js +0 -11
- package/dist/aptos/types.js.map +1 -1
- package/dist/chain.d.ts +532 -151
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js +113 -18
- package/dist/chain.js.map +1 -1
- package/dist/commits.d.ts +4 -6
- package/dist/commits.d.ts.map +1 -1
- package/dist/commits.js +4 -4
- package/dist/commits.js.map +1 -1
- package/dist/errors/CCIPError.d.ts +33 -4
- package/dist/errors/CCIPError.d.ts.map +1 -1
- package/dist/errors/CCIPError.js +33 -4
- package/dist/errors/CCIPError.js.map +1 -1
- package/dist/errors/codes.d.ts +3 -0
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/errors/codes.js +3 -1
- package/dist/errors/codes.js.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/recovery.d.ts.map +1 -1
- package/dist/errors/recovery.js +4 -1
- package/dist/errors/recovery.js.map +1 -1
- package/dist/errors/specialized.d.ts +1695 -120
- package/dist/errors/specialized.d.ts.map +1 -1
- package/dist/errors/specialized.js +1715 -123
- package/dist/errors/specialized.js.map +1 -1
- package/dist/errors/utils.d.ts.map +1 -1
- package/dist/errors/utils.js +0 -1
- package/dist/errors/utils.js.map +1 -1
- package/dist/evm/abi/OffRamp_2_0.d.ts +764 -0
- package/dist/evm/abi/OffRamp_2_0.d.ts.map +1 -0
- package/dist/evm/abi/OffRamp_2_0.js +744 -0
- package/dist/evm/abi/OffRamp_2_0.js.map +1 -0
- package/dist/evm/abi/OnRamp_2_0.d.ts +925 -0
- package/dist/evm/abi/OnRamp_2_0.d.ts.map +1 -0
- package/dist/evm/abi/OnRamp_2_0.js +992 -0
- package/dist/evm/abi/OnRamp_2_0.js.map +1 -0
- package/dist/evm/const.d.ts +12 -2
- package/dist/evm/const.d.ts.map +1 -1
- package/dist/evm/const.js +8 -2
- package/dist/evm/const.js.map +1 -1
- package/dist/evm/errors.d.ts.map +1 -1
- package/dist/evm/errors.js +7 -2
- package/dist/evm/errors.js.map +1 -1
- package/dist/evm/extra-args.d.ts.map +1 -1
- package/dist/evm/extra-args.js +5 -24
- package/dist/evm/extra-args.js.map +1 -1
- package/dist/evm/hasher.d.ts.map +1 -1
- package/dist/evm/hasher.js +23 -13
- package/dist/evm/hasher.js.map +1 -1
- package/dist/evm/index.d.ts +73 -14
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +240 -141
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/messages.d.ts +59 -5
- package/dist/evm/messages.d.ts.map +1 -1
- package/dist/evm/messages.js +210 -0
- package/dist/evm/messages.js.map +1 -1
- package/dist/evm/offchain.js.map +1 -1
- package/dist/evm/types.d.ts +7 -2
- package/dist/evm/types.d.ts.map +1 -1
- package/dist/evm/types.js +22 -1
- package/dist/evm/types.js.map +1 -1
- package/dist/execution.d.ts +62 -22
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +98 -61
- package/dist/execution.js.map +1 -1
- package/dist/extra-args.d.ts +13 -3
- package/dist/extra-args.d.ts.map +1 -1
- package/dist/extra-args.js +13 -3
- package/dist/extra-args.js.map +1 -1
- package/dist/gas.d.ts +25 -2
- package/dist/gas.d.ts.map +1 -1
- package/dist/gas.js +30 -4
- package/dist/gas.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/requests.d.ts +85 -14
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +99 -16
- package/dist/requests.js.map +1 -1
- package/dist/selectors.d.ts.map +1 -1
- package/dist/selectors.js +12 -0
- package/dist/selectors.js.map +1 -1
- package/dist/shared/bcs-codecs.d.ts +61 -0
- package/dist/shared/bcs-codecs.d.ts.map +1 -0
- package/dist/shared/bcs-codecs.js +102 -0
- package/dist/shared/bcs-codecs.js.map +1 -0
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +3 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/solana/exec.d.ts +2 -2
- package/dist/solana/exec.d.ts.map +1 -1
- package/dist/solana/exec.js.map +1 -1
- package/dist/solana/index.d.ts +80 -17
- package/dist/solana/index.d.ts.map +1 -1
- package/dist/solana/index.js +67 -30
- package/dist/solana/index.js.map +1 -1
- package/dist/sui/hasher.d.ts.map +1 -1
- package/dist/sui/hasher.js +1 -1
- package/dist/sui/hasher.js.map +1 -1
- package/dist/sui/index.d.ts +14 -12
- package/dist/sui/index.d.ts.map +1 -1
- package/dist/sui/index.js +38 -34
- package/dist/sui/index.js.map +1 -1
- package/dist/sui/manuallyExec/encoder.d.ts +2 -2
- package/dist/sui/manuallyExec/encoder.d.ts.map +1 -1
- package/dist/sui/manuallyExec/encoder.js.map +1 -1
- package/dist/sui/manuallyExec/index.d.ts +2 -2
- package/dist/sui/manuallyExec/index.d.ts.map +1 -1
- package/dist/ton/exec.d.ts +2 -2
- package/dist/ton/exec.d.ts.map +1 -1
- package/dist/ton/exec.js.map +1 -1
- package/dist/ton/index.d.ts +9 -16
- package/dist/ton/index.d.ts.map +1 -1
- package/dist/ton/index.js +26 -31
- package/dist/ton/index.js.map +1 -1
- package/dist/ton/types.d.ts +2 -2
- package/dist/ton/types.d.ts.map +1 -1
- package/dist/ton/types.js.map +1 -1
- package/dist/types.d.ts +46 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +65 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +74 -2
- package/dist/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/api/index.ts +33 -10
- package/src/api/types.ts +0 -2
- package/src/aptos/exec.ts +2 -2
- package/src/aptos/hasher.ts +1 -1
- package/src/aptos/index.ts +51 -89
- package/src/aptos/types.ts +2 -15
- package/src/chain.ts +581 -163
- package/src/commits.ts +9 -9
- package/src/errors/CCIPError.ts +33 -4
- package/src/errors/codes.ts +3 -1
- package/src/errors/index.ts +1 -0
- package/src/errors/recovery.ts +7 -1
- package/src/errors/specialized.ts +1726 -130
- package/src/errors/utils.ts +0 -1
- package/src/evm/abi/OffRamp_2_0.ts +743 -0
- package/src/evm/abi/OnRamp_2_0.ts +991 -0
- package/src/evm/const.ts +10 -3
- package/src/evm/errors.ts +6 -2
- package/src/evm/extra-args.ts +4 -21
- package/src/evm/hasher.ts +30 -18
- package/src/evm/index.ts +310 -166
- package/src/evm/messages.ts +323 -11
- package/src/evm/offchain.ts +2 -2
- package/src/evm/types.ts +20 -2
- package/src/execution.ts +125 -86
- package/src/extra-args.ts +13 -3
- package/src/gas.ts +29 -3
- package/src/index.ts +2 -2
- package/src/requests.ts +112 -16
- package/src/selectors.ts +12 -0
- package/src/shared/bcs-codecs.ts +132 -0
- package/src/shared/constants.ts +2 -0
- package/src/solana/exec.ts +4 -4
- package/src/solana/index.ts +100 -68
- package/src/sui/hasher.ts +1 -1
- package/src/sui/index.ts +50 -47
- package/src/sui/manuallyExec/encoder.ts +2 -2
- package/src/sui/manuallyExec/index.ts +2 -2
- package/src/ton/exec.ts +2 -2
- package/src/ton/index.ts +37 -40
- package/src/ton/types.ts +2 -2
- package/src/types.ts +70 -29
- package/src/utils.ts +73 -2
- package/dist/aptos/utils.d.ts +0 -12
- package/dist/aptos/utils.d.ts.map +0 -1
- package/dist/aptos/utils.js +0 -15
- package/dist/aptos/utils.js.map +0 -1
- package/src/aptos/utils.ts +0 -24
package/dist/execution.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Chain } from './chain.ts';
|
|
2
|
-
import
|
|
2
|
+
import type { CCIPMessage, CCIPVersion, Lane, WithLogger } from './types.ts';
|
|
3
3
|
/**
|
|
4
4
|
* Pure/sync function to calculate/generate OffRamp.executeManually report for messageIds
|
|
5
5
|
*
|
|
@@ -9,29 +9,69 @@ import { type CCIPCommit, type CCIPExecution, type CCIPMessage, type CCIPRequest
|
|
|
9
9
|
* @param merkleRoot - Optional merkleRoot of the CommitReport, for validation
|
|
10
10
|
* @param ctx - Context for logging
|
|
11
11
|
* @returns ManualExec report arguments
|
|
12
|
+
* @throws CCIPMessageNotInBatchError - When the messageId is not found in the provided batch
|
|
13
|
+
* @throws CCIPMerkleRootMismatchError - When calculated merkle root doesn't match the provided one
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* This is a pure/sync function that performs no I/O - all data must be pre-fetched.
|
|
17
|
+
* It builds a merkle tree from the messages, generates a proof for the target messageId,
|
|
18
|
+
* and optionally validates against the provided merkleRoot.
|
|
19
|
+
*
|
|
20
|
+
* The returned proof can be used with `execute` to manually execute a stuck message.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { calculateManualExecProof, EVMChain } from '@chainlink/ccip-sdk'
|
|
25
|
+
*
|
|
26
|
+
* // Fetch the request and all messages in its batch
|
|
27
|
+
* const request = (await source.getMessagesInTx(txHash))[0]
|
|
28
|
+
* const verifications = await dest.getVerifications({ offRamp, request })
|
|
29
|
+
* const messages = await source.getMessagesInBatch(request, commit.report)
|
|
30
|
+
*
|
|
31
|
+
* // Calculate proof for manual execution
|
|
32
|
+
* const proof = calculateManualExecProof(
|
|
33
|
+
* messages,
|
|
34
|
+
* request.lane,
|
|
35
|
+
* request.message.messageId,
|
|
36
|
+
* commit.report.merkleRoot
|
|
37
|
+
* )
|
|
38
|
+
* console.log('Merkle root:', proof.merkleRoot)
|
|
39
|
+
* console.log('Proofs:', proof.proofs)
|
|
40
|
+
* ```
|
|
41
|
+
* @see {@link discoverOffRamp} - Find the OffRamp for manual execution
|
|
42
|
+
* @see {@link execute} - Execute the report on destination chain
|
|
43
|
+
* @see {@link generateUnsignedExecute} - Build unsigned execution tx
|
|
12
44
|
**/
|
|
13
|
-
export declare function calculateManualExecProof<V extends CCIPVersion = CCIPVersion>(messagesInBatch: readonly CCIPMessage<V>[], lane: Lane<V>, messageId: string, merkleRoot?: string, ctx?: WithLogger):
|
|
45
|
+
export declare function calculateManualExecProof<V extends CCIPVersion = CCIPVersion>(messagesInBatch: readonly CCIPMessage<V>[], lane: Lane<V>, messageId: string, merkleRoot?: string, ctx?: WithLogger): {
|
|
46
|
+
proofs: string[];
|
|
47
|
+
proofFlagBits: bigint;
|
|
48
|
+
merkleRoot: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Discover the OffRamp address for a given OnRamp and destination chain.
|
|
52
|
+
* Results are memoized for performance.
|
|
53
|
+
*
|
|
54
|
+
* @param source - Source chain instance.
|
|
55
|
+
* @param dest - Destination chain instance.
|
|
56
|
+
* @param onRamp - OnRamp contract address on source chain.
|
|
57
|
+
* @param ctx - Optional context with logger.
|
|
58
|
+
* @returns OffRamp address on destination chain.
|
|
59
|
+
* @throws CCIPOffRampNotFoundError - When no matching OffRamp is found for the OnRamp
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import { discoverOffRamp, EVMChain } from '@chainlink/ccip-sdk'
|
|
63
|
+
*
|
|
64
|
+
* const source = await EVMChain.fromUrl('https://rpc.sepolia.org')
|
|
65
|
+
* const dest = await EVMChain.fromUrl('https://rpc.fuji.avax.network')
|
|
66
|
+
*
|
|
67
|
+
* const offRamp = await discoverOffRamp(source, dest, onRampAddress)
|
|
68
|
+
* console.log('OffRamp on destination:', offRamp)
|
|
69
|
+
* ```
|
|
70
|
+
* @see {@link calculateManualExecProof} - Use with OffRamp for manual execution
|
|
71
|
+
* @see {@link execute} - Execute on destination chain
|
|
72
|
+
* @see {@link getExecutionReceipts} - Check execution status
|
|
73
|
+
*/
|
|
14
74
|
export declare const discoverOffRamp: import("micro-memoize").Memoized<(source: Chain, dest: Chain, onRamp: string, { logger }?: WithLogger) => Promise<string>, {
|
|
15
75
|
transformKey: ([source, dest, onRamp]: [source: Chain<import("./types.ts").ChainFamily>, dest: Chain<import("./types.ts").ChainFamily>, onRamp: string, (WithLogger | undefined)?]) => [bigint, bigint, string];
|
|
16
76
|
}>;
|
|
17
|
-
/**
|
|
18
|
-
* Generic implementation for fetching ExecutionReceipts for given requests.
|
|
19
|
-
* If more than one request is given, may yield them interleaved.
|
|
20
|
-
* Completes as soon as there's no more work to be done.
|
|
21
|
-
*
|
|
22
|
-
* Two possible behaviors:
|
|
23
|
-
* - if `startBlock|startTime` is given, pages forward from that block up;
|
|
24
|
-
* completes when success (final) receipt is found for all requests (or reach latest block)
|
|
25
|
-
* - otherwise, pages backwards and returns only the most recent receipt per request;
|
|
26
|
-
* completes when receipts for all requests were seen
|
|
27
|
-
*
|
|
28
|
-
* @param dest - Provider to page through.
|
|
29
|
-
* @param offRamp - OffRamp contract address.
|
|
30
|
-
* @param request - CCIP request to search executions for.
|
|
31
|
-
* @param commit - Optional commit info to narrow down search.
|
|
32
|
-
* @param hints - Optional hints (e.g., `page` for getLogs pagination range).
|
|
33
|
-
*/
|
|
34
|
-
export declare function getExecutionReceipts(dest: Chain, offRamp: string, request: CCIPRequest, commit?: CCIPCommit, hints?: {
|
|
35
|
-
page?: number;
|
|
36
|
-
}): AsyncGenerator<CCIPExecution>;
|
|
37
77
|
//# sourceMappingURL=execution.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAOvC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyCI;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;;;;EA4BjB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,4CAEhB,KAAK,QACP,KAAK,UACH,MAAM,eACQ,UAAU,KAC/B,OAAO,CAAC,MAAM,CAAC;;EAsFnB,CAAA"}
|
package/dist/execution.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { memoize } from 'micro-memoize';
|
|
2
2
|
import { CCIPMerkleRootMismatchError, CCIPMessageNotInBatchError, CCIPOffRampNotFoundError, } from "./errors/index.js";
|
|
3
3
|
import { Tree, getLeafHasher, proofFlagsToBits } from "./hasher/index.js";
|
|
4
|
-
import { ExecutionState, } from "./types.js";
|
|
5
4
|
/**
|
|
6
5
|
* Pure/sync function to calculate/generate OffRamp.executeManually report for messageIds
|
|
7
6
|
*
|
|
@@ -11,6 +10,38 @@ import { ExecutionState, } from "./types.js";
|
|
|
11
10
|
* @param merkleRoot - Optional merkleRoot of the CommitReport, for validation
|
|
12
11
|
* @param ctx - Context for logging
|
|
13
12
|
* @returns ManualExec report arguments
|
|
13
|
+
* @throws CCIPMessageNotInBatchError - When the messageId is not found in the provided batch
|
|
14
|
+
* @throws CCIPMerkleRootMismatchError - When calculated merkle root doesn't match the provided one
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* This is a pure/sync function that performs no I/O - all data must be pre-fetched.
|
|
18
|
+
* It builds a merkle tree from the messages, generates a proof for the target messageId,
|
|
19
|
+
* and optionally validates against the provided merkleRoot.
|
|
20
|
+
*
|
|
21
|
+
* The returned proof can be used with `execute` to manually execute a stuck message.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { calculateManualExecProof, EVMChain } from '@chainlink/ccip-sdk'
|
|
26
|
+
*
|
|
27
|
+
* // Fetch the request and all messages in its batch
|
|
28
|
+
* const request = (await source.getMessagesInTx(txHash))[0]
|
|
29
|
+
* const verifications = await dest.getVerifications({ offRamp, request })
|
|
30
|
+
* const messages = await source.getMessagesInBatch(request, commit.report)
|
|
31
|
+
*
|
|
32
|
+
* // Calculate proof for manual execution
|
|
33
|
+
* const proof = calculateManualExecProof(
|
|
34
|
+
* messages,
|
|
35
|
+
* request.lane,
|
|
36
|
+
* request.message.messageId,
|
|
37
|
+
* commit.report.merkleRoot
|
|
38
|
+
* )
|
|
39
|
+
* console.log('Merkle root:', proof.merkleRoot)
|
|
40
|
+
* console.log('Proofs:', proof.proofs)
|
|
41
|
+
* ```
|
|
42
|
+
* @see {@link discoverOffRamp} - Find the OffRamp for manual execution
|
|
43
|
+
* @see {@link execute} - Execute the report on destination chain
|
|
44
|
+
* @see {@link generateUnsignedExecute} - Build unsigned execution tx
|
|
14
45
|
**/
|
|
15
46
|
export function calculateManualExecProof(messagesInBatch, lane, messageId, merkleRoot, ctx) {
|
|
16
47
|
const hasher = getLeafHasher(lane, ctx);
|
|
@@ -35,39 +66,80 @@ export function calculateManualExecProof(messagesInBatch, lane, messageId, merkl
|
|
|
35
66
|
merkleRoot: tree.root(),
|
|
36
67
|
};
|
|
37
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Discover the OffRamp address for a given OnRamp and destination chain.
|
|
71
|
+
* Results are memoized for performance.
|
|
72
|
+
*
|
|
73
|
+
* @param source - Source chain instance.
|
|
74
|
+
* @param dest - Destination chain instance.
|
|
75
|
+
* @param onRamp - OnRamp contract address on source chain.
|
|
76
|
+
* @param ctx - Optional context with logger.
|
|
77
|
+
* @returns OffRamp address on destination chain.
|
|
78
|
+
* @throws CCIPOffRampNotFoundError - When no matching OffRamp is found for the OnRamp
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* import { discoverOffRamp, EVMChain } from '@chainlink/ccip-sdk'
|
|
82
|
+
*
|
|
83
|
+
* const source = await EVMChain.fromUrl('https://rpc.sepolia.org')
|
|
84
|
+
* const dest = await EVMChain.fromUrl('https://rpc.fuji.avax.network')
|
|
85
|
+
*
|
|
86
|
+
* const offRamp = await discoverOffRamp(source, dest, onRampAddress)
|
|
87
|
+
* console.log('OffRamp on destination:', offRamp)
|
|
88
|
+
* ```
|
|
89
|
+
* @see {@link calculateManualExecProof} - Use with OffRamp for manual execution
|
|
90
|
+
* @see {@link execute} - Execute on destination chain
|
|
91
|
+
* @see {@link getExecutionReceipts} - Check execution status
|
|
92
|
+
*/
|
|
38
93
|
export const discoverOffRamp = memoize(async function discoverOffRamp_(source, dest, onRamp, { logger = console } = {}) {
|
|
39
94
|
const sourceRouter = await source.getRouterForOnRamp(onRamp, dest.network.chainSelector);
|
|
40
95
|
const sourceOffRamps = await source.getOffRampsForRouter(sourceRouter, dest.network.chainSelector);
|
|
41
96
|
for (const offRamp of sourceOffRamps) {
|
|
42
|
-
let
|
|
97
|
+
let destOnRamps;
|
|
43
98
|
try {
|
|
44
|
-
|
|
99
|
+
destOnRamps = await source.getOnRampsForOffRamp(offRamp, dest.network.chainSelector);
|
|
45
100
|
}
|
|
46
|
-
catch {
|
|
47
|
-
logger.debug('discoverOffRamp: skipping offRamp', offRamp, '(no valid source chain config)');
|
|
101
|
+
catch (err) {
|
|
102
|
+
logger.debug('discoverOffRamp: skipping offRamp', offRamp, '(no valid source chain config)', err);
|
|
48
103
|
continue;
|
|
49
104
|
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
105
|
+
for (const destOnRamp of destOnRamps) {
|
|
106
|
+
const destRouter = await dest.getRouterForOnRamp(destOnRamp, source.network.chainSelector);
|
|
107
|
+
const destOffRamps = await dest.getOffRampsForRouter(destRouter, source.network.chainSelector);
|
|
108
|
+
for (const offRamp of destOffRamps) {
|
|
109
|
+
let offRampsOnRamps;
|
|
110
|
+
try {
|
|
111
|
+
offRampsOnRamps = await dest.getOnRampsForOffRamp(offRamp, source.network.chainSelector);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
logger.debug('discoverOffRamp: skipping dest offRamp', offRamp, '(no valid source chain config)', err);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
for (const offRampsOnRamp of offRampsOnRamps) {
|
|
118
|
+
logger.debug('discoverOffRamp: found, from', {
|
|
119
|
+
sourceOnRamp: onRamp,
|
|
120
|
+
sourceRouter,
|
|
121
|
+
sourceOffRamps,
|
|
122
|
+
destOnRamp,
|
|
123
|
+
destOffRamps,
|
|
124
|
+
offRampsOnRamp,
|
|
125
|
+
}, '=', offRamp);
|
|
126
|
+
for (const offRamp of destOffRamps) {
|
|
127
|
+
const offRampsOnRamps = await dest.getOnRampsForOffRamp(offRamp, source.network.chainSelector);
|
|
128
|
+
for (const offRampsOnRamp of offRampsOnRamps) {
|
|
129
|
+
logger.debug('discoverOffRamp: found, from', {
|
|
130
|
+
sourceOnRamp: onRamp,
|
|
131
|
+
sourceRouter,
|
|
132
|
+
sourceOffRamps,
|
|
133
|
+
destOnRamp,
|
|
134
|
+
destOffRamps,
|
|
135
|
+
offRampsOnRamps,
|
|
136
|
+
}, '=', offRamp);
|
|
137
|
+
if (offRampsOnRamp === onRamp) {
|
|
138
|
+
return offRamp;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
71
143
|
}
|
|
72
144
|
}
|
|
73
145
|
}
|
|
@@ -75,39 +147,4 @@ export const discoverOffRamp = memoize(async function discoverOffRamp_(source, d
|
|
|
75
147
|
}, {
|
|
76
148
|
transformKey: ([source, dest, onRamp]) => [source.network.chainSelector, dest.network.chainSelector, onRamp],
|
|
77
149
|
});
|
|
78
|
-
/**
|
|
79
|
-
* Generic implementation for fetching ExecutionReceipts for given requests.
|
|
80
|
-
* If more than one request is given, may yield them interleaved.
|
|
81
|
-
* Completes as soon as there's no more work to be done.
|
|
82
|
-
*
|
|
83
|
-
* Two possible behaviors:
|
|
84
|
-
* - if `startBlock|startTime` is given, pages forward from that block up;
|
|
85
|
-
* completes when success (final) receipt is found for all requests (or reach latest block)
|
|
86
|
-
* - otherwise, pages backwards and returns only the most recent receipt per request;
|
|
87
|
-
* completes when receipts for all requests were seen
|
|
88
|
-
*
|
|
89
|
-
* @param dest - Provider to page through.
|
|
90
|
-
* @param offRamp - OffRamp contract address.
|
|
91
|
-
* @param request - CCIP request to search executions for.
|
|
92
|
-
* @param commit - Optional commit info to narrow down search.
|
|
93
|
-
* @param hints - Optional hints (e.g., `page` for getLogs pagination range).
|
|
94
|
-
*/
|
|
95
|
-
export async function* getExecutionReceipts(dest, offRamp, request, commit, hints) {
|
|
96
|
-
const onlyLast = !commit?.log.blockNumber && !request.tx.timestamp; // backwards
|
|
97
|
-
for await (const log of dest.getLogs({
|
|
98
|
-
startBlock: commit?.log.blockNumber,
|
|
99
|
-
startTime: request.tx.timestamp,
|
|
100
|
-
address: offRamp,
|
|
101
|
-
topics: ['ExecutionStateChanged'],
|
|
102
|
-
...hints,
|
|
103
|
-
})) {
|
|
104
|
-
const receipt = dest.constructor.decodeReceipt(log);
|
|
105
|
-
if (!receipt || receipt.messageId !== request.message.messageId)
|
|
106
|
-
continue;
|
|
107
|
-
const timestamp = log.tx?.timestamp ?? (await dest.getBlockTimestamp(log.blockNumber));
|
|
108
|
-
yield { receipt, log, timestamp };
|
|
109
|
-
if (onlyLast || receipt.state === ExecutionState.Success)
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
150
|
//# sourceMappingURL=execution.js.map
|
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;
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../src/execution.ts"],"names":[],"mappings":"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"}
|
package/dist/extra-args.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare const EVMExtraArgsV1Tag: "0x97a657c9";
|
|
|
5
5
|
/** Tag identifier for EVMExtraArgsV2 encoding. */
|
|
6
6
|
export declare const EVMExtraArgsV2Tag: "0x181dcf10";
|
|
7
7
|
/** Tag identifier for GenericExtraArgsV3 encoding (tightly packed binary format). */
|
|
8
|
-
export declare const GenericExtraArgsV3Tag: "
|
|
8
|
+
export declare const GenericExtraArgsV3Tag: "0xa69dd4aa";
|
|
9
9
|
/** Tag identifier for SVMExtraArgsV1 encoding. */
|
|
10
10
|
export declare const SVMExtraArgsV1Tag: "0x1f3b3aba";
|
|
11
11
|
/** Tag identifier for SuiExtraArgsV1 encoding. */
|
|
@@ -129,6 +129,7 @@ export type ExtraArgs = EVMExtraArgsV1 | EVMExtraArgsV2 | GenericExtraArgsV3 | S
|
|
|
129
129
|
* Encodes extra arguments for CCIP messages.
|
|
130
130
|
* The args are *to* a dest network, but are encoded as a message *from* this source chain.
|
|
131
131
|
* E.g. Solana uses Borsh to encode extraArgs in its produced requests, even those targeting EVM.
|
|
132
|
+
*
|
|
132
133
|
* @param args - Extra arguments to encode
|
|
133
134
|
* @param from - Source chain family for encoding format (defaults to EVM)
|
|
134
135
|
* @returns Encoded extra arguments as hex string
|
|
@@ -136,12 +137,16 @@ export type ExtraArgs = EVMExtraArgsV1 | EVMExtraArgsV2 | GenericExtraArgsV3 | S
|
|
|
136
137
|
*
|
|
137
138
|
* @example
|
|
138
139
|
* ```typescript
|
|
140
|
+
* import { encodeExtraArgs } from '@chainlink/ccip-sdk'
|
|
141
|
+
*
|
|
139
142
|
* const encoded = encodeExtraArgs({
|
|
140
143
|
* gasLimit: 200_000n,
|
|
141
144
|
* allowOutOfOrderExecution: true,
|
|
142
145
|
* })
|
|
143
|
-
* //
|
|
146
|
+
* console.log('Encoded:', encoded) // '0x181dcf10...'
|
|
144
147
|
* ```
|
|
148
|
+
*
|
|
149
|
+
* @see {@link decodeExtraArgs} - Decode extra arguments from bytes
|
|
145
150
|
*/
|
|
146
151
|
export declare function encodeExtraArgs(args: ExtraArgs, from?: ChainFamily): string;
|
|
147
152
|
/**
|
|
@@ -154,11 +159,16 @@ export declare function encodeExtraArgs(args: ExtraArgs, from?: ChainFamily): st
|
|
|
154
159
|
*
|
|
155
160
|
* @example
|
|
156
161
|
* ```typescript
|
|
162
|
+
* import { decodeExtraArgs } from '@chainlink/ccip-sdk'
|
|
163
|
+
*
|
|
157
164
|
* const decoded = decodeExtraArgs('0x181dcf10...')
|
|
158
165
|
* if (decoded?._tag === 'EVMExtraArgsV2') {
|
|
159
|
-
* console.log(
|
|
166
|
+
* console.log('Gas limit:', decoded.gasLimit)
|
|
167
|
+
* console.log('Out of order:', decoded.allowOutOfOrderExecution)
|
|
160
168
|
* }
|
|
161
169
|
* ```
|
|
170
|
+
*
|
|
171
|
+
* @see {@link encodeExtraArgs} - Encode extra arguments to bytes
|
|
162
172
|
*/
|
|
163
173
|
export declare function decodeExtraArgs(data: BytesLike, from?: ChainFamily): (EVMExtraArgsV1 & {
|
|
164
174
|
_tag: 'EVMExtraArgsV1';
|
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,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,
|
|
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,EAAqD,YAAY,CAAA;AACnG,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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,WAA6B,GAAG,MAAM,CAI5F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;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
|
@@ -7,7 +7,7 @@ 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
9
|
/** Tag identifier for GenericExtraArgsV3 encoding (tightly packed binary format). */
|
|
10
|
-
export const GenericExtraArgsV3Tag = '
|
|
10
|
+
export const GenericExtraArgsV3Tag = id('CCIP GenericExtraArgsV3').substring(0, 10);
|
|
11
11
|
/** Tag identifier for SVMExtraArgsV1 encoding. */
|
|
12
12
|
export const SVMExtraArgsV1Tag = id('CCIP SVMExtraArgsV1').substring(0, 10);
|
|
13
13
|
/** Tag identifier for SuiExtraArgsV1 encoding. */
|
|
@@ -16,6 +16,7 @@ export const SuiExtraArgsV1Tag = id('CCIP SuiExtraArgsV1').substring(0, 10);
|
|
|
16
16
|
* Encodes extra arguments for CCIP messages.
|
|
17
17
|
* The args are *to* a dest network, but are encoded as a message *from* this source chain.
|
|
18
18
|
* E.g. Solana uses Borsh to encode extraArgs in its produced requests, even those targeting EVM.
|
|
19
|
+
*
|
|
19
20
|
* @param args - Extra arguments to encode
|
|
20
21
|
* @param from - Source chain family for encoding format (defaults to EVM)
|
|
21
22
|
* @returns Encoded extra arguments as hex string
|
|
@@ -23,12 +24,16 @@ export const SuiExtraArgsV1Tag = id('CCIP SuiExtraArgsV1').substring(0, 10);
|
|
|
23
24
|
*
|
|
24
25
|
* @example
|
|
25
26
|
* ```typescript
|
|
27
|
+
* import { encodeExtraArgs } from '@chainlink/ccip-sdk'
|
|
28
|
+
*
|
|
26
29
|
* const encoded = encodeExtraArgs({
|
|
27
30
|
* gasLimit: 200_000n,
|
|
28
31
|
* allowOutOfOrderExecution: true,
|
|
29
32
|
* })
|
|
30
|
-
* //
|
|
33
|
+
* console.log('Encoded:', encoded) // '0x181dcf10...'
|
|
31
34
|
* ```
|
|
35
|
+
*
|
|
36
|
+
* @see {@link decodeExtraArgs} - Decode extra arguments from bytes
|
|
32
37
|
*/
|
|
33
38
|
export function encodeExtraArgs(args, from = ChainFamily.EVM) {
|
|
34
39
|
const chain = supportedChains[from];
|
|
@@ -46,11 +51,16 @@ export function encodeExtraArgs(args, from = ChainFamily.EVM) {
|
|
|
46
51
|
*
|
|
47
52
|
* @example
|
|
48
53
|
* ```typescript
|
|
54
|
+
* import { decodeExtraArgs } from '@chainlink/ccip-sdk'
|
|
55
|
+
*
|
|
49
56
|
* const decoded = decodeExtraArgs('0x181dcf10...')
|
|
50
57
|
* if (decoded?._tag === 'EVMExtraArgsV2') {
|
|
51
|
-
* console.log(
|
|
58
|
+
* console.log('Gas limit:', decoded.gasLimit)
|
|
59
|
+
* console.log('Out of order:', decoded.allowOutOfOrderExecution)
|
|
52
60
|
* }
|
|
53
61
|
* ```
|
|
62
|
+
*
|
|
63
|
+
* @see {@link encodeExtraArgs} - Encode extra arguments to bytes
|
|
54
64
|
*/
|
|
55
65
|
export function decodeExtraArgs(data, from) {
|
|
56
66
|
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,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
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,EAAE,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAiB,CAAA;AACnG,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;;;;;;;;;;;;;;;;;;;;;;GAsBG;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;;;;;;;;;;;;;;;;;;;;GAoBG;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
|
@@ -42,11 +42,34 @@ export type EstimateReceiveExecutionOpts = {
|
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Estimate CCIP gasLimit needed to execute a request on a contract receiver.
|
|
45
|
-
*
|
|
46
|
-
* @
|
|
45
|
+
*
|
|
46
|
+
* @param opts - {@link EstimateReceiveExecutionOpts} for estimation
|
|
47
|
+
* @returns Estimated gasLimit
|
|
48
|
+
*
|
|
47
49
|
* @throws {@link CCIPMethodUnsupportedError} if dest chain doesn't support estimation
|
|
48
50
|
* @throws {@link CCIPContractTypeInvalidError} if routerOrRamp is not a valid contract type
|
|
49
51
|
* @throws {@link CCIPTokenDecimalsInsufficientError} if dest token has insufficient decimals
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* import { estimateReceiveExecution, EVMChain } from '@chainlink/ccip-sdk'
|
|
56
|
+
*
|
|
57
|
+
* const source = await EVMChain.fromUrl('https://rpc.sepolia.org')
|
|
58
|
+
* const dest = await EVMChain.fromUrl('https://rpc.fuji.avax.network')
|
|
59
|
+
*
|
|
60
|
+
* const gasLimit = await estimateReceiveExecution({
|
|
61
|
+
* source,
|
|
62
|
+
* dest,
|
|
63
|
+
* routerOrRamp: '0xRouter...',
|
|
64
|
+
* message: {
|
|
65
|
+
* sender: '0x...',
|
|
66
|
+
* receiver: '0x...',
|
|
67
|
+
* data: '0x...',
|
|
68
|
+
* tokenAmounts: [],
|
|
69
|
+
* },
|
|
70
|
+
* })
|
|
71
|
+
* console.log('Estimated gas:', gasLimit)
|
|
72
|
+
* ```
|
|
50
73
|
*/
|
|
51
74
|
export declare function estimateReceiveExecution({ source, dest, routerOrRamp, message, }: EstimateReceiveExecutionOpts): Promise<number>;
|
|
52
75
|
//# 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,EAAE,KAAK,SAAS,EAAqC,MAAM,QAAQ,CAAA;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
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;AAUvC;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,OAAO,GACR,EAAE,4BAA4B,mBAgE9B"}
|
package/dist/gas.js
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
import { formatUnits, hexlify, randomBytes } from 'ethers';
|
|
2
|
-
import { CCIPContractTypeInvalidError, CCIPMethodUnsupportedError, CCIPTokenDecimalsInsufficientError, } from "./errors/index.js";
|
|
2
|
+
import { CCIPContractTypeInvalidError, CCIPMethodUnsupportedError, CCIPOnRampRequiredError, CCIPTokenDecimalsInsufficientError, } from "./errors/index.js";
|
|
3
3
|
import { discoverOffRamp } from "./execution.js";
|
|
4
4
|
import { sourceToDestTokenAddresses } from "./requests.js";
|
|
5
5
|
/**
|
|
6
6
|
* Estimate CCIP gasLimit needed to execute a request on a contract receiver.
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
7
|
+
*
|
|
8
|
+
* @param opts - {@link EstimateReceiveExecutionOpts} for estimation
|
|
9
|
+
* @returns Estimated gasLimit
|
|
10
|
+
*
|
|
9
11
|
* @throws {@link CCIPMethodUnsupportedError} if dest chain doesn't support estimation
|
|
10
12
|
* @throws {@link CCIPContractTypeInvalidError} if routerOrRamp is not a valid contract type
|
|
11
13
|
* @throws {@link CCIPTokenDecimalsInsufficientError} if dest token has insufficient decimals
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { estimateReceiveExecution, EVMChain } from '@chainlink/ccip-sdk'
|
|
18
|
+
*
|
|
19
|
+
* const source = await EVMChain.fromUrl('https://rpc.sepolia.org')
|
|
20
|
+
* const dest = await EVMChain.fromUrl('https://rpc.fuji.avax.network')
|
|
21
|
+
*
|
|
22
|
+
* const gasLimit = await estimateReceiveExecution({
|
|
23
|
+
* source,
|
|
24
|
+
* dest,
|
|
25
|
+
* routerOrRamp: '0xRouter...',
|
|
26
|
+
* message: {
|
|
27
|
+
* sender: '0x...',
|
|
28
|
+
* receiver: '0x...',
|
|
29
|
+
* data: '0x...',
|
|
30
|
+
* tokenAmounts: [],
|
|
31
|
+
* },
|
|
32
|
+
* })
|
|
33
|
+
* console.log('Estimated gas:', gasLimit)
|
|
34
|
+
* ```
|
|
12
35
|
*/
|
|
13
36
|
export async function estimateReceiveExecution({ source, dest, routerOrRamp, message, }) {
|
|
14
37
|
if (!dest.estimateReceiveExecution)
|
|
@@ -28,7 +51,10 @@ export async function estimateReceiveExecution({ source, dest, routerOrRamp, mes
|
|
|
28
51
|
if (!tnv[0].includes('OffRamp'))
|
|
29
52
|
throw new CCIPContractTypeInvalidError(routerOrRamp, tnv[2], ['OffRamp']);
|
|
30
53
|
offRamp = routerOrRamp;
|
|
31
|
-
|
|
54
|
+
const onRamps = await dest.getOnRampsForOffRamp(offRamp, source.network.chainSelector);
|
|
55
|
+
if (!onRamps.length)
|
|
56
|
+
throw new CCIPOnRampRequiredError();
|
|
57
|
+
onRamp = onRamps[onRamps.length - 1];
|
|
32
58
|
}
|
|
33
59
|
catch {
|
|
34
60
|
throw sourceErr; // re-throw original error
|
package/dist/gas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAG1E,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAyC1D
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../src/gas.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { calculateManualExecProof, discoverOffRamp } from './execution.ts';
|
|
|
14
14
|
export { type EVMExtraArgsV1, type EVMExtraArgsV2, type ExtraArgs, type SVMExtraArgsV1, type SuiExtraArgsV1, decodeExtraArgs, encodeExtraArgs, } from './extra-args.ts';
|
|
15
15
|
export { estimateReceiveExecution } from './gas.ts';
|
|
16
16
|
export { decodeMessage, getMessagesForSender, sourceToDestTokenAddresses } from './requests.ts';
|
|
17
|
-
export { type
|
|
17
|
+
export { type CCIPExecution, type CCIPMessage, type CCIPRequest, type CCIPVerifications, type ChainTransaction, type CommitReport, type ExecutionInput, type ExecutionReceipt, type Lane, type Logger, type MessageInput, type NetworkInfo, type OffchainTokenData, type WithLogger, CCIPVersion, ExecutionState, IntentStatus, MessageStatus, } from './types.ts';
|
|
18
18
|
export type { WithRetryConfig } from './utils.ts';
|
|
19
19
|
export { bigIntReplacer, bigIntReviver, bytesToBuffer, decodeAddress, getDataBytes, isSupportedTxHash, networkInfo, withRetry, } from './utils.ts';
|
|
20
20
|
export { type CCIPExplorerLinks, type ExplorerLinkType, CCIP_EXPLORER_BASE_URL, getCCIPExplorerLinks, getCCIPExplorerUrl, } from './explorer.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,YAAY,EACV,cAAc,EACd,KAAK,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC/F,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,YAAY,EACV,cAAc,EACd,KAAK,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC/F,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAGtB,cAAc,mBAAmB,CAAA;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAE1F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
|