@chainlink/ccip-sdk 0.0.0 → 0.90.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/LICENSE +21 -0
- package/README.md +109 -0
- package/dist/aptos/exec.d.ts +18 -0
- package/dist/aptos/exec.d.ts.map +1 -0
- package/dist/aptos/exec.js +55 -0
- package/dist/aptos/exec.js.map +1 -0
- package/dist/aptos/hasher.d.ts +11 -0
- package/dist/aptos/hasher.d.ts.map +1 -0
- package/dist/aptos/hasher.js +62 -0
- package/dist/aptos/hasher.js.map +1 -0
- package/dist/aptos/index.d.ts +92 -0
- package/dist/aptos/index.d.ts.map +1 -0
- package/dist/aptos/index.js +482 -0
- package/dist/aptos/index.js.map +1 -0
- package/dist/aptos/logs.d.ts +9 -0
- package/dist/aptos/logs.d.ts.map +1 -0
- package/dist/aptos/logs.js +167 -0
- package/dist/aptos/logs.js.map +1 -0
- package/dist/aptos/send.d.ts +11 -0
- package/dist/aptos/send.d.ts.map +1 -0
- package/dist/aptos/send.js +78 -0
- package/dist/aptos/send.js.map +1 -0
- package/dist/aptos/token.d.ts +4 -0
- package/dist/aptos/token.d.ts.map +1 -0
- package/dist/aptos/token.js +134 -0
- package/dist/aptos/token.js.map +1 -0
- package/dist/aptos/types.d.ts +78 -0
- package/dist/aptos/types.d.ts.map +1 -0
- package/dist/aptos/types.js +60 -0
- package/dist/aptos/types.js.map +1 -0
- package/dist/aptos/utils.d.ts +12 -0
- package/dist/aptos/utils.d.ts.map +1 -0
- package/dist/aptos/utils.js +15 -0
- package/dist/aptos/utils.js.map +1 -0
- package/dist/chain.d.ts +344 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +41 -0
- package/dist/chain.js.map +1 -0
- package/dist/commits.d.ts +25 -0
- package/dist/commits.d.ts.map +1 -0
- package/dist/commits.js +29 -0
- package/dist/commits.js.map +1 -0
- package/dist/evm/abi/BurnMintERC677Token.d.ts +602 -0
- package/dist/evm/abi/BurnMintERC677Token.d.ts.map +1 -0
- package/dist/evm/abi/BurnMintERC677Token.js +488 -0
- package/dist/evm/abi/BurnMintERC677Token.js.map +1 -0
- package/dist/evm/abi/CommitStore_1_2.d.ts +688 -0
- package/dist/evm/abi/CommitStore_1_2.d.ts.map +1 -0
- package/dist/evm/abi/CommitStore_1_2.js +638 -0
- package/dist/evm/abi/CommitStore_1_2.js.map +1 -0
- package/dist/evm/abi/CommitStore_1_5.d.ts +708 -0
- package/dist/evm/abi/CommitStore_1_5.d.ts.map +1 -0
- package/dist/evm/abi/CommitStore_1_5.js +675 -0
- package/dist/evm/abi/CommitStore_1_5.js.map +1 -0
- package/dist/evm/abi/FeeQuoter_1_6.d.ts +1770 -0
- package/dist/evm/abi/FeeQuoter_1_6.d.ts.map +1 -0
- package/dist/evm/abi/FeeQuoter_1_6.js +1904 -0
- package/dist/evm/abi/FeeQuoter_1_6.js.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5.d.ts +1116 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5.d.ts.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5.js +1096 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5.js.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5_1.d.ts +1306 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5_1.d.ts.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5_1.js +1278 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_5_1.js.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_6_1.d.ts +1290 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_6_1.d.ts.map +1 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_6_1.js +1288 -0
- package/dist/evm/abi/LockReleaseTokenPool_1_6_1.js.map +1 -0
- package/dist/evm/abi/OffRamp_1_2.d.ts +1217 -0
- package/dist/evm/abi/OffRamp_1_2.d.ts.map +1 -0
- package/dist/evm/abi/OffRamp_1_2.js +1204 -0
- package/dist/evm/abi/OffRamp_1_2.js.map +1 -0
- package/dist/evm/abi/OffRamp_1_5.d.ts +1271 -0
- package/dist/evm/abi/OffRamp_1_5.d.ts.map +1 -0
- package/dist/evm/abi/OffRamp_1_5.js +1273 -0
- package/dist/evm/abi/OffRamp_1_5.js.map +1 -0
- package/dist/evm/abi/OffRamp_1_6.d.ts +1472 -0
- package/dist/evm/abi/OffRamp_1_6.d.ts.map +1 -0
- package/dist/evm/abi/OffRamp_1_6.js +1529 -0
- package/dist/evm/abi/OffRamp_1_6.js.map +1 -0
- package/dist/evm/abi/OnRamp_1_2.d.ts +1391 -0
- package/dist/evm/abi/OnRamp_1_2.d.ts.map +1 -0
- package/dist/evm/abi/OnRamp_1_2.js +1343 -0
- package/dist/evm/abi/OnRamp_1_2.js.map +1 -0
- package/dist/evm/abi/OnRamp_1_5.d.ts +1443 -0
- package/dist/evm/abi/OnRamp_1_5.d.ts.map +1 -0
- package/dist/evm/abi/OnRamp_1_5.js +1427 -0
- package/dist/evm/abi/OnRamp_1_5.js.map +1 -0
- package/dist/evm/abi/OnRamp_1_6.d.ts +796 -0
- package/dist/evm/abi/OnRamp_1_6.d.ts.map +1 -0
- package/dist/evm/abi/OnRamp_1_6.js +880 -0
- package/dist/evm/abi/OnRamp_1_6.js.map +1 -0
- package/dist/evm/abi/Router.d.ts +541 -0
- package/dist/evm/abi/Router.d.ts.map +1 -0
- package/dist/evm/abi/Router.js +508 -0
- package/dist/evm/abi/Router.js.map +1 -0
- package/dist/evm/abi/TokenAdminRegistry_1_5.d.ts +373 -0
- package/dist/evm/abi/TokenAdminRegistry_1_5.d.ts.map +1 -0
- package/dist/evm/abi/TokenAdminRegistry_1_5.js +333 -0
- package/dist/evm/abi/TokenAdminRegistry_1_5.js.map +1 -0
- package/dist/evm/const.d.ts +27 -0
- package/dist/evm/const.d.ts.map +1 -0
- package/dist/evm/const.js +63 -0
- package/dist/evm/const.js.map +1 -0
- package/dist/evm/errors.d.ts +36 -0
- package/dist/evm/errors.d.ts.map +1 -0
- package/dist/evm/errors.js +192 -0
- package/dist/evm/errors.js.map +1 -0
- package/dist/evm/hasher.d.ts +5 -0
- package/dist/evm/hasher.d.ts.map +1 -0
- package/dist/evm/hasher.js +116 -0
- package/dist/evm/hasher.js.map +1 -0
- package/dist/evm/index.d.ts +121 -0
- package/dist/evm/index.d.ts.map +1 -0
- package/dist/evm/index.js +904 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/evm/messages.d.ts +35 -0
- package/dist/evm/messages.d.ts.map +1 -0
- package/dist/evm/messages.js +11 -0
- package/dist/evm/messages.js.map +1 -0
- package/dist/evm/offchain.d.ts +16 -0
- package/dist/evm/offchain.d.ts.map +1 -0
- package/dist/evm/offchain.js +142 -0
- package/dist/evm/offchain.js.map +1 -0
- package/dist/execution.d.ts +80 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +91 -0
- package/dist/execution.js.map +1 -0
- package/dist/extra-args.d.ts +45 -0
- package/dist/extra-args.d.ts.map +1 -0
- package/dist/extra-args.js +44 -0
- package/dist/extra-args.js.map +1 -0
- package/dist/gas.d.ts +27 -0
- package/dist/gas.d.ts.map +1 -0
- package/dist/gas.js +80 -0
- package/dist/gas.js.map +1 -0
- package/dist/hasher/common.d.ts +12 -0
- package/dist/hasher/common.d.ts.map +1 -0
- package/dist/hasher/common.js +19 -0
- package/dist/hasher/common.js.map +1 -0
- package/dist/hasher/hasher.d.ts +4 -0
- package/dist/hasher/hasher.d.ts.map +1 -0
- package/dist/hasher/hasher.js +11 -0
- package/dist/hasher/hasher.js.map +1 -0
- package/dist/hasher/index.d.ts +4 -0
- package/dist/hasher/index.d.ts.map +1 -0
- package/dist/hasher/index.js +4 -0
- package/dist/hasher/index.js.map +1 -0
- package/dist/hasher/merklemulti.d.ts +58 -0
- package/dist/hasher/merklemulti.d.ts.map +1 -0
- package/dist/hasher/merklemulti.js +257 -0
- package/dist/hasher/merklemulti.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/offchain.d.ts +20 -0
- package/dist/offchain.d.ts.map +1 -0
- package/dist/offchain.js +59 -0
- package/dist/offchain.js.map +1 -0
- package/dist/requests.d.ts +48 -0
- package/dist/requests.d.ts.map +1 -0
- package/dist/requests.js +286 -0
- package/dist/requests.js.map +1 -0
- package/dist/selectors.d.ts +9 -0
- package/dist/selectors.d.ts.map +1 -0
- package/dist/selectors.js +1330 -0
- package/dist/selectors.js.map +1 -0
- package/dist/solana/cleanup.d.ts +15 -0
- package/dist/solana/cleanup.d.ts.map +1 -0
- package/dist/solana/cleanup.js +159 -0
- package/dist/solana/cleanup.js.map +1 -0
- package/dist/solana/exec.d.ts +15 -0
- package/dist/solana/exec.d.ts.map +1 -0
- package/dist/solana/exec.js +417 -0
- package/dist/solana/exec.js.map +1 -0
- package/dist/solana/hasher.d.ts +4 -0
- package/dist/solana/hasher.d.ts.map +1 -0
- package/dist/solana/hasher.js +81 -0
- package/dist/solana/hasher.js.map +1 -0
- package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.d.ts +866 -0
- package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.js +866 -0
- package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.js.map +1 -0
- package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.d.ts +949 -0
- package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.js +949 -0
- package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.js.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.d.ts +1374 -0
- package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.js +1374 -0
- package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.js.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_COMMON.d.ts +104 -0
- package/dist/solana/idl/1.6.0/CCIP_COMMON.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_COMMON.js +104 -0
- package/dist/solana/idl/1.6.0/CCIP_COMMON.js.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.d.ts +2746 -0
- package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.js +2746 -0
- package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.js.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_ROUTER.d.ts +2332 -0
- package/dist/solana/idl/1.6.0/CCIP_ROUTER.d.ts.map +1 -0
- package/dist/solana/idl/1.6.0/CCIP_ROUTER.js +2332 -0
- package/dist/solana/idl/1.6.0/CCIP_ROUTER.js.map +1 -0
- package/dist/solana/index.d.ts +205 -0
- package/dist/solana/index.d.ts.map +1 -0
- package/dist/solana/index.js +1085 -0
- package/dist/solana/index.js.map +1 -0
- package/dist/solana/offchain.d.ts +31 -0
- package/dist/solana/offchain.d.ts.map +1 -0
- package/dist/solana/offchain.js +152 -0
- package/dist/solana/offchain.js.map +1 -0
- package/dist/solana/patchBorsh.d.ts +2 -0
- package/dist/solana/patchBorsh.d.ts.map +1 -0
- package/dist/solana/patchBorsh.js +60 -0
- package/dist/solana/patchBorsh.js.map +1 -0
- package/dist/solana/send.d.ts +14 -0
- package/dist/solana/send.d.ts.map +1 -0
- package/dist/solana/send.js +272 -0
- package/dist/solana/send.js.map +1 -0
- package/dist/solana/types.d.ts +4 -0
- package/dist/solana/types.d.ts.map +1 -0
- package/dist/solana/types.js +2 -0
- package/dist/solana/types.js.map +1 -0
- package/dist/solana/utils.d.ts +58 -0
- package/dist/solana/utils.d.ts.map +1 -0
- package/dist/solana/utils.js +211 -0
- package/dist/solana/utils.js.map +1 -0
- package/dist/sui/hasher.d.ts +12 -0
- package/dist/sui/hasher.d.ts.map +1 -0
- package/dist/sui/hasher.js +63 -0
- package/dist/sui/hasher.js.map +1 -0
- package/dist/sui/index.d.ts +72 -0
- package/dist/sui/index.d.ts.map +1 -0
- package/dist/sui/index.js +128 -0
- package/dist/sui/index.js.map +1 -0
- package/dist/sui/types.d.ts +17 -0
- package/dist/sui/types.d.ts.map +1 -0
- package/dist/sui/types.js +17 -0
- package/dist/sui/types.js.map +1 -0
- package/dist/supported-chains.d.ts +5 -0
- package/dist/supported-chains.d.ts.map +1 -0
- package/dist/supported-chains.js +3 -0
- package/dist/supported-chains.js.map +1 -0
- package/dist/types.d.ts +118 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +117 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +336 -0
- package/dist/utils.js.map +1 -0
- package/package.json +66 -8
- package/src/aptos/exec.ts +69 -0
- package/src/aptos/hasher.ts +92 -0
- package/src/aptos/index.ts +660 -0
- package/src/aptos/logs.ts +210 -0
- package/src/aptos/send.ts +120 -0
- package/src/aptos/token.ts +150 -0
- package/src/aptos/types.ts +85 -0
- package/src/aptos/utils.ts +24 -0
- package/src/chain.ts +398 -0
- package/src/commits.ts +44 -0
- package/src/evm/abi/BurnMintERC677Token.ts +487 -0
- package/src/evm/abi/CommitStore_1_2.ts +637 -0
- package/src/evm/abi/CommitStore_1_5.ts +674 -0
- package/src/evm/abi/FeeQuoter_1_6.ts +1903 -0
- package/src/evm/abi/LockReleaseTokenPool_1_5.ts +1095 -0
- package/src/evm/abi/LockReleaseTokenPool_1_5_1.ts +1277 -0
- package/src/evm/abi/LockReleaseTokenPool_1_6_1.ts +1287 -0
- package/src/evm/abi/OffRamp_1_2.ts +1203 -0
- package/src/evm/abi/OffRamp_1_5.ts +1272 -0
- package/src/evm/abi/OffRamp_1_6.ts +1528 -0
- package/src/evm/abi/OnRamp_1_2.ts +1342 -0
- package/src/evm/abi/OnRamp_1_5.ts +1426 -0
- package/src/evm/abi/OnRamp_1_6.ts +879 -0
- package/src/evm/abi/Router.ts +507 -0
- package/src/evm/abi/TokenAdminRegistry_1_5.ts +332 -0
- package/src/evm/const.ts +69 -0
- package/src/evm/errors.ts +212 -0
- package/src/evm/hasher.ts +166 -0
- package/src/evm/index.ts +1262 -0
- package/src/evm/messages.ts +73 -0
- package/src/evm/offchain.ts +189 -0
- package/src/execution.ts +131 -0
- package/src/extra-args.ts +71 -0
- package/src/gas.ts +135 -0
- package/src/hasher/common.ts +23 -0
- package/src/hasher/hasher.ts +12 -0
- package/src/hasher/index.ts +3 -0
- package/src/hasher/merklemulti.ts +309 -0
- package/src/index.ts +51 -0
- package/src/offchain.ts +86 -0
- package/src/requests.ts +339 -0
- package/src/selectors.ts +1340 -0
- package/src/solana/cleanup.ts +216 -0
- package/src/solana/exec.ts +645 -0
- package/src/solana/hasher.ts +104 -0
- package/src/solana/idl/1.6.0/BASE_TOKEN_POOL.ts +1734 -0
- package/src/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.ts +1900 -0
- package/src/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.ts +2750 -0
- package/src/solana/idl/1.6.0/CCIP_COMMON.ts +210 -0
- package/src/solana/idl/1.6.0/CCIP_OFFRAMP.ts +5494 -0
- package/src/solana/idl/1.6.0/CCIP_ROUTER.ts +4671 -0
- package/src/solana/index.ts +1454 -0
- package/src/solana/offchain.ts +209 -0
- package/src/solana/patchBorsh.ts +67 -0
- package/src/solana/send.ts +436 -0
- package/src/solana/types.ts +6 -0
- package/src/solana/utils.ts +272 -0
- package/src/sui/hasher.ts +90 -0
- package/src/sui/index.ts +198 -0
- package/src/sui/types.ts +22 -0
- package/src/supported-chains.ts +4 -0
- package/src/types.ts +153 -0
- package/src/utils.ts +405 -0
- package/tsconfig.json +18 -0
package/dist/chain.d.ts
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import util from 'util';
|
|
2
|
+
import type { BytesLike } from 'ethers';
|
|
3
|
+
import type { EVMExtraArgsV1, EVMExtraArgsV2, ExtraArgs, SVMExtraArgsV1, SuiExtraArgsV1 } from './extra-args.ts';
|
|
4
|
+
import type { LeafHasher } from './hasher/common.ts';
|
|
5
|
+
import type { AnyMessage, CCIPCommit, CCIPExecution, CCIPMessage, CCIPRequest, CommitReport, ExecutionReceipt, ExecutionReport, Lane, Log_, NetworkInfo, OffchainTokenData } from './types.ts';
|
|
6
|
+
export declare const ChainFamily: {
|
|
7
|
+
readonly EVM: "evm";
|
|
8
|
+
readonly Solana: "solana";
|
|
9
|
+
readonly Aptos: "aptos";
|
|
10
|
+
readonly Sui: "sui";
|
|
11
|
+
};
|
|
12
|
+
export type ChainFamily = (typeof ChainFamily)[keyof typeof ChainFamily];
|
|
13
|
+
export type LogFilter = {
|
|
14
|
+
startBlock?: number;
|
|
15
|
+
startTime?: number;
|
|
16
|
+
endBlock?: number;
|
|
17
|
+
endBefore?: string;
|
|
18
|
+
address?: string;
|
|
19
|
+
topics?: string[] | string[][];
|
|
20
|
+
page?: number;
|
|
21
|
+
};
|
|
22
|
+
export type ChainTransaction = {
|
|
23
|
+
chain: Chain;
|
|
24
|
+
hash: string;
|
|
25
|
+
logs: readonly Log_[];
|
|
26
|
+
blockNumber: number;
|
|
27
|
+
timestamp: number;
|
|
28
|
+
from: string;
|
|
29
|
+
error?: unknown;
|
|
30
|
+
};
|
|
31
|
+
export type TokenInfo = {
|
|
32
|
+
readonly symbol: string;
|
|
33
|
+
readonly decimals: number;
|
|
34
|
+
readonly name?: string;
|
|
35
|
+
};
|
|
36
|
+
export type RateLimiterState = {
|
|
37
|
+
tokens: bigint;
|
|
38
|
+
capacity: bigint;
|
|
39
|
+
rate: bigint;
|
|
40
|
+
} | null;
|
|
41
|
+
export type TokenPoolRemote = {
|
|
42
|
+
remoteToken: string;
|
|
43
|
+
remotePools: string[];
|
|
44
|
+
inboundRateLimiterState: RateLimiterState;
|
|
45
|
+
outboundRateLimiterState: RateLimiterState;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Works like an interface for a base Chain class, but provides implementation (which can be
|
|
49
|
+
* specialized) for some basic methods
|
|
50
|
+
*/
|
|
51
|
+
export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
|
|
52
|
+
abstract readonly network: NetworkInfo<F>;
|
|
53
|
+
abstract destroy?(): Promise<void>;
|
|
54
|
+
[util.inspect.custom](): string;
|
|
55
|
+
/**
|
|
56
|
+
* Fetch the timestamp of a given block
|
|
57
|
+
* @param block - block number or 'finalized'
|
|
58
|
+
* @returns timestamp of the block, in seconds
|
|
59
|
+
*/
|
|
60
|
+
abstract getBlockTimestamp(block: number | 'finalized'): Promise<number>;
|
|
61
|
+
/**
|
|
62
|
+
* Fetch a transaction by its hash
|
|
63
|
+
* @param hash - transaction hash
|
|
64
|
+
* @returns generic transaction details
|
|
65
|
+
*/
|
|
66
|
+
abstract getTransaction(hash: string): Promise<ChainTransaction>;
|
|
67
|
+
/**
|
|
68
|
+
* An async generator that yields logs based on the provided options.
|
|
69
|
+
* @param opts - options object
|
|
70
|
+
* @param opts.startBlock - if provided, fetch and generate logs forward starting from this block;
|
|
71
|
+
* otherwise, returns logs backwards in time from endBlock;
|
|
72
|
+
* optionally, startTime may be provided to fetch logs forward starting from this time;
|
|
73
|
+
* @param opts.endBlock - if omitted, use latest block
|
|
74
|
+
* @param opts.endBefore - optional hint signature for end of iteration, instead of endBlock
|
|
75
|
+
* @param opts.address - if provided, fetch logs for this address only (may be required in some
|
|
76
|
+
* networks/implementations)
|
|
77
|
+
* @param opts.topics - if provided, fetch logs for these topics only;
|
|
78
|
+
* if string[], it's assumed to be a list of topic0s (i.e. string[] or string[][0], event_ids);
|
|
79
|
+
* some networks/implementations may not be able to filter topics other than topic0s, so one may
|
|
80
|
+
* want to assume those are optimization hints, instead of hard filters, and verify results
|
|
81
|
+
* @param opts.page - if provided, try to use this page/range for batches
|
|
82
|
+
* @returns an async iterable iterator of logs
|
|
83
|
+
*/
|
|
84
|
+
abstract getLogs(opts: LogFilter): AsyncIterableIterator<Log_>;
|
|
85
|
+
/**
|
|
86
|
+
* Fetch the typeAndVersion tag of a given CCIP contract
|
|
87
|
+
* @param address - CCIP contract address
|
|
88
|
+
* @returns typeAndVersion tag, validated and split
|
|
89
|
+
*/
|
|
90
|
+
abstract typeAndVersion(address: string): Promise<[type_: string, version: string, typeAndVersion: string] | [type_: string, version: string, typeAndVersion: string, suffix: string]>;
|
|
91
|
+
/**
|
|
92
|
+
* Fetch the Router address set in OnRamp config
|
|
93
|
+
* Used to discover OffRamp connected to OnRamp
|
|
94
|
+
* @param onRamp - OnRamp contract address
|
|
95
|
+
* @param destChainSelector - destination chain selector
|
|
96
|
+
* @returns Router address
|
|
97
|
+
*/
|
|
98
|
+
abstract getRouterForOnRamp(onRamp: string, destChainSelector: bigint): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Fetch the Router address set in OffRamp config
|
|
101
|
+
* @param offRamp - OffRamp contract address
|
|
102
|
+
* @param sourceChainSelector - source chain selector
|
|
103
|
+
* @returns Router address
|
|
104
|
+
*/
|
|
105
|
+
abstract getRouterForOffRamp(offRamp: string, sourceChainSelector: bigint): Promise<string>;
|
|
106
|
+
/**
|
|
107
|
+
* Get the native token address for a Router
|
|
108
|
+
* @param router - router contract address
|
|
109
|
+
* @returns native token address (usually wrapped)
|
|
110
|
+
*/
|
|
111
|
+
abstract getNativeTokenForRouter(router: string): Promise<string>;
|
|
112
|
+
/**
|
|
113
|
+
* Fetch the OffRamps allowlisted in a Router
|
|
114
|
+
* Used to discover OffRamp connected to an OnRamp
|
|
115
|
+
* @param router - Router contract address
|
|
116
|
+
* @param sourceChainSelector - source chain selector
|
|
117
|
+
* @returns array of OffRamp addresses
|
|
118
|
+
*/
|
|
119
|
+
abstract getOffRampsForRouter(router: string, sourceChainSelector: bigint): Promise<string[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Fetch the OnRamp registered in a Router for a destination chain
|
|
122
|
+
* @param router - Router contract address
|
|
123
|
+
* @param destChainSelector - destination chain selector
|
|
124
|
+
* @returns OnRamp addresses
|
|
125
|
+
*/
|
|
126
|
+
abstract getOnRampForRouter(router: string, destChainSelector: bigint): Promise<string>;
|
|
127
|
+
/**
|
|
128
|
+
* Fetch the OnRamp address set in OffRamp config
|
|
129
|
+
* Used to discover OffRamp connected to an OnRamp
|
|
130
|
+
* @param offRamp - OffRamp contract address
|
|
131
|
+
* @param sourceChainSelector - source chain selector
|
|
132
|
+
* @returns OnRamp address
|
|
133
|
+
*/
|
|
134
|
+
abstract getOnRampForOffRamp(offRamp: string, sourceChainSelector: bigint): Promise<string>;
|
|
135
|
+
/**
|
|
136
|
+
* Fetch the CommitStore set in OffRamp config (CCIP<=v1.5)
|
|
137
|
+
* For CCIP>=v1.6, it should return the offRamp address
|
|
138
|
+
* @param offRamp - OffRamp contract address
|
|
139
|
+
* @returns CommitStore address
|
|
140
|
+
*/
|
|
141
|
+
abstract getCommitStoreForOffRamp(offRamp: string): Promise<string>;
|
|
142
|
+
/**
|
|
143
|
+
* Fetch the TokenPool's token/mint
|
|
144
|
+
* @param tokenPool - TokenPool address
|
|
145
|
+
* @returns Token or mint address
|
|
146
|
+
*/
|
|
147
|
+
abstract getTokenForTokenPool(tokenPool: string): Promise<string>;
|
|
148
|
+
/**
|
|
149
|
+
* Fetch token metadata
|
|
150
|
+
* @param token - Token address
|
|
151
|
+
* @returns Token symbol and decimals, and optionally name
|
|
152
|
+
*/
|
|
153
|
+
abstract getTokenInfo(token: string): Promise<TokenInfo>;
|
|
154
|
+
/**
|
|
155
|
+
* Fetch TokenAdminRegistry configured in a given OnRamp, Router, etc
|
|
156
|
+
* Needed to map a source token to its dest counterparts
|
|
157
|
+
* @param onRamp - Some contract for which we can fetch a TokenAdminRegistry
|
|
158
|
+
*/
|
|
159
|
+
abstract getTokenAdminRegistryFor(address: string): Promise<string>;
|
|
160
|
+
/**
|
|
161
|
+
* Build, derive, load or fetch a wallet for this instance which will be used in any tx send operation
|
|
162
|
+
* @param opts.wallet - cli or environmental parameters to help pick a wallet
|
|
163
|
+
* @returns address of fetched (and stored internally) account
|
|
164
|
+
*/
|
|
165
|
+
abstract getWalletAddress(opts?: {
|
|
166
|
+
wallet?: unknown;
|
|
167
|
+
}): Promise<string>;
|
|
168
|
+
/**
|
|
169
|
+
* Fetch the current fee for a given intended message
|
|
170
|
+
* @param router - router address on this chain
|
|
171
|
+
* @param destChainSelector - dest network selector
|
|
172
|
+
* @param message - message to send
|
|
173
|
+
*/
|
|
174
|
+
abstract getFee(router: string, destChainSelector: bigint, message: AnyMessage): Promise<bigint>;
|
|
175
|
+
/**
|
|
176
|
+
* Send a CCIP message through a router using loaded wallet
|
|
177
|
+
* @param router - router address on this chain
|
|
178
|
+
* @param destChainSelector - dest network selector
|
|
179
|
+
* @param message - message to send
|
|
180
|
+
* @param opts.wallet - cli or environmental parameters to help pick a wallet
|
|
181
|
+
* @param opts.approveMax - approve the maximum amount of tokens to transfer
|
|
182
|
+
*/
|
|
183
|
+
abstract sendMessage(router: string, destChainSelector: bigint, message: AnyMessage & {
|
|
184
|
+
fee: bigint;
|
|
185
|
+
}, opts?: {
|
|
186
|
+
wallet?: unknown;
|
|
187
|
+
approveMax?: boolean;
|
|
188
|
+
}): Promise<ChainTransaction>;
|
|
189
|
+
/**
|
|
190
|
+
* Fetch supported offchain token data for a request from this network
|
|
191
|
+
* @param request - CCIP request, with tx, logs and message
|
|
192
|
+
* @returns array with one offchain token data for each token transfer in request
|
|
193
|
+
*/
|
|
194
|
+
abstract fetchOffchainTokenData(request: CCIPRequest): Promise<OffchainTokenData[]>;
|
|
195
|
+
/**
|
|
196
|
+
* Execute messages in report in an offRamp
|
|
197
|
+
* @param offRamp - offRamp address on this dest chain
|
|
198
|
+
* @param execReport - execution report containing messages to execute, proofs and offchainTokenData
|
|
199
|
+
* @param opts - general options for execution
|
|
200
|
+
* @returns transaction hash of the execution
|
|
201
|
+
*/
|
|
202
|
+
abstract executeReport(offRamp: string, execReport: ExecutionReport, opts?: Record<string, unknown>): Promise<ChainTransaction>;
|
|
203
|
+
/**
|
|
204
|
+
* Look for a CommitReport at dest for given CCIP request
|
|
205
|
+
* May be specialized by some subclasses
|
|
206
|
+
*
|
|
207
|
+
* @param dest - Destination network provider
|
|
208
|
+
* @param request - CCIP request info
|
|
209
|
+
* @param hints - Additional filtering hints
|
|
210
|
+
* @returns CCIP commit info
|
|
211
|
+
**/
|
|
212
|
+
fetchCommitReport(commitStore: string, request: {
|
|
213
|
+
lane: Lane;
|
|
214
|
+
message: {
|
|
215
|
+
header: {
|
|
216
|
+
sequenceNumber: bigint;
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
timestamp?: number;
|
|
220
|
+
}, hints?: {
|
|
221
|
+
startBlock?: number;
|
|
222
|
+
page?: number;
|
|
223
|
+
}): Promise<CCIPCommit>;
|
|
224
|
+
/**
|
|
225
|
+
* Default/generic implementation of fetchExecutionReceipts
|
|
226
|
+
* @param offRamp - Off-ramp address
|
|
227
|
+
* @param messageIds - Set of message IDs to fetch receipts for
|
|
228
|
+
* @param hints - Additional filtering hints
|
|
229
|
+
* @returns Async generator of CCIP execution receipts
|
|
230
|
+
*/
|
|
231
|
+
fetchExecutionReceipts(offRamp: string, messageIds: Set<string>, hints?: {
|
|
232
|
+
startBlock?: number;
|
|
233
|
+
startTime?: number;
|
|
234
|
+
page?: number;
|
|
235
|
+
commit?: CommitReport;
|
|
236
|
+
}): AsyncGenerator<CCIPExecution>;
|
|
237
|
+
/**
|
|
238
|
+
* List tokens supported by given TokenAdminRegistry contract
|
|
239
|
+
* @param address - Usually TokenAdminRegistry, but chain may support receiving Router, OnRamp, etc
|
|
240
|
+
* @param opts.page - Page range, if needed
|
|
241
|
+
* @retursn array of supported token addresses
|
|
242
|
+
*/
|
|
243
|
+
abstract getSupportedTokens(address: string, opts?: {
|
|
244
|
+
page?: number;
|
|
245
|
+
}): Promise<string[]>;
|
|
246
|
+
/**
|
|
247
|
+
* Get TokenConfig for a given token address in a TokenAdminRegistry
|
|
248
|
+
* @param address - TokenAdminRegistry contract address
|
|
249
|
+
* @param token - Token address
|
|
250
|
+
*/
|
|
251
|
+
abstract getRegistryTokenConfig(registry: string, token: string): Promise<{
|
|
252
|
+
administrator: string;
|
|
253
|
+
pendingAdministrator?: string;
|
|
254
|
+
tokenPool?: string;
|
|
255
|
+
}>;
|
|
256
|
+
/**
|
|
257
|
+
* Get TokenPool state and configurations
|
|
258
|
+
* @param tokenPool - Token pool address
|
|
259
|
+
*/
|
|
260
|
+
abstract getTokenPoolConfigs(tokenPool: string): Promise<{
|
|
261
|
+
token: string;
|
|
262
|
+
router: string;
|
|
263
|
+
typeAndVersion?: string;
|
|
264
|
+
}>;
|
|
265
|
+
/**
|
|
266
|
+
* Get TokenPool remote configurations
|
|
267
|
+
* @param tokenPool - Token pool address
|
|
268
|
+
* @param remoteChainSelector - If provided, only return remotes for the specified chain (may error if remote not supported)
|
|
269
|
+
* @param Record of network *names* and remote configurations (remoteToken, remotePools, rateLimitStates)
|
|
270
|
+
*/
|
|
271
|
+
abstract getTokenPoolRemotes(tokenPool: string, remoteChainSelector?: bigint): Promise<Record<string, TokenPoolRemote>>;
|
|
272
|
+
/**
|
|
273
|
+
* Fetch list and info of supported feeTokens
|
|
274
|
+
* @param router address on this chain
|
|
275
|
+
* @returns mapping of token addresses to respective TokenInfo objects
|
|
276
|
+
*/
|
|
277
|
+
abstract listFeeTokens(router: string): Promise<Record<string, TokenInfo>>;
|
|
278
|
+
}
|
|
279
|
+
export type ChainStatic<F extends ChainFamily = ChainFamily> = Function & {
|
|
280
|
+
readonly family: F;
|
|
281
|
+
readonly decimals: number;
|
|
282
|
+
/**
|
|
283
|
+
* async constructor: builds a Chain from a rpc endpoint url
|
|
284
|
+
* @param url - rpc endpoint url
|
|
285
|
+
*/
|
|
286
|
+
fromUrl(url: string): Promise<Chain<F>>;
|
|
287
|
+
/**
|
|
288
|
+
* Try to decode a CCIP message *from* a log/event *originated* from this *source* chain,
|
|
289
|
+
* but which may *target* other dest chain families
|
|
290
|
+
* iow: the parsing is specific to this chain family, but content may be intended to alien chains
|
|
291
|
+
* e.g: EVM-born (abi.encoded) bytearray may output message.computeUnits for Solana
|
|
292
|
+
* @param log - Chain generic log
|
|
293
|
+
* @returns decoded CCIP message with merged extraArgs
|
|
294
|
+
*/
|
|
295
|
+
decodeMessage(log: Pick<Log_, 'data'>): CCIPMessage | undefined;
|
|
296
|
+
/**
|
|
297
|
+
* Try to decode an extraArgs array serialized for this chain family
|
|
298
|
+
* @param extraArgs - extra args bytes (Uint8Array, HexString or base64)
|
|
299
|
+
* @returns object containing decoded extraArgs and their tags
|
|
300
|
+
*/
|
|
301
|
+
decodeExtraArgs(extraArgs: BytesLike): (EVMExtraArgsV1 & {
|
|
302
|
+
_tag: 'EVMExtraArgsV1';
|
|
303
|
+
}) | (EVMExtraArgsV2 & {
|
|
304
|
+
_tag: 'EVMExtraArgsV2';
|
|
305
|
+
}) | (SVMExtraArgsV1 & {
|
|
306
|
+
_tag: 'SVMExtraArgsV1';
|
|
307
|
+
}) | (SuiExtraArgsV1 & {
|
|
308
|
+
_tag: 'SuiExtraArgsV1';
|
|
309
|
+
}) | undefined;
|
|
310
|
+
encodeExtraArgs(extraArgs: ExtraArgs): string;
|
|
311
|
+
/**
|
|
312
|
+
* Decode a commit (CommitReportAccepted) event
|
|
313
|
+
* @param log - Chain generic log
|
|
314
|
+
* @param lane - if passed, filter or validate reports by lane
|
|
315
|
+
* @returns Array of commit reports contained in the log
|
|
316
|
+
*/
|
|
317
|
+
decodeCommits(log: Pick<Log_, 'data'>, lane?: Lane): CommitReport[] | undefined;
|
|
318
|
+
/**
|
|
319
|
+
* Decode a receipt (ExecutioStateChanged) event
|
|
320
|
+
* @param log - Chain generic log
|
|
321
|
+
* @returns ExecutionReceipt or undefined if not a recognized receipt
|
|
322
|
+
*/
|
|
323
|
+
decodeReceipt(log: Pick<Log_, 'data'>): ExecutionReceipt | undefined;
|
|
324
|
+
/**
|
|
325
|
+
* Receive a bytes array and try to decode and normalize it as an address of this chain family
|
|
326
|
+
* @param bytes - Bytes array (Uint8Array, HexString or Base64)
|
|
327
|
+
* @returns Address in this chain family's format
|
|
328
|
+
*/
|
|
329
|
+
getAddress(bytes: BytesLike): string;
|
|
330
|
+
/**
|
|
331
|
+
* Create a leaf hasher for this dest chain and lane
|
|
332
|
+
* @param lane - source, dest and onramp lane info
|
|
333
|
+
* @returns LeafHasher is a function that takes a message and returns a hash of it
|
|
334
|
+
*/
|
|
335
|
+
getDestLeafHasher(lane: Lane): LeafHasher;
|
|
336
|
+
/**
|
|
337
|
+
* Try to parse an error or bytearray generated by this chain family
|
|
338
|
+
* @param error - catched object, string or bytearray
|
|
339
|
+
* @returns Ordered record with messages/properties, or undefined if not a recognized error
|
|
340
|
+
*/
|
|
341
|
+
parse?(data: unknown): Record<string, unknown> | undefined | null;
|
|
342
|
+
};
|
|
343
|
+
export type ChainGetter = (idOrSelectorOrName: number | string | bigint) => Promise<Chain>;
|
|
344
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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"}
|
package/dist/chain.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import util from 'util';
|
|
2
|
+
import { fetchCommitReport } from "./commits.js";
|
|
3
|
+
import { fetchExecutionReceipts } from "./execution.js";
|
|
4
|
+
export const ChainFamily = {
|
|
5
|
+
EVM: 'evm',
|
|
6
|
+
Solana: 'solana',
|
|
7
|
+
Aptos: 'aptos',
|
|
8
|
+
Sui: 'sui',
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Works like an interface for a base Chain class, but provides implementation (which can be
|
|
12
|
+
* specialized) for some basic methods
|
|
13
|
+
*/
|
|
14
|
+
export class Chain {
|
|
15
|
+
[util.inspect.custom]() {
|
|
16
|
+
return `${this.constructor.name} { ${this.network.name} }`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Look for a CommitReport at dest for given CCIP request
|
|
20
|
+
* May be specialized by some subclasses
|
|
21
|
+
*
|
|
22
|
+
* @param dest - Destination network provider
|
|
23
|
+
* @param request - CCIP request info
|
|
24
|
+
* @param hints - Additional filtering hints
|
|
25
|
+
* @returns CCIP commit info
|
|
26
|
+
**/
|
|
27
|
+
async fetchCommitReport(commitStore, request, hints) {
|
|
28
|
+
return fetchCommitReport(this, commitStore, request, hints);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Default/generic implementation of fetchExecutionReceipts
|
|
32
|
+
* @param offRamp - Off-ramp address
|
|
33
|
+
* @param messageIds - Set of message IDs to fetch receipts for
|
|
34
|
+
* @param hints - Additional filtering hints
|
|
35
|
+
* @returns Async generator of CCIP execution receipts
|
|
36
|
+
*/
|
|
37
|
+
async *fetchExecutionReceipts(offRamp, messageIds, hints) {
|
|
38
|
+
yield* fetchExecutionReceipts(this, offRamp, messageIds, hints);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAwBvD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAA;AA0CV;;;GAGG;AACH,MAAM,OAAgB,KAAK;IAIzB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IAC5D,CAAC;IA+JD;;;;;;;;QAQI;IACJ,KAAK,CAAC,iBAAiB,CACrB,WAAmB,EACnB,OAIC,EACD,KAA8C;QAE9C,OAAO,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,sBAAsB,CAC3B,OAAe,EACf,UAAuB,EACvB,KAAyF;QAEzF,KAAK,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;CAmDF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Chain } from './chain.ts';
|
|
2
|
+
import { type CCIPCommit, type Lane } from './types.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Look for a CommitReport at dest for given CCIPRequest
|
|
5
|
+
* Provides a basic/generic implementation, but subclasses of Chain may override with more specific
|
|
6
|
+
* logic in Chain.fetchCommitReport method
|
|
7
|
+
*
|
|
8
|
+
* @param dest - Destination network provider
|
|
9
|
+
* @param request - CCIP request info
|
|
10
|
+
* @param hints - Additional filtering hints
|
|
11
|
+
* @returns CCIP commit info
|
|
12
|
+
**/
|
|
13
|
+
export declare function fetchCommitReport(dest: Chain, commitStore: string, { lane, message: { header }, timestamp: requestTimestamp, }: {
|
|
14
|
+
lane: Lane;
|
|
15
|
+
message: {
|
|
16
|
+
header: {
|
|
17
|
+
sequenceNumber: bigint;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
timestamp?: number;
|
|
21
|
+
}, hints?: {
|
|
22
|
+
startBlock?: number;
|
|
23
|
+
page?: number;
|
|
24
|
+
}): Promise<CCIPCommit>;
|
|
25
|
+
//# sourceMappingURL=commits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commits.d.ts","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAe,MAAM,YAAY,CAAA;AAEpE;;;;;;;;;IASI;AACJ,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,KAAK,EACX,WAAW,EAAE,MAAM,EACnB,EACE,IAAI,EACJ,OAAO,EAAE,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,gBAAgB,GAC5B,EAAE;IACD,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,EACD,KAAK,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
|
package/dist/commits.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CCIPVersion } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Look for a CommitReport at dest for given CCIPRequest
|
|
4
|
+
* Provides a basic/generic implementation, but subclasses of Chain may override with more specific
|
|
5
|
+
* logic in Chain.fetchCommitReport method
|
|
6
|
+
*
|
|
7
|
+
* @param dest - Destination network provider
|
|
8
|
+
* @param request - CCIP request info
|
|
9
|
+
* @param hints - Additional filtering hints
|
|
10
|
+
* @returns CCIP commit info
|
|
11
|
+
**/
|
|
12
|
+
export async function fetchCommitReport(dest, commitStore, { lane, message: { header }, timestamp: requestTimestamp, }, hints) {
|
|
13
|
+
for await (const log of dest.getLogs({
|
|
14
|
+
...hints,
|
|
15
|
+
...(!hints?.startBlock ? { startTime: requestTimestamp } : { startBlock: hints.startBlock }),
|
|
16
|
+
address: commitStore,
|
|
17
|
+
topics: [lane.version < CCIPVersion.V1_6 ? 'ReportAccepted' : 'CommitReportAccepted'],
|
|
18
|
+
})) {
|
|
19
|
+
const report = dest.constructor.decodeCommits(log, lane)?.[0];
|
|
20
|
+
if (!report || report.maxSeqNr < header.sequenceNumber)
|
|
21
|
+
continue;
|
|
22
|
+
// since we walk forward from some startBlock/startTime, give up if we find a newer report
|
|
23
|
+
if (report.minSeqNr > header.sequenceNumber)
|
|
24
|
+
break;
|
|
25
|
+
return { report, log };
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`Could not find commit after ${hints?.startBlock ?? requestTimestamp} for sequenceNumber=${header.sequenceNumber}`);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=commits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,WAAW,EAAE,MAAM,YAAY,CAAA;AAEpE;;;;;;;;;IASI;AACJ,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAW,EACX,WAAmB,EACnB,EACE,IAAI,EACJ,OAAO,EAAE,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,gBAAgB,GAK5B,EACD,KAA8C;IAE9C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACnC,GAAG,KAAK;QACR,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC5F,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,CAAC;KACtF,CAAC,EAAE,CAAC;QACH,MAAM,MAAM,GAAI,IAAI,CAAC,WAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc;YAAE,SAAQ;QAChE,0FAA0F;QAC1F,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc;YAAE,MAAK;QAClD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;IACxB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,EAAE,UAAU,IAAI,gBAAgB,uBAAuB,MAAM,CAAC,cAAc,EAAE,CACnH,CAAA;AACH,CAAC"}
|