@hyperlane-xyz/sdk 44.0.2 → 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
@@ -722,6 +722,121 @@ describe('SmartProvider', () => {
722
722
  expect(e.cause).to.equal(emptyResponseError);
723
723
  expect(isMissingSelectorCallException(e)).to.equal(true);
724
724
  });
725
+ describe('when another provider timed out', () => {
726
+ const timeout = { status: ProviderStatus.Timeout };
727
+ const networkError = Object.assign(new Error('network error'), {
728
+ code: 'NETWORK_ERROR',
729
+ });
730
+ const emptyResponseError = new Error('Invalid response from provider');
731
+ const cases = [
732
+ {
733
+ name: 'keeps the empty-response error as the cause',
734
+ others: [emptyResponseError],
735
+ expectCause: 'other',
736
+ causeIndex: 0,
737
+ missingSelector: true,
738
+ },
739
+ {
740
+ name: 'keeps the timeout as the cause when it is the only error',
741
+ others: [],
742
+ expectCause: 'timeout',
743
+ causeIndex: 0,
744
+ missingSelector: false,
745
+ },
746
+ {
747
+ name: 'keeps the timeout as the cause for a generic error',
748
+ others: [new Error('generic')],
749
+ expectCause: 'timeout',
750
+ causeIndex: 0,
751
+ missingSelector: false,
752
+ },
753
+ {
754
+ name: 'keeps a network error as the cause and is not a missing selector',
755
+ others: [networkError],
756
+ expectCause: 'other',
757
+ causeIndex: 0,
758
+ missingSelector: false,
759
+ },
760
+ {
761
+ name: 'picks the empty-response error among several errors',
762
+ others: [new Error('generic'), emptyResponseError],
763
+ expectCause: 'other',
764
+ causeIndex: 1,
765
+ missingSelector: true,
766
+ },
767
+ ];
768
+ for (const c of cases) {
769
+ it(c.name, () => {
770
+ const CombinedError = provider.testGetCombinedProviderError([timeout, ...c.others], 'Test fallback message');
771
+ const e = new CombinedError();
772
+ expect(e.cause).to.equal(c.expectCause === 'timeout' ? timeout : c.others[c.causeIndex]);
773
+ expect(isMissingSelectorCallException(e)).to.equal(c.missingSelector);
774
+ });
775
+ }
776
+ });
777
+ describe('when a provider failed with a server error', () => {
778
+ const timeout = { status: ProviderStatus.Timeout };
779
+ const serverError = new ProviderError('connection refused', EthersError.SERVER_ERROR);
780
+ const emptyResponseError = new Error('Invalid response from provider');
781
+ const cases = [
782
+ {
783
+ name: 'keeps the empty-response error as the cause next to a server error',
784
+ errors: [emptyResponseError, serverError],
785
+ cause: emptyResponseError,
786
+ missingSelector: true,
787
+ },
788
+ {
789
+ name: 'keeps the empty-response error as the cause regardless of order',
790
+ errors: [serverError, emptyResponseError],
791
+ cause: emptyResponseError,
792
+ missingSelector: true,
793
+ },
794
+ {
795
+ name: 'keeps the empty-response error as the cause next to a timeout and a server error',
796
+ errors: [timeout, emptyResponseError, serverError],
797
+ cause: emptyResponseError,
798
+ missingSelector: true,
799
+ },
800
+ {
801
+ name: 'keeps the server error as the cause when it is the only error',
802
+ errors: [serverError],
803
+ cause: serverError,
804
+ missingSelector: false,
805
+ },
806
+ {
807
+ name: 'keeps the server error as the cause next to a timeout',
808
+ errors: [timeout, serverError],
809
+ cause: serverError,
810
+ missingSelector: false,
811
+ },
812
+ ];
813
+ for (const c of cases) {
814
+ it(c.name, () => {
815
+ const CombinedError = provider.testGetCombinedProviderError(c.errors, 'Test fallback message');
816
+ const e = new CombinedError();
817
+ expect(e.message).to.equal(getSmartProviderErrorMessage(EthersError.SERVER_ERROR));
818
+ expect(e.cause).to.equal(c.cause);
819
+ expect(isMissingSelectorCallException(e)).to.equal(c.missingSelector);
820
+ });
821
+ }
822
+ });
823
+ describe('when a provider returned revert data alongside an empty response', () => {
824
+ const emptyResponseError = new Error('Invalid response from provider');
825
+ const revertWithData = new ProviderError('execution reverted', EthersError.CALL_EXCEPTION, '0x08c379a0', { jsonRpcErrorCode: 3 });
826
+ const orderings = [
827
+ { name: 'revert first', errors: [revertWithData, emptyResponseError] },
828
+ { name: 'empty first', errors: [emptyResponseError, revertWithData] },
829
+ ];
830
+ for (const c of orderings) {
831
+ it(`keeps the revert as the cause with ${c.name}`, () => {
832
+ const CombinedError = provider.testGetCombinedProviderError(c.errors, 'Test fallback message');
833
+ const e = new CombinedError();
834
+ expect(e).to.be.instanceOf(BlockchainError);
835
+ expect(e.cause).to.equal(revertWithData);
836
+ expect(isMissingSelectorCallException(e)).to.equal(false);
837
+ });
838
+ }
839
+ });
725
840
  it('treats CALL_EXCEPTION with JSON-RPC error code 3 as permanent (BlockchainError)', () => {
726
841
  // JSON-RPC error code 3 definitively indicates execution revert (EIP-1474)
727
842
  // Even without revert data, this is a real contract revert
@@ -813,6 +928,50 @@ describe('SmartProvider', () => {
813
928
  expect(provider2.called).to.be.true;
814
929
  }
815
930
  });
931
+ const emptyResponseError = new Error('Invalid response from provider');
932
+ const lateServerError = new ProviderError('connection refused', EthersError.SERVER_ERROR);
933
+ const lateRevertWithData = new ProviderError('execution reverted', EthersError.CALL_EXCEPTION, '0x08c379a0', { jsonRpcErrorCode: 3 });
934
+ const lateErrorCases = [
935
+ {
936
+ name: 'a late revert with data and an earlier late empty response',
937
+ firstError: lateRevertWithData,
938
+ otherError: emptyResponseError,
939
+ missingSelector: false,
940
+ },
941
+ {
942
+ name: 'a late empty response and an earlier late server error',
943
+ firstError: emptyResponseError,
944
+ otherError: lateServerError,
945
+ missingSelector: true,
946
+ },
947
+ {
948
+ name: 'a late server error and an earlier late empty response',
949
+ firstError: lateServerError,
950
+ otherError: emptyResponseError,
951
+ missingSelector: true,
952
+ },
953
+ {
954
+ name: 'two late server errors',
955
+ firstError: lateServerError,
956
+ otherError: new ProviderError('connection refused', EthersError.SERVER_ERROR),
957
+ missingSelector: false,
958
+ },
959
+ ];
960
+ for (const c of lateErrorCases) {
961
+ it(`classifies ${c.name} independently of arrival order (missing selector=${c.missingSelector})`, async () => {
962
+ // Both providers miss the stagger window; the second replies first
963
+ const provider1 = MockProvider.error(c.firstError, 300);
964
+ const provider2 = MockProvider.error(c.otherError, 150);
965
+ const provider = new TestableSmartProvider([provider1, provider2]);
966
+ try {
967
+ await provider.simplePerform('getBlockNumber', 1);
968
+ expect.fail('Should have thrown an error');
969
+ }
970
+ catch (e) {
971
+ expect(isMissingSelectorCallException(e)).to.equal(c.missingSelector);
972
+ }
973
+ });
974
+ }
816
975
  it('blockchain error with revert data stops trying additional providers immediately', async () => {
817
976
  const blockchainError = new ProviderError('execution reverted', EthersError.CALL_EXCEPTION, '0x08c379a0');
818
977
  const provider1 = MockProvider.error(blockchainError);
@@ -1 +1 @@
1
- {"version":3,"file":"SmartProvider.test.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SmartProvider.test.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/SmartProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function getNestedJsonRpcError(error: unknown): {
2
+ code?: number | string;
3
+ message?: string;
4
+ data?: string;
5
+ };
6
+ export declare function isCallExceptionWithTransientRpcError(error: unknown): boolean;
7
+ //# sourceMappingURL=jsonRpcError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonRpcError.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/jsonRpcError.ts"],"names":[],"mappings":"AA+CA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAkBA;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO5E"}
@@ -0,0 +1,67 @@
1
+ import { errors as EthersError } from 'ethers';
2
+ function isRecord(value) {
3
+ return typeof value === 'object' && value !== null;
4
+ }
5
+ function getRecord(value) {
6
+ return isRecord(value) ? value : undefined;
7
+ }
8
+ function getJsonRpcErrorCode(value) {
9
+ if (!isRecord(value))
10
+ return undefined;
11
+ const code = value.code;
12
+ return typeof code === 'number' || typeof code === 'string'
13
+ ? code
14
+ : undefined;
15
+ }
16
+ function getJsonRpcErrorMessage(value) {
17
+ if (!isRecord(value))
18
+ return undefined;
19
+ return typeof value.message === 'string' ? value.message : undefined;
20
+ }
21
+ function getJsonRpcErrorData(value) {
22
+ if (!isRecord(value))
23
+ return undefined;
24
+ return typeof value.data === 'string' ? value.data : undefined;
25
+ }
26
+ function parseJsonRpcErrorBody(body) {
27
+ if (typeof body !== 'string')
28
+ return {};
29
+ try {
30
+ const parsed = getRecord(JSON.parse(body));
31
+ const error = getRecord(parsed?.error);
32
+ return {
33
+ code: getJsonRpcErrorCode(error),
34
+ message: getJsonRpcErrorMessage(error),
35
+ data: getJsonRpcErrorData(error),
36
+ };
37
+ }
38
+ catch {
39
+ return {};
40
+ }
41
+ }
42
+ export function getNestedJsonRpcError(error) {
43
+ const nested = getRecord(getRecord(error)?.error);
44
+ const nestedError = getRecord(nested?.error);
45
+ const nestedBody = parseJsonRpcErrorBody(nested?.body);
46
+ return {
47
+ code: getJsonRpcErrorCode(nestedError) ??
48
+ getJsonRpcErrorCode(nested) ??
49
+ nestedBody.code,
50
+ message: getJsonRpcErrorMessage(nestedError) ??
51
+ getJsonRpcErrorMessage(nested) ??
52
+ nestedBody.message,
53
+ data: getJsonRpcErrorData(nestedError) ??
54
+ getJsonRpcErrorData(nested) ??
55
+ nestedBody.data,
56
+ };
57
+ }
58
+ export function isCallExceptionWithTransientRpcError(error) {
59
+ const record = getRecord(error);
60
+ if (record?.code !== EthersError.CALL_EXCEPTION)
61
+ return false;
62
+ const hasRevertData = !!record.data && record.data !== '0x';
63
+ const nestedError = record.error;
64
+ const jsonRpcErrorCode = getNestedJsonRpcError(error).code;
65
+ return !!nestedError && !hasRevertData && jsonRpcErrorCode !== 3;
66
+ }
67
+ //# sourceMappingURL=jsonRpcError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonRpcError.js","sourceRoot":"","sources":["../../../src/providers/SmartProvider/jsonRpcError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAa;IAK1C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC;YAChC,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC;YACtC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC;SACjC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAKlD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO;QACL,IAAI,EACF,mBAAmB,CAAC,WAAW,CAAC;YAChC,mBAAmB,CAAC,MAAM,CAAC;YAC3B,UAAU,CAAC,IAAI;QACjB,OAAO,EACL,sBAAsB,CAAC,WAAW,CAAC;YACnC,sBAAsB,CAAC,MAAM,CAAC;YAC9B,UAAU,CAAC,OAAO;QACpB,IAAI,EACF,mBAAmB,CAAC,WAAW,CAAC;YAChC,mBAAmB,CAAC,MAAM,CAAC;YAC3B,UAAU,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAc;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IACjC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,WAAW,IAAI,CAAC,aAAa,IAAI,gBAAgB,KAAK,CAAC,CAAC;AACnE,CAAC"}
@@ -32,6 +32,7 @@ export interface ProviderSuccessResult extends ProviderPerformResultBase {
32
32
  export interface ProviderErrorResult extends ProviderPerformResultBase {
33
33
  status: ProviderStatus.Error;
34
34
  error: unknown;
35
+ otherErrors?: unknown[];
35
36
  }
36
37
  export interface ProviderTimeoutResult extends ProviderPerformResultBase {
37
38
  status: ProviderStatus.Timeout;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG;IACjD,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,qBAAqB,GACtB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GACpE,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,GAAG;IAC7C,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEP,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,GAChB,0BAA0B,GAC1B,qBAAqB,CAAC;AAE1B,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAC9D,aAAa,EACb,SAAS,CACV;IACC,OAAO,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;CAC7C;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAEhE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/SmartProvider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG;IACjD,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;CACnC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,qBAAqB,GACtB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GACpE,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,GAAG;IAC7C,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEP,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,GAChB,0BAA0B,GAC1B,qBAAqB,CAAC;AAE1B,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAC9D,aAAa,EACb,SAAS,CACV;IACC,OAAO,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;CAC7C;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IAGf,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAEhE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
@@ -3,6 +3,5 @@ import type { EthersV5Provider, GnosisTxBuilderProvider } from '../ProviderType.
3
3
  import type { ProviderBuilderFn } from './types.js';
4
4
  export declare const defaultEthersV5ProviderBuilder: ProviderBuilderFn<EthersV5Provider>;
5
5
  export declare const defaultGnosisTxBuilderProviderBuilder: ProviderBuilderFn<GnosisTxBuilderProvider>;
6
- export declare function defaultFuelProviderBuilder(metadata: ChainMetadata): EthersV5Provider;
7
6
  export declare function defaultProviderBuilder(metadata: ChainMetadata): EthersV5Provider['provider'];
8
7
  //# sourceMappingURL=ethersV5.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ethersV5.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAC5D,gBAAgB,CASjB,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CACnE,uBAAuB,CAIvB,CAAC;AAEH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAGlB;AAGD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAAC,UAAU,CAAC,CAE9B"}
1
+ {"version":3,"file":"ethersV5.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAYpD,eAAO,MAAM,8BAA8B,EAAE,iBAAiB,CAC5D,gBAAgB,CA4BjB,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,iBAAiB,CACnE,uBAAuB,CAIvB,CAAC;AAGH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CAAC,UAAU,CAAC,CAE9B"}
@@ -4,19 +4,33 @@ const DEFAULT_RETRY_OPTIONS = {
4
4
  maxRetries: 3,
5
5
  baseRetryDelayMs: 250,
6
6
  };
7
+ const LOCAL_POLLING_INTERVAL_MS = 100;
8
+ const DEFAULT_POLLING_INTERVAL_MS = 4000;
9
+ const LOOPBACK_HOSTS = new Set(['localhost', '[::1]']);
10
+ const IPV4_LOOPBACK_HOST = /^127(?:\.\d{1,3}){3}$/;
7
11
  export const defaultEthersV5ProviderBuilder = (metadata, retryOverride) => {
8
12
  const provider = new HyperlaneSmartProvider(metadata.chainId, metadata.rpcUrls, undefined, retryOverride || DEFAULT_RETRY_OPTIONS);
13
+ // Local dev chains mine immediately. Configure the shared builder so CLI
14
+ // subprocesses also avoid ethers' default four-second confirmation polling.
15
+ if (metadata.rpcUrls.length > 0 &&
16
+ metadata.rpcUrls.every(({ http }) => {
17
+ // URL normalizes and validates IPv4 addresses before this check.
18
+ const { hostname } = new URL(http);
19
+ return LOOPBACK_HOSTS.has(hostname) || IPV4_LOOPBACK_HOST.test(hostname);
20
+ })) {
21
+ provider.pollingInterval = LOCAL_POLLING_INTERVAL_MS;
22
+ }
23
+ else if (metadata.blocks?.estimateBlockTime) {
24
+ // Follow the estimated block cadence, capped at ethers' default interval.
25
+ // Ethers requires a positive integer number of milliseconds.
26
+ provider.pollingInterval = Math.min(DEFAULT_POLLING_INTERVAL_MS, Math.max(1, Math.round(metadata.blocks.estimateBlockTime * 1000)));
27
+ }
9
28
  return { type: ProviderType.EthersV5, provider };
10
29
  };
11
30
  export const defaultGnosisTxBuilderProviderBuilder = (metadata, retryOverride) => ({
12
31
  type: ProviderType.GnosisTxBuilder,
13
32
  provider: defaultEthersV5ProviderBuilder(metadata, retryOverride).provider,
14
33
  });
15
- export function defaultFuelProviderBuilder(metadata) {
16
- if (!metadata.rpcUrls.length)
17
- throw new Error('No RPC URLs provided');
18
- throw new Error('TODO fuel support');
19
- }
20
34
  // Kept for backwards compatibility
21
35
  export function defaultProviderBuilder(metadata) {
22
36
  return defaultEthersV5ProviderBuilder(metadata).provider;
@@ -1 +1 @@
1
- {"version":3,"file":"ethersV5.js","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK3E,MAAM,qBAAqB,GAAyB;IAClD,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAEvC,CAAC,QAAuB,EAAE,aAAoC,EAAE,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,OAAO,EAChB,SAAS,EACT,aAAa,IAAI,qBAAqB,CACvC,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAE9C,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC,eAAe;IAClC,QAAQ,EAAE,8BAA8B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ;CAC3E,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B,CACxC,QAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,sBAAsB,CACpC,QAAuB;IAEvB,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"ethersV5.js","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK3E,MAAM,qBAAqB,GAAyB;IAClD,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,8BAA8B,GAEvC,CAAC,QAAuB,EAAE,aAAoC,EAAE,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,OAAO,EAChB,SAAS,EACT,aAAa,IAAI,qBAAqB,CACvC,CAAC;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,IACE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAClC,iEAAiE;YACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3E,CAAC,CAAC,EACF,CAAC;QACD,QAAQ,CAAC,eAAe,GAAG,yBAAyB,CAAC;IACvD,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC9C,0EAA0E;QAC1E,6DAA6D;QAC7D,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CACjC,2BAA2B,EAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAE9C,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC,eAAe;IAClC,QAAQ,EAAE,8BAA8B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ;CAC3E,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,UAAU,sBAAsB,CACpC,QAAuB;IAEvB,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ethersV5.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethersV5.test.d.ts","sourceRoot":"","sources":["../../../src/providers/builders/ethersV5.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { expect } from 'chai';
2
+ import { providers } from 'ethers';
3
+ import { assert, ProtocolType } from '@hyperlane-xyz/utils';
4
+ import { defaultEthersV5ProviderBuilder, defaultProviderBuilder, } from './ethersV5.js';
5
+ function metadata(urls) {
6
+ return {
7
+ name: 'local',
8
+ chainId: 31337,
9
+ domainId: 31337,
10
+ protocol: ProtocolType.Ethereum,
11
+ rpcUrls: urls.map((http) => ({ http })),
12
+ };
13
+ }
14
+ function pollingInterval(provider) {
15
+ assert(provider instanceof providers.BaseProvider, 'Expected ethers BaseProvider');
16
+ return provider.pollingInterval;
17
+ }
18
+ describe('ethers v5 provider builder polling', () => {
19
+ for (const [blockTime, expectedInterval] of [
20
+ [0.0001, 1],
21
+ [0.1, 100],
22
+ [0.25, 250],
23
+ [0.45, 450],
24
+ [2, 2000],
25
+ [13, 4000],
26
+ [0, 4000],
27
+ ]) {
28
+ it(`bounds remote polling for a ${blockTime}s block time`, () => {
29
+ const config = metadata(['https://rpc.example.com']);
30
+ config.blocks = { confirmations: 1, estimateBlockTime: blockTime };
31
+ expect(pollingInterval(defaultProviderBuilder(config))).to.equal(expectedInterval);
32
+ });
33
+ }
34
+ it('uses remote bounds for mixed RPCs with a block-time estimate', () => {
35
+ const config = metadata([
36
+ 'http://localhost:8545',
37
+ 'https://rpc.example.com',
38
+ ]);
39
+ config.blocks = { confirmations: 1, estimateBlockTime: 0.25 };
40
+ expect(pollingInterval(defaultProviderBuilder(config))).to.equal(250);
41
+ });
42
+ it('prioritizes loopback polling over the block-time estimate', () => {
43
+ const config = metadata(['http://localhost:8545']);
44
+ config.blocks = { confirmations: 1, estimateBlockTime: 13 };
45
+ expect(pollingInterval(defaultProviderBuilder(config))).to.equal(100);
46
+ });
47
+ for (const urls of [
48
+ ['http://localhost:8545'],
49
+ ['http://127.0.0.1:8596'],
50
+ ['http://127.0.0.2:8545'],
51
+ ['http://127.0.0.0:8545'],
52
+ ['http://127.255.255.255:8545'],
53
+ ['http://[::1]:8545'],
54
+ ['http://localhost:8545', 'http://127.0.0.1:8596'],
55
+ ]) {
56
+ it(`polls loopback RPCs quickly: ${urls.join(', ')}`, () => {
57
+ // MultiProtocolProvider and MultiProvider use these respective builders.
58
+ expect(pollingInterval(defaultEthersV5ProviderBuilder(metadata(urls)).provider)).to.equal(100);
59
+ expect(pollingInterval(defaultProviderBuilder(metadata(urls)))).to.equal(100);
60
+ });
61
+ }
62
+ for (const urls of [
63
+ ['https://rpc.example.com'],
64
+ ['http://localhost:8545', 'https://rpc.example.com'],
65
+ ['https://localhost.example.com'],
66
+ ['http://127.0.0.2.example.com:8545'],
67
+ ['http://126.255.255.255:8545'],
68
+ ['http://128.0.0.0:8545'],
69
+ ['http://127.0.0.2:8545', 'https://rpc.example.com'],
70
+ ['http://192.168.1.1:8545'],
71
+ ]) {
72
+ it(`preserves default polling with remote RPCs: ${urls.join(', ')}`, () => {
73
+ expect(pollingInterval(defaultEthersV5ProviderBuilder(metadata(urls)).provider)).to.equal(4000);
74
+ });
75
+ }
76
+ });
77
+ //# sourceMappingURL=ethersV5.test.js.map