@chainlink/ccip-sdk 1.1.1 → 1.2.1
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 +165 -15
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +236 -61
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +119 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/chain.d.ts +53 -27
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js +72 -17
- package/dist/chain.js.map +1 -1
- package/dist/errors/codes.d.ts +1 -0
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/errors/codes.js +1 -0
- 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 +1 -0
- package/dist/errors/recovery.js.map +1 -1
- package/dist/errors/specialized.d.ts +21 -0
- package/dist/errors/specialized.d.ts.map +1 -1
- package/dist/errors/specialized.js +31 -1
- package/dist/errors/specialized.js.map +1 -1
- package/dist/evm/abi/OffRamp_2_0.d.ts +18 -17
- package/dist/evm/abi/OffRamp_2_0.d.ts.map +1 -1
- package/dist/evm/abi/OffRamp_2_0.js +19 -21
- package/dist/evm/abi/OffRamp_2_0.js.map +1 -1
- package/dist/evm/abi/TokenPool_2_0.d.ts +0 -4
- package/dist/evm/abi/TokenPool_2_0.d.ts.map +1 -1
- package/dist/evm/abi/TokenPool_2_0.js +0 -1
- package/dist/evm/abi/TokenPool_2_0.js.map +1 -1
- package/dist/evm/gas.d.ts +14 -4
- package/dist/evm/gas.d.ts.map +1 -1
- package/dist/evm/gas.js +7 -6
- package/dist/evm/gas.js.map +1 -1
- package/dist/evm/index.d.ts +39 -8
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +114 -28
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/types.d.ts +1 -1
- package/dist/evm/types.d.ts.map +1 -1
- package/dist/extra-args.d.ts +18 -8
- package/dist/extra-args.d.ts.map +1 -1
- package/dist/extra-args.js +6 -6
- package/dist/extra-args.js.map +1 -1
- package/dist/gas.d.ts +1 -1
- package/dist/gas.d.ts.map +1 -1
- package/dist/gas.js +7 -2
- package/dist/gas.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/offchain.d.ts.map +1 -1
- package/dist/offchain.js +6 -6
- package/dist/offchain.js.map +1 -1
- package/dist/requests.d.ts +11 -5
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +6 -7
- package/dist/requests.js.map +1 -1
- package/dist/solana/index.d.ts +2 -2
- package/dist/solana/index.d.ts.map +1 -1
- package/dist/solana/index.js +1 -1
- package/dist/solana/index.js.map +1 -1
- package/dist/solana/utils.js +2 -2
- package/dist/solana/utils.js.map +1 -1
- package/dist/sui/index.d.ts.map +1 -1
- package/dist/sui/index.js +1 -1
- package/dist/sui/index.js.map +1 -1
- package/dist/ton/index.d.ts.map +1 -1
- package/dist/ton/index.js +34 -26
- package/dist/ton/index.js.map +1 -1
- package/dist/utils.d.ts +10 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -4
- package/dist/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/api/index.ts +271 -59
- package/src/api/types.ts +126 -1
- package/src/chain.ts +121 -43
- package/src/errors/codes.ts +1 -0
- package/src/errors/index.ts +1 -0
- package/src/errors/recovery.ts +2 -0
- package/src/errors/specialized.ts +33 -1
- package/src/evm/abi/OffRamp_2_0.ts +19 -21
- package/src/evm/abi/TokenPool_2_0.ts +0 -1
- package/src/evm/gas.ts +18 -20
- package/src/evm/index.ts +141 -28
- package/src/evm/types.ts +1 -1
- package/src/extra-args.ts +18 -8
- package/src/gas.ts +8 -3
- package/src/index.ts +4 -0
- package/src/offchain.ts +6 -8
- package/src/requests.ts +19 -12
- package/src/solana/index.ts +3 -1
- package/src/solana/utils.ts +2 -2
- package/src/sui/index.ts +3 -1
- package/src/ton/index.ts +47 -26
- package/src/utils.ts +10 -4
package/dist/api/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { SetRequired } from 'type-fest';
|
|
2
2
|
import { type CCIPRequest, type ExecutionInput, type Lane, type Logger, type WithLogger } from '../types.ts';
|
|
3
|
-
import type { LaneLatencyResponse } from './types.ts';
|
|
4
|
-
export type { APICCIPRequestMetadata, APIErrorResponse, LaneLatencyResponse } from './types.ts';
|
|
3
|
+
import type { LaneLatencyResponse, MessageSearchFilters, MessageSearchPage, MessageSearchResult } from './types.ts';
|
|
4
|
+
export type { APICCIPRequestMetadata, APIErrorResponse, LaneLatencyResponse, MessageSearchFilters, MessageSearchPage, MessageSearchResult, } from './types.ts';
|
|
5
5
|
/** Default CCIP API base URL */
|
|
6
6
|
export declare const DEFAULT_API_BASE_URL = "https://api.ccip.chain.link";
|
|
7
7
|
/** Default timeout for API requests in milliseconds */
|
|
8
8
|
export declare const DEFAULT_TIMEOUT_MS = 30000;
|
|
9
9
|
/** SDK version string for telemetry header */
|
|
10
|
-
export declare const SDK_VERSION = "1.
|
|
10
|
+
export declare const SDK_VERSION = "1.2.1-9b9bb0e";
|
|
11
11
|
/** SDK telemetry header name */
|
|
12
12
|
export declare const SDK_VERSION_HEADER = "X-SDK-Version";
|
|
13
13
|
/**
|
|
@@ -91,10 +91,15 @@ export declare class CCIPAPIClient {
|
|
|
91
91
|
*
|
|
92
92
|
* @param sourceChainSelector - Source chain selector (bigint)
|
|
93
93
|
* @param destChainSelector - Destination chain selector (bigint)
|
|
94
|
+
* @param numberOfBlocks - Optional number of block confirmations for latency calculation.
|
|
95
|
+
* When omitted or 0, uses the lane's default finality. When provided as a positive
|
|
96
|
+
* integer, the API returns latency for that custom finality value (sent as `numOfBlocks`
|
|
97
|
+
* query parameter).
|
|
94
98
|
* @returns Promise resolving to {@link LaneLatencyResponse} with totalMs
|
|
95
99
|
*
|
|
96
100
|
* @throws {@link CCIPLaneNotFoundError} when lane not found (404)
|
|
97
101
|
* @throws {@link CCIPTimeoutError} if request times out
|
|
102
|
+
* @throws {@link CCIPAbortError} if request is aborted via signal
|
|
98
103
|
* @throws {@link CCIPHttpError} on other HTTP errors with context:
|
|
99
104
|
* - `status` - HTTP status code (e.g., 500)
|
|
100
105
|
* - `statusText` - HTTP status message
|
|
@@ -110,6 +115,15 @@ export declare class CCIPAPIClient {
|
|
|
110
115
|
* console.log(`Estimated delivery: ${Math.round(latency.totalMs / 60000)} minutes`)
|
|
111
116
|
* ```
|
|
112
117
|
*
|
|
118
|
+
* @example Custom block confirmations
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const latency = await api.getLaneLatency(
|
|
121
|
+
* 5009297550715157269n, // Ethereum mainnet
|
|
122
|
+
* 4949039107694359620n, // Arbitrum mainnet
|
|
123
|
+
* 10, // 10 block confirmations
|
|
124
|
+
* )
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
113
127
|
* @example Handling specific API errors
|
|
114
128
|
* ```typescript
|
|
115
129
|
* try {
|
|
@@ -121,7 +135,9 @@ export declare class CCIPAPIClient {
|
|
|
121
135
|
* }
|
|
122
136
|
* ```
|
|
123
137
|
*/
|
|
124
|
-
getLaneLatency(sourceChainSelector: bigint, destChainSelector: bigint
|
|
138
|
+
getLaneLatency(sourceChainSelector: bigint, destChainSelector: bigint, numberOfBlocks?: number, options?: {
|
|
139
|
+
signal?: AbortSignal;
|
|
140
|
+
}): Promise<LaneLatencyResponse>;
|
|
125
141
|
/**
|
|
126
142
|
* Fetches a CCIP message by its unique message ID.
|
|
127
143
|
*
|
|
@@ -130,6 +146,7 @@ export declare class CCIPAPIClient {
|
|
|
130
146
|
*
|
|
131
147
|
* @throws {@link CCIPMessageIdNotFoundError} when message not found (404)
|
|
132
148
|
* @throws {@link CCIPTimeoutError} if request times out
|
|
149
|
+
* @throws {@link CCIPAbortError} if request is aborted via signal
|
|
133
150
|
* @throws {@link CCIPHttpError} on HTTP errors with context:
|
|
134
151
|
* - `status` - HTTP status code
|
|
135
152
|
* - `statusText` - HTTP status message
|
|
@@ -156,17 +173,119 @@ export declare class CCIPAPIClient {
|
|
|
156
173
|
* }
|
|
157
174
|
* ```
|
|
158
175
|
*/
|
|
159
|
-
getMessageById(messageId: string
|
|
176
|
+
getMessageById(messageId: string, options?: {
|
|
177
|
+
signal?: AbortSignal;
|
|
178
|
+
}): Promise<SetRequired<CCIPRequest, 'metadata'>>;
|
|
179
|
+
/**
|
|
180
|
+
* Searches CCIP messages using filters with cursor-based pagination.
|
|
181
|
+
*
|
|
182
|
+
* @param filters - Optional search filters. Ignored when `options.cursor` is provided
|
|
183
|
+
* (the cursor already encodes the original filters).
|
|
184
|
+
* @param options - Optional pagination options: `limit` (max results per page) and
|
|
185
|
+
* `cursor` (opaque token from a previous {@link MessageSearchPage} for the next page).
|
|
186
|
+
* @returns Promise resolving to a {@link MessageSearchPage} with results and pagination info.
|
|
187
|
+
*
|
|
188
|
+
* @remarks
|
|
189
|
+
* A 404 response is treated as "no results found" and returns an empty page,
|
|
190
|
+
* unlike {@link CCIPAPIClient.getMessageById} which throws on 404.
|
|
191
|
+
* When paginating with a cursor, the `filters` parameter is ignored because
|
|
192
|
+
* the cursor encodes the original filters.
|
|
193
|
+
*
|
|
194
|
+
* @throws {@link CCIPTimeoutError} if request times out.
|
|
195
|
+
* @throws {@link CCIPAbortError} if request is aborted via signal.
|
|
196
|
+
* @throws {@link CCIPHttpError} on HTTP errors (4xx/5xx, except 404 which returns empty).
|
|
197
|
+
*
|
|
198
|
+
* @see {@link MessageSearchFilters} — available filter fields
|
|
199
|
+
* @see {@link MessageSearchPage} — return type with pagination
|
|
200
|
+
* @see {@link CCIPAPIClient.searchAllMessages} — async generator that handles pagination automatically
|
|
201
|
+
* @see {@link CCIPAPIClient.getMessageById} — fetch full message details for a search result
|
|
202
|
+
* @see {@link CCIPAPIClient.getMessageIdsInTx} — convenience wrapper using `sourceTransactionHash`
|
|
203
|
+
*
|
|
204
|
+
* @example Search by sender
|
|
205
|
+
* ```typescript
|
|
206
|
+
* const page = await api.searchMessages({
|
|
207
|
+
* sender: '0x9d087fC03ae39b088326b67fA3C788236645b717',
|
|
208
|
+
* })
|
|
209
|
+
* for (const msg of page.data) {
|
|
210
|
+
* console.log(`${msg.messageId}: ${msg.status}`)
|
|
211
|
+
* }
|
|
212
|
+
* ```
|
|
213
|
+
*
|
|
214
|
+
* @example Paginate through all results
|
|
215
|
+
* ```typescript
|
|
216
|
+
* let page = await api.searchMessages({ sender: '0x...' }, { limit: 10 })
|
|
217
|
+
* const all = [...page.data]
|
|
218
|
+
* while (page.hasNextPage) {
|
|
219
|
+
* page = await api.searchMessages(undefined, { cursor: page.cursor! })
|
|
220
|
+
* all.push(...page.data)
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* @example Filter by lane and sender
|
|
225
|
+
* ```typescript
|
|
226
|
+
* const page = await api.searchMessages({
|
|
227
|
+
* sender: '0x9d087fC03ae39b088326b67fA3C788236645b717',
|
|
228
|
+
* sourceChainSelector: 16015286601757825753n,
|
|
229
|
+
* destChainSelector: 14767482510784806043n,
|
|
230
|
+
* })
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
searchMessages(filters?: MessageSearchFilters, options?: {
|
|
234
|
+
limit?: number;
|
|
235
|
+
cursor?: string;
|
|
236
|
+
signal?: AbortSignal;
|
|
237
|
+
}): Promise<MessageSearchPage>;
|
|
238
|
+
/**
|
|
239
|
+
* Async generator that streams all messages matching the given filters,
|
|
240
|
+
* handling cursor-based pagination automatically.
|
|
241
|
+
*
|
|
242
|
+
* @param filters - Optional search filters (same as {@link CCIPAPIClient.searchMessages}).
|
|
243
|
+
* @param options - Optional `limit` controlling the per-page fetch size (number of
|
|
244
|
+
* results fetched per API call). The total number of results is controlled by the
|
|
245
|
+
* consumer — break out of the loop to stop early.
|
|
246
|
+
* @returns AsyncGenerator yielding {@link MessageSearchResult} one at a time, across all pages.
|
|
247
|
+
*
|
|
248
|
+
* @throws {@link CCIPTimeoutError} if a page request times out.
|
|
249
|
+
* @throws {@link CCIPAbortError} if a page request is aborted via signal.
|
|
250
|
+
* @throws {@link CCIPHttpError} on HTTP errors (4xx/5xx, except 404 which yields nothing).
|
|
251
|
+
*
|
|
252
|
+
* @see {@link CCIPAPIClient.searchMessages} — for page-level control and explicit cursor handling
|
|
253
|
+
* @see {@link CCIPAPIClient.getMessageById} — fetch full message details for a search result
|
|
254
|
+
*
|
|
255
|
+
* @example Iterate all messages for a sender
|
|
256
|
+
* ```typescript
|
|
257
|
+
* for await (const msg of api.searchAllMessages({ sender: '0x...' })) {
|
|
258
|
+
* console.log(`${msg.messageId}: ${msg.status}`)
|
|
259
|
+
* }
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
* @example Stop after collecting 5 results
|
|
263
|
+
* ```typescript
|
|
264
|
+
* const results: MessageSearchResult[] = []
|
|
265
|
+
* for await (const msg of api.searchAllMessages({ sender: '0x...' })) {
|
|
266
|
+
* results.push(msg)
|
|
267
|
+
* if (results.length >= 5) break
|
|
268
|
+
* }
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
searchAllMessages(filters?: MessageSearchFilters, options?: {
|
|
272
|
+
limit?: number;
|
|
273
|
+
signal?: AbortSignal;
|
|
274
|
+
}): AsyncGenerator<MessageSearchResult>;
|
|
160
275
|
/**
|
|
161
276
|
* Fetches message IDs from a source transaction hash.
|
|
162
277
|
*
|
|
163
|
-
* @
|
|
164
|
-
* @
|
|
278
|
+
* @remarks
|
|
279
|
+
* Uses {@link CCIPAPIClient.searchMessages} internally with `sourceTransactionHash` filter and `limit: 100`.
|
|
165
280
|
*
|
|
166
|
-
* @
|
|
167
|
-
* @
|
|
168
|
-
*
|
|
169
|
-
* @throws {@link
|
|
281
|
+
* @param txHash - Source transaction hash.
|
|
282
|
+
* @returns Promise resolving to array of message IDs.
|
|
283
|
+
*
|
|
284
|
+
* @throws {@link CCIPMessageNotFoundInTxError} when no messages found (404 or empty).
|
|
285
|
+
* @throws {@link CCIPUnexpectedPaginationError} when hasNextPage is true.
|
|
286
|
+
* @throws {@link CCIPTimeoutError} if request times out.
|
|
287
|
+
* @throws {@link CCIPAbortError} if request is aborted via signal.
|
|
288
|
+
* @throws {@link CCIPHttpError} on HTTP errors.
|
|
170
289
|
*
|
|
171
290
|
* @example Basic usage
|
|
172
291
|
* ```typescript
|
|
@@ -175,14 +294,45 @@ export declare class CCIPAPIClient {
|
|
|
175
294
|
* )
|
|
176
295
|
* console.log(`Found ${messageIds.length} messages`)
|
|
177
296
|
* ```
|
|
297
|
+
*
|
|
298
|
+
* @example Fetch full details for each message
|
|
299
|
+
* ```typescript
|
|
300
|
+
* const api = CCIPAPIClient.fromUrl()
|
|
301
|
+
* const messageIds = await api.getMessageIdsInTx(txHash)
|
|
302
|
+
* for (const id of messageIds) {
|
|
303
|
+
* const request = await api.getMessageById(id)
|
|
304
|
+
* console.log(`${id}: ${request.metadata.status}`)
|
|
305
|
+
* }
|
|
306
|
+
* ```
|
|
178
307
|
*/
|
|
179
|
-
getMessageIdsInTx(txHash: string
|
|
308
|
+
getMessageIdsInTx(txHash: string, options?: {
|
|
309
|
+
signal?: AbortSignal;
|
|
310
|
+
}): Promise<string[]>;
|
|
180
311
|
/**
|
|
181
312
|
* Fetches the execution input for a given message by id.
|
|
182
|
-
*
|
|
183
|
-
*
|
|
313
|
+
* For v2.0 messages, returns `{ encodedMessage, verifications }`.
|
|
314
|
+
* For pre-v2 messages, returns `{ message, offchainTokenData, proofs, ... }` with merkle proof.
|
|
315
|
+
*
|
|
316
|
+
* @param messageId - The CCIP message ID (32-byte hex string)
|
|
317
|
+
* @returns Execution input with offRamp address and lane info
|
|
318
|
+
*
|
|
319
|
+
* @throws {@link CCIPMessageIdNotFoundError} when message not found (404)
|
|
320
|
+
* @throws {@link CCIPTimeoutError} if request times out
|
|
321
|
+
* @throws {@link CCIPAbortError} if request is aborted via signal
|
|
322
|
+
* @throws {@link CCIPHttpError} on other HTTP errors
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```typescript
|
|
326
|
+
* const api = CCIPAPIClient.fromUrl()
|
|
327
|
+
* const execInput = await api.getExecutionInput('0x1234...')
|
|
328
|
+
* // Use with dest.execute():
|
|
329
|
+
* const { offRamp, ...input } = execInput
|
|
330
|
+
* await dest.execute({ offRamp, input, wallet })
|
|
331
|
+
* ```
|
|
184
332
|
*/
|
|
185
|
-
getExecutionInput(messageId: string
|
|
333
|
+
getExecutionInput(messageId: string, options?: {
|
|
334
|
+
signal?: AbortSignal;
|
|
335
|
+
}): Promise<ExecutionInput & Lane & {
|
|
186
336
|
offRamp: string;
|
|
187
337
|
}>;
|
|
188
338
|
/**
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|