@chainlink/ccip-sdk 0.92.1 → 0.93.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.
Files changed (223) hide show
  1. package/README.md +20 -18
  2. package/dist/api/index.d.ts +103 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +141 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/api/types.d.ts +38 -0
  7. package/dist/api/types.d.ts.map +1 -0
  8. package/dist/api/types.js +2 -0
  9. package/dist/api/types.js.map +1 -0
  10. package/dist/aptos/index.d.ts +20 -33
  11. package/dist/aptos/index.d.ts.map +1 -1
  12. package/dist/aptos/index.js +34 -26
  13. package/dist/aptos/index.js.map +1 -1
  14. package/dist/aptos/logs.js +1 -1
  15. package/dist/aptos/logs.js.map +1 -1
  16. package/dist/aptos/token.js.map +1 -1
  17. package/dist/chain.d.ts +206 -71
  18. package/dist/chain.d.ts.map +1 -1
  19. package/dist/chain.js +89 -20
  20. package/dist/chain.js.map +1 -1
  21. package/dist/commits.d.ts +2 -2
  22. package/dist/commits.d.ts.map +1 -1
  23. package/dist/commits.js +4 -4
  24. package/dist/commits.js.map +1 -1
  25. package/dist/errors/CCIPError.d.ts.map +1 -1
  26. package/dist/errors/CCIPError.js +3 -2
  27. package/dist/errors/CCIPError.js.map +1 -1
  28. package/dist/errors/codes.d.ts +4 -1
  29. package/dist/errors/codes.d.ts.map +1 -1
  30. package/dist/errors/codes.js +6 -1
  31. package/dist/errors/codes.js.map +1 -1
  32. package/dist/errors/index.d.ts +5 -2
  33. package/dist/errors/index.d.ts.map +1 -1
  34. package/dist/errors/index.js +8 -2
  35. package/dist/errors/index.js.map +1 -1
  36. package/dist/errors/recovery.d.ts.map +1 -1
  37. package/dist/errors/recovery.js +4 -1
  38. package/dist/errors/recovery.js.map +1 -1
  39. package/dist/errors/specialized.d.ts +29 -4
  40. package/dist/errors/specialized.d.ts.map +1 -1
  41. package/dist/errors/specialized.js +48 -6
  42. package/dist/errors/specialized.js.map +1 -1
  43. package/dist/evm/errors.js.map +1 -1
  44. package/dist/evm/index.d.ts +24 -48
  45. package/dist/evm/index.d.ts.map +1 -1
  46. package/dist/evm/index.js +71 -59
  47. package/dist/evm/index.js.map +1 -1
  48. package/dist/evm/logs.js.map +1 -1
  49. package/dist/evm/offchain.js +3 -2
  50. package/dist/evm/offchain.js.map +1 -1
  51. package/dist/evm/viem/client-adapter.d.ts +68 -0
  52. package/dist/evm/viem/client-adapter.d.ts.map +1 -0
  53. package/dist/evm/viem/client-adapter.js +104 -0
  54. package/dist/evm/viem/client-adapter.js.map +1 -0
  55. package/dist/evm/viem/index.d.ts +29 -0
  56. package/dist/evm/viem/index.d.ts.map +1 -0
  57. package/dist/evm/viem/index.js +28 -0
  58. package/dist/evm/viem/index.js.map +1 -0
  59. package/dist/evm/viem/types.d.ts +13 -0
  60. package/dist/evm/viem/types.d.ts.map +1 -0
  61. package/dist/evm/viem/types.js +2 -0
  62. package/dist/evm/viem/types.js.map +1 -0
  63. package/dist/evm/viem/wallet-adapter.d.ts +58 -0
  64. package/dist/evm/viem/wallet-adapter.d.ts.map +1 -0
  65. package/dist/evm/viem/wallet-adapter.js +197 -0
  66. package/dist/evm/viem/wallet-adapter.js.map +1 -0
  67. package/dist/execution.d.ts +1 -1
  68. package/dist/execution.d.ts.map +1 -1
  69. package/dist/execution.js +2 -2
  70. package/dist/execution.js.map +1 -1
  71. package/dist/explorer.d.ts +74 -0
  72. package/dist/explorer.d.ts.map +1 -0
  73. package/dist/explorer.js +67 -0
  74. package/dist/explorer.js.map +1 -0
  75. package/dist/gas.js.map +1 -1
  76. package/dist/hasher/merklemulti.js.map +1 -1
  77. package/dist/http-status.d.ts +20 -0
  78. package/dist/http-status.d.ts.map +1 -0
  79. package/dist/http-status.js +25 -0
  80. package/dist/http-status.js.map +1 -0
  81. package/dist/index.d.ts +10 -3
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +4 -2
  84. package/dist/index.js.map +1 -1
  85. package/dist/offchain.js.map +1 -1
  86. package/dist/requests.d.ts +4 -4
  87. package/dist/requests.d.ts.map +1 -1
  88. package/dist/requests.js +6 -6
  89. package/dist/requests.js.map +1 -1
  90. package/dist/solana/cleanup.js +2 -2
  91. package/dist/solana/cleanup.js.map +1 -1
  92. package/dist/solana/exec.js +1 -5
  93. package/dist/solana/exec.js.map +1 -1
  94. package/dist/solana/index.d.ts +28 -57
  95. package/dist/solana/index.d.ts.map +1 -1
  96. package/dist/solana/index.js +66 -70
  97. package/dist/solana/index.js.map +1 -1
  98. package/dist/solana/logs.js +2 -2
  99. package/dist/solana/logs.js.map +1 -1
  100. package/dist/solana/offchain.js +3 -3
  101. package/dist/solana/offchain.js.map +1 -1
  102. package/dist/solana/send.js +1 -1
  103. package/dist/solana/send.js.map +1 -1
  104. package/dist/solana/utils.js +1 -1
  105. package/dist/solana/utils.js.map +1 -1
  106. package/dist/sui/discovery.d.ts.map +1 -1
  107. package/dist/sui/discovery.js +2 -5
  108. package/dist/sui/discovery.js.map +1 -1
  109. package/dist/sui/events.d.ts.map +1 -1
  110. package/dist/sui/events.js +1 -4
  111. package/dist/sui/events.js.map +1 -1
  112. package/dist/sui/index.d.ts +18 -29
  113. package/dist/sui/index.d.ts.map +1 -1
  114. package/dist/sui/index.js +24 -26
  115. package/dist/sui/index.js.map +1 -1
  116. package/dist/sui/manuallyExec/encoder.d.ts.map +1 -1
  117. package/dist/sui/manuallyExec/encoder.js +0 -3
  118. package/dist/sui/manuallyExec/encoder.js.map +1 -1
  119. package/dist/sui/manuallyExec/index.d.ts.map +1 -1
  120. package/dist/sui/manuallyExec/index.js +1 -2
  121. package/dist/sui/manuallyExec/index.js.map +1 -1
  122. package/dist/sui/objects.js +4 -4
  123. package/dist/sui/objects.js.map +1 -1
  124. package/dist/ton/exec.d.ts +2 -2
  125. package/dist/ton/exec.d.ts.map +1 -1
  126. package/dist/ton/exec.js.map +1 -1
  127. package/dist/ton/hasher.js +5 -5
  128. package/dist/ton/hasher.js.map +1 -1
  129. package/dist/ton/index.d.ts +54 -49
  130. package/dist/ton/index.d.ts.map +1 -1
  131. package/dist/ton/index.js +331 -236
  132. package/dist/ton/index.js.map +1 -1
  133. package/dist/ton/logs.d.ts +11 -22
  134. package/dist/ton/logs.d.ts.map +1 -1
  135. package/dist/ton/logs.js +95 -118
  136. package/dist/ton/logs.js.map +1 -1
  137. package/dist/ton/types.d.ts +9 -9
  138. package/dist/ton/types.d.ts.map +1 -1
  139. package/dist/ton/types.js +5 -9
  140. package/dist/ton/types.js.map +1 -1
  141. package/dist/ton/utils.d.ts +8 -27
  142. package/dist/ton/utils.d.ts.map +1 -1
  143. package/dist/ton/utils.js +31 -111
  144. package/dist/ton/utils.js.map +1 -1
  145. package/dist/types.d.ts +34 -0
  146. package/dist/types.d.ts.map +1 -1
  147. package/dist/types.js +30 -0
  148. package/dist/types.js.map +1 -1
  149. package/dist/utils.d.ts +6 -5
  150. package/dist/utils.d.ts.map +1 -1
  151. package/dist/utils.js +76 -52
  152. package/dist/utils.js.map +1 -1
  153. package/dist/viem.d.ts +6 -0
  154. package/dist/viem.d.ts.map +1 -0
  155. package/dist/viem.js +6 -0
  156. package/dist/viem.js.map +1 -0
  157. package/package.json +17 -2
  158. package/src/api/index.ts +167 -0
  159. package/src/api/types.ts +39 -0
  160. package/src/aptos/index.ts +57 -64
  161. package/src/aptos/logs.ts +10 -10
  162. package/src/aptos/token.ts +1 -1
  163. package/src/chain.ts +274 -97
  164. package/src/commits.ts +5 -5
  165. package/src/errors/CCIPError.ts +5 -2
  166. package/src/errors/codes.ts +8 -1
  167. package/src/errors/index.ts +15 -2
  168. package/src/errors/recovery.ts +9 -1
  169. package/src/errors/specialized.ts +61 -6
  170. package/src/evm/errors.ts +2 -2
  171. package/src/evm/index.ts +107 -120
  172. package/src/evm/logs.ts +4 -4
  173. package/src/evm/offchain.ts +5 -4
  174. package/src/evm/viem/client-adapter.ts +124 -0
  175. package/src/evm/viem/index.ts +29 -0
  176. package/src/evm/viem/types.ts +14 -0
  177. package/src/evm/viem/wallet-adapter.ts +233 -0
  178. package/src/execution.ts +9 -9
  179. package/src/explorer.ts +90 -0
  180. package/src/gas.ts +2 -2
  181. package/src/hasher/merklemulti.ts +7 -7
  182. package/src/http-status.ts +31 -0
  183. package/src/index.ts +18 -1
  184. package/src/offchain.ts +1 -1
  185. package/src/requests.ts +9 -12
  186. package/src/solana/cleanup.ts +4 -4
  187. package/src/solana/exec.ts +13 -18
  188. package/src/solana/index.ts +92 -117
  189. package/src/solana/logs.ts +8 -8
  190. package/src/solana/offchain.ts +3 -3
  191. package/src/solana/send.ts +20 -20
  192. package/src/solana/utils.ts +4 -4
  193. package/src/sui/discovery.ts +4 -10
  194. package/src/sui/events.ts +4 -8
  195. package/src/sui/index.ts +36 -48
  196. package/src/sui/manuallyExec/encoder.ts +0 -4
  197. package/src/sui/manuallyExec/index.ts +1 -3
  198. package/src/sui/objects.ts +14 -14
  199. package/src/ton/exec.ts +2 -5
  200. package/src/ton/hasher.ts +5 -5
  201. package/src/ton/index.ts +392 -316
  202. package/src/ton/logs.ts +122 -143
  203. package/src/ton/types.ts +17 -21
  204. package/src/ton/utils.ts +39 -145
  205. package/src/types.ts +36 -0
  206. package/src/utils.ts +96 -66
  207. package/src/viem.ts +5 -0
  208. package/tsconfig.json +3 -2
  209. package/dist/ton/bindings/offramp.d.ts +0 -48
  210. package/dist/ton/bindings/offramp.d.ts.map +0 -1
  211. package/dist/ton/bindings/offramp.js +0 -63
  212. package/dist/ton/bindings/offramp.js.map +0 -1
  213. package/dist/ton/bindings/onramp.d.ts +0 -40
  214. package/dist/ton/bindings/onramp.d.ts.map +0 -1
  215. package/dist/ton/bindings/onramp.js +0 -51
  216. package/dist/ton/bindings/onramp.js.map +0 -1
  217. package/dist/ton/bindings/router.d.ts +0 -47
  218. package/dist/ton/bindings/router.d.ts.map +0 -1
  219. package/dist/ton/bindings/router.js +0 -51
  220. package/dist/ton/bindings/router.js.map +0 -1
  221. package/src/ton/bindings/offramp.ts +0 -96
  222. package/src/ton/bindings/onramp.ts +0 -72
  223. package/src/ton/bindings/router.ts +0 -65
