@hyperlane-xyz/sdk 3.11.0-beta-0 → 3.20.0-beta1
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/app/MultiProtocolApp.test.js +9 -11
- package/dist/app/MultiProtocolApp.test.js.map +1 -1
- package/dist/consts/crud.d.ts +2 -0
- package/dist/consts/crud.d.ts.map +1 -0
- package/dist/consts/crud.js +2 -0
- package/dist/consts/crud.js.map +1 -0
- package/dist/consts/igp.d.ts +3 -1
- package/dist/consts/igp.d.ts.map +1 -1
- package/dist/consts/igp.js +3 -1
- package/dist/consts/igp.js.map +1 -1
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +23 -0
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/consts/multisigIsmVerifyCosts.d.ts +210 -0
- package/dist/consts/multisigIsmVerifyCosts.d.ts.map +1 -0
- package/dist/consts/multisigIsmVerifyCosts.js +211 -0
- package/dist/consts/multisigIsmVerifyCosts.js.map +1 -0
- package/dist/consts/testChains.d.ts +17 -0
- package/dist/consts/testChains.d.ts.map +1 -0
- package/dist/consts/testChains.js +105 -0
- package/dist/consts/testChains.js.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.js +49 -8
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +6 -2
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +51 -11
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +2 -6
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/MultiProtocolCore.d.ts +0 -2
- package/dist/core/MultiProtocolCore.d.ts.map +1 -1
- package/dist/core/MultiProtocolCore.js +0 -8
- package/dist/core/MultiProtocolCore.js.map +1 -1
- package/dist/core/MultiProtocolCore.test.js +15 -77
- package/dist/core/MultiProtocolCore.test.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +2 -1
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.js +2 -2
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js +10 -2
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js.map +1 -1
- package/dist/core/read.d.ts +28 -0
- package/dist/core/read.d.ts.map +1 -0
- package/dist/core/read.js +44 -0
- package/dist/core/read.js.map +1 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +3 -3
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/crud/AbstractCrudModule.d.ts +21 -0
- package/dist/crud/AbstractCrudModule.d.ts.map +1 -0
- package/dist/crud/AbstractCrudModule.js +10 -0
- package/dist/crud/AbstractCrudModule.js.map +1 -0
- package/dist/crud/EvmHookModule.d.ts +18 -0
- package/dist/crud/EvmHookModule.d.ts.map +1 -0
- package/dist/crud/EvmHookModule.js +28 -0
- package/dist/crud/EvmHookModule.js.map +1 -0
- package/dist/crud/EvmIsmModule.d.ts +18 -0
- package/dist/crud/EvmIsmModule.d.ts.map +1 -0
- package/dist/crud/EvmIsmModule.js +28 -0
- package/dist/crud/EvmIsmModule.js.map +1 -0
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +4 -4
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/schemas.d.ts +70 -0
- package/dist/deploy/schemas.d.ts.map +1 -0
- package/dist/deploy/schemas.js +7 -0
- package/dist/deploy/schemas.js.map +1 -0
- package/dist/deploy/types.d.ts +12 -3
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js +1 -0
- package/dist/deploy/types.js.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +0 -2
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgp.js +0 -9
- package/dist/gas/HyperlaneIgp.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +3 -6
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +12 -7
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +3 -2
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
- package/dist/gas/oracle/types.d.ts.map +1 -1
- package/dist/gas/oracle/types.js +4 -3
- package/dist/gas/oracle/types.js.map +1 -1
- package/dist/gas/token-prices.d.ts +2 -2
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +4 -7
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/gas/token-prices.test.js +6 -6
- package/dist/gas/token-prices.test.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +1 -2
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/read.d.ts +35 -0
- package/dist/hook/read.d.ts.map +1 -0
- package/dist/hook/read.js +191 -0
- package/dist/hook/read.js.map +1 -0
- package/dist/hook/read.test.d.ts +2 -0
- package/dist/hook/read.test.d.ts.map +1 -0
- package/dist/hook/read.test.js +147 -0
- package/dist/hook/read.test.js.map +1 -0
- package/dist/hook/types.d.ts +14 -3
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +14 -0
- package/dist/hook/types.js.map +1 -1
- package/dist/index.d.ts +19 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +0 -2
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +37 -9
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +16 -27
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/read.d.ts +29 -0
- package/dist/ism/read.d.ts.map +1 -0
- package/dist/ism/read.js +152 -0
- package/dist/ism/read.js.map +1 -0
- package/dist/ism/read.test.d.ts +2 -0
- package/dist/ism/read.test.d.ts.map +1 -0
- package/dist/ism/read.test.js +124 -0
- package/dist/ism/read.test.js.map +1 -0
- package/dist/ism/schemas.d.ts +177 -0
- package/dist/ism/schemas.d.ts.map +1 -0
- package/dist/ism/schemas.js +59 -0
- package/dist/ism/schemas.js.map +1 -0
- package/dist/ism/schemas.test.d.ts +2 -0
- package/dist/ism/schemas.test.d.ts.map +1 -0
- package/dist/ism/schemas.test.js +18 -0
- package/dist/ism/schemas.test.js.map +1 -0
- package/dist/ism/types.d.ts +11 -4
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +4 -3
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +10 -4
- package/dist/ism/utils.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts +12 -2
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +27 -13
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +464 -246
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +4 -8
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/agentConfig.test.js +9 -9
- package/dist/metadata/agentConfig.test.js.map +1 -1
- package/dist/metadata/blockExplorer.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.js +3 -7
- package/dist/metadata/blockExplorer.js.map +1 -1
- package/dist/metadata/blockExplorer.test.d.ts +2 -0
- package/dist/metadata/blockExplorer.test.d.ts.map +1 -0
- package/dist/metadata/blockExplorer.test.js +41 -0
- package/dist/metadata/blockExplorer.test.js.map +1 -0
- package/dist/metadata/chainMetadata.test.js +0 -10
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +335 -1
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +33 -9
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts +0 -2
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.js +2 -12
- package/dist/middleware/account/InterchainAccount.js.map +1 -1
- package/dist/middleware/account/accounts.hardhat-test.js +3 -3
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/account/schemas.d.ts +21 -0
- package/dist/middleware/account/schemas.d.ts.map +1 -0
- package/dist/middleware/account/schemas.js +11 -0
- package/dist/middleware/account/schemas.js.map +1 -0
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +5 -6
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +0 -2
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQuery.js +0 -9
- package/dist/middleware/query/InterchainQuery.js.map +1 -1
- package/dist/middleware/query/queries.hardhat-test.js +5 -6
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +6 -2
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +15 -2
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.test.js +8 -9
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +1 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +7 -8
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +26 -2
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +0 -3
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +0 -2
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +2 -1
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/MultiProtocolRouterApps.test.js +4 -4
- package/dist/router/MultiProtocolRouterApps.test.js.map +1 -1
- package/dist/router/RouterApps.d.ts +1 -1
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +11 -5
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/schemas.d.ts +71 -0
- package/dist/router/schemas.d.ts.map +1 -0
- package/dist/router/schemas.js +16 -0
- package/dist/router/schemas.js.map +1 -0
- package/dist/router/types.d.ts +5 -12
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js.map +1 -1
- package/dist/test/MockCoinGecko.d.ts +12 -0
- package/dist/test/MockCoinGecko.d.ts.map +1 -0
- package/dist/test/MockCoinGecko.js +38 -0
- package/dist/test/MockCoinGecko.js.map +1 -0
- package/dist/test/multiProviderStubs.d.ts +9 -0
- package/dist/test/multiProviderStubs.d.ts.map +1 -0
- package/dist/test/multiProviderStubs.js +27 -0
- package/dist/test/multiProviderStubs.js.map +1 -0
- package/dist/test/testUtils.d.ts +0 -10
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +0 -40
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/Token.test.js +30 -37
- package/dist/token/Token.test.js.map +1 -1
- package/dist/token/TokenAmount.test.js +4 -5
- package/dist/token/TokenAmount.test.js.map +1 -1
- package/dist/token/TokenStandard.d.ts +2 -3
- package/dist/token/TokenStandard.d.ts.map +1 -1
- package/dist/token/TokenStandard.js +3 -8
- package/dist/token/TokenStandard.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js +10 -13
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +4 -2
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/app.d.ts +11 -0
- package/dist/token/app.d.ts.map +1 -0
- package/dist/token/app.js +22 -0
- package/dist/token/app.js.map +1 -0
- package/dist/token/checker.d.ts +10 -0
- package/dist/token/checker.d.ts.map +1 -0
- package/dist/token/checker.js +73 -0
- package/dist/token/checker.js.map +1 -0
- package/dist/token/config.d.ts +9 -4
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js.map +1 -1
- package/dist/token/contracts.d.ts +9 -0
- package/dist/token/contracts.d.ts.map +1 -1
- package/dist/token/contracts.js +4 -1
- package/dist/token/contracts.js.map +1 -1
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.hardhat-test.js +48 -2
- package/dist/token/deploy.hardhat-test.js.map +1 -1
- package/dist/token/deploy.js +7 -3
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/read.d.ts +42 -0
- package/dist/token/read.d.ts.map +1 -0
- package/dist/token/read.js +88 -0
- package/dist/token/read.js.map +1 -0
- package/dist/token/schemas.d.ts +375 -0
- package/dist/token/schemas.d.ts.map +1 -0
- package/dist/token/schemas.js +48 -0
- package/dist/token/schemas.js.map +1 -0
- package/dist/token/schemas.test.d.ts +2 -0
- package/dist/token/schemas.test.d.ts.map +1 -0
- package/dist/token/schemas.test.js +85 -0
- package/dist/token/schemas.test.js.map +1 -0
- package/dist/token/types.d.ts +5 -0
- package/dist/token/types.d.ts.map +1 -0
- package/dist/token/types.js +2 -0
- package/dist/token/types.js.map +1 -0
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.d.ts +1 -1
- package/dist/utils/MultiGeneric.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +2 -3
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/cosmos.d.ts +1180 -0
- package/dist/utils/cosmos.d.ts.map +1 -0
- package/dist/utils/cosmos.js +375 -0
- package/dist/utils/cosmos.js.map +1 -0
- package/dist/utils/fork.d.ts +38 -0
- package/dist/utils/fork.d.ts.map +1 -0
- package/dist/utils/fork.js +89 -0
- package/dist/utils/fork.js.map +1 -0
- package/dist/utils/ism.js +1 -1
- package/dist/utils/ism.js.map +1 -1
- package/dist/utils/wagmi.d.ts +0 -2
- package/dist/utils/wagmi.d.ts.map +1 -1
- package/dist/utils/wagmi.js +2 -5
- package/dist/utils/wagmi.js.map +1 -1
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +9 -5
- package/dist/warp/WarpCore.js.map +1 -1
- package/dist/warp/WarpCore.test.js +34 -35
- package/dist/warp/WarpCore.test.js.map +1 -1
- package/package.json +4 -5
- package/dist/consts/chainMetadata.d.ts +0 -85
- package/dist/consts/chainMetadata.d.ts.map +0 -1
- package/dist/consts/chainMetadata.js +0 -929
- package/dist/consts/chainMetadata.js.map +0 -1
- package/dist/consts/chains.d.ts +0 -54
- package/dist/consts/chains.d.ts.map +0 -1
- package/dist/consts/chains.js +0 -93
- package/dist/consts/chains.js.map +0 -1
- package/dist/consts/environments/index.d.ts +0 -503
- package/dist/consts/environments/index.d.ts.map +0 -1
- package/dist/consts/environments/index.js +0 -7
- package/dist/consts/environments/index.js.map +0 -1
- package/dist/consts/environments/mainnet.json +0 -342
- package/dist/consts/environments/testnet.json +0 -132
- package/dist/consts/multisigIsmVerifyCosts.json +0 -209
- package/dist/metadata/health.d.ts +0 -9
- package/dist/metadata/health.d.ts.map +0 -1
- package/dist/metadata/health.js +0 -112
- package/dist/metadata/health.js.map +0 -1
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts +0 -2
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts.map +0 -1
- package/dist/providers/SmartProvider/SmartProvider.test.js +0 -161
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +0 -1
- package/dist/test/metadata-check.d.ts +0 -2
- package/dist/test/metadata-check.d.ts.map +0 -1
- package/dist/test/metadata-check.js +0 -81
- package/dist/test/metadata-check.js.map +0 -1
package/dist/deploy/types.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { Contract } from 'ethers';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
import type { AccessControl, Ownable, TimelockController } from '@hyperlane-xyz/core';
|
|
3
4
|
import { Address } from '@hyperlane-xyz/utils';
|
|
4
5
|
import { AccountConfig } from '../middleware/account/types.js';
|
|
5
6
|
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
6
7
|
import type { ChainName } from '../types.js';
|
|
8
|
+
import { OwnableConfigSchema } from './schemas.js';
|
|
7
9
|
export type Owner = Address | AccountConfig;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @remarks ownerOverrides is added outside of the Schema because zod handle generics in a weird way (uses functions)
|
|
12
|
+
* @see https://stackoverflow.com/questions/74907523/creating-zod-schema-for-generic-interface
|
|
13
|
+
*/
|
|
14
|
+
export type OwnableConfig<Keys extends PropertyKey = PropertyKey> = z.infer<typeof OwnableConfigSchema> & {
|
|
10
15
|
ownerOverrides?: Partial<Record<Keys, Address>>;
|
|
11
16
|
};
|
|
12
17
|
export declare function resolveOrDeployAccountOwner(multiProvider: MultiProvider, chain: ChainName, owner: Owner): Promise<Address>;
|
|
@@ -24,7 +29,8 @@ export declare enum ViolationType {
|
|
|
24
29
|
BytecodeMismatch = "BytecodeMismatch",
|
|
25
30
|
ProxyAdmin = "ProxyAdmin",
|
|
26
31
|
TimelockController = "TimelockController",
|
|
27
|
-
AccessControl = "AccessControl"
|
|
32
|
+
AccessControl = "AccessControl",
|
|
33
|
+
TokenMismatch = "TokenMismatch"
|
|
28
34
|
}
|
|
29
35
|
export interface OwnerViolation extends CheckerViolation {
|
|
30
36
|
type: ViolationType.Owner;
|
|
@@ -58,4 +64,7 @@ export interface BytecodeMismatchViolation extends CheckerViolation {
|
|
|
58
64
|
type: ViolationType.BytecodeMismatch;
|
|
59
65
|
name: string;
|
|
60
66
|
}
|
|
67
|
+
export interface TokenMismatchViolation extends CheckerViolation {
|
|
68
|
+
tokenAddress: Address;
|
|
69
|
+
}
|
|
61
70
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC,KAAK,CACzE,OAAO,mBAAmB,CAC3B,GAAG;IACF,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,aAAa,CAEvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,IAAI,EAAE,aAAa,CAAC,kBAAkB,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,IAAI,EAAE,aAAa,CAAC,gBAAgB,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,YAAY,EAAE,OAAO,CAAC;CACvB"}
|
package/dist/deploy/types.js
CHANGED
|
@@ -22,5 +22,6 @@ export var ViolationType;
|
|
|
22
22
|
ViolationType["ProxyAdmin"] = "ProxyAdmin";
|
|
23
23
|
ViolationType["TimelockController"] = "TimelockController";
|
|
24
24
|
ViolationType["AccessControl"] = "AccessControl";
|
|
25
|
+
ViolationType["TokenMismatch"] = "TokenMismatch";
|
|
25
26
|
})(ViolationType || (ViolationType = {}));
|
|
26
27
|
//# sourceMappingURL=types.js.map
|
package/dist/deploy/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAmBrF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAA4B,EAC5B,KAAgB,EAChB,KAAY;IAEZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,4HAA4H;QAC5H,OAAO,MAAM,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,OAAO,IAAI,MAAM,CAAC;AAC3B,CAAC;AAUD,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,4CAA2B,CAAA;IAC3B,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,0DAAyC,CAAA;IACzC,gDAA+B,CAAA;IAC/B,gDAA+B,CAAA;AACjC,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
2
|
import { Address } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { HyperlaneApp } from '../app/HyperlaneApp.js';
|
|
4
|
-
import { HyperlaneEnvironment } from '../consts/environments/index.js';
|
|
5
4
|
import { HyperlaneAddressesMap } from '../contracts/types.js';
|
|
6
5
|
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
7
6
|
import { ChainName } from '../types.js';
|
|
8
7
|
import { IgpFactories } from './contracts.js';
|
|
9
8
|
export declare class HyperlaneIgp extends HyperlaneApp<IgpFactories> {
|
|
10
|
-
static fromEnvironment<Env extends HyperlaneEnvironment>(env: Env, multiProvider: MultiProvider): HyperlaneIgp;
|
|
11
9
|
static fromAddressesMap(addressesMap: HyperlaneAddressesMap<any>, multiProvider: MultiProvider): HyperlaneIgp;
|
|
12
10
|
/**
|
|
13
11
|
* Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgp.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneIgp.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAE5D,qBAAa,YAAa,SAAQ,YAAY,CAAC,YAAY,CAAC;IAC1D,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,EACxC,aAAa,EAAE,aAAa,GAC3B,YAAY;IASf;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,CAAC;IAUrB;;;;;;;;;;;;OAYG;IACH,+BAA+B,CAC7B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,CAAC;IAUrB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,qBAAqB,CAC7B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,SAAS,EACpB,6BAA6B,EAAE,OAAO,GACrC,OAAO,CAAC,SAAS,CAAC;CAStB"}
|
package/dist/gas/HyperlaneIgp.js
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import { InterchainGasPaymaster__factory } from '@hyperlane-xyz/core';
|
|
2
2
|
import { HyperlaneApp } from '../app/HyperlaneApp.js';
|
|
3
|
-
import { hyperlaneEnvironments, } from '../consts/environments/index.js';
|
|
4
3
|
import { appFromAddressesMapHelper } from '../contracts/contracts.js';
|
|
5
4
|
import { igpFactories } from './contracts.js';
|
|
6
5
|
export class HyperlaneIgp extends HyperlaneApp {
|
|
7
|
-
static fromEnvironment(env, multiProvider) {
|
|
8
|
-
const envAddresses = hyperlaneEnvironments[env];
|
|
9
|
-
if (!envAddresses) {
|
|
10
|
-
throw new Error(`No addresses found for ${env}`);
|
|
11
|
-
}
|
|
12
|
-
/// @ts-ignore
|
|
13
|
-
return HyperlaneIgp.fromAddressesMap(envAddresses, multiProvider);
|
|
14
|
-
}
|
|
15
6
|
static fromAddressesMap(addressesMap, multiProvider) {
|
|
16
7
|
const helper = appFromAddressesMapHelper(addressesMap, igpFactories, multiProvider);
|
|
17
8
|
return new HyperlaneIgp(helper.contractsMap, helper.multiProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgp.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"HyperlaneIgp.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAKtE,OAAO,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,OAAO,YAAa,SAAQ,YAA0B;IAC1D,MAAM,CAAC,gBAAgB,CACrB,YAAwC,EACxC,aAA4B;QAE5B,MAAM,MAAM,GAAG,yBAAyB,CACtC,YAAY,EACZ,YAAY,EACZ,aAAa,CACd,CAAC;QACF,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;QAC7D,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,+BAA+B,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;QAC7D,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,qBAAqB,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB,EACpB,6BAAsC;QAEtC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,+BAA+B,CAAC,OAAO,CACjD,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -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":"AAKA,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,EAIV,MAAM,YAAY,CAAC;AAEpB,qBAAa,mBAAoB,SAAQ,mBAAmB,CAC1D,YAAY,EACZ,SAAS,CACV;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,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;IA6CpE,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAmDnE"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
2
|
import { eqAddress } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { BytecodeHash } from '../consts/bytecode.js';
|
|
4
|
-
import { chainMetadata } from '../consts/chainMetadata.js';
|
|
5
4
|
import { HyperlaneAppChecker } from '../deploy/HyperlaneAppChecker.js';
|
|
6
5
|
import { proxyImplementation } from '../deploy/proxy.js';
|
|
7
6
|
import { IgpViolationType, } from './types.js';
|
|
@@ -42,15 +41,14 @@ export class HyperlaneIgpChecker extends HyperlaneAppChecker {
|
|
|
42
41
|
actual: {},
|
|
43
42
|
expected: {},
|
|
44
43
|
};
|
|
45
|
-
const remotes = this.app.remoteChains(local);
|
|
44
|
+
const remotes = await this.app.remoteChains(local);
|
|
46
45
|
for (const remote of remotes) {
|
|
47
46
|
let expectedOverhead = this.configMap[local].overhead[remote];
|
|
48
47
|
if (!expectedOverhead) {
|
|
49
48
|
this.app.logger.debug(`No overhead configured for ${local} -> ${remote}, defaulting to 0`);
|
|
50
49
|
expectedOverhead = 0;
|
|
51
50
|
}
|
|
52
|
-
const remoteId =
|
|
53
|
-
this.multiProvider.getDomainId(remote);
|
|
51
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
54
52
|
const existingOverhead = await defaultIsmIgp.destinationGasLimit(remoteId, 0);
|
|
55
53
|
if (!existingOverhead.eq(expectedOverhead)) {
|
|
56
54
|
const remoteChain = remote;
|
|
@@ -80,8 +78,7 @@ export class HyperlaneIgpChecker extends HyperlaneAppChecker {
|
|
|
80
78
|
};
|
|
81
79
|
const remotes = new Set(Object.keys(this.configMap[local].oracleConfig ?? {}));
|
|
82
80
|
for (const remote of remotes) {
|
|
83
|
-
const remoteId =
|
|
84
|
-
this.multiProvider.getDomainId(remote);
|
|
81
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
85
82
|
const destinationGasConfigs = await igp.destinationGasConfigs(remoteId);
|
|
86
83
|
const actualGasOracle = destinationGasConfigs.gasOracle;
|
|
87
84
|
const expectedGasOracle = coreContracts.storageGasOracle.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,qBAAa,oBAAqB,SAAQ,iBAAiB,CACzD,SAAS,EACT,YAAY,CACb;gBAEG,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,gBAAgB;IAQ/B,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,sBAAsB,CAAC;IA+C5B,sBAAsB,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,gBAAgB,CAAC;IA0DtB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CA+B7C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
1
2
|
import { eqAddress, rootLogger } from '@hyperlane-xyz/utils';
|
|
2
|
-
import {
|
|
3
|
+
import { TOKEN_EXCHANGE_RATE_SCALE } from '../consts/igp.js';
|
|
3
4
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js';
|
|
4
5
|
import { igpFactories } from './contracts.js';
|
|
5
6
|
import { serializeDifference } from './oracle/types.js';
|
|
@@ -14,8 +15,7 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
14
15
|
const igp = await this.deployProxiedContract(chain, 'interchainGasPaymaster', 'interchainGasPaymaster', proxyAdmin.address, [], [await this.multiProvider.getSignerAddress(chain), config.beneficiary]);
|
|
15
16
|
const gasParamsToSet = [];
|
|
16
17
|
for (const [remote, newGasOverhead] of Object.entries(config.overhead)) {
|
|
17
|
-
const remoteId =
|
|
18
|
-
this.multiProvider.getDomainId(remote);
|
|
18
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
19
19
|
const currentGasConfig = await igp.destinationGasConfigs(remoteId);
|
|
20
20
|
if (!eqAddress(currentGasConfig.gasOracle, storageGasOracle.address) ||
|
|
21
21
|
!currentGasConfig.gasOverhead.eq(newGasOverhead)) {
|
|
@@ -40,22 +40,27 @@ export class HyperlaneIgpDeployer extends HyperlaneDeployer {
|
|
|
40
40
|
this.logger.debug('No oracle config provided, skipping...');
|
|
41
41
|
return gasOracle;
|
|
42
42
|
}
|
|
43
|
-
this.logger.
|
|
43
|
+
this.logger.info(`Configuring gas oracle from ${chain}...`);
|
|
44
44
|
const configsToSet = [];
|
|
45
45
|
// For each remote, check if the gas oracle has the correct data
|
|
46
46
|
for (const [remote, desired] of Object.entries(config.oracleConfig)) {
|
|
47
47
|
// check core metadata for non EVMs and fallback to multiprovider for custom EVMs
|
|
48
|
-
const remoteDomain =
|
|
49
|
-
this.multiProvider.getDomainId(remote);
|
|
48
|
+
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
50
49
|
const actual = await gasOracle.remoteGasData(remoteDomain);
|
|
51
50
|
if (!actual.gasPrice.eq(desired.gasPrice) ||
|
|
52
51
|
!actual.tokenExchangeRate.eq(desired.tokenExchangeRate)) {
|
|
53
|
-
this.logger.
|
|
52
|
+
this.logger.info(`${chain} -> ${remote}: ${serializeDifference(actual, desired)}`);
|
|
54
53
|
configsToSet.push({
|
|
55
54
|
remoteDomain,
|
|
56
55
|
...desired,
|
|
57
56
|
});
|
|
58
57
|
}
|
|
58
|
+
const exampleRemoteGas = (config.overhead[remote] ?? 200000) + 50000;
|
|
59
|
+
const exampleRemoteGasCost = desired.tokenExchangeRate
|
|
60
|
+
.mul(desired.gasPrice)
|
|
61
|
+
.mul(exampleRemoteGas)
|
|
62
|
+
.div(TOKEN_EXCHANGE_RATE_SCALE);
|
|
63
|
+
this.logger.info(`${chain} -> ${remote}: ${exampleRemoteGas} remote gas cost: ${ethers.utils.formatEther(exampleRemoteGasCost)}`);
|
|
59
64
|
}
|
|
60
65
|
if (configsToSet.length > 0) {
|
|
61
66
|
await this.runIfOwner(chain, gasOracle, async () => this.multiProvider.handleTx(chain, gasOracle.setRemoteGasDataConfigs(configsToSet, this.multiProvider.getTransactionOverrides(chain))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
import { utils } from 'ethers';
|
|
3
3
|
import hre from 'hardhat';
|
|
4
|
+
import { TestChainName } from '../../consts/testChains.js';
|
|
4
5
|
import { MultiProvider } from '../../providers/MultiProvider.js';
|
|
5
6
|
import { testIgpConfig } from '../../test/testUtils.js';
|
|
6
7
|
import { HyperlaneIgpDeployer } from '../HyperlaneIgpDeployer.js';
|
|
7
8
|
describe('HyperlaneIgpDeployer', () => {
|
|
8
|
-
const local =
|
|
9
|
-
const remote =
|
|
9
|
+
const local = TestChainName.test1;
|
|
10
|
+
const remote = TestChainName.test2;
|
|
10
11
|
let remoteId;
|
|
11
12
|
let deployer;
|
|
12
13
|
let igp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-gas-oracles.hardhat-test.js","sourceRoot":"","sources":["../../../src/gas/oracle/configure-gas-oracles.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,GAAG,MAAM,SAAS,CAAC;AAI1B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"configure-gas-oracles.hardhat-test.js","sourceRoot":"","sources":["../../../src/gas/oracle/configure-gas-oracles.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,GAAG,MAAM,SAAS,CAAC;AAI1B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,IAAI,QAAgB,CAAC;IACrB,IAAI,QAA8B,CAAC;IACnC,IAAI,GAA2B,CAAC;IAChC,IAAI,aAA4B,CAAC;IACjC,IAAI,UAA+B,CAAC;IAEpC,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/C,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,QAAQ,GAAG,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACnD,UAAU,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,SAAS;QACT,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC;YACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;SACpD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,UAAU,CAAC,KAAK,CAAC,CAAC,YAAa,CAAC,MAAM,CAAC,GAAG;YACxC,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;YAChD,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACxC,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,eAAe,CACnD,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,CAClB,CAAC;QACF,GAAG,GAAG,cAAc,CAAC,sBAAsB,CAAC;QAE5C,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC;YACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;SACpD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gas/oracle/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,oBAAY,qBAAqB;IAC/B,gBAAgB,qBAAqB;CACtC;AAGD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,CAAC,+BAA+B,EAChD,UAAU,GAAG,mBAAmB,CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,WACxB,sBAAsB,KAC7B;IACD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAOjB,CAAC;AAkBH,eAAO,MAAM,mBAAmB,WACtB,sBAAsB,YACpB,sBAAsB,KAC/B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gas/oracle/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,oBAAY,qBAAqB;IAC/B,gBAAgB,qBAAqB;CACtC;AAGD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,CAAC,+BAA+B,EAChD,UAAU,GAAG,mBAAmB,CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,WACxB,sBAAsB,KAC7B;IACD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAOjB,CAAC;AAkBH,eAAO,MAAM,mBAAmB,WACtB,sBAAsB,YACpB,sBAAsB,KAC/B,MAiBF,CAAC"}
|
package/dist/gas/oracle/types.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
2
|
+
import { TOKEN_EXCHANGE_RATE_DECIMALS } from '../../consts/igp.js';
|
|
3
3
|
export var GasOracleContractType;
|
|
4
4
|
(function (GasOracleContractType) {
|
|
5
5
|
GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
|
|
6
6
|
})(GasOracleContractType || (GasOracleContractType = {}));
|
|
7
7
|
export const formatGasOracleConfig = (config) => ({
|
|
8
|
-
tokenExchangeRate: ethers.utils.formatUnits(config.tokenExchangeRate,
|
|
8
|
+
tokenExchangeRate: ethers.utils.formatUnits(config.tokenExchangeRate, TOKEN_EXCHANGE_RATE_DECIMALS),
|
|
9
9
|
gasPrice: ethers.utils.formatUnits(config.gasPrice, 'gwei'),
|
|
10
10
|
});
|
|
11
11
|
const percentDifference = (actual, expected) => expected.sub(actual).mul(100).div(actual);
|
|
@@ -19,7 +19,8 @@ const serializePercentDifference = (actual, expected) => {
|
|
|
19
19
|
export const serializeDifference = (actual, expected) => {
|
|
20
20
|
const gasPriceDiff = serializePercentDifference(actual.gasPrice, expected.gasPrice);
|
|
21
21
|
const tokenExchangeRateDiff = serializePercentDifference(actual.tokenExchangeRate, expected.tokenExchangeRate);
|
|
22
|
+
const productDiff = serializePercentDifference(actual.tokenExchangeRate.mul(actual.gasPrice), expected.tokenExchangeRate.mul(expected.gasPrice));
|
|
22
23
|
const formatted = formatGasOracleConfig(expected);
|
|
23
|
-
return
|
|
24
|
+
return `Exchange rate: ${formatted.tokenExchangeRate} (${tokenExchangeRateDiff}), Gas price: ${formatted.gasPrice} gwei (${gasPriceDiff}), Product diff: ${productDiff}`;
|
|
24
25
|
};
|
|
25
26
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gas/oracle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;AACvC,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAQD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAA8B,EAI9B,EAAE,CAAC,CAAC;IACJ,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CACzC,MAAM,CAAC,iBAAiB,EACxB,4BAA4B,CAC7B;IACD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CACxB,MAAwB,EACxB,QAA0B,EACR,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,0BAA0B,GAAG,CACjC,MAAwB,EACxB,QAA0B,EAClB,EAAE;IACV,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA8B,EAC9B,QAAgC,EACxB,EAAE;IACV,MAAM,YAAY,GAAG,0BAA0B,CAC7C,MAAM,CAAC,QAAQ,EACf,QAAQ,CAAC,QAAQ,CAClB,CAAC;IACF,MAAM,qBAAqB,GAAG,0BAA0B,CACtD,MAAM,CAAC,iBAAiB,EACxB,QAAQ,CAAC,iBAAiB,CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gas/oracle/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;AACvC,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAQD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAA8B,EAI9B,EAAE,CAAC,CAAC;IACJ,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CACzC,MAAM,CAAC,iBAAiB,EACxB,4BAA4B,CAC7B;IACD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CACxB,MAAwB,EACxB,QAA0B,EACR,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,0BAA0B,GAAG,CACjC,MAAwB,EACxB,QAA0B,EAClB,EAAE;IACV,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA8B,EAC9B,QAAgC,EACxB,EAAE;IACV,MAAM,YAAY,GAAG,0BAA0B,CAC7C,MAAM,CAAC,QAAQ,EACf,QAAQ,CAAC,QAAQ,CAClB,CAAC;IACF,MAAM,qBAAqB,GAAG,0BAA0B,CACtD,MAAM,CAAC,iBAAiB,EACxB,QAAQ,CAAC,iBAAiB,CAC3B,CAAC;IAEF,MAAM,WAAW,GAAG,0BAA0B,CAC5C,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC7C,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;IAEF,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,kBAAkB,SAAS,CAAC,iBAAiB,KAAK,qBAAqB,iBAAiB,SAAS,CAAC,QAAQ,UAAU,YAAY,oBAAoB,WAAW,EAAE,CAAC;AAC3K,CAAC,CAAC"}
|
|
@@ -27,8 +27,8 @@ export declare class CoinGeckoTokenPriceGetter implements TokenPriceGetter {
|
|
|
27
27
|
protected cache: TokenPriceCache;
|
|
28
28
|
protected sleepMsBetweenRequests: number;
|
|
29
29
|
protected metadata: ChainMap<ChainMetadata>;
|
|
30
|
-
constructor(coinGecko: CoinGeckoInterface, expirySeconds?: number, sleepMsBetweenRequests?: number
|
|
31
|
-
static withDefaultCoinGecko(expirySeconds?: number, sleepMsBetweenRequests?: number): CoinGeckoTokenPriceGetter;
|
|
30
|
+
constructor(coinGecko: CoinGeckoInterface, chainMetadata: ChainMap<ChainMetadata>, expirySeconds?: number, sleepMsBetweenRequests?: number);
|
|
31
|
+
static withDefaultCoinGecko(chainMetadata: ChainMap<ChainMetadata>, expirySeconds?: number, sleepMsBetweenRequests?: number): CoinGeckoTokenPriceGetter;
|
|
32
32
|
getTokenPrice(chain: ChainName): Promise<number>;
|
|
33
33
|
getTokenExchangeRate(base: ChainName, quote: ChainName): Promise<number>;
|
|
34
34
|
private getTokenPrices;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-prices.d.ts","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"token-prices.d.ts","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AAItC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3D,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC3D,MAAM,MAAM,0BAA0B,GAAG,UAAU,CACjD,wBAAwB,CAAC,OAAO,CAAC,CAClC,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9E,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,cAAM,eAAe;IACnB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACtD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAEtB,YAAY,SAAK,EAAE,eAAe,SAAc;IAM5D,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAWlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;CAchC;AAED,qBAAa,yBAA0B,YAAW,gBAAgB;IAChE,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACxC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAG1C,SAAS,EAAE,kBAAkB,EAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,aAAa,CAAC,EAAE,MAAM,EACtB,sBAAsB,SAAO;IAQ/B,MAAM,CAAC,oBAAoB,CACzB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,aAAa,CAAC,EAAE,MAAM,EACtB,sBAAsB,SAAO,GAC5B,yBAAyB;IAUtB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,oBAAoB,CACxB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;YAKJ,cAAc;YA0Bd,gBAAgB;CAiB/B"}
|
package/dist/gas/token-prices.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import CoinGecko from 'coingecko-api';
|
|
2
2
|
import { rootLogger, sleep } from '@hyperlane-xyz/utils';
|
|
3
|
-
import { chainMetadata as defaultChainMetadata } from '../consts/chainMetadata.js';
|
|
4
|
-
import { Mainnets } from '../consts/chains.js';
|
|
5
3
|
class TokenPriceCache {
|
|
6
4
|
cache;
|
|
7
5
|
freshSeconds;
|
|
@@ -41,15 +39,15 @@ export class CoinGeckoTokenPriceGetter {
|
|
|
41
39
|
cache;
|
|
42
40
|
sleepMsBetweenRequests;
|
|
43
41
|
metadata;
|
|
44
|
-
constructor(coinGecko, expirySeconds, sleepMsBetweenRequests = 5000
|
|
42
|
+
constructor(coinGecko, chainMetadata, expirySeconds, sleepMsBetweenRequests = 5000) {
|
|
45
43
|
this.coinGecko = coinGecko;
|
|
46
44
|
this.cache = new TokenPriceCache(expirySeconds);
|
|
47
45
|
this.metadata = chainMetadata;
|
|
48
46
|
this.sleepMsBetweenRequests = sleepMsBetweenRequests;
|
|
49
47
|
}
|
|
50
|
-
static withDefaultCoinGecko(expirySeconds, sleepMsBetweenRequests = 5000) {
|
|
48
|
+
static withDefaultCoinGecko(chainMetadata, expirySeconds, sleepMsBetweenRequests = 5000) {
|
|
51
49
|
const coinGecko = new CoinGecko();
|
|
52
|
-
return new CoinGeckoTokenPriceGetter(coinGecko, expirySeconds, sleepMsBetweenRequests);
|
|
50
|
+
return new CoinGeckoTokenPriceGetter(coinGecko, chainMetadata, expirySeconds, sleepMsBetweenRequests);
|
|
53
51
|
}
|
|
54
52
|
async getTokenPrice(chain) {
|
|
55
53
|
const [price] = await this.getTokenPrices([chain]);
|
|
@@ -60,8 +58,7 @@ export class CoinGeckoTokenPriceGetter {
|
|
|
60
58
|
return basePrice / quotePrice;
|
|
61
59
|
}
|
|
62
60
|
async getTokenPrices(chains) {
|
|
63
|
-
|
|
64
|
-
const isMainnet = chains.map((c) => Mainnets.includes(c));
|
|
61
|
+
const isMainnet = chains.map((c) => !this.metadata[c].isTestnet);
|
|
65
62
|
const allMainnets = isMainnet.every((v) => v === true);
|
|
66
63
|
const allTestnets = isMainnet.every((v) => v === false);
|
|
67
64
|
if (allTestnets) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-prices.js","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"token-prices.js","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import {
|
|
3
|
-
import { MockCoinGecko } from '../test/
|
|
2
|
+
import { TestChainName, testChainMetadata } from '../consts/testChains.js';
|
|
3
|
+
import { MockCoinGecko } from '../test/MockCoinGecko.js';
|
|
4
4
|
import { CoinGeckoTokenPriceGetter } from './token-prices.js';
|
|
5
5
|
describe('TokenPriceGetter', () => {
|
|
6
6
|
let tokenPriceGetter;
|
|
7
7
|
let mockCoinGecko;
|
|
8
|
-
const chainA =
|
|
8
|
+
const chainA = TestChainName.test1, chainB = TestChainName.test2, priceA = 1, priceB = 5.5;
|
|
9
9
|
before(async () => {
|
|
10
10
|
mockCoinGecko = new MockCoinGecko();
|
|
11
11
|
// Origin token
|
|
12
12
|
mockCoinGecko.setTokenPrice(chainA, priceA);
|
|
13
13
|
// Destination token
|
|
14
14
|
mockCoinGecko.setTokenPrice(chainB, priceB);
|
|
15
|
-
tokenPriceGetter = new CoinGeckoTokenPriceGetter(mockCoinGecko, undefined, 0);
|
|
15
|
+
tokenPriceGetter = new CoinGeckoTokenPriceGetter(mockCoinGecko, testChainMetadata, undefined, 0);
|
|
16
16
|
});
|
|
17
17
|
describe('getTokenPrice', () => {
|
|
18
18
|
it('returns a token price', async () => {
|
|
@@ -27,8 +27,8 @@ describe('TokenPriceGetter', () => {
|
|
|
27
27
|
describe('getTokenExchangeRate', () => {
|
|
28
28
|
it('returns a value consistent with getTokenPrice()', async () => {
|
|
29
29
|
const exchangeRate = await tokenPriceGetter.getTokenExchangeRate(chainA, chainB);
|
|
30
|
-
|
|
31
|
-
expect(exchangeRate).to.equal(
|
|
30
|
+
// Should equal 1 because testnet prices are always forced to 1
|
|
31
|
+
expect(exchangeRate).to.equal(1);
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-prices.test.js","sourceRoot":"","sources":["../../src/gas/token-prices.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"token-prices.test.js","sourceRoot":"","sources":["../../src/gas/token-prices.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,gBAA2C,CAAC;IAChD,IAAI,aAA4B,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAChC,MAAM,GAAG,aAAa,CAAC,KAAK,EAC5B,MAAM,GAAG,CAAC,EACV,MAAM,GAAG,GAAG,CAAC;IACf,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,eAAe;QACf,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,oBAAoB;QACpB,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,gBAAgB,GAAG,IAAI,yBAAyB,CAC9C,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,CAAC,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAC9D,MAAM,EACN,MAAM,CACP,CAAC;YACF,+DAA+D;YAC/D,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneHookDeployer.d.ts","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAGjB,WAAW,EAEX,WAAW,EAEZ,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneHookDeployer.d.ts","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAGjB,WAAW,EAEX,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAgB,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,qBAAa,qBAAsB,SAAQ,iBAAiB,CAC1D,UAAU,EACV,aAAa,CACd;IAGG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,mBAAmB;IAExC,QAAQ,CAAC,WAAW;gBAJpB,aAAa,EAAE,aAAa,EACnB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EACtC,UAAU,EAAE,mBAAmB,EACxC,gBAAgB,CAAC,EAAE,gBAAgB,EAC1B,WAAW,uBAGnB;IAQH,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAKxD,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IA2CvC,iBAAiB,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,WAAW,CAAC;IAUjB,SAAS,CACb,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,EACrB,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAmBtC,iBAAiB,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,qBAAqB,EAC7B,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IA8BvC,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,EACzB,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,WAAW,CAAC;IAqEjB,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,uBAAuB,GAAG,yBAAyB,EAC3D,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;CAyE9B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { IL1CrossDomainMessenger__factory, StaticAggregationHook__factory, } from '@hyperlane-xyz/core';
|
|
3
3
|
import { addressToBytes32, rootLogger } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { chainMetadata } from '../consts/chainMetadata.js';
|
|
5
4
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js';
|
|
6
5
|
import { HyperlaneIgpDeployer } from '../gas/HyperlaneIgpDeployer.js';
|
|
7
6
|
import { IsmType } from '../ism/types.js';
|
|
@@ -168,7 +167,7 @@ export class HyperlaneHookDeployer extends HyperlaneDeployer {
|
|
|
168
167
|
}
|
|
169
168
|
const routingConfigs = [];
|
|
170
169
|
for (const [dest, hookConfig] of Object.entries(config.domains)) {
|
|
171
|
-
const destDomain =
|
|
170
|
+
const destDomain = this.multiProvider.getDomainId(dest);
|
|
172
171
|
if (typeof hookConfig === 'string') {
|
|
173
172
|
routingConfigs.push({
|
|
174
173
|
destination: destDomain,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneHookDeployer.js","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAGL,gCAAgC,EAIhC,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAW,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneHookDeployer.js","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { providers } from 'ethers';
|
|
2
|
+
import { Address, WithAddress } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
4
|
+
import { ChainNameOrId } from '../types.js';
|
|
5
|
+
import { AggregationHookConfig, DomainRoutingHookConfig, FallbackRoutingHookConfig, HookConfig, IgpHookConfig, MerkleTreeHookConfig, OpStackHookConfig, PausableHookConfig, ProtocolFeeHookConfig } from './types.js';
|
|
6
|
+
export interface HookReader {
|
|
7
|
+
deriveHookConfig(address: Address): Promise<WithAddress<HookConfig>>;
|
|
8
|
+
deriveMerkleTreeConfig(address: Address): Promise<WithAddress<MerkleTreeHookConfig>>;
|
|
9
|
+
deriveAggregationConfig(address: Address): Promise<WithAddress<AggregationHookConfig>>;
|
|
10
|
+
deriveIgpConfig(address: Address): Promise<WithAddress<IgpHookConfig>>;
|
|
11
|
+
deriveProtocolFeeConfig(address: Address): Promise<WithAddress<ProtocolFeeHookConfig>>;
|
|
12
|
+
deriveOpStackConfig(address: Address): Promise<WithAddress<OpStackHookConfig>>;
|
|
13
|
+
deriveDomainRoutingConfig(address: Address): Promise<WithAddress<DomainRoutingHookConfig>>;
|
|
14
|
+
deriveFallbackRoutingConfig(address: Address): Promise<WithAddress<FallbackRoutingHookConfig>>;
|
|
15
|
+
derivePausableConfig(address: Address): Promise<WithAddress<PausableHookConfig>>;
|
|
16
|
+
}
|
|
17
|
+
export declare class EvmHookReader implements HookReader {
|
|
18
|
+
protected readonly multiProvider: MultiProvider;
|
|
19
|
+
protected readonly chain: ChainNameOrId;
|
|
20
|
+
protected readonly concurrency: number;
|
|
21
|
+
protected readonly provider: providers.Provider;
|
|
22
|
+
protected readonly logger: import("pino").default.Logger<never>;
|
|
23
|
+
constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number);
|
|
24
|
+
deriveHookConfig(address: Address): Promise<WithAddress<HookConfig>>;
|
|
25
|
+
deriveMerkleTreeConfig(address: Address): Promise<WithAddress<MerkleTreeHookConfig>>;
|
|
26
|
+
deriveAggregationConfig(address: Address): Promise<WithAddress<AggregationHookConfig>>;
|
|
27
|
+
deriveIgpConfig(address: Address): Promise<WithAddress<IgpHookConfig>>;
|
|
28
|
+
deriveProtocolFeeConfig(address: Address): Promise<WithAddress<ProtocolFeeHookConfig>>;
|
|
29
|
+
deriveOpStackConfig(address: Address): Promise<WithAddress<OpStackHookConfig>>;
|
|
30
|
+
deriveDomainRoutingConfig(address: Address): Promise<WithAddress<DomainRoutingHookConfig>>;
|
|
31
|
+
deriveFallbackRoutingConfig(address: Address): Promise<WithAddress<FallbackRoutingHookConfig>>;
|
|
32
|
+
private fetchDomainHooks;
|
|
33
|
+
derivePausableConfig(address: Address): Promise<WithAddress<PausableHookConfig>>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/hook/read.ts"],"names":[],"mappings":"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"}
|