@chainlink/ccip-sdk 0.90.2 → 0.91.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -26
- package/dist/aptos/exec.d.ts +4 -5
- package/dist/aptos/exec.d.ts.map +1 -1
- package/dist/aptos/exec.js +5 -14
- package/dist/aptos/exec.js.map +1 -1
- package/dist/aptos/hasher.d.ts +18 -0
- package/dist/aptos/hasher.d.ts.map +1 -1
- package/dist/aptos/hasher.js +18 -0
- package/dist/aptos/hasher.js.map +1 -1
- package/dist/aptos/index.d.ts +127 -28
- package/dist/aptos/index.d.ts.map +1 -1
- package/dist/aptos/index.js +199 -70
- package/dist/aptos/index.js.map +1 -1
- package/dist/aptos/logs.d.ts +18 -0
- package/dist/aptos/logs.d.ts.map +1 -1
- package/dist/aptos/logs.js +21 -3
- package/dist/aptos/logs.js.map +1 -1
- package/dist/aptos/send.d.ts +22 -5
- package/dist/aptos/send.d.ts.map +1 -1
- package/dist/aptos/send.js +23 -15
- package/dist/aptos/send.js.map +1 -1
- package/dist/aptos/token.d.ts +6 -0
- package/dist/aptos/token.d.ts.map +1 -1
- package/dist/aptos/token.js +6 -0
- package/dist/aptos/token.js.map +1 -1
- package/dist/aptos/types.d.ts +16 -1
- package/dist/aptos/types.d.ts.map +1 -1
- package/dist/aptos/types.js +13 -0
- package/dist/aptos/types.js.map +1 -1
- package/dist/aptos/utils.d.ts +1 -1
- package/dist/aptos/utils.js +1 -1
- package/dist/chain.d.ts +185 -99
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js +38 -15
- package/dist/chain.js.map +1 -1
- package/dist/commits.d.ts +4 -10
- package/dist/commits.d.ts.map +1 -1
- package/dist/commits.js +2 -1
- package/dist/commits.js.map +1 -1
- package/dist/evm/const.d.ts +5 -0
- package/dist/evm/const.d.ts.map +1 -1
- package/dist/evm/const.js +5 -0
- package/dist/evm/const.js.map +1 -1
- package/dist/evm/errors.d.ts +5 -0
- package/dist/evm/errors.d.ts.map +1 -1
- package/dist/evm/errors.js +6 -1
- package/dist/evm/errors.js.map +1 -1
- package/dist/evm/hasher.d.ts +16 -2
- package/dist/evm/hasher.d.ts.map +1 -1
- package/dist/evm/hasher.js +17 -3
- package/dist/evm/hasher.js.map +1 -1
- package/dist/evm/index.d.ts +176 -31
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +312 -154
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/logs.d.ts +20 -0
- package/dist/evm/logs.d.ts.map +1 -0
- package/dist/evm/logs.js +194 -0
- package/dist/evm/logs.js.map +1 -0
- package/dist/evm/messages.d.ts +11 -2
- package/dist/evm/messages.d.ts.map +1 -1
- package/dist/evm/messages.js +4 -2
- package/dist/evm/messages.js.map +1 -1
- package/dist/evm/offchain.d.ts +7 -2
- package/dist/evm/offchain.d.ts.map +1 -1
- package/dist/evm/offchain.js +12 -7
- package/dist/evm/offchain.js.map +1 -1
- package/dist/execution.d.ts +19 -62
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +28 -31
- package/dist/execution.js.map +1 -1
- package/dist/extra-args.d.ts +35 -5
- package/dist/extra-args.d.ts.map +1 -1
- package/dist/extra-args.js +10 -5
- package/dist/extra-args.js.map +1 -1
- package/dist/gas.d.ts +6 -8
- package/dist/gas.d.ts.map +1 -1
- package/dist/gas.js +7 -9
- package/dist/gas.js.map +1 -1
- package/dist/hasher/common.d.ts +3 -2
- package/dist/hasher/common.d.ts.map +1 -1
- package/dist/hasher/common.js +2 -2
- package/dist/hasher/common.js.map +1 -1
- package/dist/hasher/hasher.d.ts +8 -2
- package/dist/hasher/hasher.d.ts.map +1 -1
- package/dist/hasher/hasher.js +8 -3
- package/dist/hasher/hasher.js.map +1 -1
- package/dist/hasher/merklemulti.d.ts +11 -9
- package/dist/hasher/merklemulti.d.ts.map +1 -1
- package/dist/hasher/merklemulti.js +17 -16
- package/dist/hasher/merklemulti.js.map +1 -1
- package/dist/index.d.ts +16 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/requests.d.ts +39 -25
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +42 -35
- package/dist/requests.js.map +1 -1
- package/dist/selectors.d.ts +1 -1
- package/dist/solana/cleanup.d.ts +14 -10
- package/dist/solana/cleanup.d.ts.map +1 -1
- package/dist/solana/cleanup.js +35 -33
- package/dist/solana/cleanup.js.map +1 -1
- package/dist/solana/exec.d.ts +19 -11
- package/dist/solana/exec.d.ts.map +1 -1
- package/dist/solana/exec.js +86 -163
- package/dist/solana/exec.js.map +1 -1
- package/dist/solana/hasher.d.ts +7 -2
- package/dist/solana/hasher.d.ts.map +1 -1
- package/dist/solana/hasher.js +7 -2
- package/dist/solana/hasher.js.map +1 -1
- package/dist/solana/index.d.ts +202 -84
- package/dist/solana/index.d.ts.map +1 -1
- package/dist/solana/index.js +367 -252
- package/dist/solana/index.js.map +1 -1
- package/dist/solana/offchain.d.ts +8 -18
- package/dist/solana/offchain.d.ts.map +1 -1
- package/dist/solana/offchain.js +29 -83
- package/dist/solana/offchain.js.map +1 -1
- package/dist/solana/patchBorsh.d.ts +5 -1
- package/dist/solana/patchBorsh.d.ts.map +1 -1
- package/dist/solana/patchBorsh.js +57 -46
- package/dist/solana/patchBorsh.js.map +1 -1
- package/dist/solana/send.d.ts +28 -10
- package/dist/solana/send.d.ts.map +1 -1
- package/dist/solana/send.js +44 -77
- package/dist/solana/send.js.map +1 -1
- package/dist/solana/types.d.ts +22 -1
- package/dist/solana/types.d.ts.map +1 -1
- package/dist/solana/types.js +12 -1
- package/dist/solana/types.js.map +1 -1
- package/dist/solana/utils.d.ts +58 -4
- package/dist/solana/utils.d.ts.map +1 -1
- package/dist/solana/utils.js +110 -7
- package/dist/solana/utils.js.map +1 -1
- package/dist/sui/hasher.d.ts +18 -0
- package/dist/sui/hasher.d.ts.map +1 -1
- package/dist/sui/hasher.js +18 -0
- package/dist/sui/hasher.js.map +1 -1
- package/dist/sui/index.d.ts +99 -12
- package/dist/sui/index.d.ts.map +1 -1
- package/dist/sui/index.js +108 -19
- package/dist/sui/index.js.map +1 -1
- package/dist/sui/types.d.ts +6 -0
- package/dist/sui/types.d.ts.map +1 -1
- package/dist/sui/types.js +5 -0
- package/dist/sui/types.js.map +1 -1
- package/dist/supported-chains.d.ts +2 -1
- package/dist/supported-chains.d.ts.map +1 -1
- package/dist/supported-chains.js.map +1 -1
- package/dist/types.d.ts +127 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +67 -46
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +143 -21
- package/dist/utils.js.map +1 -1
- package/package.json +13 -9
- package/src/aptos/exec.ts +7 -18
- package/src/aptos/hasher.ts +18 -0
- package/src/aptos/index.ts +288 -110
- package/src/aptos/logs.ts +21 -3
- package/src/aptos/send.ts +25 -22
- package/src/aptos/token.ts +6 -0
- package/src/aptos/types.ts +26 -2
- package/src/aptos/utils.ts +1 -1
- package/src/chain.ts +243 -108
- package/src/commits.ts +6 -7
- package/src/evm/const.ts +5 -0
- package/src/evm/errors.ts +6 -1
- package/src/evm/hasher.ts +20 -4
- package/src/evm/index.ts +416 -214
- package/src/evm/logs.ts +255 -0
- package/src/evm/messages.ts +11 -5
- package/src/evm/offchain.ts +13 -4
- package/src/execution.ts +40 -32
- package/src/extra-args.ts +38 -6
- package/src/gas.ts +7 -9
- package/src/hasher/common.ts +3 -2
- package/src/hasher/hasher.ts +12 -4
- package/src/hasher/merklemulti.ts +17 -16
- package/src/index.ts +29 -23
- package/src/requests.ts +64 -46
- package/src/selectors.ts +1 -1
- package/src/solana/cleanup.ts +49 -34
- package/src/solana/exec.ts +128 -272
- package/src/solana/hasher.ts +13 -4
- package/src/solana/index.ts +483 -356
- package/src/solana/offchain.ts +32 -102
- package/src/solana/patchBorsh.ts +65 -50
- package/src/solana/send.ts +52 -111
- package/src/solana/types.ts +44 -3
- package/src/solana/utils.ts +143 -19
- package/src/sui/hasher.ts +18 -0
- package/src/sui/index.ts +143 -31
- package/src/sui/types.ts +6 -0
- package/src/supported-chains.ts +2 -1
- package/src/types.ts +130 -18
- package/src/utils.ts +168 -26
- package/tsconfig.json +2 -1
package/dist/utils.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
2
|
import bs58 from 'bs58';
|
|
3
|
-
import { decodeBase64, getBytes, isBytesLike,
|
|
4
|
-
import
|
|
5
|
-
import { ChainFamily } from "./chain.js";
|
|
3
|
+
import { decodeBase64, getBytes, isBytesLike, toBeArray, toBigInt, } from 'ethers';
|
|
4
|
+
import { memoize } from 'micro-memoize';
|
|
6
5
|
import SELECTORS from "./selectors.js";
|
|
7
6
|
import { supportedChains } from "./supported-chains.js";
|
|
7
|
+
import { ChainFamily } from "./types.js";
|
|
8
8
|
/**
|
|
9
9
|
* Returns *some* block number with timestamp prior to `timestamp`
|
|
10
10
|
*
|
|
@@ -14,7 +14,7 @@ import { supportedChains } from "./supported-chains.js";
|
|
|
14
14
|
* @param precision - returned blockNumber should be within this many blocks before timestamp
|
|
15
15
|
* @returns blockNumber of a block at provider which is close but before target timestamp
|
|
16
16
|
**/
|
|
17
|
-
export async function getSomeBlockNumberBefore(getBlockTimestamp, recentBlockNumber, timestamp, precision = 10) {
|
|
17
|
+
export async function getSomeBlockNumberBefore(getBlockTimestamp, recentBlockNumber, timestamp, { precision = 10, logger = console } = {}) {
|
|
18
18
|
let beforeBlockNumber = Math.max(1, recentBlockNumber - precision * 1000);
|
|
19
19
|
let beforeTimestamp = await getBlockTimestamp(beforeBlockNumber);
|
|
20
20
|
const now = Math.trunc(Date.now() / 1000);
|
|
@@ -51,7 +51,7 @@ export async function getSomeBlockNumberBefore(getBlockTimestamp, recentBlockNum
|
|
|
51
51
|
beforeBlockNumber = pivot;
|
|
52
52
|
beforeTimestamp = pivotTimestamp;
|
|
53
53
|
}
|
|
54
|
-
|
|
54
|
+
logger.debug('getSomeBlockNumberBefore: searching block before', {
|
|
55
55
|
beforeBlockNumber,
|
|
56
56
|
beforeTimestamp,
|
|
57
57
|
pivot,
|
|
@@ -66,7 +66,7 @@ export async function getSomeBlockNumberBefore(getBlockTimestamp, recentBlockNum
|
|
|
66
66
|
return beforeBlockNumber;
|
|
67
67
|
}
|
|
68
68
|
// memoized so we always output the same object for a given chainId
|
|
69
|
-
const networkInfoFromChainId =
|
|
69
|
+
const networkInfoFromChainId = memoize((chainId) => {
|
|
70
70
|
const sel = SELECTORS[chainId];
|
|
71
71
|
if (!sel?.name)
|
|
72
72
|
throw new Error(`Chain not found: ${chainId}`);
|
|
@@ -87,7 +87,7 @@ const networkInfoFromChainId = moize.default((chainId) => {
|
|
|
87
87
|
* - Chain name as string ("ethereum-mainnet")
|
|
88
88
|
* @returns Complete NetworkInfo object
|
|
89
89
|
*/
|
|
90
|
-
export const networkInfo =
|
|
90
|
+
export const networkInfo = memoize(function networkInfo_(selectorOrIdOrName) {
|
|
91
91
|
let chainId;
|
|
92
92
|
if (typeof selectorOrIdOrName === 'number') {
|
|
93
93
|
chainId = selectorOrIdOrName;
|
|
@@ -153,12 +153,24 @@ export function* blockRangeGenerator(params) {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* JSON replacer function that converts BigInt values to strings.
|
|
158
|
+
* @param _key - Property key (unused).
|
|
159
|
+
* @param value - Value to transform.
|
|
160
|
+
* @returns String representation if BigInt, otherwise unchanged value.
|
|
161
|
+
*/
|
|
156
162
|
export function bigIntReplacer(_key, value) {
|
|
157
163
|
if (typeof value === 'bigint') {
|
|
158
164
|
return value.toString();
|
|
159
165
|
}
|
|
160
166
|
return value;
|
|
161
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* JSON reviver function that converts numeric strings back to BigInt.
|
|
170
|
+
* @param _key - Property key (unused).
|
|
171
|
+
* @param value - Value to transform.
|
|
172
|
+
* @returns BigInt if numeric string, otherwise unchanged value.
|
|
173
|
+
*/
|
|
162
174
|
export function bigIntReviver(_key, value) {
|
|
163
175
|
if (typeof value === 'string' && /^\d+$/.test(value)) {
|
|
164
176
|
return BigInt(value);
|
|
@@ -183,18 +195,39 @@ export function decodeOnRampAddress(address, family = ChainFamily.EVM) {
|
|
|
183
195
|
decoded += '::onramp';
|
|
184
196
|
return decoded;
|
|
185
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Converts little-endian bytes to BigInt.
|
|
200
|
+
* @param data - Little-endian byte data.
|
|
201
|
+
* @returns BigInt value.
|
|
202
|
+
*/
|
|
186
203
|
export function leToBigInt(data) {
|
|
187
204
|
if (Array.isArray(data))
|
|
188
205
|
data = new Uint8Array(data);
|
|
189
206
|
return toBigInt(getBytes(data).reverse());
|
|
190
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Converts a BigNumber to little-endian byte array.
|
|
210
|
+
* @param value - Numeric value to convert.
|
|
211
|
+
* @param width - Optional byte width for padding.
|
|
212
|
+
* @returns Little-endian Uint8Array.
|
|
213
|
+
*/
|
|
191
214
|
export function toLeArray(value, width) {
|
|
192
|
-
return
|
|
215
|
+
return toBeArray(value, width).reverse();
|
|
193
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Checks if the given data is a valid Base64 encoded string.
|
|
219
|
+
* @param data - Data to check.
|
|
220
|
+
* @returns True if valid Base64 string.
|
|
221
|
+
*/
|
|
194
222
|
export function isBase64(data) {
|
|
195
223
|
return (typeof data === 'string' &&
|
|
196
224
|
/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/.test(data));
|
|
197
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Converts various data formats to Uint8Array.
|
|
228
|
+
* @param data - Bytes, number array, or Base64 string.
|
|
229
|
+
* @returns Uint8Array representation.
|
|
230
|
+
*/
|
|
198
231
|
export function getDataBytes(data) {
|
|
199
232
|
if (Array.isArray(data)) {
|
|
200
233
|
return new Uint8Array(data);
|
|
@@ -209,6 +242,11 @@ export function getDataBytes(data) {
|
|
|
209
242
|
throw new Error(`Unsupported data format: ${util.inspect(data)}`);
|
|
210
243
|
}
|
|
211
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Extracts address bytes, handling both hex and Base58 formats.
|
|
247
|
+
* @param address - Address in hex or Base58 format.
|
|
248
|
+
* @returns Address bytes as Uint8Array.
|
|
249
|
+
*/
|
|
212
250
|
export function getAddressBytes(address) {
|
|
213
251
|
let bytes;
|
|
214
252
|
if (isBytesLike(address)) {
|
|
@@ -249,12 +287,22 @@ export function convertKeysToCamelCase(obj, mapValues, key) {
|
|
|
249
287
|
}
|
|
250
288
|
return converted;
|
|
251
289
|
}
|
|
252
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Promise-based sleep utility.
|
|
292
|
+
* @param ms - Duration in milliseconds.
|
|
293
|
+
* @returns Promise that resolves after the specified duration.
|
|
294
|
+
*/
|
|
295
|
+
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms).unref());
|
|
296
|
+
/**
|
|
297
|
+
* Parses a typeAndVersion string into its components.
|
|
298
|
+
* @param typeAndVersion - String in format "TypeName vX.Y.Z".
|
|
299
|
+
* @returns Tuple of [type, version, original, suffix?].
|
|
300
|
+
*/
|
|
253
301
|
export function parseTypeAndVersion(typeAndVersion) {
|
|
254
302
|
const match = typeAndVersion.match(/^(\w.+\S)\s+v?(\d+\.\d+(?:\.\d+)?)([^\d.].*)?$/);
|
|
255
303
|
if (!match)
|
|
256
304
|
throw new Error(`Invalid typeAndVersion: "${typeAndVersion}", len=${typeAndVersion.length}, hex=0x${Buffer.from(typeAndVersion).toString('hex')}`);
|
|
257
|
-
const [
|
|
305
|
+
const [, typeRaw, version] = match;
|
|
258
306
|
// some string normalization
|
|
259
307
|
const type = typeRaw
|
|
260
308
|
.replaceAll(/-(\w)/g, (_, w) => w.toUpperCase()) // kebabToPascal
|
|
@@ -265,10 +313,16 @@ export function parseTypeAndVersion(typeAndVersion) {
|
|
|
265
313
|
else
|
|
266
314
|
return [type, version, typeAndVersion, match[3]];
|
|
267
315
|
}
|
|
268
|
-
|
|
316
|
+
/**
|
|
317
|
+
* Creates a rate-limited fetch function with retry logic.
|
|
318
|
+
* Configurable via maxRequests, windowMs, and maxRetries options.
|
|
319
|
+
* @returns Rate-limited fetch function.
|
|
320
|
+
*/
|
|
321
|
+
export function createRateLimitedFetch({ maxRequests = 40, windowMs = 11e3, maxRetries = 5, } = {}, { logger = console } = {}) {
|
|
269
322
|
// Custom fetch implementation with retry logic and rate limiting
|
|
270
323
|
// Per-instance state
|
|
271
324
|
const requestQueue = [];
|
|
325
|
+
const methodRateLimits = {};
|
|
272
326
|
const isRateLimited = () => {
|
|
273
327
|
const now = Date.now();
|
|
274
328
|
// Remove old requests outside the window
|
|
@@ -277,7 +331,29 @@ export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MA
|
|
|
277
331
|
}
|
|
278
332
|
return requestQueue.length >= maxRequests;
|
|
279
333
|
};
|
|
280
|
-
const
|
|
334
|
+
const isMethodRateLimited = (method) => {
|
|
335
|
+
const methodLimit = methodRateLimits[method];
|
|
336
|
+
if (!methodLimit)
|
|
337
|
+
return false;
|
|
338
|
+
const now = Date.now();
|
|
339
|
+
// Remove old requests outside the window
|
|
340
|
+
while (methodLimit.queue.length > 0 && now - methodLimit.queue[0].timestamp > windowMs) {
|
|
341
|
+
methodLimit.queue.shift();
|
|
342
|
+
}
|
|
343
|
+
return methodLimit.queue.length >= methodLimit.limit;
|
|
344
|
+
};
|
|
345
|
+
const waitForRateLimit = async (method) => {
|
|
346
|
+
// Wait for method-specific rate limit if applicable
|
|
347
|
+
if (method && methodRateLimits[method]) {
|
|
348
|
+
while (isMethodRateLimited(method)) {
|
|
349
|
+
const oldestRequest = methodRateLimits[method].queue[0];
|
|
350
|
+
const waitTime = windowMs - (Date.now() - oldestRequest.timestamp);
|
|
351
|
+
if (waitTime > 0) {
|
|
352
|
+
await sleep(waitTime + 100); // Add small buffer
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// Wait for global rate limit
|
|
281
357
|
while (isRateLimited()) {
|
|
282
358
|
const oldestRequest = requestQueue[0];
|
|
283
359
|
const waitTime = windowMs - (Date.now() - oldestRequest.timestamp);
|
|
@@ -286,8 +362,39 @@ export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MA
|
|
|
286
362
|
}
|
|
287
363
|
}
|
|
288
364
|
};
|
|
289
|
-
const recordRequest = () => {
|
|
290
|
-
|
|
365
|
+
const recordRequest = (method) => {
|
|
366
|
+
const timestamp = Date.now();
|
|
367
|
+
requestQueue.push({ timestamp });
|
|
368
|
+
if (method && methodRateLimits[method]) {
|
|
369
|
+
methodRateLimits[method].queue.push({ timestamp });
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
const updateMethodRateLimits = (response, method) => {
|
|
373
|
+
if (!method)
|
|
374
|
+
return;
|
|
375
|
+
const limit = Number(response.headers.get('x-ratelimit-method-limit'));
|
|
376
|
+
const remaining = Number(response.headers.get('x-ratelimit-method-remaining'));
|
|
377
|
+
if (isNaN(limit) || isNaN(remaining))
|
|
378
|
+
return;
|
|
379
|
+
if (!methodRateLimits[method]) {
|
|
380
|
+
methodRateLimits[method] = { limit, remaining, queue: [] };
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
methodRateLimits[method].limit = limit;
|
|
384
|
+
methodRateLimits[method].remaining = remaining;
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
const extractMethod = (init) => {
|
|
388
|
+
if (!init?.body || (typeof init.body !== 'string' && typeof init.body !== 'object'))
|
|
389
|
+
return;
|
|
390
|
+
try {
|
|
391
|
+
const parsed = (typeof init.body === 'string' ? JSON.parse(init.body) : init.body);
|
|
392
|
+
if (parsed && typeof parsed.method === 'string')
|
|
393
|
+
return parsed.method;
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
// Not JSON or no method field
|
|
397
|
+
}
|
|
291
398
|
};
|
|
292
399
|
const isRateLimitError = (error) => {
|
|
293
400
|
if (error instanceof Error) {
|
|
@@ -297,16 +404,19 @@ export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MA
|
|
|
297
404
|
};
|
|
298
405
|
return async (input, init) => {
|
|
299
406
|
let lastError = null;
|
|
407
|
+
const method = extractMethod(init);
|
|
300
408
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
301
409
|
try {
|
|
302
410
|
// Wait for rate limit before making request
|
|
303
|
-
await waitForRateLimit();
|
|
304
|
-
recordRequest();
|
|
305
|
-
//
|
|
411
|
+
await waitForRateLimit(method);
|
|
412
|
+
recordRequest(method);
|
|
413
|
+
// logger.debug('__fetching', input, init?.body)
|
|
306
414
|
const response = await fetch(input, init);
|
|
415
|
+
// Update method rate limits from response headers
|
|
416
|
+
updateMethodRateLimits(response, method);
|
|
307
417
|
// If response is successful, return it
|
|
308
418
|
if (response.ok) {
|
|
309
|
-
|
|
419
|
+
logger.debug('fetched', input, response.status, init?.body);
|
|
310
420
|
return response;
|
|
311
421
|
}
|
|
312
422
|
// For 429 responses, throw an error to trigger retry
|
|
@@ -314,11 +424,11 @@ export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MA
|
|
|
314
424
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
315
425
|
}
|
|
316
426
|
// For other non-2xx responses, don't retry
|
|
317
|
-
|
|
427
|
+
logger.debug('fetch non-retryable error', input, response.status, init?.body);
|
|
318
428
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
319
429
|
}
|
|
320
430
|
catch (error) {
|
|
321
|
-
|
|
431
|
+
logger.debug('fetch errored', attempt, error, input, init?.body);
|
|
322
432
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
323
433
|
// Only retry on rate limit errors
|
|
324
434
|
if (!isRateLimitError(lastError)) {
|
|
@@ -333,4 +443,16 @@ export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MA
|
|
|
333
443
|
throw lastError || new Error('Request failed after all retries');
|
|
334
444
|
};
|
|
335
445
|
}
|
|
446
|
+
// barebones `node:util` backfill, if needed
|
|
447
|
+
const util = 'util' in globalThis
|
|
448
|
+
? globalThis.util
|
|
449
|
+
: {
|
|
450
|
+
inspect: Object.assign((v) => JSON.stringify(v), {
|
|
451
|
+
custom: Symbol('custom'),
|
|
452
|
+
defaultOptions: {
|
|
453
|
+
depth: 2,
|
|
454
|
+
},
|
|
455
|
+
}),
|
|
456
|
+
};
|
|
457
|
+
export { util };
|
|
336
458
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainlink/ccip-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.0",
|
|
4
4
|
"description": "SDK/Library to interact with CCIP",
|
|
5
5
|
"author": "Chainlink devs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,28 +40,32 @@
|
|
|
40
40
|
"eslint-config-prettier": "10.1.8",
|
|
41
41
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
42
42
|
"eslint-plugin-import": "^2.32.0",
|
|
43
|
+
"eslint-plugin-jsdoc": "^61.4.2",
|
|
43
44
|
"eslint-plugin-prettier": "^5.5.4",
|
|
45
|
+
"eslint-plugin-tsdoc": "^0.5.0",
|
|
44
46
|
"ethers-abitype": "1.0.3",
|
|
45
|
-
"prettier": "^3.7.
|
|
47
|
+
"prettier": "^3.7.4",
|
|
46
48
|
"typescript": "5.9.3",
|
|
47
|
-
"typescript-eslint": "8.
|
|
49
|
+
"typescript-eslint": "8.48.1"
|
|
48
50
|
},
|
|
49
51
|
"dependencies": {
|
|
50
|
-
"@aptos-labs/ts-sdk": "^5.1.
|
|
52
|
+
"@aptos-labs/ts-sdk": "^5.1.6",
|
|
51
53
|
"@coral-xyz/anchor": "^0.29.0",
|
|
52
54
|
"@mysten/bcs": "^1.9.2",
|
|
53
|
-
"@mysten/sui": "^1.45.
|
|
55
|
+
"@mysten/sui": "^1.45.2",
|
|
54
56
|
"@solana/spl-token": "0.4.14",
|
|
55
57
|
"@solana/web3.js": "^1.98.4",
|
|
56
|
-
"abitype": "1.2.
|
|
58
|
+
"abitype": "1.2.1",
|
|
57
59
|
"bn.js": "^5.2.2",
|
|
58
60
|
"borsh": "^2.0.0",
|
|
59
61
|
"bs58": "^6.0.0",
|
|
60
|
-
"ethers": "6.
|
|
61
|
-
"
|
|
62
|
-
"
|
|
62
|
+
"ethers": "6.16.0",
|
|
63
|
+
"micro-memoize": "^5.1.1",
|
|
64
|
+
"type-fest": "^5.3.0",
|
|
65
|
+
"yaml": "2.8.2"
|
|
63
66
|
},
|
|
64
67
|
"overrides": {
|
|
68
|
+
"bigint-buffer": "npm:@trufflesuite/bigint-buffer@1.1.10",
|
|
65
69
|
"axios": "^1.13.2"
|
|
66
70
|
}
|
|
67
71
|
}
|
package/src/aptos/exec.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Aptos, AccountAddress } from '@aptos-labs/ts-sdk'
|
|
2
2
|
|
|
3
3
|
import type { ExecutionReport } from '../types.ts'
|
|
4
|
-
import {
|
|
4
|
+
import { serializeExecutionReport } from './types.ts'
|
|
5
5
|
import type { CCIPMessage_V1_6_EVM } from '../evm/messages.ts'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Executes as single message report in offramp
|
|
9
9
|
*
|
|
10
10
|
* @param provider - Aptos provider instance
|
|
11
|
-
* @param
|
|
11
|
+
* @param payer - async Account
|
|
12
12
|
* @param offRamp - Offramp contract address (with or without `::offramp` suffix)
|
|
13
13
|
* @param execReport - Aptos uses EVMExtraArgsV2, so same message as EVM v1.6
|
|
14
14
|
* @param opts - options like gasLimit override
|
|
15
15
|
* @returns exec txHash
|
|
16
16
|
*/
|
|
17
|
-
export async function
|
|
17
|
+
export async function generateUnsignedExecuteReport(
|
|
18
18
|
provider: Aptos,
|
|
19
|
-
|
|
19
|
+
payer: string,
|
|
20
20
|
offRamp: string,
|
|
21
21
|
execReport: ExecutionReport<CCIPMessage_V1_6_EVM>,
|
|
22
22
|
opts?: { gasLimit?: number },
|
|
@@ -45,7 +45,7 @@ export async function executeReport(
|
|
|
45
45
|
// gas_limit: u256
|
|
46
46
|
// )
|
|
47
47
|
const transaction = await provider.transaction.build.simple({
|
|
48
|
-
sender:
|
|
48
|
+
sender: AccountAddress.fromString(payer),
|
|
49
49
|
data: {
|
|
50
50
|
function:
|
|
51
51
|
`${offRamp.includes('::') ? offRamp : offRamp + '::offramp'}::manually_execute` as `${string}::${string}::${string}`,
|
|
@@ -54,16 +54,5 @@ export async function executeReport(
|
|
|
54
54
|
options: { maxGasAmount: opts?.gasLimit },
|
|
55
55
|
})
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
const signed = await account.signTransactionWithAuthenticator(transaction)
|
|
59
|
-
const pendingTxn = await provider.transaction.submit.simple({
|
|
60
|
-
transaction,
|
|
61
|
-
senderAuthenticator: signed,
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
// Wait for the transaction to be confirmed
|
|
65
|
-
const { hash } = await provider.waitForTransaction({
|
|
66
|
-
transactionHash: pendingTxn.hash,
|
|
67
|
-
})
|
|
68
|
-
return hash
|
|
57
|
+
return transaction.bcsToBytes()
|
|
69
58
|
}
|
package/src/aptos/hasher.ts
CHANGED
|
@@ -6,6 +6,11 @@ import { type CCIPMessage, type CCIPMessage_V1_6, CCIPVersion } from '../types.t
|
|
|
6
6
|
import { getAddressBytes, networkInfo } from '../utils.ts'
|
|
7
7
|
import { encodeNumber, encodeRawBytes } from './utils.ts'
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Creates a leaf hasher for Aptos CCIP messages.
|
|
11
|
+
* @param lane - Lane configuration with selectors and onRamp.
|
|
12
|
+
* @returns Leaf hasher function for the specified version.
|
|
13
|
+
*/
|
|
9
14
|
export function getAptosLeafHasher<V extends CCIPVersion = CCIPVersion>({
|
|
10
15
|
sourceChainSelector,
|
|
11
16
|
destChainSelector,
|
|
@@ -28,6 +33,12 @@ export function getAptosLeafHasher<V extends CCIPVersion = CCIPVersion>({
|
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Computes the leaf hash for a v1.6 Aptos CCIP message.
|
|
38
|
+
* @param message - CCIP message to hash.
|
|
39
|
+
* @param metadataHash - Pre-computed metadata hash for the lane.
|
|
40
|
+
* @returns Keccak256 hash of the message.
|
|
41
|
+
*/
|
|
31
42
|
export function hashV16AptosMessage(
|
|
32
43
|
message: CCIPMessage_V1_6 | CCIPMessage<typeof CCIPVersion.V1_6>,
|
|
33
44
|
metadataHash: string,
|
|
@@ -78,6 +89,13 @@ export function hashV16AptosMessage(
|
|
|
78
89
|
return keccak256(outerHash)
|
|
79
90
|
}
|
|
80
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Computes the metadata hash for Aptos CCIP lane.
|
|
94
|
+
* @param sourceChainSelector - Source chain selector.
|
|
95
|
+
* @param destChainSelector - Destination chain selector.
|
|
96
|
+
* @param onRamp - OnRamp address.
|
|
97
|
+
* @returns Keccak256 hash of the lane metadata.
|
|
98
|
+
*/
|
|
81
99
|
export const hashAptosMetadata = (
|
|
82
100
|
sourceChainSelector: bigint,
|
|
83
101
|
destChainSelector: bigint,
|