@hyperlane-xyz/sdk 35.1.0 → 36.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/block-explorer/utils.d.ts +8 -0
- package/dist/block-explorer/utils.d.ts.map +1 -1
- package/dist/block-explorer/utils.js +16 -3
- package/dist/block-explorer/utils.js.map +1 -1
- package/dist/ccip/consts.d.ts.map +1 -1
- package/dist/ccip/consts.js +0 -40
- package/dist/ccip/consts.js.map +1 -1
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +39 -241
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/contracts/contracts.d.ts.map +1 -1
- package/dist/contracts/contracts.js +6 -1
- package/dist/contracts/contracts.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +9 -0
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.hardhat-test.js +23 -0
- package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.js +8 -5
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/core/EvmCoreReader.d.ts.map +1 -1
- package/dist/core/EvmCoreReader.js +34 -15
- package/dist/core/EvmCoreReader.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +34 -13
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +1 -1
- package/dist/core/contracts.d.ts +5 -2
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +4 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/types.d.ts +1092 -627
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +30 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/types.test.d.ts +2 -0
- package/dist/core/types.test.d.ts.map +1 -0
- package/dist/core/types.test.js +50 -0
- package/dist/core/types.test.js.map +1 -0
- package/dist/deploy/HyperlaneDeployer.d.ts +1 -0
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +17 -8
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +9 -5
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/warp.d.ts.map +1 -1
- package/dist/deploy/warp.js +5 -0
- package/dist/deploy/warp.js.map +1 -1
- package/dist/fee/EvmTokenFeeDeployer.d.ts +1 -0
- package/dist/fee/EvmTokenFeeDeployer.d.ts.map +1 -1
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js +40 -0
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js.map +1 -1
- package/dist/fee/EvmTokenFeeDeployer.js +8 -0
- package/dist/fee/EvmTokenFeeDeployer.js.map +1 -1
- package/dist/fee/EvmTokenFeeReader.d.ts.map +1 -1
- package/dist/fee/EvmTokenFeeReader.js +3 -13
- package/dist/fee/EvmTokenFeeReader.js.map +1 -1
- package/dist/fee/feeConfigMapping.d.ts +9 -0
- package/dist/fee/feeConfigMapping.d.ts.map +1 -0
- package/dist/fee/feeConfigMapping.js +86 -0
- package/dist/fee/feeConfigMapping.js.map +1 -0
- package/dist/fee/feeConfigMapping.test.d.ts +2 -0
- package/dist/fee/feeConfigMapping.test.d.ts.map +1 -0
- package/dist/fee/feeConfigMapping.test.js +204 -0
- package/dist/fee/feeConfigMapping.test.js.map +1 -0
- package/dist/fee/types.d.ts +185 -113
- package/dist/fee/types.d.ts.map +1 -1
- package/dist/fee/types.js +13 -11
- package/dist/fee/types.js.map +1 -1
- package/dist/fee/utils.d.ts +1 -32
- package/dist/fee/utils.d.ts.map +1 -1
- package/dist/fee/utils.js +1 -47
- package/dist/fee/utils.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +1 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +43 -1
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +17 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +124 -4
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +33 -2
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
- package/dist/gas/types.d.ts +17 -3
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +19 -0
- package/dist/gas/types.js.map +1 -1
- package/dist/gas/utils.d.ts +5 -1
- package/dist/gas/utils.d.ts.map +1 -1
- package/dist/gas/utils.js +92 -31
- package/dist/gas/utils.js.map +1 -1
- package/dist/gas/utils.test.d.ts +2 -0
- package/dist/gas/utils.test.d.ts.map +1 -0
- package/dist/gas/utils.test.js +132 -0
- package/dist/gas/utils.test.js.map +1 -0
- package/dist/hook/EvmHookModule.d.ts +21 -1
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.hardhat-test.js +125 -2
- package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
- package/dist/hook/EvmHookModule.js +191 -17
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/hook/EvmHookReader.d.ts +4 -4
- package/dist/hook/EvmHookReader.d.ts.map +1 -1
- package/dist/hook/EvmHookReader.js +67 -16
- package/dist/hook/EvmHookReader.js.map +1 -1
- package/dist/hook/EvmHookReader.test.js +128 -2
- package/dist/hook/EvmHookReader.test.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +10 -5
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/types.d.ts +338 -264
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +30 -6
- package/dist/hook/types.js.map +1 -1
- package/dist/hook/types.test.d.ts +2 -0
- package/dist/hook/types.test.d.ts.map +1 -0
- package/dist/hook/types.test.js +184 -0
- package/dist/hook/types.test.js.map +1 -0
- package/dist/hook/utils.d.ts +1 -0
- package/dist/hook/utils.d.ts.map +1 -1
- package/dist/hook/utils.js +16 -10
- package/dist/hook/utils.js.map +1 -1
- package/dist/ica/types.d.ts +380 -188
- package/dist/ica/types.d.ts.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts +7 -1
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js +4 -0
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
- package/dist/ism/EvmIsmModule.js +152 -4
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/EvmIsmReader.d.ts.map +1 -1
- package/dist/ism/EvmIsmReader.js +1 -2
- package/dist/ism/EvmIsmReader.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +17 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +35 -9
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/types.d.ts +88 -3
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +4 -0
- package/dist/ism/types.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +2 -2
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.test.js +71 -0
- package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +937 -168
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +68 -1
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/agentConfig.test.js +67 -1
- package/dist/metadata/agentConfig.test.js.map +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.js +10 -0
- package/dist/middleware/account/InterchainAccount.js.map +1 -1
- package/dist/middleware/account/InterchainAccount.test.js +26 -0
- package/dist/middleware/account/InterchainAccount.test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +6 -0
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +28 -2
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/SeismicSigner.d.ts +54 -0
- package/dist/providers/SeismicSigner.d.ts.map +1 -0
- package/dist/providers/SeismicSigner.js +89 -0
- package/dist/providers/SeismicSigner.js.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +8 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +69 -23
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.test.js +34 -5
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
- package/dist/providers/builders/starknet.d.ts.map +1 -1
- package/dist/providers/builders/starknet.js +6 -1
- package/dist/providers/builders/starknet.js.map +1 -1
- package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/IcaTxSubmitter.js +23 -8
- package/dist/providers/transactions/submitter/IcaTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js +45 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts +6 -0
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/types.js +26 -5
- package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -1
- package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/submitterBuilderGetter.js +11 -1
- package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -1
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js +38 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js.map +1 -0
- package/dist/router/types.d.ts +481 -236
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +1 -0
- package/dist/router/types.js.map +1 -1
- package/dist/router/types.test.d.ts +2 -0
- package/dist/router/types.test.d.ts.map +1 -0
- package/dist/router/types.test.js +32 -0
- package/dist/router/types.test.js.map +1 -0
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +3 -0
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/EvmWarpModule.d.ts +18 -1
- package/dist/token/EvmWarpModule.d.ts.map +1 -1
- package/dist/token/EvmWarpModule.hardhat-test.js +30 -0
- package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
- package/dist/token/EvmWarpModule.js +67 -5
- package/dist/token/EvmWarpModule.js.map +1 -1
- package/dist/token/EvmWarpModule.test.d.ts +2 -0
- package/dist/token/EvmWarpModule.test.d.ts.map +1 -0
- package/dist/token/EvmWarpModule.test.js +77 -0
- package/dist/token/EvmWarpModule.test.js.map +1 -0
- package/dist/token/EvmWarpRouteReader.d.ts +1 -0
- package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmWarpRouteReader.js +17 -0
- package/dist/token/EvmWarpRouteReader.js.map +1 -1
- package/dist/token/EvmXERC20Module.d.ts +31 -26
- package/dist/token/EvmXERC20Module.d.ts.map +1 -1
- package/dist/token/EvmXERC20Module.js +46 -3
- package/dist/token/EvmXERC20Module.js.map +1 -1
- package/dist/token/EvmXERC20Module.test.js +162 -1
- package/dist/token/EvmXERC20Module.test.js.map +1 -1
- package/dist/token/EvmXERC20Reader.d.ts +17 -0
- package/dist/token/EvmXERC20Reader.d.ts.map +1 -1
- package/dist/token/EvmXERC20Reader.js +37 -1
- package/dist/token/EvmXERC20Reader.js.map +1 -1
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts +2 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.js +96 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.js.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +25 -12
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/configUtils.test.js.map +1 -1
- package/dist/token/deploy.d.ts +1 -0
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +13 -0
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/tokenMetadataUtils.d.ts.map +1 -1
- package/dist/token/tokenMetadataUtils.js +1 -0
- package/dist/token/tokenMetadataUtils.js.map +1 -1
- package/dist/token/types.d.ts +1373 -699
- package/dist/token/types.d.ts.map +1 -1
- package/dist/token/types.test.js +11 -0
- package/dist/token/types.test.js.map +1 -1
- package/dist/token/xerc20.d.ts.map +1 -1
- package/dist/token/xerc20.js +10 -2
- package/dist/token/xerc20.js.map +1 -1
- package/dist/token/xerc20.test.d.ts +2 -0
- package/dist/token/xerc20.test.d.ts.map +1 -0
- package/dist/token/xerc20.test.js +143 -0
- package/dist/token/xerc20.test.js.map +1 -0
- package/dist/utils/contract.d.ts +6 -0
- package/dist/utils/contract.d.ts.map +1 -1
- package/dist/utils/contract.js +11 -0
- package/dist/utils/contract.js.map +1 -1
- package/dist/utils/contract.test.js +2 -1
- package/dist/utils/contract.test.js.map +1 -1
- package/dist/utils/gas.d.ts +1 -0
- package/dist/utils/gas.d.ts.map +1 -1
- package/dist/utils/gas.js +1 -0
- package/dist/utils/gas.js.map +1 -1
- package/dist/utils/gnosisSafe.d.ts +4 -1
- package/dist/utils/gnosisSafe.d.ts.map +1 -1
- package/dist/utils/gnosisSafe.js +20 -7
- package/dist/utils/gnosisSafe.js.map +1 -1
- package/dist/utils/gnosisSafe.test.js +44 -1
- package/dist/utils/gnosisSafe.test.js.map +1 -1
- package/dist/utils/ism.d.ts.map +1 -1
- package/dist/utils/ism.js +4 -2
- package/dist/utils/ism.js.map +1 -1
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +4 -3
- package/dist/warp/WarpCore.js.map +1 -1
- package/package.json +14 -14
package/dist/fee/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fee/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fee/types.ts"],"names":[],"mappings":"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"}
|
package/dist/fee/types.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY } from '@hyperlane-xyz/provider-sdk/warp';
|
|
2
3
|
import { ZBigNumberish, ZBps, ZChainName, ZHash, } from '../metadata/customZodTypes.js';
|
|
3
4
|
import { MAX_BPS_DECIMALS, convertToBps, isBpsPrecisionValid, } from './utils.js';
|
|
4
5
|
// Matches the enum in BaseFee.sol
|
|
@@ -11,15 +12,14 @@ export var OnchainTokenFeeType;
|
|
|
11
12
|
OnchainTokenFeeType[OnchainTokenFeeType["CrossCollateralRoutingFee"] = 5] = "CrossCollateralRoutingFee";
|
|
12
13
|
OnchainTokenFeeType[OnchainTokenFeeType["OffchainQuotedLinearFee"] = 6] = "OffchainQuotedLinearFee";
|
|
13
14
|
})(OnchainTokenFeeType || (OnchainTokenFeeType = {}));
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
})(TokenFeeType || (TokenFeeType = {}));
|
|
15
|
+
export const TokenFeeType = {
|
|
16
|
+
LinearFee: 'LinearFee',
|
|
17
|
+
ProgressiveFee: 'ProgressiveFee',
|
|
18
|
+
RegressiveFee: 'RegressiveFee',
|
|
19
|
+
RoutingFee: 'RoutingFee',
|
|
20
|
+
CrossCollateralRoutingFee: 'CrossCollateralRoutingFee',
|
|
21
|
+
OffchainQuotedLinearFee: 'OffchainQuotedLinearFee',
|
|
22
|
+
};
|
|
23
23
|
export const ImmutableTokenFeeType = [
|
|
24
24
|
TokenFeeType.LinearFee,
|
|
25
25
|
TokenFeeType.RegressiveFee,
|
|
@@ -34,8 +34,9 @@ export const onChainTypeToTokenFeeTypeMap = {
|
|
|
34
34
|
[OnchainTokenFeeType.CrossCollateralRoutingFee]: TokenFeeType.CrossCollateralRoutingFee,
|
|
35
35
|
[OnchainTokenFeeType.OffchainQuotedLinearFee]: TokenFeeType.OffchainQuotedLinearFee,
|
|
36
36
|
};
|
|
37
|
-
// keccak256("RoutingFee.DEFAULT_ROUTER")
|
|
38
|
-
|
|
37
|
+
// keccak256("RoutingFee.DEFAULT_ROUTER") — same wildcard slot as provider-sdk's
|
|
38
|
+
// DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY; re-exported here to avoid duplication.
|
|
39
|
+
export const DEFAULT_ROUTER_KEY = DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY;
|
|
39
40
|
// ====== SHARED SCHEMAS ======
|
|
40
41
|
// For deployed/read configs - token is required for BaseFee implementations
|
|
41
42
|
export const BaseFeeConfigSchema = z.object({
|
|
@@ -45,6 +46,7 @@ export const BaseFeeConfigSchema = z.object({
|
|
|
45
46
|
// For input configs - token is NOT specified by user, resolved at deploy time based on token type
|
|
46
47
|
export const BaseFeeConfigInputSchema = z.object({
|
|
47
48
|
owner: ZHash,
|
|
49
|
+
beneficiary: ZHash.optional(),
|
|
48
50
|
});
|
|
49
51
|
export const FeeParametersSchema = z.object({
|
|
50
52
|
maxFee: ZBigNumberish,
|
package/dist/fee/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fee/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,KAAK,GACN,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,kCAAkC;AAClC,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,+EAAiB,CAAA;IACjB,iFAAkB,CAAA;IAClB,yEAAc,CAAA;IACd,uGAA6B,CAAA;IAC7B,mGAA2B,CAAA;AAC7B,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fee/types.ts"],"names":[],"mappings":"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"}
|
package/dist/fee/utils.d.ts
CHANGED
|
@@ -1,27 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
/**
|
|
3
|
-
* Maximum decimal places supported for fractional bps values.
|
|
4
|
-
* The precision scaling in convertToBps/convertFromBps uses 10^MAX_BPS_DECIMALS
|
|
5
|
-
* as a multiplier. Values with more decimal places will be rejected to prevent
|
|
6
|
-
* silent precision loss during bigint arithmetic.
|
|
7
|
-
*/
|
|
8
|
-
export declare const MAX_BPS_DECIMALS = 4;
|
|
9
|
-
/**
|
|
10
|
-
* Bigint precision multiplier for fractional bps arithmetic.
|
|
11
|
-
* Equals 10^MAX_BPS_DECIMALS = 10_000n.
|
|
12
|
-
*/
|
|
13
|
-
export declare const BPS_PRECISION: bigint;
|
|
14
|
-
/**
|
|
15
|
-
* Returns true if bps has at most MAX_BPS_DECIMALS decimal places.
|
|
16
|
-
* Uses epsilon comparison to avoid IEEE 754 false positives
|
|
17
|
-
* (e.g. 0.3 * 10000 = 2999.9999... which strict equality would wrongly reject).
|
|
18
|
-
*/
|
|
19
|
-
export declare function isBpsPrecisionValid(bps: number): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Validates that a bps value does not exceed MAX_BPS_DECIMALS decimal places.
|
|
22
|
-
* @throws Error if bps has too many decimal places
|
|
23
|
-
*/
|
|
24
|
-
export declare function assertBpsPrecision(bps: number): void;
|
|
1
|
+
export { MAX_BPS, MAX_BPS_DECIMALS, BPS_PRECISION, isBpsPrecisionValid, assertBpsPrecision, computeBps as convertToBps, } from '@hyperlane-xyz/provider-sdk/fee';
|
|
25
2
|
/**
|
|
26
3
|
* Assumed maximum transfer amount for zero-supply tokens.
|
|
27
4
|
* 10^36 is astronomically large (10^18 tokens with 18 decimals).
|
|
@@ -29,12 +6,4 @@ export declare function assertBpsPrecision(bps: number): void;
|
|
|
29
6
|
* in the LinearFee contract's _quoteTransfer calculation.
|
|
30
7
|
*/
|
|
31
8
|
export declare const ASSUMED_MAX_AMOUNT_FOR_ZERO_SUPPLY: bigint;
|
|
32
|
-
/**
|
|
33
|
-
* Converts fee parameters to basis points (BPS)
|
|
34
|
-
* @param maxFee - Maximum fee amount
|
|
35
|
-
* @param halfAmount - Half of the amount at which maxFee is applied
|
|
36
|
-
* @returns Fee in basis points (up to MAX_BPS_DECIMALS decimal places)
|
|
37
|
-
* @throws Error if halfAmount is zero to prevent division by zero
|
|
38
|
-
*/
|
|
39
|
-
export declare function convertToBps(maxFee: bigint, halfAmount: bigint): number;
|
|
40
9
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/fee/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fee/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fee/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,IAAI,YAAY,GAC3B,MAAM,iCAAiC,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAa,CAAC"}
|
package/dist/fee/utils.js
CHANGED
|
@@ -1,34 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export const MAX_BPS = 10000n;
|
|
3
|
-
/**
|
|
4
|
-
* Maximum decimal places supported for fractional bps values.
|
|
5
|
-
* The precision scaling in convertToBps/convertFromBps uses 10^MAX_BPS_DECIMALS
|
|
6
|
-
* as a multiplier. Values with more decimal places will be rejected to prevent
|
|
7
|
-
* silent precision loss during bigint arithmetic.
|
|
8
|
-
*/
|
|
9
|
-
export const MAX_BPS_DECIMALS = 4;
|
|
10
|
-
/**
|
|
11
|
-
* Bigint precision multiplier for fractional bps arithmetic.
|
|
12
|
-
* Equals 10^MAX_BPS_DECIMALS = 10_000n.
|
|
13
|
-
*/
|
|
14
|
-
export const BPS_PRECISION = BigInt(10 ** MAX_BPS_DECIMALS);
|
|
15
|
-
/**
|
|
16
|
-
* Returns true if bps has at most MAX_BPS_DECIMALS decimal places.
|
|
17
|
-
* Uses epsilon comparison to avoid IEEE 754 false positives
|
|
18
|
-
* (e.g. 0.3 * 10000 = 2999.9999... which strict equality would wrongly reject).
|
|
19
|
-
*/
|
|
20
|
-
export function isBpsPrecisionValid(bps) {
|
|
21
|
-
const factor = 10 ** MAX_BPS_DECIMALS;
|
|
22
|
-
const scaled = bps * factor;
|
|
23
|
-
return Math.abs(Math.round(scaled) - scaled) <= 1e-9;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Validates that a bps value does not exceed MAX_BPS_DECIMALS decimal places.
|
|
27
|
-
* @throws Error if bps has too many decimal places
|
|
28
|
-
*/
|
|
29
|
-
export function assertBpsPrecision(bps) {
|
|
30
|
-
assert(isBpsPrecisionValid(bps), `bps must have at most ${MAX_BPS_DECIMALS} decimal places, got ${bps}`);
|
|
31
|
-
}
|
|
1
|
+
export { MAX_BPS, MAX_BPS_DECIMALS, BPS_PRECISION, isBpsPrecisionValid, assertBpsPrecision, computeBps as convertToBps, } from '@hyperlane-xyz/provider-sdk/fee';
|
|
32
2
|
/**
|
|
33
3
|
* Assumed maximum transfer amount for zero-supply tokens.
|
|
34
4
|
* 10^36 is astronomically large (10^18 tokens with 18 decimals).
|
|
@@ -36,20 +6,4 @@ export function assertBpsPrecision(bps) {
|
|
|
36
6
|
* in the LinearFee contract's _quoteTransfer calculation.
|
|
37
7
|
*/
|
|
38
8
|
export const ASSUMED_MAX_AMOUNT_FOR_ZERO_SUPPLY = 10n ** 36n;
|
|
39
|
-
/**
|
|
40
|
-
* Converts fee parameters to basis points (BPS)
|
|
41
|
-
* @param maxFee - Maximum fee amount
|
|
42
|
-
* @param halfAmount - Half of the amount at which maxFee is applied
|
|
43
|
-
* @returns Fee in basis points (up to MAX_BPS_DECIMALS decimal places)
|
|
44
|
-
* @throws Error if halfAmount is zero to prevent division by zero
|
|
45
|
-
*/
|
|
46
|
-
export function convertToBps(maxFee, halfAmount) {
|
|
47
|
-
assert(halfAmount !== 0n, 'halfAmount must be > 0 to prevent division by zero');
|
|
48
|
-
// Use precision scaling to preserve fractional bps (e.g., 1.5)
|
|
49
|
-
// Multiply by BPS_PRECISION before bigint division, then divide back in Number space
|
|
50
|
-
const scaledBps = (maxFee * MAX_BPS * BPS_PRECISION) / (halfAmount * 2n);
|
|
51
|
-
// Round to MAX_BPS_DECIMALS decimal places to prevent floating point drift
|
|
52
|
-
const factor = 10 ** MAX_BPS_DECIMALS;
|
|
53
|
-
return (Math.round((Number(scaledBps) / Number(BPS_PRECISION)) * factor) / factor);
|
|
54
|
-
}
|
|
55
9
|
//# sourceMappingURL=utils.js.map
|
package/dist/fee/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fee/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fee/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,IAAI,YAAY,GAC3B,MAAM,iCAAiC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,IAAI,GAAG,CAAC"}
|
|
@@ -8,5 +8,6 @@ export declare class HyperlaneIgpChecker extends HyperlaneAppChecker<HyperlaneIg
|
|
|
8
8
|
checkBytecodes(chain: ChainName): Promise<void>;
|
|
9
9
|
checkOverheadInterchainGasPaymaster(local: ChainName): Promise<void>;
|
|
10
10
|
checkInterchainGasPaymaster(local: ChainName): Promise<void>;
|
|
11
|
+
checkTokenGasOracles(local: ChainName): Promise<void>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=HyperlaneIgpChecker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpChecker.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAEL,SAAS,EAKV,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAoB,SAAQ,mBAAmB,CAC1D,YAAY,EACZ,SAAS,CACV;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/C,mCAAmC,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDpE,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D5D,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAiD5D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BigNumber } from 'ethers';
|
|
1
|
+
import { BigNumber, ethers } from 'ethers';
|
|
2
2
|
import { eqAddress } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { throwIfNotMissingSelector } from '../utils/contract.js';
|
|
3
4
|
import { BytecodeHash } from '../consts/bytecode.js';
|
|
4
5
|
import { HyperlaneAppChecker } from '../deploy/HyperlaneAppChecker.js';
|
|
5
6
|
import { proxyImplementation } from '../deploy/proxy.js';
|
|
@@ -11,6 +12,7 @@ export class HyperlaneIgpChecker extends HyperlaneAppChecker {
|
|
|
11
12
|
await this.checkBytecodes(chain);
|
|
12
13
|
await this.checkOverheadInterchainGasPaymaster(chain);
|
|
13
14
|
await this.checkInterchainGasPaymaster(chain);
|
|
15
|
+
await this.checkTokenGasOracles(chain);
|
|
14
16
|
}
|
|
15
17
|
async checkDomainOwnership(chain) {
|
|
16
18
|
const config = this.configMap[chain];
|
|
@@ -116,5 +118,45 @@ export class HyperlaneIgpChecker extends HyperlaneAppChecker {
|
|
|
116
118
|
this.addViolation(violation);
|
|
117
119
|
}
|
|
118
120
|
}
|
|
121
|
+
async checkTokenGasOracles(local) {
|
|
122
|
+
const config = this.configMap[local];
|
|
123
|
+
if (!config.tokenOracleConfig)
|
|
124
|
+
return;
|
|
125
|
+
const coreContracts = this.app.getContracts(local);
|
|
126
|
+
const igp = coreContracts.interchainGasPaymaster;
|
|
127
|
+
for (const [feeToken, remoteConfigs] of Object.entries(config.tokenOracleConfig)) {
|
|
128
|
+
const violation = {
|
|
129
|
+
type: 'InterchainGasPaymaster',
|
|
130
|
+
subType: IgpViolationType.TokenGasOracles,
|
|
131
|
+
contract: igp,
|
|
132
|
+
chain: local,
|
|
133
|
+
actual: {},
|
|
134
|
+
expected: {},
|
|
135
|
+
feeToken,
|
|
136
|
+
};
|
|
137
|
+
// TODO: this checker only verifies that an oracle slot is non-zero; it
|
|
138
|
+
// does not validate the tokenExchangeRate / gasPrice stored in the oracle.
|
|
139
|
+
await Promise.all(Object.keys(remoteConfigs).map(async (remote) => {
|
|
140
|
+
const remoteId = this.multiProvider.tryGetDomainId(remote);
|
|
141
|
+
if (remoteId === null) {
|
|
142
|
+
this.app.logger.warn(`Skipping token oracle check ${local} -> ${remote} for fee token ${feeToken}`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
const actualOracle = await igp.tokenGasOracles(feeToken, remoteId);
|
|
147
|
+
if (eqAddress(actualOracle, ethers.constants.AddressZero)) {
|
|
148
|
+
violation.actual[remote] = actualOracle;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
throwIfNotMissingSelector(error);
|
|
153
|
+
// Legacy IGP contracts don't have tokenGasOracles — skip silently.
|
|
154
|
+
}
|
|
155
|
+
}));
|
|
156
|
+
if (Object.keys(violation.actual).length > 0) {
|
|
157
|
+
this.addViolation(violation);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
119
161
|
}
|
|
120
162
|
//# sourceMappingURL=HyperlaneIgpChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,25 @@ import { IgpFactories } from './contracts.js';
|
|
|
8
8
|
import { IgpConfig } from './types.js';
|
|
9
9
|
export declare class HyperlaneIgpDeployer extends HyperlaneDeployer<IgpConfig, IgpFactories> {
|
|
10
10
|
constructor(multiProvider: MultiProvider, contractVerifier?: ContractVerifier, concurrentDeploy?: boolean);
|
|
11
|
+
protected assertLegacyIgpConfig(chain: ChainName, config: IgpConfig): void;
|
|
11
12
|
deployInterchainGasPaymaster(chain: ChainName, proxyAdmin: ProxyAdmin, storageGasOracle: StorageGasOracle, config: IgpConfig): Promise<InterchainGasPaymaster>;
|
|
12
13
|
deployStorageGasOracle(chain: ChainName, config: IgpConfig): Promise<StorageGasOracle>;
|
|
14
|
+
/**
|
|
15
|
+
* Reconciles the remote gas data stored on a StorageGasOracle against the
|
|
16
|
+
* desired config, submitting only the drifted entries. Shared by the native
|
|
17
|
+
* oracle and per-fee-token oracles.
|
|
18
|
+
*/
|
|
19
|
+
protected configureStorageGasOracle(chain: ChainName, gasOracle: StorageGasOracle, oracleConfig: NonNullable<IgpConfig['oracleConfig']>, overhead: IgpConfig['overhead']): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Wires per-fee-token gas oracles on the IGP for ERC20-denominated gas
|
|
22
|
+
* payments. Target-driven and idempotent: each fee token's oracle is resolved
|
|
23
|
+
* from the on-chain tokenGasOracles mapping (no off-chain bookkeeping), or a
|
|
24
|
+
* dedicated StorageGasOracle is deployed if none is wired yet. Must run while
|
|
25
|
+
* the deployer still owns the IGP (setTokenGasOracles is onlyOwner) and after
|
|
26
|
+
* the native gas params, since the IGP requires a destination's native oracle
|
|
27
|
+
* to exist before a token oracle can be set for it.
|
|
28
|
+
*/
|
|
29
|
+
protected configureTokenGasOracles(chain: ChainName, igp: InterchainGasPaymaster, config: IgpConfig): Promise<void>;
|
|
13
30
|
deployContracts(chain: ChainName, config: IgpConfig): Promise<HyperlaneContracts<IgpFactories>>;
|
|
14
31
|
}
|
|
15
32
|
//# sourceMappingURL=HyperlaneIgpDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAK5D,OAAO,EACL,SAAS,EAGV,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,SAAQ,iBAAiB,CACzD,SAAS,EACT,YAAY,CACb;gBAEG,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,GAAE,OAAe;IASnC,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAgCpE,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,sBAAsB,CAAC;IAkF5B,sBAAsB,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,gBAAgB,CAAC;IAoB5B;;;;OAIG;cACa,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,EACpD,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAwEhB;;;;;;;;OAQG;cACa,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,sBAAsB,EAC3B,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC;IA8IV,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CAiC7C"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
2
|
+
import { StorageGasOracle__factory, } from '@hyperlane-xyz/core';
|
|
3
|
+
import { addBufferToGasLimit, assert, eqAddress, rootLogger, } from '@hyperlane-xyz/utils';
|
|
3
4
|
import { TOKEN_EXCHANGE_RATE_SCALE_ETHEREUM } from '../consts/igp.js';
|
|
4
5
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js';
|
|
5
6
|
import { submitBatched } from '../deploy/utils.js';
|
|
7
|
+
import { IgpVersion, OFFCHAIN_QUOTED_IGP_VERSION } from '../hook/types.js';
|
|
6
8
|
import { igpFactories } from './contracts.js';
|
|
7
9
|
import { oracleConfigToOracleData, serializeDifference, } from './oracle/types.js';
|
|
10
|
+
import { assertTokenOracleConfigHasNativeRemotes, igpSupportsOffchainFeeQuoting, } from './types.js';
|
|
8
11
|
export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
9
12
|
constructor(multiProvider, contractVerifier, concurrentDeploy = false) {
|
|
10
13
|
super(multiProvider, igpFactories, {
|
|
@@ -13,7 +16,23 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
13
16
|
concurrentDeploy,
|
|
14
17
|
});
|
|
15
18
|
}
|
|
19
|
+
assertLegacyIgpConfig(chain, config) {
|
|
20
|
+
if (config.igpVersion !== IgpVersion.Legacy)
|
|
21
|
+
return;
|
|
22
|
+
assert(!config.quoteSigners?.length, `Legacy IGP on ${chain} does not support quoteSigners`);
|
|
23
|
+
assert(!config.tokenOracleConfig ||
|
|
24
|
+
Object.keys(config.tokenOracleConfig).length === 0, `Legacy IGP on ${chain} does not support tokenOracleConfig`);
|
|
25
|
+
const cachedAddresses = this.cachedAddresses[chain] ?? {};
|
|
26
|
+
const requiredCachedContracts = [
|
|
27
|
+
'interchainGasPaymaster',
|
|
28
|
+
'proxyAdmin',
|
|
29
|
+
'storageGasOracle',
|
|
30
|
+
];
|
|
31
|
+
const missing = requiredCachedContracts.filter((contractName) => !cachedAddresses[contractName]);
|
|
32
|
+
assert(missing.length === 0, `Legacy IGP on ${chain} requires existing cached addresses for ${missing.join(', ')}`);
|
|
33
|
+
}
|
|
16
34
|
async deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle, config) {
|
|
35
|
+
this.assertLegacyIgpConfig(chain, config);
|
|
17
36
|
const igp = await this.deployProxiedContract(chain, 'interchainGasPaymaster', 'interchainGasPaymaster', proxyAdmin.address, [], [await this.multiProvider.getSignerAddress(chain), config.beneficiary]);
|
|
18
37
|
const gasParamsToSet = [];
|
|
19
38
|
for (const [remote, newGasOverhead] of Object.entries(config.overhead)) {
|
|
@@ -54,18 +73,29 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
54
73
|
await this.multiProvider.handleTx(chain, igp.addQuoteSigner(signer, this.multiProvider.getTransactionOverrides(chain)));
|
|
55
74
|
}
|
|
56
75
|
}
|
|
76
|
+
await this.configureTokenGasOracles(chain, igp, config);
|
|
57
77
|
return igp;
|
|
58
78
|
}
|
|
59
79
|
async deployStorageGasOracle(chain, config) {
|
|
80
|
+
this.assertLegacyIgpConfig(chain, config);
|
|
60
81
|
const gasOracle = await this.deployContract(chain, 'storageGasOracle', []);
|
|
61
82
|
if (!config.oracleConfig) {
|
|
62
83
|
this.logger.debug('No oracle config provided, skipping...');
|
|
63
84
|
return gasOracle;
|
|
64
85
|
}
|
|
86
|
+
await this.configureStorageGasOracle(chain, gasOracle, config.oracleConfig, config.overhead);
|
|
87
|
+
return gasOracle;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Reconciles the remote gas data stored on a StorageGasOracle against the
|
|
91
|
+
* desired config, submitting only the drifted entries. Shared by the native
|
|
92
|
+
* oracle and per-fee-token oracles.
|
|
93
|
+
*/
|
|
94
|
+
async configureStorageGasOracle(chain, gasOracle, oracleConfig, overhead) {
|
|
65
95
|
this.logger.info(`Configuring gas oracle from ${chain}...`);
|
|
66
96
|
const configsToSet = [];
|
|
67
97
|
// For each remote, check if the gas oracle has the correct data
|
|
68
|
-
for (const [remote, desired] of Object.entries(
|
|
98
|
+
for (const [remote, desired] of Object.entries(oracleConfig)) {
|
|
69
99
|
// TODO: add back support for non-EVM remotes.
|
|
70
100
|
// Previously would check core metadata for non EVMs and fallback to multiprovider for custom EVMs
|
|
71
101
|
const remoteDomain = this.multiProvider.tryGetDomainId(remote);
|
|
@@ -83,7 +113,7 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
83
113
|
...desiredData,
|
|
84
114
|
});
|
|
85
115
|
}
|
|
86
|
-
const exampleRemoteGas = (
|
|
116
|
+
const exampleRemoteGas = (overhead[remote] ?? 200_000) + 50_000;
|
|
87
117
|
const exampleRemoteGasCost = desiredData.tokenExchangeRate
|
|
88
118
|
.mul(desiredData.gasPrice)
|
|
89
119
|
.mul(exampleRemoteGas)
|
|
@@ -101,9 +131,99 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
101
131
|
}, this.logger, 'gas oracle configs');
|
|
102
132
|
});
|
|
103
133
|
}
|
|
104
|
-
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Wires per-fee-token gas oracles on the IGP for ERC20-denominated gas
|
|
137
|
+
* payments. Target-driven and idempotent: each fee token's oracle is resolved
|
|
138
|
+
* from the on-chain tokenGasOracles mapping (no off-chain bookkeeping), or a
|
|
139
|
+
* dedicated StorageGasOracle is deployed if none is wired yet. Must run while
|
|
140
|
+
* the deployer still owns the IGP (setTokenGasOracles is onlyOwner) and after
|
|
141
|
+
* the native gas params, since the IGP requires a destination's native oracle
|
|
142
|
+
* to exist before a token oracle can be set for it.
|
|
143
|
+
*/
|
|
144
|
+
async configureTokenGasOracles(chain, igp, config) {
|
|
145
|
+
if (!config.tokenOracleConfig ||
|
|
146
|
+
Object.keys(config.tokenOracleConfig).length === 0) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.assertLegacyIgpConfig(chain, config);
|
|
150
|
+
assertTokenOracleConfigHasNativeRemotes(chain, config);
|
|
151
|
+
let contractVersion;
|
|
152
|
+
try {
|
|
153
|
+
contractVersion = await igp.PACKAGE_VERSION();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
throw new Error(`IGP tokenOracleConfig on ${chain} requires contract version >= ${OFFCHAIN_QUOTED_IGP_VERSION}`, { cause: error });
|
|
157
|
+
}
|
|
158
|
+
assert(igpSupportsOffchainFeeQuoting({
|
|
159
|
+
igpVersion: config.igpVersion,
|
|
160
|
+
contractVersion,
|
|
161
|
+
}), `IGP tokenOracleConfig on ${chain} requires contract version >= ${OFFCHAIN_QUOTED_IGP_VERSION}`);
|
|
162
|
+
for (const [feeToken, oracleConfig] of Object.entries(config.tokenOracleConfig)) {
|
|
163
|
+
const remotes = Object.keys(oracleConfig)
|
|
164
|
+
.map((remote) => ({
|
|
165
|
+
remote,
|
|
166
|
+
remoteDomain: this.multiProvider.tryGetDomainId(remote),
|
|
167
|
+
}))
|
|
168
|
+
.filter((r) => r.remoteDomain !== null);
|
|
169
|
+
if (remotes.length === 0) {
|
|
170
|
+
this.logger.warn(`Skipping token gas oracle for ${feeToken} on ${chain}: no configured remotes in MultiProvider`);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
// Reuse the oracle already wired for this fee token (across any of its
|
|
174
|
+
// destinations), otherwise deploy a dedicated one.
|
|
175
|
+
let gasOracle;
|
|
176
|
+
for (const { remoteDomain } of remotes) {
|
|
177
|
+
const existing = await igp.tokenGasOracles(feeToken, remoteDomain);
|
|
178
|
+
if (!eqAddress(existing, ethers.constants.AddressZero)) {
|
|
179
|
+
gasOracle = StorageGasOracle__factory.connect(existing, this.multiProvider.getSigner(chain));
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!gasOracle) {
|
|
184
|
+
// shouldRecover=false so we don't read back the native 'storageGasOracle'
|
|
185
|
+
// cache entry; idempotency comes from the on-chain mapping check above.
|
|
186
|
+
gasOracle = await this.deployContractFromFactory(chain, new StorageGasOracle__factory(), 'storageGasOracle', [], undefined, false);
|
|
187
|
+
}
|
|
188
|
+
await this.configureStorageGasOracle(chain, gasOracle, oracleConfig, config.overhead);
|
|
189
|
+
// Transfer the token oracle to the configured oracle key, matching the
|
|
190
|
+
// native oracle's ownership.
|
|
191
|
+
assert(gasOracle, `Expected token gas oracle for ${feeToken} on ${chain}`);
|
|
192
|
+
await this.runIfOwner(chain, gasOracle, async () => {
|
|
193
|
+
if (!eqAddress(await gasOracle.owner(), config.oracleKey)) {
|
|
194
|
+
await this.multiProvider.handleTx(chain, gasOracle.transferOwnership(config.oracleKey, this.multiProvider.getTransactionOverrides(chain)));
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// Point any destinations not yet mapped to this oracle at it.
|
|
198
|
+
const tokenOracleParams = [];
|
|
199
|
+
for (const { remoteDomain } of remotes) {
|
|
200
|
+
const current = await igp.tokenGasOracles(feeToken, remoteDomain);
|
|
201
|
+
if (!eqAddress(current, gasOracle.address)) {
|
|
202
|
+
tokenOracleParams.push({
|
|
203
|
+
feeToken,
|
|
204
|
+
remoteDomain,
|
|
205
|
+
gasOracle: gasOracle.address,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (tokenOracleParams.length > 0) {
|
|
210
|
+
await this.runIfOwner(chain, igp, async () => {
|
|
211
|
+
await submitBatched(chain, tokenOracleParams, async (batch) => {
|
|
212
|
+
this.logger.info(`Setting token gas oracles for ${feeToken} on ${chain} (domains ${batch
|
|
213
|
+
.map((p) => p.remoteDomain)
|
|
214
|
+
.join(', ')})`);
|
|
215
|
+
const estimatedGas = await igp.estimateGas.setTokenGasOracles(batch);
|
|
216
|
+
await this.multiProvider.handleTx(chain, igp.setTokenGasOracles(batch, {
|
|
217
|
+
gasLimit: addBufferToGasLimit(estimatedGas),
|
|
218
|
+
...this.multiProvider.getTransactionOverrides(chain),
|
|
219
|
+
}));
|
|
220
|
+
}, this.logger, 'token gas oracles');
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
105
224
|
}
|
|
106
225
|
async deployContracts(chain, config) {
|
|
226
|
+
this.assertLegacyIgpConfig(chain, config);
|
|
107
227
|
// NB: To share ProxyAdmins with HyperlaneCore, ensure the ProxyAdmin
|
|
108
228
|
// is loaded into the contract cache.
|
|
109
229
|
const proxyAdmin = await this.deployContract(chain, 'proxyAdmin', []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
|