@hyperlane-xyz/sdk 44.0.1 → 45.0.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 (171) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +114 -718
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/consts/testChains.d.ts.map +1 -1
  5. package/dist/consts/testChains.js +11 -6
  6. package/dist/consts/testChains.js.map +1 -1
  7. package/dist/core/adapters/SealevelCoreAdapter.d.ts +6 -0
  8. package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
  9. package/dist/core/adapters/SealevelCoreAdapter.js +20 -0
  10. package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
  11. package/dist/core/adapters/SealevelCoreAdapter.test.js +17 -0
  12. package/dist/core/adapters/SealevelCoreAdapter.test.js.map +1 -1
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js +14 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/core/types.test.js +98 -1
  17. package/dist/core/types.test.js.map +1 -1
  18. package/dist/deploy/proxy.d.ts +1 -0
  19. package/dist/deploy/proxy.d.ts.map +1 -1
  20. package/dist/deploy/proxy.js +6 -0
  21. package/dist/deploy/proxy.js.map +1 -1
  22. package/dist/deploy/warp.d.ts.map +1 -1
  23. package/dist/deploy/warp.js +26 -41
  24. package/dist/deploy/warp.js.map +1 -1
  25. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +3 -2
  26. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  27. package/dist/gas/adapters/SealevelIgpAdapter.js +3 -2
  28. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  34. package/dist/ism/EvmIsmModule.js +5 -1
  35. package/dist/ism/EvmIsmModule.js.map +1 -1
  36. package/dist/ism/EvmIsmModule.test.js +109 -0
  37. package/dist/ism/EvmIsmModule.test.js.map +1 -1
  38. package/dist/ism/HyperlaneIsmFactory.d.ts +26 -6
  39. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  40. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +60 -0
  41. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  42. package/dist/ism/HyperlaneIsmFactory.js +165 -34
  43. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  44. package/dist/ism/HyperlaneIsmFactory.test.js +33 -6
  45. package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -1
  46. package/dist/ism/types.d.ts +18 -2
  47. package/dist/ism/types.d.ts.map +1 -1
  48. package/dist/ism/types.js +43 -3
  49. package/dist/ism/types.js.map +1 -1
  50. package/dist/ism/types.test.js +232 -56
  51. package/dist/ism/types.test.js.map +1 -1
  52. package/dist/ism/utils.d.ts.map +1 -1
  53. package/dist/ism/utils.js +13 -0
  54. package/dist/ism/utils.js.map +1 -1
  55. package/dist/ism/utils.test.js +43 -1
  56. package/dist/ism/utils.test.js.map +1 -1
  57. package/dist/metadata/ChainMetadataManager.d.ts +1 -0
  58. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  59. package/dist/metadata/ChainMetadataManager.js +1 -0
  60. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  61. package/dist/metadata/ChainMetadataManager.test.js +14 -1
  62. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  63. package/dist/metadata/ChainMetadataResolver.d.ts +1 -0
  64. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
  65. package/dist/metadata/ChainMetadataResolver.js +1 -0
  66. package/dist/metadata/ChainMetadataResolver.js.map +1 -1
  67. package/dist/metadata/ChainMetadataResolver.test.js +4 -0
  68. package/dist/metadata/ChainMetadataResolver.test.js.map +1 -1
  69. package/dist/metadata/agentConfig.d.ts +209 -93
  70. package/dist/metadata/agentConfig.d.ts.map +1 -1
  71. package/dist/metadata/agentConfig.js +106 -13
  72. package/dist/metadata/agentConfig.js.map +1 -1
  73. package/dist/metadata/agentConfig.test.js +277 -25
  74. package/dist/metadata/agentConfig.test.js.map +1 -1
  75. package/dist/metadata/chainMetadata.test.js +25 -0
  76. package/dist/metadata/chainMetadata.test.js.map +1 -1
  77. package/dist/metadata/chainMetadataTypes.d.ts +36 -0
  78. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  79. package/dist/metadata/chainMetadataTypes.js +26 -0
  80. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  81. package/dist/providers/SeismicSigner.d.ts +4 -12
  82. package/dist/providers/SeismicSigner.d.ts.map +1 -1
  83. package/dist/providers/SeismicSigner.js +84 -35
  84. package/dist/providers/SeismicSigner.js.map +1 -1
  85. package/dist/providers/SeismicSigner.test.d.ts +2 -0
  86. package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
  87. package/dist/providers/SeismicSigner.test.js +160 -0
  88. package/dist/providers/SeismicSigner.test.js.map +1 -0
  89. package/dist/providers/SmartProvider/SmartProvider.d.ts +0 -4
  90. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  91. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
  92. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
  93. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
  94. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
  95. package/dist/providers/SmartProvider/SmartProvider.js +20 -61
  96. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  97. package/dist/providers/SmartProvider/SmartProvider.test.js +159 -0
  98. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  99. package/dist/providers/SmartProvider/jsonRpcError.d.ts +7 -0
  100. package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
  101. package/dist/providers/SmartProvider/jsonRpcError.js +67 -0
  102. package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
  103. package/dist/providers/SmartProvider/types.d.ts +1 -0
  104. package/dist/providers/SmartProvider/types.d.ts.map +1 -1
  105. package/dist/providers/builders/ethersV5.d.ts +0 -1
  106. package/dist/providers/builders/ethersV5.d.ts.map +1 -1
  107. package/dist/providers/builders/ethersV5.js +19 -5
  108. package/dist/providers/builders/ethersV5.js.map +1 -1
  109. package/dist/providers/builders/ethersV5.test.d.ts +2 -0
  110. package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
  111. package/dist/providers/builders/ethersV5.test.js +77 -0
  112. package/dist/providers/builders/ethersV5.test.js.map +1 -0
  113. package/dist/providers/builders/radix.browser.d.ts +1 -0
  114. package/dist/providers/builders/radix.browser.d.ts.map +1 -1
  115. package/dist/providers/builders/radix.browser.js +1 -0
  116. package/dist/providers/builders/radix.browser.js.map +1 -1
  117. package/dist/providers/builders/radix.d.ts.map +1 -1
  118. package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
  119. package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
  120. package/dist/providers/builders/radix.gateway.test.js +39 -0
  121. package/dist/providers/builders/radix.gateway.test.js.map +1 -0
  122. package/dist/providers/builders/radix.js +1 -0
  123. package/dist/providers/builders/radix.js.map +1 -1
  124. package/dist/providers/builders/radix.test.js +1 -0
  125. package/dist/providers/builders/radix.test.js.map +1 -1
  126. package/dist/providers/providerBuilders.d.ts +1 -1
  127. package/dist/providers/providerBuilders.d.ts.map +1 -1
  128. package/dist/providers/providerBuilders.js +1 -1
  129. package/dist/providers/providerBuilders.js.map +1 -1
  130. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +60 -8
  131. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  132. package/dist/test/errors.d.ts +21 -0
  133. package/dist/test/errors.d.ts.map +1 -1
  134. package/dist/test/errors.js +25 -0
  135. package/dist/test/errors.js.map +1 -1
  136. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +92 -7
  137. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
  138. package/dist/timelock/evm/errors.js +1 -1
  139. package/dist/timelock/evm/errors.js.map +1 -1
  140. package/dist/token/EvmWarpRouteReader.d.ts +26 -0
  141. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  142. package/dist/token/EvmWarpRouteReader.hardhat-test.js +28 -3
  143. package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
  144. package/dist/token/EvmWarpRouteReader.js +137 -41
  145. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  146. package/dist/token/EvmWarpRouteReader.test.js +381 -3
  147. package/dist/token/EvmWarpRouteReader.test.js.map +1 -1
  148. package/dist/token/types.d.ts +1 -1
  149. package/dist/token/warpCheck.d.ts +1 -0
  150. package/dist/token/warpCheck.d.ts.map +1 -1
  151. package/dist/token/warpCheck.js +25 -2
  152. package/dist/token/warpCheck.js.map +1 -1
  153. package/dist/token/warpCheck.test.js +119 -0
  154. package/dist/token/warpCheck.test.js.map +1 -1
  155. package/dist/utils/contract.d.ts +32 -0
  156. package/dist/utils/contract.d.ts.map +1 -1
  157. package/dist/utils/contract.js +90 -3
  158. package/dist/utils/contract.js.map +1 -1
  159. package/dist/utils/contract.test.js +402 -2
  160. package/dist/utils/contract.test.js.map +1 -1
  161. package/dist/utils/contract.transport.test.d.ts +2 -0
  162. package/dist/utils/contract.transport.test.d.ts.map +1 -0
  163. package/dist/utils/contract.transport.test.js +145 -0
  164. package/dist/utils/contract.transport.test.js.map +1 -0
  165. package/dist/utils/ism.d.ts +12 -6
  166. package/dist/utils/ism.d.ts.map +1 -1
  167. package/dist/utils/ism.js +92 -41
  168. package/dist/utils/ism.js.map +1 -1
  169. package/dist/utils/ism.test.js +75 -2
  170. package/dist/utils/ism.test.js.map +1 -1
  171. package/package.json +29 -15
