@hyperlane-xyz/sdk 28.1.0 → 29.0.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.
Files changed (67) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +4 -2
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/core/types.d.ts +22 -22
  5. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js +2 -1
  6. package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js.map +1 -1
  7. package/dist/fee/EvmTokenFeeModule.hardhat-test.js +44 -19
  8. package/dist/fee/EvmTokenFeeModule.hardhat-test.js.map +1 -1
  9. package/dist/fee/EvmTokenFeeReader.d.ts +1 -1
  10. package/dist/fee/EvmTokenFeeReader.d.ts.map +1 -1
  11. package/dist/fee/EvmTokenFeeReader.hardhat-test.d.ts +1 -1
  12. package/dist/fee/EvmTokenFeeReader.hardhat-test.js +12 -3
  13. package/dist/fee/EvmTokenFeeReader.hardhat-test.js.map +1 -1
  14. package/dist/fee/EvmTokenFeeReader.js +5 -3
  15. package/dist/fee/EvmTokenFeeReader.js.map +1 -1
  16. package/dist/fee/types.d.ts +20 -20
  17. package/dist/fee/types.d.ts.map +1 -1
  18. package/dist/fee/types.js +12 -6
  19. package/dist/fee/types.js.map +1 -1
  20. package/dist/fee/types.test.js +67 -5
  21. package/dist/fee/types.test.js.map +1 -1
  22. package/dist/fee/utils.d.ts +25 -2
  23. package/dist/fee/utils.d.ts.map +1 -1
  24. package/dist/fee/utils.js +39 -7
  25. package/dist/fee/utils.js.map +1 -1
  26. package/dist/fee/utils.test.d.ts +2 -0
  27. package/dist/fee/utils.test.d.ts.map +1 -0
  28. package/dist/fee/utils.test.js +54 -0
  29. package/dist/fee/utils.test.js.map +1 -0
  30. package/dist/ica/types.d.ts +18 -18
  31. package/dist/metadata/customZodTypes.d.ts +3 -0
  32. package/dist/metadata/customZodTypes.d.ts.map +1 -1
  33. package/dist/metadata/customZodTypes.js +6 -0
  34. package/dist/metadata/customZodTypes.js.map +1 -1
  35. package/dist/providers/transactions/submitter/builder/types.d.ts +26 -0
  36. package/dist/providers/transactions/submitter/builder/types.d.ts.map +1 -1
  37. package/dist/providers/transactions/submitter/ethersV5/types.d.ts +13 -0
  38. package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
  39. package/dist/providers/transactions/submitter/ethersV5/types.js +1 -0
  40. package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -1
  41. package/dist/providers/transactions/submitter/ethersV5/types.test.js +15 -1
  42. package/dist/providers/transactions/submitter/ethersV5/types.test.js.map +1 -1
  43. package/dist/providers/transactions/submitter/types.d.ts +6 -0
  44. package/dist/providers/transactions/submitter/types.d.ts.map +1 -1
  45. package/dist/router/types.d.ts +18 -18
  46. package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -1
  47. package/dist/token/adapters/StarknetTokenAdapter.js +2 -4
  48. package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -1
  49. package/dist/token/checker.d.ts.map +1 -1
  50. package/dist/token/checker.js +4 -2
  51. package/dist/token/checker.js.map +1 -1
  52. package/dist/token/configUtils.test.js +5 -5
  53. package/dist/token/configUtils.test.js.map +1 -1
  54. package/dist/token/deploy.hardhat-test.js +2 -2
  55. package/dist/token/deploy.hardhat-test.js.map +1 -1
  56. package/dist/token/types.d.ts +57 -57
  57. package/dist/token/types.js +2 -2
  58. package/dist/token/types.js.map +1 -1
  59. package/dist/token/types.test.js +5 -5
  60. package/dist/token/types.test.js.map +1 -1
  61. package/dist/utils/decimals.d.ts +16 -0
  62. package/dist/utils/decimals.d.ts.map +1 -1
  63. package/dist/utils/decimals.js +40 -15
  64. package/dist/utils/decimals.js.map +1 -1
  65. package/dist/utils/decimals.test.js +229 -0
  66. package/dist/utils/decimals.test.js.map +1 -1
  67. package/package.json +14 -13
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.d.ts","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAG3B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,eAG3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,EAAE,UAAU,GAAG,SAAS,GACxB,OAAO,CAIT;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,oCAAoC,GAC3E,OAAO,CAiCT"}
1
+ {"version":3,"file":"decimals.d.ts","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAG3B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,eAG3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,EAAE,UAAU,GAAG,SAAS,GACxB,OAAO,CAIT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,oCAAoC,GAC3E,OAAO,CA4CT"}
@@ -27,26 +27,51 @@ export function scalesEqual(a, b) {
27
27
  const nb = normalizeScale(b);
28
28
  return na.numerator * nb.denominator === nb.numerator * na.denominator;
29
29
  }
