@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.
Files changed (202) hide show
  1. package/README.md +35 -26
  2. package/dist/aptos/exec.d.ts +4 -5
  3. package/dist/aptos/exec.d.ts.map +1 -1
  4. package/dist/aptos/exec.js +5 -14
  5. package/dist/aptos/exec.js.map +1 -1
  6. package/dist/aptos/hasher.d.ts +18 -0
  7. package/dist/aptos/hasher.d.ts.map +1 -1
  8. package/dist/aptos/hasher.js +18 -0
  9. package/dist/aptos/hasher.js.map +1 -1
  10. package/dist/aptos/index.d.ts +127 -28
  11. package/dist/aptos/index.d.ts.map +1 -1
  12. package/dist/aptos/index.js +199 -70
  13. package/dist/aptos/index.js.map +1 -1
  14. package/dist/aptos/logs.d.ts +18 -0
  15. package/dist/aptos/logs.d.ts.map +1 -1
  16. package/dist/aptos/logs.js +21 -3
  17. package/dist/aptos/logs.js.map +1 -1
  18. package/dist/aptos/send.d.ts +22 -5
  19. package/dist/aptos/send.d.ts.map +1 -1
  20. package/dist/aptos/send.js +23 -15
  21. package/dist/aptos/send.js.map +1 -1
  22. package/dist/aptos/token.d.ts +6 -0
  23. package/dist/aptos/token.d.ts.map +1 -1
  24. package/dist/aptos/token.js +6 -0
  25. package/dist/aptos/token.js.map +1 -1
  26. package/dist/aptos/types.d.ts +16 -1
  27. package/dist/aptos/types.d.ts.map +1 -1
  28. package/dist/aptos/types.js +13 -0
  29. package/dist/aptos/types.js.map +1 -1
  30. package/dist/aptos/utils.d.ts +1 -1
  31. package/dist/aptos/utils.js +1 -1
  32. package/dist/chain.d.ts +185 -99
  33. package/dist/chain.d.ts.map +1 -1
  34. package/dist/chain.js +38 -15
  35. package/dist/chain.js.map +1 -1
  36. package/dist/commits.d.ts +4 -10
  37. package/dist/commits.d.ts.map +1 -1
  38. package/dist/commits.js +2 -1
  39. package/dist/commits.js.map +1 -1
  40. package/dist/evm/const.d.ts +5 -0
  41. package/dist/evm/const.d.ts.map +1 -1
  42. package/dist/evm/const.js +5 -0
  43. package/dist/evm/const.js.map +1 -1
  44. package/dist/evm/errors.d.ts +5 -0
  45. package/dist/evm/errors.d.ts.map +1 -1
  46. package/dist/evm/errors.js +6 -1
  47. package/dist/evm/errors.js.map +1 -1
  48. package/dist/evm/hasher.d.ts +16 -2
  49. package/dist/evm/hasher.d.ts.map +1 -1
  50. package/dist/evm/hasher.js +17 -3
  51. package/dist/evm/hasher.js.map +1 -1
  52. package/dist/evm/index.d.ts +176 -31
  53. package/dist/evm/index.d.ts.map +1 -1
  54. package/dist/evm/index.js +312 -154
  55. package/dist/evm/index.js.map +1 -1
  56. package/dist/evm/logs.d.ts +20 -0
  57. package/dist/evm/logs.d.ts.map +1 -0
  58. package/dist/evm/logs.js +194 -0
  59. package/dist/evm/logs.js.map +1 -0
  60. package/dist/evm/messages.d.ts +11 -2
  61. package/dist/evm/messages.d.ts.map +1 -1
  62. package/dist/evm/messages.js +4 -2
  63. package/dist/evm/messages.js.map +1 -1
  64. package/dist/evm/offchain.d.ts +7 -2
  65. package/dist/evm/offchain.d.ts.map +1 -1
  66. package/dist/evm/offchain.js +12 -7
  67. package/dist/evm/offchain.js.map +1 -1
  68. package/dist/execution.d.ts +19 -62
  69. package/dist/execution.d.ts.map +1 -1
  70. package/dist/execution.js +28 -31
  71. package/dist/execution.js.map +1 -1
  72. package/dist/extra-args.d.ts +35 -5
  73. package/dist/extra-args.d.ts.map +1 -1
  74. package/dist/extra-args.js +10 -5
  75. package/dist/extra-args.js.map +1 -1
  76. package/dist/gas.d.ts +6 -8
  77. package/dist/gas.d.ts.map +1 -1
  78. package/dist/gas.js +7 -9
  79. package/dist/gas.js.map +1 -1
  80. package/dist/hasher/common.d.ts +3 -2
  81. package/dist/hasher/common.d.ts.map +1 -1
  82. package/dist/hasher/common.js +2 -2
  83. package/dist/hasher/common.js.map +1 -1
  84. package/dist/hasher/hasher.d.ts +8 -2
  85. package/dist/hasher/hasher.d.ts.map +1 -1
  86. package/dist/hasher/hasher.js +8 -3
  87. package/dist/hasher/hasher.js.map +1 -1
  88. package/dist/hasher/merklemulti.d.ts +11 -9
  89. package/dist/hasher/merklemulti.d.ts.map +1 -1
  90. package/dist/hasher/merklemulti.js +17 -16
  91. package/dist/hasher/merklemulti.js.map +1 -1
  92. package/dist/index.d.ts +16 -8
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +17 -7
  95. package/dist/index.js.map +1 -1
  96. package/dist/requests.d.ts +39 -25
  97. package/dist/requests.d.ts.map +1 -1
  98. package/dist/requests.js +42 -35
  99. package/dist/requests.js.map +1 -1
  100. package/dist/selectors.d.ts +1 -1
  101. package/dist/solana/cleanup.d.ts +14 -10
  102. package/dist/solana/cleanup.d.ts.map +1 -1
  103. package/dist/solana/cleanup.js +35 -33
  104. package/dist/solana/cleanup.js.map +1 -1
  105. package/dist/solana/exec.d.ts +19 -11
  106. package/dist/solana/exec.d.ts.map +1 -1
  107. package/dist/solana/exec.js +86 -163
  108. package/dist/solana/exec.js.map +1 -1
  109. package/dist/solana/hasher.d.ts +7 -2
  110. package/dist/solana/hasher.d.ts.map +1 -1
  111. package/dist/solana/hasher.js +7 -2
  112. package/dist/solana/hasher.js.map +1 -1
  113. package/dist/solana/index.d.ts +202 -84
  114. package/dist/solana/index.d.ts.map +1 -1
  115. package/dist/solana/index.js +367 -252
  116. package/dist/solana/index.js.map +1 -1
  117. package/dist/solana/offchain.d.ts +8 -18
  118. package/dist/solana/offchain.d.ts.map +1 -1
  119. package/dist/solana/offchain.js +29 -83
  120. package/dist/solana/offchain.js.map +1 -1
  121. package/dist/solana/patchBorsh.d.ts +5 -1
  122. package/dist/solana/patchBorsh.d.ts.map +1 -1
  123. package/dist/solana/patchBorsh.js +57 -46
  124. package/dist/solana/patchBorsh.js.map +1 -1
  125. package/dist/solana/send.d.ts +28 -10
  126. package/dist/solana/send.d.ts.map +1 -1
  127. package/dist/solana/send.js +44 -77
  128. package/dist/solana/send.js.map +1 -1
  129. package/dist/solana/types.d.ts +22 -1
  130. package/dist/solana/types.d.ts.map +1 -1
  131. package/dist/solana/types.js +12 -1
  132. package/dist/solana/types.js.map +1 -1
  133. package/dist/solana/utils.d.ts +58 -4
  134. package/dist/solana/utils.d.ts.map +1 -1
  135. package/dist/solana/utils.js +110 -7
  136. package/dist/solana/utils.js.map +1 -1
  137. package/dist/sui/hasher.d.ts +18 -0
  138. package/dist/sui/hasher.d.ts.map +1 -1
  139. package/dist/sui/hasher.js +18 -0
  140. package/dist/sui/hasher.js.map +1 -1
  141. package/dist/sui/index.d.ts +99 -12
  142. package/dist/sui/index.d.ts.map +1 -1
  143. package/dist/sui/index.js +108 -19
  144. package/dist/sui/index.js.map +1 -1
  145. package/dist/sui/types.d.ts +6 -0
  146. package/dist/sui/types.d.ts.map +1 -1
  147. package/dist/sui/types.js +5 -0
  148. package/dist/sui/types.js.map +1 -1
  149. package/dist/supported-chains.d.ts +2 -1
  150. package/dist/supported-chains.d.ts.map +1 -1
  151. package/dist/supported-chains.js.map +1 -1
  152. package/dist/types.d.ts +127 -16
  153. package/dist/types.d.ts.map +1 -1
  154. package/dist/types.js +18 -0
  155. package/dist/types.js.map +1 -1
  156. package/dist/utils.d.ts +67 -46
  157. package/dist/utils.d.ts.map +1 -1
  158. package/dist/utils.js +143 -21
  159. package/dist/utils.js.map +1 -1
  160. package/package.json +13 -9
  161. package/src/aptos/exec.ts +7 -18
  162. package/src/aptos/hasher.ts +18 -0
  163. package/src/aptos/index.ts +288 -110
  164. package/src/aptos/logs.ts +21 -3
  165. package/src/aptos/send.ts +25 -22
  166. package/src/aptos/token.ts +6 -0
  167. package/src/aptos/types.ts +26 -2
  168. package/src/aptos/utils.ts +1 -1
  169. package/src/chain.ts +243 -108
  170. package/src/commits.ts +6 -7
  171. package/src/evm/const.ts +5 -0
  172. package/src/evm/errors.ts +6 -1
  173. package/src/evm/hasher.ts +20 -4
  174. package/src/evm/index.ts +416 -214
  175. package/src/evm/logs.ts +255 -0
  176. package/src/evm/messages.ts +11 -5
  177. package/src/evm/offchain.ts +13 -4
  178. package/src/execution.ts +40 -32
  179. package/src/extra-args.ts +38 -6
  180. package/src/gas.ts +7 -9
  181. package/src/hasher/common.ts +3 -2
  182. package/src/hasher/hasher.ts +12 -4
  183. package/src/hasher/merklemulti.ts +17 -16
  184. package/src/index.ts +29 -23
  185. package/src/requests.ts +64 -46
  186. package/src/selectors.ts +1 -1
  187. package/src/solana/cleanup.ts +49 -34
  188. package/src/solana/exec.ts +128 -272
  189. package/src/solana/hasher.ts +13 -4
  190. package/src/solana/index.ts +483 -356
  191. package/src/solana/offchain.ts +32 -102
  192. package/src/solana/patchBorsh.ts +65 -50
  193. package/src/solana/send.ts +52 -111
  194. package/src/solana/types.ts +44 -3
  195. package/src/solana/utils.ts +143 -19
  196. package/src/sui/hasher.ts +18 -0
  197. package/src/sui/index.ts +143 -31
  198. package/src/sui/types.ts +6 -0
  199. package/src/supported-chains.ts +2 -1
  200. package/src/types.ts +130 -18
  201. package/src/utils.ts +168 -26
  202. package/tsconfig.json +2 -1