package/dist/chain.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { BytesLike } from 'ethers';
2
2
  import type { PickDeep, SetOptional } from 'type-fest';
3
+ import { type LaneLatencyResponse, CCIPAPIClient } from './api/index.ts';
3
4
  import type { UnsignedAptosTx } from './aptos/types.ts';
4
5
  import type { UnsignedEVMTx } from './evm/types.ts';
5
6
  import type { EVMExtraArgsV1, EVMExtraArgsV2, ExtraArgs, SVMExtraArgsV1, SuiExtraArgsV1 } from './extra-args.ts';
@@ -8,6 +9,41 @@ import type { UnsignedSolanaTx } from './solana/types.ts';
8
9
  import type { UnsignedTONTx } from './ton/types.ts';
9
10
  import { type AnyMessage, type CCIPCommit, type CCIPExecution, type CCIPMessage, type CCIPRequest, type ChainFamily, type ChainTransaction, type CommitReport, type ExecutionReceipt, type ExecutionReport, type Lane, type Log_, type Logger, type NetworkInfo, type OffchainTokenData, type WithLogger } from './types.ts';
10
11
  import { util } from './utils.ts';
12
+ /**
13
+ * Context for Chain class initialization.
14
+ * Extends WithLogger with optional API client configuration.
15
+ *
16
+ * @example Default behavior (auto-create API client)
17
+ * ```typescript
18
+ * const chain = await EVMChain.fromUrl(rpcUrl, { logger })
19
+ * await chain.getLaneLatency(destSelector) // Works - uses production API
20
+ * ```
21
+ *
22
+ * @example Custom API endpoint
23
+ * ```typescript
24
+ * const api = new CCIPAPIClient('https://staging-api.example.com', { logger })
25
+ * const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: api, logger })
26
+ * ```
27
+ *
28
+ * @example Explicit opt-out (decentralized mode)
29
+ * ```typescript
30
+ * const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: null, logger })
31
+ * await chain.getLaneLatency(destSelector) // Throws CCIPApiClientNotAvailableError
32
+ * ```
33
+ */
34
+ export type ChainContext = WithLogger & {
35
+ /**
36
+ * CCIP API client instance for lane information queries.
37
+ *
38
+ * - `undefined` (default): Creates CCIPAPIClient with production endpoint
39
+ * (https://api.ccip.chain.link)
40
+ * - `CCIPAPIClient`: Uses provided instance (allows custom URL, fetch, etc.)
41
+ * - `null`: Disables API client entirely (getLaneLatency() will throw)
42
+ *
43
+ * Default: `undefined` (auto-create with production endpoint)
44
+ */
45
+ apiClient?: CCIPAPIClient | null;
46
+ };
11
47
  /**
12
48
  * Filter options for getLogs queries across chains.
13
49
  */
