@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.
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +114 -718
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/consts/testChains.d.ts.map +1 -1
- package/dist/consts/testChains.js +11 -6
- package/dist/consts/testChains.js.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.d.ts +6 -0
- package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.js +20 -0
- package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.test.js +17 -0
- package/dist/core/adapters/SealevelCoreAdapter.test.js.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +14 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/types.test.js +98 -1
- package/dist/core/types.test.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -0
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +6 -0
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/warp.d.ts.map +1 -1
- package/dist/deploy/warp.js +26 -41
- package/dist/deploy/warp.js.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts +3 -2
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.js +3 -2
- package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.js +5 -1
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/EvmIsmModule.test.js +109 -0
- package/dist/ism/EvmIsmModule.test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +26 -6
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +60 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +165 -34
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.test.js +33 -6
- package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -1
- package/dist/ism/types.d.ts +18 -2
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +43 -3
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/types.test.js +232 -56
- package/dist/ism/types.test.js.map +1 -1
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +13 -0
- package/dist/ism/utils.js.map +1 -1
- package/dist/ism/utils.test.js +43 -1
- package/dist/ism/utils.test.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts +1 -0
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +1 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.test.js +14 -1
- package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
- package/dist/metadata/ChainMetadataResolver.d.ts +1 -0
- package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataResolver.js +1 -0
- package/dist/metadata/ChainMetadataResolver.js.map +1 -1
- package/dist/metadata/ChainMetadataResolver.test.js +4 -0
- package/dist/metadata/ChainMetadataResolver.test.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +209 -93
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +106 -13
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/agentConfig.test.js +277 -25
- package/dist/metadata/agentConfig.test.js.map +1 -1
- package/dist/metadata/chainMetadata.test.js +25 -0
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +36 -0
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +26 -0
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/providers/SeismicSigner.d.ts +4 -12
- package/dist/providers/SeismicSigner.d.ts.map +1 -1
- package/dist/providers/SeismicSigner.js +84 -35
- package/dist/providers/SeismicSigner.js.map +1 -1
- package/dist/providers/SeismicSigner.test.d.ts +2 -0
- package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
- package/dist/providers/SeismicSigner.test.js +160 -0
- package/dist/providers/SeismicSigner.test.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.d.ts +0 -4
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.js +20 -61
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.test.js +159 -0
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
- package/dist/providers/SmartProvider/jsonRpcError.d.ts +7 -0
- package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
- package/dist/providers/SmartProvider/jsonRpcError.js +67 -0
- package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
- package/dist/providers/SmartProvider/types.d.ts +1 -0
- package/dist/providers/SmartProvider/types.d.ts.map +1 -1
- package/dist/providers/builders/ethersV5.d.ts +0 -1
- package/dist/providers/builders/ethersV5.d.ts.map +1 -1
- package/dist/providers/builders/ethersV5.js +19 -5
- package/dist/providers/builders/ethersV5.js.map +1 -1
- package/dist/providers/builders/ethersV5.test.d.ts +2 -0
- package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
- package/dist/providers/builders/ethersV5.test.js +77 -0
- package/dist/providers/builders/ethersV5.test.js.map +1 -0
- package/dist/providers/builders/radix.browser.d.ts +1 -0
- package/dist/providers/builders/radix.browser.d.ts.map +1 -1
- package/dist/providers/builders/radix.browser.js +1 -0
- package/dist/providers/builders/radix.browser.js.map +1 -1
- package/dist/providers/builders/radix.d.ts.map +1 -1
- package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
- package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
- package/dist/providers/builders/radix.gateway.test.js +39 -0
- package/dist/providers/builders/radix.gateway.test.js.map +1 -0
- package/dist/providers/builders/radix.js +1 -0
- package/dist/providers/builders/radix.js.map +1 -1
- package/dist/providers/builders/radix.test.js +1 -0
- package/dist/providers/builders/radix.test.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts +1 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +1 -1
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +60 -8
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
- package/dist/test/errors.d.ts +21 -0
- package/dist/test/errors.d.ts.map +1 -1
- package/dist/test/errors.js +25 -0
- package/dist/test/errors.js.map +1 -1
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +92 -7
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
- package/dist/timelock/evm/errors.js +1 -1
- package/dist/timelock/evm/errors.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.d.ts +26 -0
- package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmWarpRouteReader.hardhat-test.js +28 -3
- package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.js +137 -41
- package/dist/token/EvmWarpRouteReader.js.map +1 -1
- package/dist/token/EvmWarpRouteReader.test.js +381 -3
- package/dist/token/EvmWarpRouteReader.test.js.map +1 -1
- package/dist/token/types.d.ts +1 -1
- package/dist/token/warpCheck.d.ts +1 -0
- package/dist/token/warpCheck.d.ts.map +1 -1
- package/dist/token/warpCheck.js +25 -2
- package/dist/token/warpCheck.js.map +1 -1
- package/dist/token/warpCheck.test.js +119 -0
- package/dist/token/warpCheck.test.js.map +1 -1
- package/dist/utils/contract.d.ts +32 -0
- package/dist/utils/contract.d.ts.map +1 -1
- package/dist/utils/contract.js +90 -3
- package/dist/utils/contract.js.map +1 -1
- package/dist/utils/contract.test.js +402 -2
- package/dist/utils/contract.test.js.map +1 -1
- package/dist/utils/contract.transport.test.d.ts +2 -0
- package/dist/utils/contract.transport.test.d.ts.map +1 -0
- package/dist/utils/contract.transport.test.js +145 -0
- package/dist/utils/contract.transport.test.js.map +1 -0
- package/dist/utils/ism.d.ts +12 -6
- package/dist/utils/ism.d.ts.map +1 -1
- package/dist/utils/ism.js +92 -41
- package/dist/utils/ism.js.map +1 -1
- package/dist/utils/ism.test.js +75 -2
- package/dist/utils/ism.test.js.map +1 -1
- 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 @@
|
|
|
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":"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"}
|
|
@@ -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;
|
|
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;
|
|
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,
|
|
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 @@
|
|
|
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
|