package/dist/utils.js CHANGED
@@ -1,10 +1,10 @@
1
- import util from 'util';
1
+ import { Buffer } from 'buffer';
2
2
  import bs58 from 'bs58';
3
- import { decodeBase64, getBytes, isBytesLike, toBeHex, toBigInt, } from 'ethers';
4
- import moize from 'moize';
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
- console.debug('getSomeBlockNumberBefore: searching block before', {
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 = moize.default((chainId) => {
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 = moize.default(function networkInfo_(selectorOrIdOrName) {
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 getBytes(toBeHex(value, width)).reverse();
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
- export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
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 [_, typeRaw, version] = match;
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
- export function createRateLimitedFetch({ maxRequests = Number(process.env['RL_MAX_REQUESTS'] || 2), windowMs = Number(process.env['RL_WINDOW_MS'] || 10000), maxRetries = Number(process.env['RL_MAX_RETRIES'] || 5), } = {}) {
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 waitForRateLimit = async () => {
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
- requestQueue.push({ timestamp: Date.now() });
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
- // console.debug('__fetching', input, init?.body)
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
- console.debug('fetched', input, response.status, init?.body);
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
- console.debug('fetch non-retryable error', input, response.status, init?.body);
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
- console.debug('fetch errored', attempt, error, input, init?.body);
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.90.2",
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.1",
47
+ "prettier": "^3.7.4",
46
48
  "typescript": "5.9.3",
47
- "typescript-eslint": "8.47.0"
49
+ "typescript-eslint": "8.48.1"
48
50
  },
49
51
  "dependencies": {
50
- "@aptos-labs/ts-sdk": "^5.1.5",
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.0",
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.0",
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.15.0",
61
- "moize": "^6.1.6",
62
- "yaml": "2.8.1"
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 { Aptos } from '@aptos-labs/ts-sdk'
1
+ import { type Aptos, AccountAddress } from '@aptos-labs/ts-sdk'
2
2
 
3
3
  import type { ExecutionReport } from '../types.ts'
4
- import { type AptosAsyncAccount, serializeExecutionReport } from './types.ts'
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 account - async Account
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 executeReport(
17
+ export async function generateUnsignedExecuteReport(
18
18
  provider: Aptos,
19
- account: AptosAsyncAccount,
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: account.accountAddress,
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
- // Sign and submit the transaction
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
  }
@@ -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,