@@ -77,6 +113,38 @@ export type UnsignedTx = {
77
113
  [ChainFamily.TON]: UnsignedTONTx;
78
114
  [ChainFamily.Sui]: never;
79
115
  };
116
+ /**
117
+ * Common options for [[generateUnsignedSendMessage]] and [[sendMessage]] Chain methods
118
+ */
119
+ export type SendMessageOpts = {
120
+ /** Router address on this chain */
121
+ router: string;
122
+ /** Destination network selector. */
123
+ destChainSelector: bigint;
124
+ /** Message to send. If `fee` is omitted, it'll be calculated */
125
+ message: AnyMessage & {
126
+ fee?: bigint;
127
+ };
128
+ /** Approve the maximum amount of tokens to transfer */
129
+ approveMax?: boolean;
130
+ };
131
+ /**
132
+ * Common options for [[generateUnsignedExecuteReport]] and [[executeReport]] Chain methods
133
+ */
134
+ export type ExecuteReportOpts = {
135
+ /** address of the OffRamp contract */
136
+ offRamp: string;
137
+ /** execution report */
138
+ execReport: ExecutionReport;
139
+ /** gasLimit or computeUnits limit override for the ccipReceive call */
140
+ gasLimit?: number;
141
+ /** For EVM, overrides gasLimit on tokenPool call */
142
+ tokensGasLimit?: number;
143
+ /** For Solana, send report in chunks to OffRamp, to later execute */
144
+ forceBuffer?: boolean;
145
+ /** For Solana, create and extend addresses in a lookup table before executing */
146
+ forceLookupTable?: boolean;
147
+ };
80
148
  /**
81
149
  * Works like an interface for a base Chain class, but provides implementation (which can be
82
150
  * specialized) for some basic methods
@@ -86,11 +154,14 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
86
154
  [util.inspect.custom]: () => string;
87
155
  readonly network: NetworkInfo<F>;
88
156
  logger: Logger;
157
+ /** CCIP API client (null if opted out) */
158
+ readonly apiClient: CCIPAPIClient | null;
89
159
  /**
90
160
  * Base constructor for Chain class.
91
161
  * @param network - NetworkInfo object for the Chain instance
162
+ * @param ctx - Optional context with logger and API client configuration
92
163
  */