@@ -1,16 +1,17 @@
1
- import { PackageVersioned__factory } from '@hyperlane-xyz/core';
1
+ import { CrossCollateralRouter__factory, EverclearTokenBridge__factory, HypERC20Collateral__factory, IFiatToken__factory, IXERC20__factory, PackageVersioned__factory, TokenRouter__factory, } from '@hyperlane-xyz/core';
2
2
  import chai, { expect } from 'chai';
3
3
  import chaiAsPromised from 'chai-as-promised';
4
4
  import { ethers } from 'ethers';
5
5
  import sinon from 'sinon';
6
6
  import { assert } from '@hyperlane-xyz/utils';
7
7
  import { TestChainName } from '../consts/testChains.js';
8
- import { EIP1967_IMPLEMENTATION_SLOT } from '../deploy/proxy.js';
8
+ import { EIP1967_BEACON_SLOT, EIP1967_IMPLEMENTATION_SLOT, } from '../deploy/proxy.js';
9
9
  import { MultiProvider } from '../providers/MultiProvider.js';
10
10
  import { EvmEventLogsReader } from '../rpc/evm/EvmEventLogsReader.js';
11
- import { missingSelectorError, networkError } from '../test/errors.js';
11
+ import { errorStringRevertError, lsp17NoExtensionError, missingSelectorError, networkError, panicRevertError, } from '../test/errors.js';
12
12
  import { randomAddress } from '../test/testUtils.js';