30
+ /**
31
+ * Verifies that scale configs across chains are mutually consistent.
32
+ *
33
+ * A warp route may use either convention:
34
+ * - Scale-up: 6-decimal chains carry scale > 1, max-decimal chain carries no scale
35
+ * - Scale-down: max-decimal chain carries scale < 1 ({num:1, den:N}), others carry no scale
36
+ *
37
+ * Both are valid as long as the effective message amount is identical for every chain:
38
+ * scale_A / scale_B == 10^(dec_B - dec_A) for any pair (A, B)
39
+ *
40
+ * Equivalently (avoiding floating point): for a fixed reference chain R,
41
+ * scale_A.num * 10^dec_A * scale_R.den == scale_R.num * 10^dec_R * scale_A.den
42
+ *
43
+ * This accepts precision loss from scale-down (e.g., BSC 18-decimal USDT
44
+ * scaled to 6-decimal message encoding loses 12 digits of sub-unit precision).
45
+ */
30
46
  export function verifyScale(configMap) {
31
47
  const chainDecimalConfigPairs = configMap instanceof Map
32
48
  ? Object.fromEntries(configMap.entries())
33
49
  : configMap;
34
- const decimalsByChain = objMap(chainDecimalConfigPairs, (chain, config) => {
35
- assert(config.decimals, `Decimals must be defined for token config on chain ${chain}`);
50
+ const entries = Object.entries(objMap(chainDecimalConfigPairs, (chain, config) => {
51
+ assert(config.decimals != null, `Decimals must be defined for token config on chain ${chain}`);
36
52
  return { decimals: config.decimals, scale: config.scale };
37
- });
38
- if (!areDecimalsUniform(decimalsByChain)) {
39
- const maxDecimals = Math.max(...Object.values(decimalsByChain).map((config) => config.decimals));
40
- for (const [_, config] of Object.entries(decimalsByChain)) {
41
- if (config.decimals) {
42
- const calculatedScale = {
43
- numerator: 10n ** BigInt(maxDecimals - config.decimals),
44
- denominator: 1n,
45
- };
46
- if (!scalesEqual(calculatedScale, config.scale)) {
47
- return false;
48
- }
49
- }
53
+ }));
54
+ if (entries.length <= 1)
55
+ return true;
56
+ if (areDecimalsUniform(Object.fromEntries(entries))) {
57
+ const [, refConfig] = entries[0];
58
+ return entries.every(([, config]) => scalesEqual(refConfig.scale, config.scale));
59
+ }
60
+ // Pick the first chain as reference. For every other chain, verify pairwise:
61
+ // ref.scale.num * 10^ref.dec * chain.scale.den
62
+ // == chain.scale.num * 10^chain.dec * ref.scale.den
63
+ const [, refConfig] = entries[0];
64
+ const refNorm = normalizeScale(refConfig.scale);
65
+ const refEffective = refNorm.numerator * 10n ** BigInt(refConfig.decimals);
66
+ for (let i = 1; i < entries.length; i++) {
67
+ const [, config] = entries[i];
68
+ const norm = normalizeScale(config.scale);
69
+ const effective = norm.numerator * 10n ** BigInt(config.decimals);
70
+ // Cross-multiply to compare ratios without division:
71
+ // refEffective / refNorm.denominator == effective / norm.denominator
72
+ // => refEffective * norm.denominator == effective * refNorm.denominator
73
+ if (refEffective * norm.denominator !== effective * refNorm.denominator) {
74
+ return false;
50
75
  }
51
76
  }
52
77
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.js","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimals.js","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,24 @@ describe(verifyScale.name, () => {
87
87
  ]);
88
88
  expect(verifyScale(configMap)).to.be.true;
89
89
  });
90
+ it('should return false when decimals are uniform but scales are mismatched', () => {
91
+ const configMap = new Map([
92
+ [
93
+ 'chain1',
94
+ {
95
+ name: TOKEN_NAME,
96
+ symbol: TOKEN_NAME,
97
+ decimals: ETH_DECIMALS,
98
+ scale: 1000,
99
+ },
100
+ ],
101
+ [
102
+ 'chain2',
103
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: ETH_DECIMALS },
104
+ ],
105
+ ]);
106
+ expect(verifyScale(configMap)).to.be.false;
107
+ });
90
108
  it('should return true with plain number scale (backwards compat)', () => {
91
109
  const configMap = new Map([
92
110
  [
@@ -242,5 +260,216 @@ describe(verifyScale.name, () => {
242
260
  };
243
261
  assert.throws(() => verifyScale(config), 'Decimals must be defined for token config on chain chain2');
244
262
  });
263
+ // --- Scale-down (BSC-style) tests ---
264
+ // Convention: max-decimal chain carries {numerator:1, denominator:N}, others carry no scale.
265
+ // This keeps message encoding at the lower decimal precision.
266
+ it('should return true with scale-down on the high-decimal chain', () => {
267
+ // BSC (18 dec) scales down by 1/1e12, ETH (6 dec) carries no scale.
268
+ // Effective message amount: BSC = 1/1e12 * 10^18 = 10^6, ETH = 1 * 10^6 = 10^6 ✓
269
+ const configMap = new Map([
270
+ [
271
+ 'bsc',
272
+ {
273
+ name: TOKEN_NAME,
274
+ symbol: TOKEN_NAME,
275
+ decimals: ETH_DECIMALS,
276
+ scale: { numerator: 1, denominator: 1_000_000_000_000 },
277
+ },
278
+ ],
279
+ [
280
+ 'eth',
281
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: USDC_DECIMALS },
282
+ ],
283
+ ]);
284
+ expect(verifyScale(configMap)).to.be.true;
285
+ });
286
+ it('should return false when scale-down ratio is incorrect', () => {
287
+ // BSC uses wrong denominator (100 instead of 1e12)
288
+ const configMap = new Map([
289
+ [
290
+ 'bsc',
291
+ {
292
+ name: TOKEN_NAME,
293
+ symbol: TOKEN_NAME,
294
+ decimals: ETH_DECIMALS,
295
+ scale: { numerator: 1, denominator: 100 },
296
+ },
297
+ ],
298
+ [
299
+ 'eth',
300
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: USDC_DECIMALS },
301
+ ],
302
+ ]);
303
+ expect(verifyScale(configMap)).to.be.false;
304
+ });
305
+ it('should return true with mixed scale-up and scale-down reaching the same effective amount', () => {
306
+ // chain1 (18 dec) scales down by 1/1e6, chain2 (6 dec) scales up by 1e6.
307
+ // Both reach 10^12 effective message encoding.
308
+ const configMap = new Map([
309
+ [
310
+ 'chain1',
311
+ {
312
+ name: TOKEN_NAME,
313
+ symbol: TOKEN_NAME,
314
+ decimals: ETH_DECIMALS,
315
+ scale: { numerator: 1, denominator: 1_000_000 },
316
+ },
317
+ ],
318
+ [
319
+ 'chain2',
320
+ {
321
+ name: TOKEN_NAME,
322
+ symbol: TOKEN_NAME,
323
+ decimals: USDC_DECIMALS,
324
+ scale: 1_000_000,
325
+ },
326
+ ],
327
+ ]);
328
+ expect(verifyScale(configMap)).to.be.true;
329
+ });
330
+ it('should return true with scale-down across three chains', () => {
331
+ // BSC (18), ETH (6), and a third 6-decimal chain — all consistent with BSC scale-down
332
+ const configMap = new Map([
333
+ [
334
+ 'bsc',
335
+ {
336
+ name: TOKEN_NAME,
337
+ symbol: TOKEN_NAME,
338
+ decimals: ETH_DECIMALS,
339
+ scale: { numerator: 1, denominator: 1_000_000_000_000 },
340
+ },
341
+ ],
342
+ [
343
+ 'eth',
344
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: USDC_DECIMALS },
345
+ ],
346
+ [
347
+ 'arbitrum',
348
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: USDC_DECIMALS },
349
+ ],
350
+ ]);
351
+ expect(verifyScale(configMap)).to.be.true;
352
+ });
353
+ it('should return true with scale-down using WarpRouteDeployConfigMailboxRequired', () => {
354
+ // BSC (18dec) scales down by 1/1e12 to match ETH (6dec) — via deploy config input type
355
+ const config = {
356
+ bsc: {
357
+ type: TokenType.collateral,
358
+ token: randomAddress(),
359
+ owner: randomAddress(),
360
+ decimals: ETH_DECIMALS,
361
+ scale: { numerator: 1, denominator: 1_000_000_000_000 },
362
+ mailbox: randomAddress(),
363
+ },
364
+ eth: {
365
+ type: TokenType.collateral,
366
+ token: randomAddress(),
367
+ owner: randomAddress(),
368
+ decimals: USDC_DECIMALS,
369
+ mailbox: randomAddress(),
370
+ },
371
+ };
372
+ expect(verifyScale(config)).to.be.true;
373
+ });
374
+ it('should return true when two chains both use scale-down to the same effective amount', () => {
375
+ // chain1 (18dec) with 1/1e12 → effective 10^6
376
+ // chain2 (12dec) with 1/1e6 → effective 10^6
377
+ const configMap = new Map([
378
+ [
379
+ 'chain1',
380
+ {
381
+ name: TOKEN_NAME,
382
+ symbol: TOKEN_NAME,
383
+ decimals: ETH_DECIMALS,
384
+ scale: { numerator: 1, denominator: 1_000_000_000_000 },
385
+ },
386
+ ],
387
+ [
388
+ 'chain2',
389
+ {
390
+ name: TOKEN_NAME,
391
+ symbol: TOKEN_NAME,
392
+ decimals: 12,
393
+ scale: { numerator: 1, denominator: 1_000_000 },
394
+ },
395
+ ],
396
+ ]);
397
+ expect(verifyScale(configMap)).to.be.true;
398
+ });
399
+ it('should return true for non-reduced equivalent fractions (uniform decimals)', () => {
400
+ // Both 18dec: one with 2/2e12 (non-reduced), one with 1/1e12 (reduced) — equivalent
401
+ // Cross-multiply check: 2 * 1e12 === 1 * 2e12 → 2e12 === 2e12 ✓
402
+ const configMap = new Map([
403
+ [
404
+ 'chain1',
405
+ {
406
+ name: TOKEN_NAME,
407
+ symbol: TOKEN_NAME,
408
+ decimals: ETH_DECIMALS,
409
+ scale: { numerator: 2, denominator: 2_000_000_000_000 },
410
+ },
411
+ ],
412
+ [
413
+ 'chain2',
414
+ {
415
+ name: TOKEN_NAME,
416
+ symbol: TOKEN_NAME,
417
+ decimals: ETH_DECIMALS,
418
+ scale: { numerator: 1, denominator: 1_000_000_000_000 },
419
+ },
420
+ ],
421
+ ]);
422
+ expect(verifyScale(configMap)).to.be.true;
423
+ });
424
+ it('should return true for a single-chain config', () => {
425
+ // Single chain — no pairs to compare, trivially consistent
426
+ const configMap = new Map([
427
+ [
428
+ 'chain1',
429
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: ETH_DECIMALS },
430
+ ],
431
+ ]);
432
+ expect(verifyScale(configMap)).to.be.true;
433
+ });
434
+ it('should return false when three chains have the third inconsistent', () => {
435
+ // chain1 (18dec, no scale), chain2 (6dec, scale 1e12 ✓), chain3 (6dec, scale 100 ✗)
436
+ const configMap = new Map([
437
+ [
438
+ 'chain1',
439
+ { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: ETH_DECIMALS },
440
+ ],
441
+ [
442
+ 'chain2',
443
+ {
444
+ name: TOKEN_NAME,
445
+ symbol: TOKEN_NAME,
446
+ decimals: USDC_DECIMALS,
447
+ scale: 1_000_000_000_000,
448
+ },
449
+ ],
450
+ [
451
+ 'chain3',
452
+ {
453
+ name: TOKEN_NAME,
454
+ symbol: TOKEN_NAME,
455
+ decimals: USDC_DECIMALS,
456
+ scale: 100,
457
+ },
458
+ ],
459
+ ]);
460
+ expect(verifyScale(configMap)).to.be.false;
461
+ });
462
+ it('should return true for an empty config', () => {
463
+ const configMap = new Map();
464
+ expect(verifyScale(configMap)).to.be.true;
465
+ });
466
+ it('should treat decimals: 0 as defined (not falsy)', () => {
467
+ // Exercises the nullish check fix (config.decimals != null).
468
+ // decimals: 0 is falsy but defined — should not throw.
469
+ const configMap = new Map([
470
+ ['chain1', { name: TOKEN_NAME, symbol: TOKEN_NAME, decimals: 0 }],
471
+ ]);
472
+ expect(verifyScale(configMap)).to.be.true;
473
+ });
245
474
  });