93
- constructor(network: NetworkInfo, { logger }?: WithLogger);
164
+ constructor(network: NetworkInfo, ctx?: ChainContext);
94
165
  /** Cleanup method to release resources (e.g., close connections). */
95
166
  destroy?(): void | Promise<void>;
96
167
  /**
@@ -109,14 +180,21 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
109
180
  * Confirm a log tx is finalized or wait for it to be finalized
110
181
  * Throws if it isn't included (e.g. a reorg)
111
182
  */
112
- waitFinalized({ log, tx, }: SetOptional<PickDeep<CCIPRequest, `log.${'address' | 'blockNumber' | 'transactionHash' | 'topics' | 'tx.timestamp'}` | 'tx.timestamp'>, 'tx'>, finality?: number | 'finalized', cancel$?: Promise<unknown>): Promise<true>;
183
+ waitFinalized({ request: { log, tx }, finality, cancel$, }: {
184
+ request: SetOptional<PickDeep<CCIPRequest, `log.${'address' | 'blockNumber' | 'transactionHash' | 'topics' | 'tx.timestamp'}` | 'tx.timestamp'>, 'tx'>;
185
+ finality?: number | 'finalized';
186
+ cancel$?: Promise<unknown>;
187
+ }): Promise<true>;
113
188
  /**
114
189
  * An async generator that yields logs based on the provided options.
115
190
  * @param opts - Options object containing:
116
191
  * - `startBlock`: if provided, fetch and generate logs forward starting from this block;
117
- * otherwise, returns logs backwards in time from endBlock;
118
- * optionally, startTime may be provided to fetch logs forward starting from this time
119
- * - `endBlock`: if omitted, use latest block
192
+ * otherwise, returns logs backwards in time from endBlock;
193
+ * optionally, startTime may be provided to fetch logs forward starting from this time
194
+ * - `startTime`: instead of a startBlock, a start timestamp may be provided;
195
+ * if either is provided, fetch logs forward from this starting point; otherwise, backwards
196
+ * - `endBlock`: if omitted, use latest block; can be a block number, 'latest', 'finalized' or
197
+ * negative finality block depth
120
198
  * - `endBefore`: optional hint signature for end of iteration, instead of endBlock
121
199
  * - `address`: if provided, fetch logs for this address only (may be required in some
122
200
  * networks/implementations)
@@ -125,6 +203,7 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
125
203
  * some networks/implementations may not be able to filter topics other than topic0s, so one may
126
204
  * want to assume those are optimization hints, instead of hard filters, and verify results
127
205
  * - `page`: if provided, try to use this page/range for batches
206
+ * - `watch`: true or cancellation promise, getLogs continuously after initial fetch
128
207
  * @returns An async iterable iterator of logs.
129
208
  */
130
209
  abstract getLogs(opts: LogFilter): AsyncIterableIterator<Log_>;
@@ -133,14 +212,14 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
133
212
  * @param tx - ChainTransaction or txHash to fetch requests from
134
213
  * @returns CCIP messages in the transaction (at least one)
135
214
  **/
136
- abstract fetchRequestsInTx(tx: string | ChainTransaction): Promise<CCIPRequest[]>;
215
+ abstract getMessagesInTx(tx: string | ChainTransaction): Promise<CCIPRequest[]>;
137
216
  /**
138
217
  * Scan for a CCIP request by message ID
139
218
  * @param messageId - message ID to fetch request for
140
219
  * @param onRamp - address may be required in some implementations, and throw if missing
141
220
  * @returns CCIPRequest
142
221
  **/
