@hyperlane-xyz/sdk 44.0.2 → 45.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 (189) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +104 -772
  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 +32 -43
  24. package/dist/deploy/warp.js.map +1 -1
  25. package/dist/deploy/warp.test.js +62 -1
  26. package/dist/deploy/warp.test.js.map +1 -1
  27. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +3 -2
  28. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  29. package/dist/gas/adapters/SealevelIgpAdapter.js +3 -2
  30. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  36. package/dist/ism/EvmIsmModule.js +5 -1
  37. package/dist/ism/EvmIsmModule.js.map +1 -1
  38. package/dist/ism/EvmIsmModule.test.js +109 -0
  39. package/dist/ism/EvmIsmModule.test.js.map +1 -1
  40. package/dist/ism/HyperlaneIsmFactory.d.ts +26 -6
  41. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  42. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +60 -0
  43. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  44. package/dist/ism/HyperlaneIsmFactory.js +165 -34
  45. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  46. package/dist/ism/HyperlaneIsmFactory.test.js +33 -6
  47. package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -1
  48. package/dist/ism/types.d.ts +18 -2
  49. package/dist/ism/types.d.ts.map +1 -1
  50. package/dist/ism/types.js +43 -3
  51. package/dist/ism/types.js.map +1 -1
  52. package/dist/ism/types.test.js +232 -56
  53. package/dist/ism/types.test.js.map +1 -1
  54. package/dist/ism/utils.d.ts.map +1 -1
  55. package/dist/ism/utils.js +13 -0
  56. package/dist/ism/utils.js.map +1 -1
  57. package/dist/ism/utils.test.js +43 -1
  58. package/dist/ism/utils.test.js.map +1 -1
  59. package/dist/metadata/ChainMetadataManager.d.ts +1 -0
  60. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  61. package/dist/metadata/ChainMetadataManager.js +1 -0
  62. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  63. package/dist/metadata/ChainMetadataManager.test.js +14 -1
  64. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  65. package/dist/metadata/ChainMetadataResolver.d.ts +1 -0
  66. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
  67. package/dist/metadata/ChainMetadataResolver.js +1 -0
  68. package/dist/metadata/ChainMetadataResolver.js.map +1 -1
  69. package/dist/metadata/ChainMetadataResolver.test.js +4 -0
  70. package/dist/metadata/ChainMetadataResolver.test.js.map +1 -1
  71. package/dist/metadata/agentConfig.d.ts +209 -93
  72. package/dist/metadata/agentConfig.d.ts.map +1 -1
  73. package/dist/metadata/agentConfig.js +106 -13
  74. package/dist/metadata/agentConfig.js.map +1 -1
  75. package/dist/metadata/agentConfig.test.js +277 -25
  76. package/dist/metadata/agentConfig.test.js.map +1 -1
  77. package/dist/metadata/chainMetadata.test.js +25 -0
  78. package/dist/metadata/chainMetadata.test.js.map +1 -1
  79. package/dist/metadata/chainMetadataTypes.d.ts +36 -0
  80. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  81. package/dist/metadata/chainMetadataTypes.js +26 -0
  82. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  83. package/dist/providers/SeismicSigner.d.ts +4 -12
  84. package/dist/providers/SeismicSigner.d.ts.map +1 -1
  85. package/dist/providers/SeismicSigner.js +84 -35
  86. package/dist/providers/SeismicSigner.js.map +1 -1
  87. package/dist/providers/SeismicSigner.test.d.ts +2 -0
  88. package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
  89. package/dist/providers/SeismicSigner.test.js +160 -0
  90. package/dist/providers/SeismicSigner.test.js.map +1 -0
  91. package/dist/providers/SmartProvider/SmartProvider.d.ts +1 -5
  92. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  93. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
  94. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
  95. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
  96. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
  97. package/dist/providers/SmartProvider/SmartProvider.js +35 -72
  98. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  99. package/dist/providers/SmartProvider/SmartProvider.test.js +181 -2
  100. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  101. package/dist/providers/SmartProvider/jsonRpcError.d.ts +7 -0
  102. package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
  103. package/dist/providers/SmartProvider/jsonRpcError.js +67 -0
  104. package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
  105. package/dist/providers/SmartProvider/types.d.ts +1 -0
  106. package/dist/providers/SmartProvider/types.d.ts.map +1 -1
  107. package/dist/providers/builders/ethersV5.d.ts +0 -1
  108. package/dist/providers/builders/ethersV5.d.ts.map +1 -1
  109. package/dist/providers/builders/ethersV5.js +19 -5
  110. package/dist/providers/builders/ethersV5.js.map +1 -1
  111. package/dist/providers/builders/ethersV5.test.d.ts +2 -0
  112. package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
  113. package/dist/providers/builders/ethersV5.test.js +77 -0
  114. package/dist/providers/builders/ethersV5.test.js.map +1 -0
  115. package/dist/providers/builders/radix.browser.d.ts +1 -0
  116. package/dist/providers/builders/radix.browser.d.ts.map +1 -1
  117. package/dist/providers/builders/radix.browser.js +1 -0
  118. package/dist/providers/builders/radix.browser.js.map +1 -1
  119. package/dist/providers/builders/radix.d.ts.map +1 -1
  120. package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
  121. package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
  122. package/dist/providers/builders/radix.gateway.test.js +39 -0
  123. package/dist/providers/builders/radix.gateway.test.js.map +1 -0
  124. package/dist/providers/builders/radix.js +1 -0
  125. package/dist/providers/builders/radix.js.map +1 -1
  126. package/dist/providers/builders/radix.test.js +1 -0
  127. package/dist/providers/builders/radix.test.js.map +1 -1
  128. package/dist/providers/providerBuilders.d.ts +1 -1
  129. package/dist/providers/providerBuilders.d.ts.map +1 -1
  130. package/dist/providers/providerBuilders.js +1 -1
  131. package/dist/providers/providerBuilders.js.map +1 -1
  132. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +60 -8
  133. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  134. package/dist/test/errors.d.ts +25 -0
  135. package/dist/test/errors.d.ts.map +1 -1
  136. package/dist/test/errors.js +31 -0
  137. package/dist/test/errors.js.map +1 -1
  138. package/dist/test/fixtures/warp-route-replay/record.d.ts +2 -0
  139. package/dist/test/fixtures/warp-route-replay/record.d.ts.map +1 -0
  140. package/dist/test/fixtures/warp-route-replay/record.js +32 -0
  141. package/dist/test/fixtures/warp-route-replay/record.js.map +1 -0
  142. package/dist/test/replayRpc.d.ts +82 -0
  143. package/dist/test/replayRpc.d.ts.map +1 -0
  144. package/dist/test/replayRpc.js +331 -0
  145. package/dist/test/replayRpc.js.map +1 -0
  146. package/dist/test/replayScenarios.d.ts +19 -0
  147. package/dist/test/replayScenarios.d.ts.map +1 -0
  148. package/dist/test/replayScenarios.js +89 -0
  149. package/dist/test/replayScenarios.js.map +1 -0
  150. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +92 -7
  151. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
  152. package/dist/timelock/evm/errors.js +1 -1
  153. package/dist/timelock/evm/errors.js.map +1 -1
  154. package/dist/token/EvmWarpRouteReader.d.ts +27 -0
  155. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  156. package/dist/token/EvmWarpRouteReader.hardhat-test.js +28 -3
  157. package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
  158. package/dist/token/EvmWarpRouteReader.js +172 -42
  159. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  160. package/dist/token/EvmWarpRouteReader.replay.test.d.ts +2 -0
  161. package/dist/token/EvmWarpRouteReader.replay.test.d.ts.map +1 -0
  162. package/dist/token/EvmWarpRouteReader.replay.test.js +392 -0
  163. package/dist/token/EvmWarpRouteReader.replay.test.js.map +1 -0
  164. package/dist/token/EvmWarpRouteReader.test.js +529 -4
  165. package/dist/token/EvmWarpRouteReader.test.js.map +1 -1
  166. package/dist/token/types.d.ts +1 -1
  167. package/dist/token/warpCheck.d.ts +1 -0
  168. package/dist/token/warpCheck.d.ts.map +1 -1
  169. package/dist/token/warpCheck.js +25 -2
  170. package/dist/token/warpCheck.js.map +1 -1
  171. package/dist/token/warpCheck.test.js +119 -0
  172. package/dist/token/warpCheck.test.js.map +1 -1
  173. package/dist/utils/contract.d.ts +33 -0
  174. package/dist/utils/contract.d.ts.map +1 -1
  175. package/dist/utils/contract.js +116 -3
  176. package/dist/utils/contract.js.map +1 -1
  177. package/dist/utils/contract.test.js +465 -2
  178. package/dist/utils/contract.test.js.map +1 -1
  179. package/dist/utils/contract.transport.test.d.ts +2 -0
  180. package/dist/utils/contract.transport.test.d.ts.map +1 -0
  181. package/dist/utils/contract.transport.test.js +145 -0
  182. package/dist/utils/contract.transport.test.js.map +1 -0
  183. package/dist/utils/ism.d.ts +12 -6
  184. package/dist/utils/ism.d.ts.map +1 -1
  185. package/dist/utils/ism.js +92 -41
  186. package/dist/utils/ism.js.map +1 -1
  187. package/dist/utils/ism.test.js +75 -2
  188. package/dist/utils/ism.test.js.map +1 -1
  189. package/package.json +29 -15