246
475
  //# sourceMappingURL=decimals.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.test.js","sourceRoot":"","sources":["../../src/utils/decimals.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimals.test.js","sourceRoot":"","sources":["../../src/utils/decimals.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/sdk",
3
- "version": "28.1.0",
3
+ "version": "29.0.1",
4
4
  "description": "The official SDK for the Hyperlane Network",
5
5
  "keywords": [
6
6
  "Hyperlane",
@@ -52,21 +52,22 @@
52
52
  "viem": "^2.21.45",
53
53
  "zksync-ethers": "^5.10.0",
54
54
  "zod": "^3.21.2",
55
- "@hyperlane-xyz/aleo-sdk": "28.1.0",
56
- "@hyperlane-xyz/core": "11.1.0",
57
- "@hyperlane-xyz/cosmos-sdk": "28.1.0",
58
- "@hyperlane-xyz/deploy-sdk": "4.1.0",
55
+ "@hyperlane-xyz/aleo-sdk": "29.0.1",
56
+ "@hyperlane-xyz/cosmos-sdk": "29.0.1",
57
+ "@hyperlane-xyz/deploy-sdk": "4.2.1",
59
58
  "@hyperlane-xyz/multicollateral": "1.0.1",
60
- "@hyperlane-xyz/radix-sdk": "28.1.0",
61
- "@hyperlane-xyz/starknet-core": "28.1.0",
62
- "@hyperlane-xyz/utils": "28.1.0",
63
- "@hyperlane-xyz/provider-sdk": "4.1.0",
64
- "@hyperlane-xyz/tron-sdk": "22.1.3"
59
+ "@hyperlane-xyz/core": "11.1.0",
60
+ "@hyperlane-xyz/provider-sdk": "4.2.1",
61
+ "@hyperlane-xyz/starknet-core": "29.0.1",
62
+ "@hyperlane-xyz/radix-sdk": "29.0.1",
63
+ "@hyperlane-xyz/tron-sdk": "22.1.5",
64
+ "@hyperlane-xyz/utils": "29.0.1"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@ethersproject/providers": "*",
68
68
  "@nomiclabs/hardhat-ethers": "^2.2.3",
69
69
  "@nomiclabs/hardhat-waffle": "^2.0.6",
70
+ "@types/chai": "^4.3.11",
70
71
  "@types/chai-as-promised": "^8",
71
72
  "@types/mocha": "^10.0.1",
72
73
  "@types/node": "^24.10.9",
@@ -85,10 +86,10 @@
85
86
  "solidity-coverage": "^0.8.3",
86
87
  "ts-node": "^10.9.2",
87
88
  "tsx": "^4.19.1",
88
- "typescript": "5.8.3",
89
+ "typescript": "6.0.2",
89
90
  "yaml": "2.4.5",
90
- "@hyperlane-xyz/eslint-config": "^28.1.0",
91
- "@hyperlane-xyz/tsconfig": "^28.1.0"
91
+ "@hyperlane-xyz/tsconfig": "^29.0.1",
92
+ "@hyperlane-xyz/eslint-config": "^29.0.1"
92
93
  },
93
94
  "peerDependencies": {
94
95
  "@ethersproject/abi": "*"