143
- fetchRequestById?(messageId: string, onRamp?: string, opts?: {
222
+ getMessageById?(messageId: string, onRamp?: string, opts?: {
144
223
  page?: number;
145
224
  }): Promise<CCIPRequest>;
146
225
  /**
@@ -149,7 +228,7 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
149
228
  * @param commit - CommitReport range (min, max).
150
229
  * @param opts - Optional parameters (e.g., `page` for pagination width).
151
230
  */
152
- abstract fetchAllMessagesInBatch<R extends PickDeep<CCIPRequest, 'lane' | `log.${'topics' | 'address' | 'blockNumber'}` | 'message.sequenceNumber'>>(request: R, commit: Pick<CommitReport, 'minSeqNr' | 'maxSeqNr'>, opts?: {
231
+ abstract getMessagesInBatch<R extends PickDeep<CCIPRequest, 'lane' | `log.${'topics' | 'address' | 'blockNumber'}` | 'message.sequenceNumber'>>(request: R, commit: Pick<CommitReport, 'minSeqNr' | 'maxSeqNr'>, opts?: {
153
232
  page?: number;
154
233
  }): Promise<R['message'][]>;
155
234
  /**
@@ -232,99 +311,154 @@ export declare abstract class Chain<F extends ChainFamily = ChainFamily> {
232
311
  abstract getTokenAdminRegistryFor(address: string): Promise<string>;
233
312
  /**
234
313
  * Fetch the current fee for a given intended message
235
- * @param router - router address on this chain
236
- * @param destChainSelector - dest network selector
237
- * @param message - message to send
314
+ * @param opts - {@link SendMessageOpts} without approveMax
238
315
  */
239
- abstract getFee(router: string, destChainSelector: bigint, message: AnyMessage): Promise<bigint>;
316
+ abstract getFee(opts: Omit<SendMessageOpts, 'approveMax'>): Promise<bigint>;
240
317
  /**
241
318
  * Generate unsigned txs for ccipSend'ing a message
242
- * @param sender - sender address
243
- * @param router - address of the Router contract
244
- * @param destChainSelector - chainSelector of destination chain
245
- * @param message - AnyMessage to send; if `fee` is not present, it'll be calculated
246
- * @param approveMax - if tokens approvals are needed, opt into approving maximum allowance
319
+ * @param opts - {@link SendMessageOpts} with sender address
247
320
  * @returns chain-family specific unsigned txs
248
321
  */
249
- abstract generateUnsignedSendMessage(sender: string, router: string, destChainSelector: bigint, message: AnyMessage & {
250
- fee?: bigint;
251
- }, opts?: {
252
- approveMax?: boolean;
322
+ abstract generateUnsignedSendMessage(opts: SendMessageOpts & {
323
+ /** Sender address (address of wallet which will send the message) */
324
+ sender: string;
253
325
  }): Promise<UnsignedTx[F]>;
254
326
  /**
255
327
  * Send a CCIP message through a router using provided wallet.
256
- * @param router - Router address on this chain.
257
- * @param destChainSelector - Destination network selector.
258
- * @param message - Message to send.
259
- * @param opts - Optional parameters:
260
- * - `wallet`: cli or environmental parameters to help pick a wallet
261
- * - `approveMax`: approve the maximum amount of tokens to transfer
262
- */
263
- abstract sendMessage(router: string, destChainSelector: bigint, message: AnyMessage & {
264
- fee?: bigint;
265
- }, opts: {
328
+ * @param opts - {@link SendMessageOpts} with chain-specific wallet for signing
329
+ * @returns CCIP request
330
+ *
331
+ * @example
332
+ * ```typescript
333
+ * const request = await chain.sendMessage({
334
+ * router: '0x...',
335
+ * destChainSelector: 4949039107694359620n,
336
+ * message: {
337
+ * receiver: '0x...',
338
+ * data: '0x1337',
339
+ * tokenAmounts: [{ token: '0x...', amount: 100n }],
340
+ * feeToken: '0xLinkToken',
341
+ * },
342
+ * wallet: signer,
343
+ * })
344
+ * console.log(`Message ID: ${request.message.messageId}`)
345
+ * ```
346
+ */
347
+ abstract sendMessage(opts: SendMessageOpts & {
348
+ /** Signer instance (chain-dependent) */
266
349
  wallet: unknown;
267
- approveMax?: boolean;
268
350
  }): Promise<CCIPRequest>;
269
351
  /**
270
352
  * Fetch supported offchain token data for a request from this network
271
353
  * @param request - CCIP request, with tx, logs and message
272
354
  * @returns array with one offchain token data for each token transfer in request
273
355
  */
274
- abstract fetchOffchainTokenData(request: CCIPRequest): Promise<OffchainTokenData[]>;
356
+ abstract getOffchainTokenData(request: CCIPRequest): Promise<OffchainTokenData[]>;
275
357
  /**
276
358
  * Generate unsigned tx to manuallyExecute a message
277
- * @param payer - address which will be used to transmit the report tx
278
- * @param offRamp - address of the OffRamp contract
279
- * @param execReport - execution report
280
- * @param gasLimit - gasLimit or computeUnits limit override for the ccipReceive call
281
- * @param tokensGasLimit - For EVM, overrides gasLimit on tokenpPool call
282
- * @param forceBuffer - For Solana, send report in chunks to OffRamp, to later execute
283
- * @param forceLookupTable - For Solana, create and extend addresses in a lookup table before executing
359
+ * @param opts - {@link ExecuteReportOpts} with payer address which will send the exec tx
284
360
  * @returns chain-family specific unsigned txs
285
361
  */
286
- abstract generateUnsignedExecuteReport(payer: string, offRamp: string, execReport: ExecutionReport, opts: {
287
- gasLimit?: number;
288
- tokensGasLimit?: number;
289
- forceBuffer?: boolean;
290
- forceLookupTable?: boolean;
362
+ abstract generateUnsignedExecuteReport(opts: ExecuteReportOpts & {
363
+ /** address which will be used to send the report tx */
364
+ payer: string;
291
365
  }): Promise<UnsignedTx[F]>;
292
366
  /**
293
367
  * Execute messages in report in an offRamp
294
- * @param offRamp - offRamp address on this dest chain
295
- * @param execReport - execution report containing messages to execute, proofs and offchainTokenData
296
- * @param opts - general options for execution (see [[generateUnsignedExecuteReport]])
297
- * @param wallet - chain-specific wallet or signer instance, to sign transactions
368
+ * @param opts - {@link ExecuteReportOpts} with chain-specific wallet to sign and send tx
298
369
  * @returns transaction of the execution
299
- */
300
- abstract executeReport(offRamp: string, execReport: ExecutionReport, opts: {
370
+ *
371
+ * @example
372
+ * ```typescript
373
+ * const execReportProof = calculateManualExecProof(
374
+ * messagesInBatch: await source.getMessagesInBatch(request, commit.report),
375
+ * request.lane,
376
+ * request.message.messageId,
377
+ * commit.report.merkleRoot,
378
+ * dest,
379
+ * )
380
+ * const receipt = await dest.executeReport({
381
+ * offRamp,
382
+ * execReport: {
383
+ * ...execReportProof,
384
+ * message: request.message,
385
+ * offchainTokenData: await source.getOffchainTokenData(request),
386
+ * },
387
+ * wallet,
388
+ * })
389
+ * console.log(`Message ID: ${request.message.messageId}`)
390
+ * ```
391
+ */
392
+ abstract executeReport(opts: ExecuteReportOpts & {
301
393
  wallet: unknown;
302
- gasLimit?: number;
303
- tokensGasLimit?: number;
304
- forceBuffer?: boolean;
305
- forceLookupTable?: boolean;
306
- }): Promise<ChainTransaction>;
394
+ }): Promise<CCIPExecution>;
307
395
  /**
308
396
  * Look for a CommitReport at dest for given CCIP request
309
397
  * May be specialized by some subclasses
310
- *
311
- * @param commitStore - Commit store address
312
- * @param request - CCIPRequest to get commit info for
313
- * @param hints - Additional filtering hints
398
+ * @param opts - getCommitReport options
314
399
  * @returns CCIPCommit info, or reject if none found
315
400
  **/
316
- fetchCommitReport(commitStore: string, request: PickDeep<CCIPRequest, 'lane' | 'message.sequenceNumber' | 'tx.timestamp'>, hints?: Pick<LogFilter, 'page' | 'watch'> & {
317
- startBlock?: number;
318
- }): Promise<CCIPCommit>;
319
- /**
320
- * Default/generic implementation of fetchExecutionReceipts
321
- * @param offRamp - Off-ramp address
322
- * @param request - CCIPRequest to get execution receipts for
323
- * @param commit - CCIPCommit info to help narrowing search for executions
324
- * @param hints - Additional filtering hints
401
+ getCommitReport({ commitStore, request, ...hints }: {
402
+ /** address of commitStore (OffRamp in \>=v1.6) */
403
+ commitStore: string;
404
+ /** CCIPRequest subset object */
405
+ request: PickDeep<CCIPRequest, 'lane' | 'message.sequenceNumber' | 'tx.timestamp'>;
406
+ } & Pick<LogFilter, 'page' | 'watch' | 'startBlock'>): Promise<CCIPCommit>;
407
+ /**
408
+ * Fetches estimated lane latency to a destination chain.
409
+ * Uses this chain's selector as the source.
410
+ *
411
+ * @param destChainSelector - Destination CCIP chain selector (bigint)
412
+ * @returns Promise resolving to {@link LaneLatencyResponse} containing:
413
+ * - `lane.sourceNetworkInfo` - Source chain metadata (name, selector, chainId)
414
+ * - `lane.destNetworkInfo` - Destination chain metadata
415
+ * - `lane.routerAddress` - Router contract address on source chain
416
+ * - `totalMs` - Estimated delivery time in milliseconds
417
+ *
418
+ * @throws {@link CCIPApiClientNotAvailableError} if apiClient was disabled (set to `null`)
419
+ * @throws {@link CCIPHttpError} if API request fails (network error, 4xx, 5xx status)
420
+ *
421
+ * @remarks
422
+ * Each call makes a fresh API request. Consider caching results if making
423
+ * frequent calls for the same lane.
424
+ *
425
+ * @example Get estimated delivery time
426
+ * ```typescript
427
+ * const chain = await EVMChain.fromUrl('https://eth-mainnet.example.com')
428
+ * try {
429
+ * const latency = await chain.getLaneLatency(4949039107694359620n) // Arbitrum
430
+ * console.log(`Estimated delivery: ${Math.round(latency.totalMs / 60000)} minutes`)
431
+ * console.log(`Router: ${latency.lane.routerAddress}`)
432
+ * } catch (err) {
433
+ * if (err instanceof CCIPHttpError) {
434
+ * console.error(`API error: ${err.context.apiErrorCode}`)
435
+ * }
436
+ * }
437
+ * ```
438
+ */
439
+ getLaneLatency(destChainSelector: bigint): Promise<LaneLatencyResponse>;
440
+ /**
441
+ * Default/generic implementation of getExecutionReceipts
442
+ * @param opts - getExecutionReceipts options
325
443
  * @returns Async generator of CCIPExecution receipts
326
444
  */
327
- fetchExecutionReceipts(offRamp: string, request: PickDeep<CCIPRequest, 'lane' | 'message.messageId' | 'tx.timestamp'>, commit?: CCIPCommit, hints?: Pick<LogFilter, 'page' | 'watch'>): AsyncIterableIterator<CCIPExecution>;
445
+ getExecutionReceipts({ offRamp, messageId, sourceChainSelector, commit, ...hints }: {
446
+ /** address of OffRamp contract */
447
+ offRamp: string;
448
+ /** filter: yield only executions for this message */
449
+ messageId?: string;
450
+ /** filter: yield only executions for this source chain */
451
+ sourceChainSelector?: bigint;
452
+ /** optional commit associated with the request, can be used for optimizations in some families */
453
+ commit?: CCIPCommit;
454
+ } & Pick<LogFilter, 'page' | 'watch' | 'startBlock' | 'startTime'>): AsyncIterableIterator<CCIPExecution>;
455
+ /**
456
+ * Fetch first execution receipt inside a transaction.
457
+ * @internal
458
+ * @param tx - transaction hash or transaction object
459
+ * @returns CCIP execution object
460
+ */
461
+ getExecutionReceiptInTx(tx: string | ChainTransaction): Promise<CCIPExecution>;
328
462
  /**
329
463
  * List tokens supported by given TokenAdminRegistry contract.
330
464
  * @param address - Usually TokenAdminRegistry, but chain may support receiving Router, OnRamp, etc.
@@ -374,8 +508,9 @@ export type ChainStatic<F extends ChainFamily = ChainFamily> = Function & {
374
508
  /**
375
509
  * async constructor: builds a Chain from a rpc endpoint url
376
510
  * @param url - rpc endpoint url
511
+ * @param ctx - optional context with logger and API client configuration
377
512
  */
378
- fromUrl(url: string, ctx?: WithLogger): Promise<Chain<F>>;
513
+ fromUrl(url: string, ctx?: ChainContext): Promise<Chain<F>>;
379
514
  /**
380
515
  * Try to decode a CCIP message *from* a log/event *originated* from this *source* chain,
381
516
  * but which may *target* other dest chain families
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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"}
package/dist/chain.js CHANGED
@@ -1,5 +1,6 @@
1
- import { fetchCommitReport } from "./commits.js";
2
- import { CCIPChainFamilyMismatchError, CCIPTransactionNotFinalizedError } from "./errors/index.js";
1
+ import { CCIPAPIClient } from "./api/index.js";
2
+ import { getCommitReport } from "./commits.js";
3
+ import { CCIPApiClientNotAvailableError, CCIPChainFamilyMismatchError, CCIPExecTxRevertedError, CCIPTransactionNotFinalizedError, } from "./errors/index.js";
3
4
  import { ExecutionState, } from "./types.js";
4
5
  import { util } from "./utils.js";
5
6
  /**
@@ -9,15 +10,29 @@ import { util } from "./utils.js";
9
10
  export class Chain {
10
11
  network;
11
12
  logger;
13
+ /** CCIP API client (null if opted out) */
14
+ apiClient;
12
15
  /**
13
16
  * Base constructor for Chain class.
14
17
  * @param network - NetworkInfo object for the Chain instance
18
+ * @param ctx - Optional context with logger and API client configuration
15
19
  */
16
- constructor(network, { logger = console } = {}) {
20
+ constructor(network, ctx) {
21
+ const { logger = console, apiClient } = ctx ?? {};
17
22
  if (network.family !== this.constructor.family)
18
23
  throw new CCIPChainFamilyMismatchError(this.constructor.name, this.constructor.family, network.family);
19
24
  this.network = network;
20
25
  this.logger = logger;
26
+ // API client initialization: default enabled, null = explicit opt-out
27
+ if (apiClient === null) {
28
+ this.apiClient = null; // Explicit opt-out
29
+ }
30
+ else if (apiClient !== undefined) {
31
+ this.apiClient = apiClient; // Use provided instance
32
+ }
33
+ else {
34
+ this.apiClient = new CCIPAPIClient(undefined, { logger }); // Default
35
+ }
21
36
  }
22
37
  /** Custom inspector for Node.js util.inspect. */
23
38
  [util.inspect.custom]() {
@@ -27,7 +42,7 @@ export class Chain {
27
42
  * Confirm a log tx is finalized or wait for it to be finalized
28
43
  * Throws if it isn't included (e.g. a reorg)
29
44
  */
30
- async waitFinalized({ log, tx, }, finality = 'finalized', cancel$) {
45
+ async waitFinalized({ request: { log, tx }, finality = 'finalized', cancel$, }) {
31
46
  const timestamp = log.tx?.timestamp ?? tx?.timestamp;
32
47
  if (!timestamp || Date.now() / 1e3 - timestamp > 60) {
33
48
  // only try to fetch tx if request is old enough (>60s)
@@ -57,34 +72,70 @@ export class Chain {
57
72
  /**
58
73
  * Look for a CommitReport at dest for given CCIP request
59
74
  * May be specialized by some subclasses
60
- *
61
- * @param commitStore - Commit store address
62
- * @param request - CCIPRequest to get commit info for
63
- * @param hints - Additional filtering hints
75
+ * @param opts - getCommitReport options
64
76
  * @returns CCIPCommit info, or reject if none found
65
77
  **/
66
- async fetchCommitReport(commitStore, request, hints) {
67
- return fetchCommitReport(this, commitStore, request, hints);
78
+ async getCommitReport({ commitStore, request, ...hints }) {
79
+ return getCommitReport(this, commitStore, request, hints);
68
80
  }
69
81
  /**
70
- * Default/generic implementation of fetchExecutionReceipts
71
- * @param offRamp - Off-ramp address
72
- * @param request - CCIPRequest to get execution receipts for
73
- * @param commit - CCIPCommit info to help narrowing search for executions
74
- * @param hints - Additional filtering hints
82
+ * Fetches estimated lane latency to a destination chain.
83
+ * Uses this chain's selector as the source.
84
+ *
85
+ * @param destChainSelector - Destination CCIP chain selector (bigint)
86
+ * @returns Promise resolving to {@link LaneLatencyResponse} containing:
87
+ * - `lane.sourceNetworkInfo` - Source chain metadata (name, selector, chainId)
88
+ * - `lane.destNetworkInfo` - Destination chain metadata
89
+ * - `lane.routerAddress` - Router contract address on source chain
90
+ * - `totalMs` - Estimated delivery time in milliseconds
91
+ *
92
+ * @throws {@link CCIPApiClientNotAvailableError} if apiClient was disabled (set to `null`)
93
+ * @throws {@link CCIPHttpError} if API request fails (network error, 4xx, 5xx status)
94
+ *
95
+ * @remarks
96
+ * Each call makes a fresh API request. Consider caching results if making
97
+ * frequent calls for the same lane.
98
+ *
99
+ * @example Get estimated delivery time
100
+ * ```typescript
101
+ * const chain = await EVMChain.fromUrl('https://eth-mainnet.example.com')
102
+ * try {
103
+ * const latency = await chain.getLaneLatency(4949039107694359620n) // Arbitrum
104
+ * console.log(`Estimated delivery: ${Math.round(latency.totalMs / 60000)} minutes`)
105
+ * console.log(`Router: ${latency.lane.routerAddress}`)
106
+ * } catch (err) {
107
+ * if (err instanceof CCIPHttpError) {
108
+ * console.error(`API error: ${err.context.apiErrorCode}`)
109
+ * }
110
+ * }
111
+ * ```
112
+ */
113
+ async getLaneLatency(destChainSelector) {
114
+ if (!this.apiClient) {
115
+ throw new CCIPApiClientNotAvailableError();
116
+ }
117
+ return this.apiClient.getLaneLatency(this.network.chainSelector, destChainSelector);
118
+ }
119
+ /**
120
+ * Default/generic implementation of getExecutionReceipts
121
+ * @param opts - getExecutionReceipts options
75
122
  * @returns Async generator of CCIPExecution receipts
76
123
  */
77
- async *fetchExecutionReceipts(offRamp, request, commit, hints) {
78
- const onlyLast = !commit?.log.blockNumber && !request.tx.timestamp; // backwards
124
+ async *getExecutionReceipts({ offRamp, messageId, sourceChainSelector, commit, ...hints }) {
125
+ hints.startBlock ??= commit?.log.blockNumber;
126
+ const onlyLast = !hints.startTime && !hints.startBlock; // backwards
79
127
  for await (const log of this.getLogs({
80
- startBlock: commit?.log.blockNumber,
81
- startTime: request.tx.timestamp,
82
128
  address: offRamp,
83
129
  topics: ['ExecutionStateChanged'],
84
130
  ...hints,
85
131
  })) {
86
132
  const receipt = this.constructor.decodeReceipt(log);
87
- if (!receipt || receipt.messageId !== request.message.messageId)
133
+ // filters
134
+ if (!receipt ||
135
+ (messageId && receipt.messageId !== messageId) ||
136
+ (sourceChainSelector &&
137
+ receipt.sourceChainSelector &&
138
+ receipt.sourceChainSelector !== sourceChainSelector))
88
139
  continue;
89
140
  const timestamp = log.tx?.timestamp ?? (await this.getBlockTimestamp(log.blockNumber));
90
141
  yield { receipt, log, timestamp };
@@ -92,5 +143,23 @@ export class Chain {
92
143
  break;
93
144
  }
94
145
  }
146
+ /**
147
+ * Fetch first execution receipt inside a transaction.
148
+ * @internal
149
+ * @param tx - transaction hash or transaction object
150
+ * @returns CCIP execution object
151
+ */
152
+ async getExecutionReceiptInTx(tx) {
153
+ if (typeof tx === 'string')
154
+ tx = await this.getTransaction(tx);
155
+ for (const log of tx.logs) {
156
+ const rcpt = this.constructor.decodeReceipt(log);
157
+ if (!rcpt)
158
+ continue;
159
+ const timestamp = tx.timestamp;
160
+ return { receipt: rcpt, log, timestamp };
161
+ }
162
+ throw new CCIPExecTxRevertedError(tx.hash);
163
+ }
95
164
  }
96
165
  //# sourceMappingURL=chain.js.map
package/dist/chain.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AAYlG,OAAO,EAiBL,cAAc,GACf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AA4EjC;;;GAGG;AACH,MAAM,OAAgB,KAAK;IAChB,OAAO,CAAgB;IAChC,MAAM,CAAQ;IAEd;;;OAGG;IACH,YAAY,OAAoB,EAAE,EAAE,MAAM,GAAG,OAAO,KAAiB,EAAE;QACrE,IAAI,OAAO,CAAC,MAAM,KAAM,IAAI,CAAC,WAA2B,CAAC,MAAM;YAC7D,MAAM,IAAI,4BAA4B,CACpC,IAAI,CAAC,WAAW,CAAC,IAAI,EACpB,IAAI,CAAC,WAA2B,CAAC,MAAM,EACxC,OAAO,CAAC,MAAM,CACf,CAAA;QACH,IAAI,CAAC,OAAO,GAAG,OAAyB,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAKD,iDAAiD;IACjD,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;IAcD;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,EACE,GAAG,EACH,EAAE,GAQH,EACD,WAAiC,WAAW,EAC5C,OAA0B;QAE1B,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,CAAA;QACpD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;YACpD,uDAAuD;YACvD,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAA;YACF,IAAI,KAAK,CAAC,SAAS,IAAI,WAAW;gBAAE,OAAO,IAAI,CAAA;QACjD,CAAC;QACD,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;YACjC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,OAAO,IAAI,IAAI;SACvB,CAAC,EAAE,CAAC;YACH,IAAI,CAAC,CAAC,eAAe,KAAK,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAA;YACb,CAAC;iBAAM,IAAI,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC3C,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,IAAI,gCAAgC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACjE,CAAC;IA8ND;;;;;;;;QAQI;IACJ,KAAK,CAAC,iBAAiB,CACrB,WAAmB,EACnB,OAAkF,EAClF,KAAmE;QAEnE,OAAO,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,sBAAsB,CAC3B,OAAe,EACf,OAA6E,EAC7E,MAAmB,EACnB,KAAyC;QAEzC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAA,CAAC,YAAY;QAC/E,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YACnC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW;YACnC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS;YAC/B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,CAAC,uBAAuB,CAAC;YACjC,GAAG,KAAK;SACT,CAAC,EAAE,CAAC;YACH,MAAM,OAAO,GAAI,IAAI,CAAC,WAA2B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACpE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS;gBAAE,SAAQ;YAEzE,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,EAAE,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;YACtF,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;YACjC,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,CAAC,OAAO;gBAAE,MAAK;QACjE,CAAC;IACH,CAAC;CAmDF"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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"}
package/dist/commits.d.ts CHANGED
@@ -4,7 +4,7 @@ import { type CCIPCommit, type CCIPRequest } from './types.ts';
4
4
  /**
5
5
  * Look for a CommitReport at dest for given CCIPRequest
6
6
  * Provides a basic/generic implementation, but subclasses of Chain may override with more specific
7
- * logic in Chain.fetchCommitReport method
7
+ * logic in Chain.getCommitReport method
8
8
  *
9
9
  * @param dest - Destination network provider
10
10
  * @param commitStore - Commit store address
@@ -12,7 +12,7 @@ import { type CCIPCommit, type CCIPRequest } from './types.ts';
12
12
  * @param hints - Additional filtering hints
13
13
  * @returns CCIP commit info
14
14
  **/
15
- export declare function fetchCommitReport(dest: Chain, commitStore: string, { lane, message, tx: { timestamp: requestTimestamp }, }: PickDeep<CCIPRequest, 'lane' | 'message.sequenceNumber' | 'tx.timestamp'>, hints?: Pick<LogFilter, 'page' | 'watch'> & {
15
+ export declare function getCommitReport(dest: Chain, commitStore: string, { lane, message, tx: { timestamp: requestTimestamp }, }: PickDeep<CCIPRequest, 'lane' | 'message.sequenceNumber' | 'tx.timestamp'>, hints?: Pick<LogFilter, 'page' | 'watch'> & {
16
16
  startBlock?: number;
17
17
  }): Promise<CCIPCommit>;
18
18
  //# sourceMappingURL=commits.d.ts.map