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