13
13
  import { EvmWarpRouteReader } from './EvmWarpRouteReader.js';
14
+ import { TokenType } from './config.js';
14
15
  import { XERC20Type } from './types.js';
15
16
  import { CONFIGURATION_CHANGED_EVENT_SELECTOR } from './xerc20-abi.js';
16
17
  chai.use(chaiAsPromised);
@@ -47,6 +48,383 @@ describe('EvmWarpRouteReader', () => {
47
48
  }
48
49
  expect(thrown).to.equal(transientError);
49
50
  });
51
+ describe('fetchTokenFee', () => {
52
+ function stubFeeRecipient(feeRecipient) {
53
+ sandbox.stub(TokenRouter__factory, 'connect').returns({
54
+ feeRecipient,
55
+ });
56
+ }
57
+ it('skips feeRecipient for routers without the token fee interface', async () => {
58
+ const feeRecipient = sandbox.stub().rejects(panicRevertError());
59
+ stubFeeRecipient(feeRecipient);
60
+ sandbox.stub(reader, 'fetchPackageVersion').resolves('8.1.2');
61
+ const result = await reader.fetchTokenFee(randomAddress());
62
+ expect(result).to.equal(undefined);
63
+ expect(feeRecipient.called).to.equal(false);
64
+ });
65
+ const failureCases = [
66
+ { name: 'a network error', error: networkError },
67
+ { name: 'an LSP17 revert', error: lsp17NoExtensionError },
68
+ ];
69
+ for (const c of failureCases) {
70
+ it(`rejects when feeRecipient fails with ${c.name} on a fee-capable router`, async () => {
71
+ const error = c.error();
72
+ stubFeeRecipient(sandbox.stub().rejects(error));
73
+ sandbox.stub(reader, 'fetchPackageVersion').resolves('10.0.0');
74
+ await expect(reader.fetchTokenFee(randomAddress())).to.be.rejectedWith(error.message);
75
+ });
76
+ }
77
+ });
78
+ describe('fetchFeeHook', () => {
79
+ const feeHookSelector = TokenRouter__factory.createInterface()
80
+ .getSighash('feeHook()')
81
+ .slice(2);
82
+ function stubProxyProvider(implBytecode) {
83
+ const provider = multiProvider.getProvider(TestChainName.test1);
84
+ const impl = randomAddress();
85
+ const getCode = sandbox
86
+ .stub(provider, 'getCode')
87
+ .callsFake(async (address) => (await address) === ethers.utils.getAddress(impl)
88
+ ? implBytecode
89
+ : '0x60');
90
+ sandbox
91
+ .stub(provider, 'getStorageAt')
92
+ .resolves(`0x${'00'.repeat(12)}${impl.slice(2)}`);
93
+ const call = sandbox
94
+ .stub(provider, 'call')
95
+ .rejects(lsp17NoExtensionError());
96
+ return { call, getCode };
97
+ }
98
+ it('skips feeHook() when bytecode has no feeHook() selector', async () => {
99
+ const { call } = stubProxyProvider('0x6080604052deadbeef');
100
+ expect(await reader.fetchFeeHook(randomAddress())).to.equal(undefined);
101
+ expect(call.called).to.equal(false);
102
+ });
103
+ it('rejects an LSP17-style revert when bytecode has the feeHook() selector', async () => {
104
+ const { call } = stubProxyProvider(`0x6080604052${feeHookSelector}`);
105
+ await expect(reader.fetchFeeHook(randomAddress())).to.be.rejectedWith('call revert exception');
106
+ expect(call.called).to.equal(true);
107
+ });
108
+ it('makes the call when bytecode is empty', async () => {
109
+ const { call } = stubProxyProvider('0x');
110
+ await expect(reader.fetchFeeHook(randomAddress())).to.be.rejectedWith('call revert exception');
111
+ expect(call.called).to.equal(true);
112
+ });
113
+ it('caches implementation bytecode per address', async () => {
114
+ const { getCode } = stubProxyProvider('0x6080604052deadbeef');
115
+ const router = randomAddress();
116
+ await reader.fetchFeeHook(router);
117
+ const callsAfterFirst = getCode.callCount;
118
+ await reader.fetchFeeHook(router.toLowerCase());
119
+ expect(getCode.callCount).to.equal(callsAfterFirst);
120
+ });
121
+ });
122
+ describe('implementation bytecode resolution', () => {
123
+ const feeHookSelector = TokenRouter__factory.createInterface()
124
+ .getSighash('feeHook()')
125
+ .slice(2);
126
+ const ZERO_SLOT = `0x${'00'.repeat(32)}`;
127
+ const WITH_SELECTOR = `0x6080604052${feeHookSelector}`;
128
+ const WITHOUT_SELECTOR = '0x6080604052deadbeef';
129
+ const router = randomAddress();
130
+ const impl = ethers.utils.getAddress(randomAddress());
131
+ const addressSlot = (address) => `0x${'00'.repeat(12)}${address.slice(2).toLowerCase()}`;
132
+ const minimalProxyCode = (address) => `0x363d3d373d3d3d363d73${address.slice(2).toLowerCase()}5af43d82803e903d91602b57fd5bf3`;
133
+ const cases = [
134
+ {
135
+ name: 'reads the EIP-1967 implementation without the selector',
136
+ routerCode: '0x60',
137
+ implCode: WITHOUT_SELECTOR,
138
+ implSlot: addressSlot(impl),
139
+ beaconSlot: ZERO_SLOT,
140
+ expectCall: false,
141
+ },
142
+ {
143
+ name: 'reads the EIP-1967 implementation with the selector',
144
+ routerCode: '0x60',
145
+ implCode: WITH_SELECTOR,
146
+ implSlot: addressSlot(impl),
147
+ beaconSlot: ZERO_SLOT,
148
+ expectCall: true,
149
+ },
150
+ {
151
+ name: 'uses the own code of a non-proxy without the selector',
152
+ routerCode: WITHOUT_SELECTOR,
153
+ implSlot: ZERO_SLOT,
154
+ beaconSlot: ZERO_SLOT,
155
+ expectCall: false,
156
+ },
157
+ {
158
+ name: 'uses the own code of a non-proxy with the selector',
159
+ routerCode: WITH_SELECTOR,
160
+ implSlot: '0x0',
161
+ beaconSlot: '0x',
162
+ expectCall: true,
163
+ },
164
+ {
165
+ name: 'probes an address without code',
166
+ routerCode: '0x',
167
+ implSlot: ZERO_SLOT,
168
+ beaconSlot: ZERO_SLOT,
169
+ expectCall: true,
170
+ },
171
+ {
172
+ name: 'resolves an EIP-1167 minimal proxy without the selector',
173
+ routerCode: minimalProxyCode(impl),
174
+ implCode: WITHOUT_SELECTOR,
175
+ implSlot: ZERO_SLOT,
176
+ beaconSlot: ZERO_SLOT,
177
+ expectCall: false,
178
+ },
179
+ {
180
+ name: 'resolves an EIP-1167 minimal proxy with the selector',
181
+ routerCode: minimalProxyCode(impl),
182
+ implCode: WITH_SELECTOR,
183
+ implSlot: ZERO_SLOT,
184
+ beaconSlot: ZERO_SLOT,
185
+ expectCall: true,
186
+ },
187
+ {
188
+ name: 'probes a beacon proxy',
189
+ routerCode: WITHOUT_SELECTOR,
190
+ implSlot: ZERO_SLOT,
191
+ beaconSlot: addressSlot(impl),
192
+ expectCall: true,
193
+ },
194
+ {
195
+ name: 'probes when the implementation slot read fails',
196
+ routerCode: WITHOUT_SELECTOR,
197
+ implSlot: new Error('rpc unavailable'),
198
+ beaconSlot: ZERO_SLOT,
199
+ expectCall: true,
200
+ },
201
+ {
202
+ name: 'probes when the beacon slot read fails',
203
+ routerCode: WITHOUT_SELECTOR,
204
+ implSlot: ZERO_SLOT,
205
+ beaconSlot: new Error('rpc unavailable'),
206
+ expectCall: true,
207
+ },
208
+ {
209
+ name: 'probes when reading the own code fails',
210
+ routerCode: new Error('rpc unavailable'),
211
+ implSlot: ZERO_SLOT,
212
+ beaconSlot: ZERO_SLOT,
213
+ expectCall: true,
214
+ },
215
+ {
216
+ name: 'probes when reading the implementation code fails',
217
+ routerCode: '0x60',
218
+ implCode: undefined,
219
+ implSlot: addressSlot(impl),
220
+ beaconSlot: ZERO_SLOT,
221
+ expectCall: true,
222
+ },
223
+ ];
224
+ function stubProvider(c) {
225
+ const provider = multiProvider.getProvider(TestChainName.test1);
226
+ const getCode = sandbox
227
+ .stub(provider, 'getCode')
228
+ .callsFake(async (address) => {
229
+ const resolved = await address;
230
+ const code = resolved.toLowerCase() === router.toLowerCase()
231
+ ? c.routerCode
232
+ : c.implCode;
233
+ if (code === undefined)
234
+ throw new Error('rpc unavailable');
235
+ if (code instanceof Error)
236
+ throw code;
237
+ return code;
238
+ });
239
+ sandbox
240
+ .stub(provider, 'getStorageAt')
241
+ .callsFake(async (_address, slot) => {
242
+ const value = slot === EIP1967_BEACON_SLOT ? c.beaconSlot : c.implSlot;
243
+ if (value instanceof Error)
244
+ throw value;
245
+ return value;
246
+ });
247
+ const call = sandbox
248
+ .stub(provider, 'call')
249
+ .rejects(lsp17NoExtensionError());
250
+ return { call, getCode };
251
+ }
252
+ for (const c of cases) {
253
+ it(c.name, async () => {
254
+ const { call } = stubProvider(c);
255
+ if (c.expectCall) {
256
+ await expect(reader.fetchFeeHook(router)).to.be.rejectedWith('call revert exception');
257
+ }
258
+ else {
259
+ expect(await reader.fetchFeeHook(router)).to.equal(undefined);
260
+ }
261
+ expect(call.called).to.equal(c.expectCall);
262
+ });
263
+ }
264
+ it('does not cache unknown bytecode', async () => {
265
+ const c = cases.find((x) => x.name.includes('implementation slot read'));
266
+ assert(c, 'case exists');
267
+ const { getCode } = stubProvider(c);
268
+ await expect(reader.fetchFeeHook(router)).to.be.rejectedWith('call revert exception');
269
+ const callsAfterFirst = getCode.callCount;
270
+ await expect(reader.fetchFeeHook(router)).to.be.rejectedWith('call revert exception');
271
+ expect(getCode.callCount).to.be.greaterThan(callsAfterFirst);
272
+ });
273
+ it('shares one bytecode read between deriveTokenType and the getters', async () => {
274
+ const { getCode } = stubProvider(cases[2]);
275
+ await reader.deriveTokenType(router).catch(() => undefined);
276
+ const callsAfterDerive = getCode.callCount;
277
+ await reader.fetchFeeHook(router);
278
+ expect(getCode.callCount).to.equal(callsAfterDerive);
279
+ });
280
+ });
281
+ describe('fetchScale', () => {
282
+ const scaleSelector = new ethers.utils.Interface([
283
+ 'function scale() view returns (uint256)',
284
+ ])
285
+ .getSighash('scale()')
286
+ .slice(2);
287
+ const cases = [
288
+ {
289
+ name: 'skips scale() when bytecode has no scale() selector',
290
+ bytecode: '0x6080604052deadbeef',
291
+ expectCall: false,
292
+ },
293
+ {
294
+ name: 'calls scale() when bytecode is empty',
295
+ bytecode: '0x',
296
+ expectCall: true,
297
+ },
298
+ ];
299
+ function stubProxyProvider(implBytecode) {
300
+ const provider = multiProvider.getProvider(TestChainName.test1);
301
+ const impl = randomAddress();
302
+ sandbox
303
+ .stub(provider, 'getCode')
304
+ .callsFake(async (address) => (await address) === ethers.utils.getAddress(impl)
305
+ ? implBytecode
306
+ : '0x60');
307
+ sandbox
308
+ .stub(provider, 'getStorageAt')
309
+ .resolves(`0x${'00'.repeat(12)}${impl.slice(2)}`);
310
+ sandbox.stub(reader, 'fetchPackageVersion').resolves('8.0.0');
311
+ return sandbox
312
+ .stub(provider, 'call')
313
+ .rejects(new Error('Invalid response from provider'));
314
+ }
315
+ for (const c of cases) {
316
+ it(c.name, async () => {
317
+ const router = randomAddress();
318
+ const call = stubProxyProvider(c.bytecode);
319
+ if (c.expectCall) {
320
+ await expect(reader.fetchScale(router)).to.be.rejectedWith('Invalid response from provider');
321
+ }
322
+ else {
323
+ expect(await reader.fetchScale(router)).to.equal(undefined);
324
+ }
325
+ expect(call.called).to.equal(c.expectCall);
326
+ });
327
+ }
328
+ it('rejects when the legacy scale() read gets an empty provider response and bytecode has the selector', async () => {
329
+ const router = randomAddress();
330
+ const call = stubProxyProvider(`0x6080604052${scaleSelector}`);
331
+ await expect(reader.fetchScale(router)).to.be.rejectedWith('Invalid response from provider');
332
+ expect(call.called).to.equal(true);
333
+ });
334
+ });
335
+ describe('deriveTokenType xERC20 probe', () => {
336
+ async function deriveWithXERC20Probe(probeError, wrappedTokenCode) {
337
+ const wrappedTokenSelector = HypERC20Collateral__factory.createInterface()
338
+ .getSighash('wrappedToken')
339
+ .slice(2);
340
+ const xerc20Selector = IXERC20__factory.createInterface()
341
+ .getSighash('mintingCurrentLimitOf(address)')
342
+ .slice(2);
343
+ const wrappedToken = randomAddress();
344
+ const provider = multiProvider.getProvider(TestChainName.test1);
345
+ sandbox
346
+ .stub(provider, 'getCode')
347
+ .callsFake(async (address) => (await address).toLowerCase() === wrappedToken.toLowerCase()
348
+ ? (wrappedTokenCode ?? `0x${xerc20Selector}`)
349
+ : `0x${wrappedTokenSelector}`);
350
+ sandbox.stub(provider, 'getStorageAt').resolves(`0x${'00'.repeat(32)}`);
351
+ sandbox.stub(HypERC20Collateral__factory, 'connect').returns({
352
+ wrappedToken: sandbox.stub().resolves(wrappedToken),
353
+ });
354
+ const probe = sandbox.stub();
355
+ if (probeError)
356
+ probe.rejects(probeError);
357
+ else
358
+ probe.resolves(42);
359
+ sandbox.stub(IXERC20__factory, 'connect').returns({
360
+ 'mintingCurrentLimitOf(address)': probe,
361
+ });
362
+ sandbox.stub(IFiatToken__factory, 'connect').returns({
363
+ callStatic: { mint: sandbox.stub().rejects(missingSelectorError()) },
364
+ });
365
+ sandbox.stub(EverclearTokenBridge__factory, 'connect').returns({
366
+ callStatic: {
367
+ everclearAdapter: sandbox.stub().rejects(missingSelectorError()),
368
+ },
369
+ });
370
+ sandbox.stub(CrossCollateralRouter__factory, 'connect').returns({
371
+ getCrossCollateralRouters: sandbox
372
+ .stub()
373
+ .rejects(missingSelectorError()),
374
+ });
375
+ return reader.deriveTokenType(randomAddress());
376
+ }
377
+ it('skips the probe when a legacy wrapped token lacks the xERC20 selector', async () => {
378
+ const invalidOpcodeError = Object.assign(new Error('missing revert data in call exception'), {
379
+ code: 'CALL_EXCEPTION',
380
+ data: '0x',
381
+ error: { code: -32003, message: 'EVM error: InvalidFEOpcode' },
382
+ });
383
+ expect(await deriveWithXERC20Probe(invalidOpcodeError, '0x6080604052deadbeef')).to.equal(TokenType.collateral);
384
+ });
385
+ it('probes an xERC20 behind an unresolved PUSH0 clone', async () => {
386
+ const implementation = randomAddress().slice(2).toLowerCase();
387
+ const push0Clone = `0x5f5f365f5f37365f73${implementation}5af43d5f5f3e6029573d5ffd5b3d5ff3`;
388
+ expect(await deriveWithXERC20Probe(undefined, push0Clone)).to.equal(TokenType.XERC20);
389
+ });
390
+ const fallThroughCases = [
391
+ { name: 'a panic revert', error: panicRevertError },
392
+ { name: 'a missing selector', error: missingSelectorError },
393
+ ];
394
+ for (const c of fallThroughCases) {
395
+ it(`treats ${c.name} as not xERC20`, async () => {
396
+ expect(await deriveWithXERC20Probe(c.error())).to.equal(TokenType.collateral);
397
+ });
398
+ }
399
+ const surfacedCases = [
400
+ { name: 'an Error(string) revert', error: errorStringRevertError },
401
+ { name: 'an LSP17 revert', error: lsp17NoExtensionError },
402
+ ];
403
+ for (const c of surfacedCases) {
404
+ it(`rethrows ${c.name} from the xERC20 probe`, async () => {
405
+ const error = c.error();
406
+ let thrown;
407
+ try {
408
+ await deriveWithXERC20Probe(error);
409
+ }
410
+ catch (e) {
411
+ thrown = e;
412
+ }
413
+ expect(thrown).to.equal(error);
414
+ });
415
+ }
416
+ it('rethrows transient xERC20 probe failures', async () => {
417
+ const error = networkError();
418
+ let thrown;
419
+ try {
420
+ await deriveWithXERC20Probe(error);
421
+ }
422
+ catch (e) {
423
+ thrown = e;
424
+ }
425
+ expect(thrown).to.equal(error);
426
+ });
427
+ });
50
428
  describe('fetchXERC20Config', () => {
51
429
  // A mainnet router, one of the bridges its token holds limits for, and
52
430
  // that token. Real addresses so the checksummed casing below is the casing
@@ -1 +1 @@
1
- {"version":3,"file":"EvmWarpRouteReader.test.js","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmWarpRouteReader.test.js","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const WarpRouteDeployConfigSchemaErrors: {
9
9
  NO_SYNTHETIC_ONLY: string;
10
10
  };
11
11
  export declare const contractVersionMatchesDependency: (version: string) => boolean;
12
- export declare const VERSION_ERROR_MESSAGE = "Contract version must match the @hyperlane-xyz/core dependency version (12.1.0)";
12
+ export declare const VERSION_ERROR_MESSAGE = "Contract version must match the @hyperlane-xyz/core dependency version (12.2.0)";
13
13
  export declare const TokenMetadataSchema: z.ZodObject<{
14
14
  name: z.ZodString;
15
15
  symbol: z.ZodString;
@@ -40,6 +40,7 @@ export declare function normalizeAltVmDestinationGas(actual: Record<string, stri
40
40
  actual: Record<string, string>;
41
41
  expected: Record<string, string>;
42
42
  };
43
+ export declare function filterDestinationGasToEnrolledDomains(destinationGas: Record<string, string>, chain: string, enrollmentSources: ReadonlyArray<Pick<AltVmCheckConfig, 'crossCollateralRouters' | 'remoteRouters'>>): Record<string, string>;
43
44
  export declare function buildAltVmWarpRouteDiff(onChainConfigs: Record<string, AltVmCheckConfig>, expectedConfigs: Record<string, AltVmCheckConfig>, noIgpChains?: ReadonlySet<string>): Record<string, ObjectDiff>;
44
45
  export declare function altVmScaleMismatch(actualScale: number | undefined, expectedScale: WarpRouteDeployConfigMailboxRequired[string]['scale']): {
45
46
  actual: string;
@@ -1 +1 @@
1
- {"version":3,"file":"warpCheck.d.ts","sourceRoot":"","sources":["../../src/token/warpCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warpCheck.d.ts","sourceRoot":"","sources":["../../src/token/warpCheck.ts"],"names":[],"mappings":"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"}
@@ -279,6 +279,28 @@ export function normalizeAltVmDestinationGas(actual, expected) {
279
279
  }
280
280
  return { actual: normalizedActual, expected: normalizedExpected };
281
281
  }
282
+ export function filterDestinationGasToEnrolledDomains(destinationGas, chain, enrollmentSources) {
283
+ const enrolledChains = new Set();
284
+ for (const { crossCollateralRouters, remoteRouters } of enrollmentSources) {
285
+ for (const remoteRouterChain of Object.keys(remoteRouters)) {
286
+ enrolledChains.add(remoteRouterChain);
287
+ }
288
+ for (const ccrChain of Object.keys(crossCollateralRouters ?? {})) {
289
+ if (ccrChain !== chain) {
290
+ enrolledChains.add(ccrChain);
291
+ }
292
+ }
293
+ }
294
+ const filteredDestinationGas = {};
295
+ // Gas for domains without an enrolled router or CCR has no effect, but can
296
+ // remain on-chain after unenrollment.
297
+ for (const [destinationChain, gas] of Object.entries(destinationGas)) {
298
+ if (enrolledChains.has(destinationChain)) {
299
+ filteredDestinationGas[destinationChain] = gas;
300
+ }
301
+ }
302
+ return filteredDestinationGas;
303
+ }
282
304
  export function buildAltVmWarpRouteDiff(onChainConfigs, expectedConfigs, noIgpChains = new Set()) {
283
305
  const diff = {};
284
306
  for (const chain of Object.keys(expectedConfigs)) {
@@ -305,9 +327,10 @@ export function buildAltVmWarpRouteDiff(onChainConfigs, expectedConfigs, noIgpCh
305
327
  // false-positive decimals mismatch.
306
328
  // scale is excluded entirely here -- it needs an exact rational comparison
307
329
  // (see altVmScaleMismatch) rather than the plain `number` diffObjMerge does.
330
+ const enrolledActualGas = filterDestinationGasToEnrolledDomains(actual.destinationGas, chain, [actual, expected]);
308
331
  const { actual: normalizedActualGas, expected: normalizedExpectedGas } = noIgpChains.has(chain)
309
- ? normalizeAltVmDestinationGas(actual.destinationGas, expected.destinationGas)
310
- : { actual: actual.destinationGas, expected: expected.destinationGas };
332
+ ? normalizeAltVmDestinationGas(enrolledActualGas, expected.destinationGas)
333
+ : { actual: enrolledActualGas, expected: expected.destinationGas };
311
334
  const normalizedActual = {
312
335
  ...actual,
313
336
  interchainSecurityModule: isNullish(expected.interchainSecurityModule)