@@ -2,9 +2,11 @@ import chai, { expect } from 'chai';
2
2
  import chaiAsPromised from 'chai-as-promised';
3
3
  import { ethers } from 'ethers';
4
4
  import hre from 'hardhat';
5
+ import sinon from 'sinon';
5
6
  import { TimelockController__factory } from '@hyperlane-xyz/core';
6
7
  import { assert, deepCopy, normalizeAddressEvm } from '@hyperlane-xyz/utils';
7
- import { KNOWN_ETHEREUM_TIMELOCK_CONTRACT, TestChainName, ethereumTestChain, test1, } from '../../consts/testChains.js';
8
+ import { EXPLORER_API_URL, explorerResponse, } from '../../block-explorer/testFixtures.js';
9
+ import { TestChainName, ethereumTestChain, test1, } from '../../consts/testChains.js';
8
10
  import { ZBytes32String } from '../../metadata/customZodTypes.js';
9
11
  import { MultiProvider } from '../../providers/MultiProvider.js';
10
12
  import { randomAddress } from '../../test/testUtils.js';
@@ -736,22 +738,103 @@ describe(EvmTimelockReader.name, () => {
736
738
  });
737
739
  describe(`${EvmTimelockReader.name} (Block Explorer)`, () => {
738
740
  let reader;
739
- let multiProvider;
741
+ let sandbox;
742
+ let operationIds;
743
+ let explorerFetch;
744
+ let rpcGetLogs;
740
745
  beforeEach(async () => {
746
+ sandbox = sinon.createSandbox();
747
+ const timelock = await deployTestTimelock();
748
+ operationIds = [];
749
+ for (let i = 0; i < 3; i++) {
750
+ const salt = ethers.utils.formatBytes32String(`explorer-${i}`);
751
+ const args = [
752
+ [executor.address],
753
+ [0],
754
+ ['0x'],
755
+ EMPTY_BYTES_32,
756
+ salt,
757
+ ];
758
+ await (await timelock.connect(proposer).scheduleBatch(...args, 0)).wait();
759
+ operationIds.push(await timelock.hashOperationBatch(...args));
760
+ if (i === 0)
761
+ await (await timelock.connect(proposer).cancel(operationIds[i])).wait();
762
+ if (i === 1)
763
+ await (await timelock.connect(executor).executeBatch(...args)).wait();
764
+ }
765
+ const explorerUrl = EXPLORER_API_URL;
741
766
  multiProvider = new MultiProvider({
742
- ethereum: ethereumTestChain,
767
+ [TestChainName.test1]: {
768
+ ...test1,
769
+ blockExplorers: ethereumTestChain.blockExplorers
770
+ ?.slice(0, 1)
771
+ .map((explorer) => ({
772
+ ...explorer,
773
+ apiUrl: explorerUrl,
774
+ url: 'https://explorer.test',
775
+ })),
776
+ },
777
+ });
778
+ multiProvider.setProvider(TestChainName.test1, providerChainTest1);
779
+ const fixtureLogs = await providerChainTest1.getLogs({
780
+ address: timelock.address,
781
+ fromBlock: timelock.deployTransaction.blockNumber,
782
+ toBlock: 'latest',
783
+ });
784
+ rpcGetLogs = sandbox
785
+ .stub(providerChainTest1, 'getLogs')
786
+ .rejects(new Error('Explorer tests must not fall back to RPC logs'));
787
+ // Exercise the explorer HTTP/decoding path using real local events.
788
+ // No public RPC or explorer is involved in this Hardhat suite.
789
+ explorerFetch = sandbox
790
+ .stub(globalThis, 'fetch')
791
+ .callsFake(async (input) => {
792
+ const url = new URL(input instanceof Request ? input.url : input.toString());
793
+ expect(url.origin + url.pathname).to.equal(explorerUrl);
794
+ let result;
795
+ if (url.searchParams.get('action') === 'getcontractcreation') {
796
+ result = [
797
+ {
798
+ contractAddress: timelock.address,
799
+ contractCreator: contractOwner.address,
800
+ txHash: timelock.deployTransaction.hash,
801
+ blockNumber: timelock.deployTransaction.blockNumber,
802
+ },
803
+ ];
804
+ }
805
+ else {
806
+ expect(url.searchParams.get('action')).to.equal('getLogs');
807
+ expect(url.searchParams.get('address')).to.equal(timelock.address);
808
+ const topic = url.searchParams.get('topic0');
809
+ assert(topic, 'Expected an event topic');
810
+ const logs = fixtureLogs.filter((log) => log.topics[0] === topic &&
811
+ log.blockNumber >= Number(url.searchParams.get('fromBlock')) &&
812
+ log.blockNumber <= Number(url.searchParams.get('toBlock')));
813
+ result = logs.map((log) => ({
814
+ ...log,
815
+ blockNumber: ethers.utils.hexValue(log.blockNumber),
816
+ logIndex: ethers.utils.hexValue(log.logIndex),
817
+ transactionIndex: ethers.utils.hexValue(log.transactionIndex),
818
+ }));
819
+ }
820
+ return explorerResponse({ status: '1', message: 'OK', result });
743
821
  });
744
822
  reader = EvmTimelockReader.fromConfig({
745
- chain: ethereumTestChain.name,
746
- timelockAddress: KNOWN_ETHEREUM_TIMELOCK_CONTRACT,
823
+ chain: TestChainName.test1,
824
+ timelockAddress,
747
825
  multiProvider,
748
826
  });
749
827
  });
828
+ afterEach(() => {
829
+ sandbox.restore();
830
+ expect(explorerFetch.called).to.be.true;
831
+ expect(rpcGetLogs.called).to.be.false;
832
+ });
750
833
  describe(`${EvmTimelockReader.prototype.getScheduledOperations.name}`, () => {
751
834
  it('should retrieve scheduled transactions from block explorer API', async () => {
752
835
  const scheduledTxs = await reader.getScheduledOperations();
753
836
  // Should find some scheduled transactions on this timelock
754
- expect(Object.keys(scheduledTxs).length).to.be.greaterThan(0);
837
+ expect(Object.keys(scheduledTxs)).to.have.members(operationIds);
755
838
  // Validate structure of returned transactions
756
839
  for (const [txId, tx] of Object.entries(scheduledTxs)) {
757
840
  expect(ZBytes32String.safeParse(txId).success).to.be.true;
@@ -767,6 +850,7 @@ describe(EvmTimelockReader.name, () => {
767
850
  it('should retrieve cancelled operation IDs from block explorer API', async () => {
768
851
  const cancelledIds = await reader.getCancelledOperationIds();
769
852
  expect(cancelledIds).to.be.instanceOf(Set);
853
+ expect([...cancelledIds]).to.deep.equal([operationIds[0]]);
770
854
  for (const id of cancelledIds) {
771
855
  expect(ZBytes32String.safeParse(id).success).to.be.true;
772
856
  }
@@ -776,7 +860,7 @@ describe(EvmTimelockReader.name, () => {
776
860
  it('should retrieve executed operation IDs from block explorer API', async () => {
777
861
  const executedIds = await reader.getExecutedOperationIds();
778
862
  // Should find some executed transactions on this timelock
779
- expect(executedIds.size).to.be.greaterThan(0);
863
+ expect([...executedIds]).to.deep.equal([operationIds[1]]);
780
864
  for (const id of executedIds) {
781
865
  expect(ZBytes32String.safeParse(id).success).to.be.true;
782
866
  }
@@ -785,6 +869,7 @@ describe(EvmTimelockReader.name, () => {
785
869
  describe(`${EvmTimelockReader.prototype.getScheduledExecutableTransactions.name}`, () => {
786
870
  it('should retrieve scheduled executable transactions from block explorer API', async () => {
787
871
  const executableTxs = await reader.getScheduledExecutableTransactions();
872
+ expect(Object.keys(executableTxs)).to.deep.equal([operationIds[2]]);
788
873
  for (const [txId, executableTx] of Object.entries(executableTxs)) {
789
874
  expect(executableTx.id).to.equal(txId);
790
875
  expect(ZBytes32String.safeParse(txId).success).to.be.true;
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTimelockReader.hardhat-test.js","sourceRoot":"","sources":["../../../src/timelock/evm/EvmTimelockReader.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmTimelockReader.hardhat-test.js","sourceRoot":"","sources":["../../../src/timelock/evm/EvmTimelockReader.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { errors as EthersError } from 'ethers';
2
- import { getNestedJsonRpcError } from '../../providers/SmartProvider/SmartProvider.js';
2
+ import { getNestedJsonRpcError } from '../../providers/SmartProvider/jsonRpcError.js';
3
3
  function asRecord(error) {
4
4
  if (typeof error !== 'object' || error === null)
5
5
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/timelock/evm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAQvF,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,wEAAwE;IACxE,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,2EAA2E;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAoC,CAAC;IAClE,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAE3D,OAAO,aAAa,IAAI,gBAAgB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/timelock/evm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAQtF,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,wEAAwE;IACxE,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,2EAA2E;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAoC,CAAC;IAClE,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAE3D,OAAO,aAAa,IAAI,gBAAgB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACpE,CAAC"}
@@ -51,6 +51,33 @@ export declare class EvmWarpRouteReader extends EvmRouterReader {
51
51
  getContractVerificationStatus(chain: ChainName, address: Address): Promise<Record<string, ContractVerificationStatus>>;
52
52
  getOwnerStatus(chain: ChainName, address: Address): Promise<Record<string, OwnerStatus>>;
53
53
  deriveWarpRouteVirtualConfig(chain: ChainName, address: Address): Promise<HypTokenRouterVirtualConfig>;
54
+ /**
55
+ * Fetches the bytecode of the contract's implementation.
56
+ * Read the EIP-1967 impl slot directly so UUPS proxies (which have
57
+ * an empty admin slot) are resolved correctly alongside TransparentProxy.
58
+ * EIP-1167 minimal proxies are resolved from their runtime code. A clone
59
+ * whose target is itself an EIP-1967 proxy or another clone returns the
60
+ * target's own code without resolving further, so the selector guard can
61
+ * read false for a selector the final implementation has.
62
+ *
63
+ * Returns '0x' when the address has no code (EOAs / bad addresses) so
64
+ * selector guards fall through to the probes, and undefined when the
65
+ * bytecode cannot be determined: a failed RPC read, or a beacon proxy whose
66
+ * implementation lives behind the beacon. Proxies that route through a
67
+ * diamond facet table or LSP17 extensions are not resolved; their own
68
+ * bytecode is returned, which does not contain the routed selectors.
69
+ */
70
+ private fetchImplementationBytecode;
71
+ private readonly implementationBytecodeCache;
72
+ private fetchImplementationBytecodeCached;
73
+ private implementationSelectorStatus;
74
+ /**
75
+ * Checks whether the implementation bytecode contains the selector.
76
+ * Returns undefined when the bytecode is empty/unreadable or is unresolved
77
+ * forwarding code, so callers proceed with the call and its normal error
78
+ * handling.
79
+ */
80
+ private implementationHasSelector;
54
81
  /**
55
82
  * Derives the token type for a given Warp Route address using specific methods
56
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"AAiCA,OAAO,EACL,OAAO,EAaR,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAE/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAO9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,OAAO,EAA2B,SAAS,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAIL,0BAA0B,EAE1B,wBAAwB,EAGxB,cAAc,EAEd,2BAA2B,EAK3B,WAAW,EACX,aAAa,EAEb,mBAAmB,EAKpB,MAAM,YAAY,CAAC;AASpB,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAanD,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAQnD,qBAAa,kBAAmB,SAAQ,eAAe;IAsBnD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAvBxC,SAAS,CAAC,QAAQ,CAAC,MAAM,oCAEtB;IACH,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAG7C;IAIJ,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAC7C,SAAS,EACT,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CACvD,CAAC;IACF,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,YACqB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,GAAE,MAA0C,EAC1E,gBAAgB,CAAC,EAAE,gBAAgB,EAoDpC;IAED;;;;;;OAMG;IACG,qBAAqB,CACzB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,wBAAwB,CAAC,CAsLnC;IAED;;;;;;;;OAQG;YACW,4BAA4B;IAkD1C,OAAO,CAAC,0BAA0B;IAgBrB,YAAY,CACvB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAc9B;IAED,OAAO,CAAC,yBAAyB;IAUpB,aAAa,CACxB,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,sBAAsB,CAAC,EAAE,8BAA8B,GACtD,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAmD5C;IAEK,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,uDAqDrE;IAEK,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,wCAiDtD;IAEK,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,2BAA2B,CAAC,CAYtC;IAED;;;;;OAKG;IACG,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CA2MnE;YAEa,iBAAiB;YAoCjB,oBAAoB;IAkC5B,iBAAiB,CACrB,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,mBAAmB,CAAC,CA0E9B;IAED;;;;;;OAMG;IACG,gBAAgB,CACpB,IAAI,EAAE,SAAS,EACf,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,cAAc,CAAC,CAuBzB;YAEa,0BAA0B;YAwB1B,iCAAiC;YAyBjC,kCAAkC;YAsElC,4CAA4C;YAuC5C,iCAAiC;YAiCjC,6CAA6C;YA6B7C,8BAA8B;YAuB9B,kCAAkC;YAYlC,mCAAmC;YAgBnC,yCAAyC;YAgBzC,6BAA6B;YAe7B,0BAA0B;YAuB1B,qBAAqB;YAmBrB,qBAAqB;YAsBrB,8BAA8B;YAyB9B,+BAA+B;YA+D/B,mCAAmC;YAqBnC,0CAA0C;IA+BxD;;OAEG;YACW,gCAAgC;IAmHxC,kBAAkB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAStE;IAED;;;;;;;OAOG;IACG,UAAU,CACd,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAgDtC;IAEK,mBAAmB,CAAC,OAAO,EAAE,OAAO,mBAEzC;IAEK,qBAAqB,CACzB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAgBhC;IAEK,mBAAmB,CACvB,gBAAgB,EAAE,OAAO,EACzB,iBAAiB,GAAE,MAAM,EAAO,GAC/B,OAAO,CAAC,cAAc,CAAC,CA0BzB;CACF"}
1
+ {"version":3,"file":"EvmWarpRouteReader.d.ts","sourceRoot":"","sources":["../../src/token/EvmWarpRouteReader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { expect } from 'chai';
2
2
  import hre from 'hardhat';
3
3
  import sinon from 'sinon';
4
+ import { ethers } from 'ethers';
4
5
  import { zeroAddress } from 'viem';
5
6
  import { CrossCollateralRouter__factory, ERC20Test__factory, ERC4626Test__factory, FiatTokenTest__factory, HypERC20__factory, ISafe__factory, Mailbox__factory, MockCircleMessageTransmitter__factory, MockCircleTokenMessenger__factory, MockEverclearAdapter__factory, MockWETH__factory, MovableCollateralRouter__factory, PackageVersioned__factory, ProxyAdmin__factory, TokenRouter__factory, TokenBridgeDepositAddress__factory, XERC20LockboxTest__factory, XERC20Test__factory, } from '@hyperlane-xyz/core';
6
7
  import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
@@ -1144,6 +1145,16 @@ describe('EvmWarpRouteReader', async () => {
1144
1145
  // to inject minimal bytecode that responds to the scale() selector.
1145
1146
  // The legacy path converts a single uint256 scale() return to { numerator: bigint, denominator: 1n }.
1146
1147
  describe('fetchScale', () => {
1148
+ // Returns the scale from any call; the trailing (unreachable) selector
1149
+ // makes the reader's bytecode selector check see a scale() getter.
1150
+ function legacyScaleBytecode(encodedScale) {
1151
+ const scaleSelector = new ethers.utils.Interface([
1152
+ 'function scale() view returns (uint256)',
1153
+ ])
1154
+ .getSighash('scale()')
1155
+ .slice(2);
1156
+ return `0x7f${encodedScale}60005260206000f3${scaleSelector}`;
1157
+ }
1147
1158
  it('should return undefined for contracts before scaling was introduced (< 6.0.0)', async () => {
1148
1159
  const config = {
1149
1160
  [chain]: {
@@ -1169,7 +1180,7 @@ describe('EvmWarpRouteReader', async () => {
1169
1180
  // Deploy a minimal contract that returns expectedScale for scale()
1170
1181
  // Bytecode: PUSH32 <value> PUSH1 0x00 MSTORE PUSH1 0x20 PUSH1 0x00 RETURN
1171
1182
  const encodedScale = expectedScale.toString(16).padStart(64, '0');
1172
- const runtimeBytecode = `0x7f${encodedScale}60005260206000f3`;
1183
+ const runtimeBytecode = legacyScaleBytecode(encodedScale);
1173
1184
  const mockAddress = '0x' + 'ab'.repeat(20);
1174
1185
  await hre.network.provider.send('hardhat_setCode', [
1175
1186
  mockAddress,
@@ -1185,6 +1196,20 @@ describe('EvmWarpRouteReader', async () => {
1185
1196
  });
1186
1197
  fetchPackageVersionStub.restore();
1187
1198
  });
1199
+ it('should return undefined when legacy scale() is missing on a >= 6.0.0 contract', async () => {
1200
+ // Bytecode: PUSH1 0x00 PUSH1 0x00 REVERT (empty revert data)
1201
+ const mockAddress = '0x' + 'ad'.repeat(20);
1202
+ await hre.network.provider.send('hardhat_setCode', [
1203
+ mockAddress,
1204
+ '0x60006000fd',
1205
+ ]);
1206
+ const fetchPackageVersionStub = sinon
1207
+ .stub(evmERC20WarpRouteReader, 'fetchPackageVersion')
1208
+ .resolves('8.0.0');
1209
+ const result = await evmERC20WarpRouteReader.fetchScale(mockAddress);
1210
+ expect(result).to.be.undefined;
1211
+ fetchPackageVersionStub.restore();
1212
+ });
1188
1213
  it('should read scaleNumerator/scaleDenominator for contracts >= 11.0.0', async () => {
1189
1214
  const scaleNumerator = 1;
1190
1215
  const scaleDenominator = 1000000000000;
@@ -1213,7 +1238,7 @@ describe('EvmWarpRouteReader', async () => {
1213
1238
  it('should read legacy scale() at the exact boundary version 6.0.0', async () => {
1214
1239
  const expectedScale = 500n;
1215
1240
  const encodedScale = expectedScale.toString(16).padStart(64, '0');
1216
- const runtimeBytecode = `0x7f${encodedScale}60005260206000f3`;
1241
+ const runtimeBytecode = legacyScaleBytecode(encodedScale);
1217
1242
  const mockAddress = '0x' + 'ac'.repeat(20);
1218
1243
  await hre.network.provider.send('hardhat_setCode', [
1219
1244
  mockAddress,
@@ -1261,7 +1286,7 @@ describe('EvmWarpRouteReader', async () => {
1261
1286
  it('should return undefined for legacy identity scale (scale() = 1)', async () => {
1262
1287
  const identityScale = 1n;
1263
1288
  const encodedScale = identityScale.toString(16).padStart(64, '0');
1264
- const runtimeBytecode = `0x7f${encodedScale}60005260206000f3`;
1289
+ const runtimeBytecode = legacyScaleBytecode(encodedScale);
1265
1290
  const mockAddress = '0x' + 'ad'.repeat(20);
1266
1291
  await hre.network.provider.send('hardhat_setCode', [
1267
1292
  mockAddress,