@hyperlane-xyz/sdk 3.6.2 → 3.8.0-beta0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts/chainMetadata.d.ts +3 -2
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +99 -72
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +3 -2
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +6 -4
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +141 -133
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/mainnet.json +20 -0
- package/dist/consts/environments/testnet.json +166 -178
- package/dist/consts/igp.d.ts +2 -0
- package/dist/consts/igp.d.ts.map +1 -0
- package/dist/consts/igp.js +5 -0
- package/dist/consts/igp.js.map +1 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +22 -18
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +4 -2
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +10 -4
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +3 -3
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +6 -2
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +24 -11
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestRecipientDeployer.d.ts +2 -1
- package/dist/core/TestRecipientDeployer.d.ts.map +1 -1
- package/dist/core/TestRecipientDeployer.js +2 -1
- package/dist/core/TestRecipientDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +7 -6
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +34 -13
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -1
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +9 -12
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +147 -121
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +14 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js +31 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -0
- package/dist/deploy/verify/types.d.ts +60 -3
- package/dist/deploy/verify/types.d.ts.map +1 -1
- package/dist/deploy/verify/types.js +42 -0
- package/dist/deploy/verify/types.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +0 -2
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +8 -29
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +3 -2
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +47 -20
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.d.ts +2 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.d.ts.map +1 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +47 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -0
- package/dist/gas/oracle/types.d.ts +11 -0
- package/dist/gas/oracle/types.d.ts.map +1 -0
- package/dist/gas/oracle/types.js +30 -0
- package/dist/gas/oracle/types.js.map +1 -0
- package/dist/gas/types.d.ts +3 -4
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +1 -5
- package/dist/gas/types.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +2 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +6 -4
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -20
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +11 -10
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -12
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +39 -287
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/utils.d.ts +11 -0
- package/dist/ism/utils.d.ts.map +1 -0
- package/dist/ism/utils.js +277 -0
- package/dist/ism/utils.js.map +1 -0
- package/dist/metadata/ChainMetadataManager.d.ts +43 -21
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +26 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +138 -46
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +1 -1
- package/dist/metadata/blockExplorer.d.ts +6 -1
- package/dist/metadata/blockExplorer.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.js +15 -1
- package/dist/metadata/blockExplorer.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +202 -1
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +18 -4
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/customZodTypes.d.ts +2 -0
- package/dist/metadata/customZodTypes.d.ts.map +1 -1
- package/dist/metadata/customZodTypes.js +3 -1
- package/dist/metadata/customZodTypes.js.map +1 -1
- package/dist/metadata/health.js +2 -2
- package/dist/metadata/health.js.map +1 -1
- package/dist/metadata/warpRouteConfig.d.ts +134 -0
- package/dist/metadata/warpRouteConfig.d.ts.map +1 -0
- package/dist/metadata/warpRouteConfig.js +24 -0
- package/dist/metadata/warpRouteConfig.js.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +4 -2
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +4 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.js +4 -2
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +10 -12
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +2 -7
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +17 -17
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +12 -1
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +5 -2
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +10 -1
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts +2 -2
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +3 -3
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +1 -0
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +2 -2
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +2 -3
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/test/metadata-check.js +7 -39
- package/dist/test/metadata-check.js.map +1 -1
- package/dist/test/testUtils.d.ts +2 -0
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +19 -1
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/IToken.d.ts +147 -0
- package/dist/token/IToken.d.ts.map +1 -0
- package/dist/token/IToken.js +37 -0
- package/dist/token/IToken.js.map +1 -0
- package/dist/token/Token.d.ts +58 -0
- package/dist/token/Token.d.ts.map +1 -0
- package/dist/token/Token.js +260 -0
- package/dist/token/Token.js.map +1 -0
- package/dist/token/Token.test.d.ts +2 -0
- package/dist/token/Token.test.d.ts.map +1 -0
- package/dist/token/Token.test.js +155 -0
- package/dist/token/Token.test.js.map +1 -0
- package/dist/token/TokenAmount.d.ts +12 -0
- package/dist/token/TokenAmount.d.ts.map +1 -0
- package/dist/token/TokenAmount.js +24 -0
- package/dist/token/TokenAmount.js.map +1 -0
- package/dist/token/TokenAmount.test.d.ts +2 -0
- package/dist/token/TokenAmount.test.d.ts.map +1 -0
- package/dist/token/TokenAmount.test.js +41 -0
- package/dist/token/TokenAmount.test.js.map +1 -0
- package/dist/token/TokenConnection.d.ts +81 -0
- package/dist/token/TokenConnection.d.ts.map +1 -0
- package/dist/token/TokenConnection.js +36 -0
- package/dist/token/TokenConnection.js.map +1 -0
- package/dist/token/TokenStandard.d.ts +36 -0
- package/dist/token/TokenStandard.d.ts.map +1 -0
- package/dist/token/TokenStandard.js +118 -0
- package/dist/token/TokenStandard.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +29 -30
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js +65 -50
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +11 -9
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +25 -6
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +27 -16
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +69 -23
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +16 -11
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +15 -13
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +17 -15
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/deploy.d.ts +3 -2
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +4 -2
- package/dist/token/deploy.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/warp/WarpCore.d.ts +76 -0
- package/dist/warp/WarpCore.d.ts.map +1 -0
- package/dist/warp/WarpCore.js +288 -0
- package/dist/warp/WarpCore.js.map +1 -0
- package/dist/warp/WarpCore.test.d.ts +2 -0
- package/dist/warp/WarpCore.test.d.ts.map +1 -0
- package/dist/warp/WarpCore.test.js +143 -0
- package/dist/warp/WarpCore.test.js.map +1 -0
- package/dist/warp/types.d.ts +274 -0
- package/dist/warp/types.d.ts.map +1 -0
- package/dist/warp/types.js +38 -0
- package/dist/warp/types.js.map +1 -0
- package/logos/black/cosmwasm.svg +1 -1
- package/logos/black/inevm.svg +1 -0
- package/logos/black/injective.svg +1 -0
- package/logos/black/nautilus.svg +1 -0
- package/logos/black/plume.svg +29 -0
- package/logos/color/cosmos.svg +1 -1
- package/logos/color/cosmwasm.svg +1 -1
- package/logos/color/inevm.svg +1 -0
- package/logos/color/injective.svg +1 -0
- package/logos/color/manta.svg +1 -1
- package/logos/color/nautilus.svg +1 -0
- package/logos/color/plume.svg +24 -0
- package/package.json +5 -4
|
@@ -4,6 +4,7 @@ exports.HyperlaneIgpChecker = void 0;
|
|
|
4
4
|
const ethers_1 = require("ethers");
|
|
5
5
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
6
6
|
const bytecode_1 = require("../consts/bytecode");
|
|
7
|
+
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
7
8
|
const HyperlaneAppChecker_1 = require("../deploy/HyperlaneAppChecker");
|
|
8
9
|
const proxy_1 = require("../deploy/proxy");
|
|
9
10
|
const types_1 = require("./types");
|
|
@@ -17,11 +18,7 @@ class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
17
18
|
}
|
|
18
19
|
async checkDomainOwnership(chain) {
|
|
19
20
|
const config = this.configMap[chain];
|
|
20
|
-
|
|
21
|
-
...config.ownerOverrides,
|
|
22
|
-
storageGasOracle: config.oracleKey,
|
|
23
|
-
};
|
|
24
|
-
await super.checkOwnership(chain, config.owner, ownableOverrides);
|
|
21
|
+
await super.checkOwnership(chain, config.owner, config.ownerOverrides);
|
|
25
22
|
}
|
|
26
23
|
async checkBytecodes(chain) {
|
|
27
24
|
const contracts = this.app.getContracts(chain);
|
|
@@ -55,7 +52,8 @@ class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
55
52
|
this.app.logger(`No overhead configured for ${local} -> ${remote}, defaulting to 0`);
|
|
56
53
|
expectedOverhead = 0;
|
|
57
54
|
}
|
|
58
|
-
const remoteId =
|
|
55
|
+
const remoteId = chainMetadata_1.chainMetadata[remote]?.domainId ??
|
|
56
|
+
this.multiProvider.getDomainId(remote);
|
|
59
57
|
const existingOverhead = await defaultIsmIgp.destinationGasLimit(remoteId, 0);
|
|
60
58
|
if (!existingOverhead.eq(expectedOverhead)) {
|
|
61
59
|
const remoteChain = remote;
|
|
@@ -83,17 +81,13 @@ class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
83
81
|
actual: {},
|
|
84
82
|
expected: {},
|
|
85
83
|
};
|
|
86
|
-
|
|
87
|
-
// also consider what the config says about non-Ethereum chains.
|
|
88
|
-
const remotes = new Set([
|
|
89
|
-
...this.app.remoteChains(local),
|
|
90
|
-
...Object.keys(this.configMap[local].gasOracleType),
|
|
91
|
-
]);
|
|
84
|
+
const remotes = new Set(Object.keys(this.configMap[local].oracleConfig ?? {}));
|
|
92
85
|
for (const remote of remotes) {
|
|
93
|
-
const remoteId =
|
|
86
|
+
const remoteId = chainMetadata_1.chainMetadata[remote]?.domainId ??
|
|
87
|
+
this.multiProvider.getDomainId(remote);
|
|
94
88
|
const destinationGasConfigs = await igp.destinationGasConfigs(remoteId);
|
|
95
89
|
const actualGasOracle = destinationGasConfigs.gasOracle;
|
|
96
|
-
const expectedGasOracle =
|
|
90
|
+
const expectedGasOracle = coreContracts.storageGasOracle.address;
|
|
97
91
|
if (!(0, utils_1.eqAddress)(actualGasOracle, expectedGasOracle)) {
|
|
98
92
|
const remoteChain = remote;
|
|
99
93
|
gasOraclesViolation.actual[remoteChain] = actualGasOracle;
|
|
@@ -118,21 +112,6 @@ class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
118
112
|
this.addViolation(violation);
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
|
-
getGasOracleAddress(local, remote) {
|
|
122
|
-
const config = this.configMap[local];
|
|
123
|
-
const gasOracleType = config.gasOracleType[remote];
|
|
124
|
-
if (!gasOracleType) {
|
|
125
|
-
this.app.logger(`No gas oracle for local ${local} and remote ${remote}, defaulting to zero address`);
|
|
126
|
-
return ethers_1.ethers.constants.AddressZero;
|
|
127
|
-
}
|
|
128
|
-
const coreContracts = this.app.getContracts(local);
|
|
129
|
-
switch (gasOracleType) {
|
|
130
|
-
case types_1.GasOracleContractType.StorageGasOracle:
|
|
131
|
-
return coreContracts.storageGasOracle.address;
|
|
132
|
-
default:
|
|
133
|
-
throw Error(`Unsupported gas oracle type ${gasOracleType}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
115
|
}
|
|
137
116
|
exports.HyperlaneIgpChecker = HyperlaneIgpChecker;
|
|
138
117
|
//# sourceMappingURL=HyperlaneIgpChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { InterchainGasPaymaster, ProxyAdmin, StorageGasOracle } from '@hyperlane-xyz/core';
|
|
2
2
|
import { HyperlaneContracts } from '../contracts/types';
|
|
3
3
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
|
|
4
|
+
import { ContractVerifier } from '../deploy/verify/ContractVerifier';
|
|
4
5
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
5
6
|
import { ChainName } from '../types';
|
|
6
7
|
import { IgpFactories } from './contracts';
|
|
7
8
|
import { IgpConfig } from './types';
|
|
8
9
|
export declare class HyperlaneIgpDeployer extends HyperlaneDeployer<IgpConfig, IgpFactories> {
|
|
9
|
-
constructor(multiProvider: MultiProvider);
|
|
10
|
+
constructor(multiProvider: MultiProvider, contractVerifier?: ContractVerifier);
|
|
10
11
|
deployInterchainGasPaymaster(chain: ChainName, proxyAdmin: ProxyAdmin, storageGasOracle: StorageGasOracle, config: IgpConfig): Promise<InterchainGasPaymaster>;
|
|
11
|
-
deployStorageGasOracle(chain: ChainName): Promise<StorageGasOracle>;
|
|
12
|
+
deployStorageGasOracle(chain: ChainName, config: IgpConfig): Promise<StorageGasOracle>;
|
|
12
13
|
deployContracts(chain: ChainName, config: IgpConfig): Promise<HyperlaneContracts<IgpFactories>>;
|
|
13
14
|
}
|
|
14
15
|
//# 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,EACjB,MAAM,qBAAqB,CAAC;
|
|
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,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,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;IAiD5B,sBAAsB,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,gBAAgB,CAAC;IA+CtB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CA+B7C"}
|
|
@@ -6,27 +6,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.HyperlaneIgpDeployer = void 0;
|
|
7
7
|
const debug_1 = __importDefault(require("debug"));
|
|
8
8
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
9
|
+
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
9
10
|
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
10
11
|
const contracts_1 = require("./contracts");
|
|
12
|
+
const types_1 = require("./oracle/types");
|
|
11
13
|
class HyperlaneIgpDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
12
|
-
constructor(multiProvider) {
|
|
14
|
+
constructor(multiProvider, contractVerifier) {
|
|
13
15
|
super(multiProvider, contracts_1.igpFactories, {
|
|
14
16
|
logger: (0, debug_1.default)('hyperlane:IgpDeployer'),
|
|
17
|
+
contractVerifier,
|
|
15
18
|
});
|
|
16
19
|
}
|
|
17
20
|
async deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle, config) {
|
|
18
|
-
const owner = config.owner;
|
|
19
21
|
const beneficiary = config.beneficiary;
|
|
20
|
-
const igp = await this.deployProxiedContract(chain, 'interchainGasPaymaster', proxyAdmin.address, [], [
|
|
22
|
+
const igp = await this.deployProxiedContract(chain, 'interchainGasPaymaster', proxyAdmin.address, [], [await this.multiProvider.getSignerAddress(chain), beneficiary]);
|
|
21
23
|
const gasParamsToSet = [];
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const newGasOverhead = config.overhead[remote];
|
|
24
|
+
for (const [remote, newGasOverhead] of Object.entries(config.overhead)) {
|
|
25
|
+
const remoteId = chainMetadata_1.chainMetadata[remote]?.domainId ??
|
|
26
|
+
this.multiProvider.getDomainId(remote);
|
|
26
27
|
const currentGasConfig = await igp.destinationGasConfigs(remoteId);
|
|
27
28
|
if (!(0, utils_1.eqAddress)(currentGasConfig.gasOracle, storageGasOracle.address) ||
|
|
28
29
|
!currentGasConfig.gasOverhead.eq(newGasOverhead)) {
|
|
29
|
-
this.logger(`Setting gas params for ${remote}
|
|
30
|
+
this.logger(`Setting gas params for ${chain} -> ${remote}: gasOverhead = ${newGasOverhead} gasOracle = ${storageGasOracle.address}`);
|
|
30
31
|
gasParamsToSet.push({
|
|
31
32
|
remoteDomain: remoteId,
|
|
32
33
|
config: {
|
|
@@ -41,28 +42,54 @@ class HyperlaneIgpDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
41
42
|
}
|
|
42
43
|
return igp;
|
|
43
44
|
}
|
|
44
|
-
async deployStorageGasOracle(chain) {
|
|
45
|
-
|
|
45
|
+
async deployStorageGasOracle(chain, config) {
|
|
46
|
+
const gasOracle = await this.deployContract(chain, 'storageGasOracle', []);
|
|
47
|
+
if (!config.oracleConfig) {
|
|
48
|
+
this.logger('No oracle config provided, skipping...');
|
|
49
|
+
return gasOracle;
|
|
50
|
+
}
|
|
51
|
+
this.logger(`Configuring gas oracle from ${chain}...`);
|
|
52
|
+
const configsToSet = [];
|
|
53
|
+
// For each remote, check if the gas oracle has the correct data
|
|
54
|
+
for (const [remote, desired] of Object.entries(config.oracleConfig)) {
|
|
55
|
+
// check core metadata for non EVMs and fallback to multiprovider for custom EVMs
|
|
56
|
+
const remoteDomain = chainMetadata_1.chainMetadata[remote]?.domainId ??
|
|
57
|
+
this.multiProvider.getDomainId(remote);
|
|
58
|
+
const actual = await gasOracle.remoteGasData(remoteDomain);
|
|
59
|
+
if (!actual.gasPrice.eq(desired.gasPrice) ||
|
|
60
|
+
!actual.tokenExchangeRate.eq(desired.tokenExchangeRate)) {
|
|
61
|
+
this.logger(`-> ${remote} ${(0, types_1.serializeDifference)(actual, desired)}`);
|
|
62
|
+
configsToSet.push({
|
|
63
|
+
remoteDomain,
|
|
64
|
+
...desired,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (configsToSet.length > 0) {
|
|
69
|
+
await this.runIfOwner(chain, gasOracle, async () => this.multiProvider.handleTx(chain, gasOracle.setRemoteGasDataConfigs(configsToSet, this.multiProvider.getTransactionOverrides(chain))));
|
|
70
|
+
}
|
|
71
|
+
return gasOracle;
|
|
46
72
|
}
|
|
47
73
|
async deployContracts(chain, config) {
|
|
48
74
|
// NB: To share ProxyAdmins with HyperlaneCore, ensure the ProxyAdmin
|
|
49
75
|
// is loaded into the contract cache.
|
|
50
76
|
const proxyAdmin = await this.deployContract(chain, 'proxyAdmin', []);
|
|
51
|
-
const storageGasOracle = await this.deployStorageGasOracle(chain);
|
|
77
|
+
const storageGasOracle = await this.deployStorageGasOracle(chain, config);
|
|
52
78
|
const interchainGasPaymaster = await this.deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle, config);
|
|
53
|
-
|
|
54
|
-
interchainGasPaymaster,
|
|
55
|
-
});
|
|
56
|
-
// Configure oracle key for StorageGasOracle separately to keep 'hot'
|
|
57
|
-
// for updating exchange rates regularly
|
|
58
|
-
await this.transferOwnershipOfContracts(chain, config.oracleKey, {
|
|
59
|
-
storageGasOracle,
|
|
60
|
-
});
|
|
61
|
-
return {
|
|
79
|
+
const contracts = {
|
|
62
80
|
proxyAdmin,
|
|
63
81
|
storageGasOracle,
|
|
64
82
|
interchainGasPaymaster,
|
|
65
83
|
};
|
|
84
|
+
const ownerConfig = {
|
|
85
|
+
...config,
|
|
86
|
+
ownerOverrides: {
|
|
87
|
+
...config.ownerOverrides,
|
|
88
|
+
storageGasOracle: config.oracleKey,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
await this.transferOwnershipOfContracts(chain, ownerConfig, contracts);
|
|
92
|
+
return contracts;
|
|
66
93
|
}
|
|
67
94
|
}
|
|
68
95
|
exports.HyperlaneIgpDeployer = HyperlaneIgpDeployer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAO1B,gDAAiD;
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-gas-oracles.hardhat-test.d.ts","sourceRoot":"","sources":["../../../src/gas/oracle/configure-gas-oracles.hardhat-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const hardhat_1 = require("hardhat");
|
|
5
|
+
const MultiProvider_1 = require("../../providers/MultiProvider");
|
|
6
|
+
const testUtils_1 = require("../../test/testUtils");
|
|
7
|
+
const HyperlaneIgpDeployer_1 = require("../HyperlaneIgpDeployer");
|
|
8
|
+
describe('HyperlaneIgpDeployer', () => {
|
|
9
|
+
const local = 'test1';
|
|
10
|
+
const remote = 'test2';
|
|
11
|
+
let remoteId;
|
|
12
|
+
let deployer;
|
|
13
|
+
let igp;
|
|
14
|
+
let multiProvider;
|
|
15
|
+
let testConfig;
|
|
16
|
+
before(async () => {
|
|
17
|
+
const [signer] = await hardhat_1.ethers.getSigners();
|
|
18
|
+
multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
|
|
19
|
+
remoteId = multiProvider.getDomainId(remote);
|
|
20
|
+
deployer = new HyperlaneIgpDeployer_1.HyperlaneIgpDeployer(multiProvider);
|
|
21
|
+
testConfig = (0, testUtils_1.testIgpConfig)([local, remote], signer.address);
|
|
22
|
+
const contracts = await deployer.deploy(testConfig);
|
|
23
|
+
igp = contracts[local].interchainGasPaymaster;
|
|
24
|
+
});
|
|
25
|
+
it('should deploy storage gas oracle with config given', async () => {
|
|
26
|
+
// Assert
|
|
27
|
+
const deployedConfig = await igp.getExchangeRateAndGasPrice(remoteId);
|
|
28
|
+
(0, chai_1.expect)({
|
|
29
|
+
gasPrice: deployedConfig.gasPrice,
|
|
30
|
+
tokenExchangeRate: deployedConfig.tokenExchangeRate,
|
|
31
|
+
}).to.deep.equal(testConfig[local].oracleConfig[remote]);
|
|
32
|
+
});
|
|
33
|
+
it('should configure new oracle config', async () => {
|
|
34
|
+
testConfig[local].oracleConfig[remote] = {
|
|
35
|
+
tokenExchangeRate: hardhat_1.ethers.utils.parseUnits('2', 'gwei'),
|
|
36
|
+
gasPrice: hardhat_1.ethers.utils.parseUnits('3', 'gwei'),
|
|
37
|
+
};
|
|
38
|
+
const localContracts = await deployer.deployContracts(local, testConfig[local]);
|
|
39
|
+
igp = localContracts.interchainGasPaymaster;
|
|
40
|
+
const modifiedConfig = await igp.getExchangeRateAndGasPrice(remoteId);
|
|
41
|
+
(0, chai_1.expect)({
|
|
42
|
+
gasPrice: modifiedConfig.gasPrice,
|
|
43
|
+
tokenExchangeRate: modifiedConfig.tokenExchangeRate,
|
|
44
|
+
}).to.deep.equal(testConfig[local].oracleConfig[remote]);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=configure-gas-oracles.hardhat-test.js.map
|
|
@@ -0,0 +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,+BAA8B;AAC9B,qCAAiC;AAIjC,iEAA8D;AAC9D,oDAAqD;AAErD,kEAA+D;AAG/D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC;IACvB,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,gBAAM,CAAC,UAAU,EAAE,CAAC;QAC3C,aAAa,GAAG,6BAAa,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,QAAQ,GAAG,IAAI,2CAAoB,CAAC,aAAa,CAAC,CAAC;QACnD,UAAU,GAAG,IAAA,yBAAa,EAAC,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,IAAA,aAAM,EAAC;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,gBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;YACvD,QAAQ,EAAE,gBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SAC/C,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,IAAA,aAAM,EAAC;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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StorageGasOracle } from '@hyperlane-xyz/core';
|
|
2
|
+
export declare enum GasOracleContractType {
|
|
3
|
+
StorageGasOracle = "StorageGasOracle"
|
|
4
|
+
}
|
|
5
|
+
export type StorageGasOracleConfig = Pick<StorageGasOracle.RemoteGasDataConfigStructOutput, 'gasPrice' | 'tokenExchangeRate'>;
|
|
6
|
+
export declare const formatGasOracleConfig: (config: StorageGasOracleConfig) => {
|
|
7
|
+
tokenExchangeRate: string;
|
|
8
|
+
gasPrice: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const serializeDifference: (actual: StorageGasOracleConfig, expected: StorageGasOracleConfig) => string;
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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,MAWF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeDifference = exports.formatGasOracleConfig = exports.GasOracleContractType = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const igp_1 = require("../../consts/igp");
|
|
6
|
+
var GasOracleContractType;
|
|
7
|
+
(function (GasOracleContractType) {
|
|
8
|
+
GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
|
|
9
|
+
})(GasOracleContractType || (exports.GasOracleContractType = GasOracleContractType = {}));
|
|
10
|
+
const formatGasOracleConfig = (config) => ({
|
|
11
|
+
tokenExchangeRate: ethers_1.ethers.utils.formatUnits(config.tokenExchangeRate, igp_1.TOKEN_EXCHANGE_RATE_EXPONENT),
|
|
12
|
+
gasPrice: ethers_1.ethers.utils.formatUnits(config.gasPrice, 'gwei'),
|
|
13
|
+
});
|
|
14
|
+
exports.formatGasOracleConfig = formatGasOracleConfig;
|
|
15
|
+
const percentDifference = (actual, expected) => expected.sub(actual).mul(100).div(actual);
|
|
16
|
+
const serializePercentDifference = (actual, expected) => {
|
|
17
|
+
if (actual.isZero()) {
|
|
18
|
+
return 'new';
|
|
19
|
+
}
|
|
20
|
+
const diff = percentDifference(actual, expected);
|
|
21
|
+
return diff.isNegative() ? `${diff.toString()}%` : `+${diff.toString()}%`;
|
|
22
|
+
};
|
|
23
|
+
const serializeDifference = (actual, expected) => {
|
|
24
|
+
const gasPriceDiff = serializePercentDifference(actual.gasPrice, expected.gasPrice);
|
|
25
|
+
const tokenExchangeRateDiff = serializePercentDifference(actual.tokenExchangeRate, expected.tokenExchangeRate);
|
|
26
|
+
const formatted = (0, exports.formatGasOracleConfig)(expected);
|
|
27
|
+
return `${formatted.tokenExchangeRate} (${tokenExchangeRateDiff}), ${formatted.gasPrice} gwei (${gasPriceDiff})`;
|
|
28
|
+
};
|
|
29
|
+
exports.serializeDifference = serializeDifference;
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gas/oracle/types.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAIhC,0CAAgE;AAEhE,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;AACvC,CAAC,EAFW,qBAAqB,qCAArB,qBAAqB,QAEhC;AAQM,MAAM,qBAAqB,GAAG,CACnC,MAA8B,EAI9B,EAAE,CAAC,CAAC;IACJ,iBAAiB,EAAE,eAAM,CAAC,KAAK,CAAC,WAAW,CACzC,MAAM,CAAC,iBAAiB,EACxB,kCAA4B,CAC7B;IACD,QAAQ,EAAE,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC5D,CAAC,CAAC;AAXU,QAAA,qBAAqB,yBAW/B;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;QACnB,OAAO,KAAK,CAAC;KACd;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;AAEK,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;IACF,MAAM,SAAS,GAAG,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,GAAG,SAAS,CAAC,iBAAiB,KAAK,qBAAqB,MAAM,SAAS,CAAC,QAAQ,UAAU,YAAY,GAAG,CAAC;AACnH,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B"}
|
package/dist/gas/types.d.ts
CHANGED
|
@@ -4,14 +4,13 @@ import type { Address } from '@hyperlane-xyz/utils';
|
|
|
4
4
|
import type { CheckerViolation, OwnableConfig } from '../deploy/types';
|
|
5
5
|
import { ChainMap } from '../types';
|
|
6
6
|
import { IgpFactories } from './contracts';
|
|
7
|
-
|
|
8
|
-
StorageGasOracle = "StorageGasOracle"
|
|
9
|
-
}
|
|
7
|
+
import { GasOracleContractType, StorageGasOracleConfig } from './oracle/types';
|
|
10
8
|
export type IgpConfig = OwnableConfig<keyof IgpFactories> & {
|
|
11
9
|
beneficiary: Address;
|
|
12
|
-
gasOracleType: ChainMap<GasOracleContractType>;
|
|
13
10
|
oracleKey: Address;
|
|
14
11
|
overhead: ChainMap<number>;
|
|
12
|
+
oracleConfig?: ChainMap<StorageGasOracleConfig>;
|
|
13
|
+
gasOracleType?: ChainMap<GasOracleContractType>;
|
|
15
14
|
};
|
|
16
15
|
export declare enum IgpViolationType {
|
|
17
16
|
Beneficiary = "Beneficiary",
|
package/dist/gas/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,YAAY,CAAC,GAAG;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3B,YAAY,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAEhD,aAAa,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACjD,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACtC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC;IACrC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACnC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;CAC/B"}
|
package/dist/gas/types.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IgpViolationType =
|
|
4
|
-
var GasOracleContractType;
|
|
5
|
-
(function (GasOracleContractType) {
|
|
6
|
-
GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
|
|
7
|
-
})(GasOracleContractType || (exports.GasOracleContractType = GasOracleContractType = {}));
|
|
3
|
+
exports.IgpViolationType = void 0;
|
|
8
4
|
var IgpViolationType;
|
|
9
5
|
(function (IgpViolationType) {
|
|
10
6
|
IgpViolationType["Beneficiary"] = "Beneficiary";
|
package/dist/gas/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gas/types.ts"],"names":[],"mappings":";;;AAqBA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
|
|
@@ -2,6 +2,7 @@ import { DomainRoutingHook, OPStackHook, ProtocolFee } from '@hyperlane-xyz/core
|
|
|
2
2
|
import { HyperlaneContracts } from '../contracts/types';
|
|
3
3
|
import { CoreAddresses } from '../core/contracts';
|
|
4
4
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
|
|
5
|
+
import { ContractVerifier } from '../deploy/verify/ContractVerifier';
|
|
5
6
|
import { HyperlaneIgpDeployer } from '../gas/HyperlaneIgpDeployer';
|
|
6
7
|
import { IgpFactories } from '../gas/contracts';
|
|
7
8
|
import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory';
|
|
@@ -13,7 +14,7 @@ export declare class HyperlaneHookDeployer extends HyperlaneDeployer<HookConfig,
|
|
|
13
14
|
readonly core: ChainMap<Partial<CoreAddresses>>;
|
|
14
15
|
readonly ismFactory: HyperlaneIsmFactory;
|
|
15
16
|
readonly igpDeployer: HyperlaneIgpDeployer;
|
|
16
|
-
constructor(multiProvider: MultiProvider, core: ChainMap<Partial<CoreAddresses>>, ismFactory: HyperlaneIsmFactory, igpDeployer?: HyperlaneIgpDeployer);
|
|
17
|
+
constructor(multiProvider: MultiProvider, core: ChainMap<Partial<CoreAddresses>>, ismFactory: HyperlaneIsmFactory, contractVerifier?: ContractVerifier, igpDeployer?: HyperlaneIgpDeployer);
|
|
17
18
|
cacheAddressesMap(addressesMap: ChainMap<CoreAddresses>): void;
|
|
18
19
|
deployContracts(chain: ChainName, config: HookConfig, coreAddresses?: Partial<import("../contracts/types").HyperlaneAddresses<{
|
|
19
20
|
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneHookDeployer.d.ts","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"AAGA,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":"AAGA,OAAO,EACL,iBAAiB,EAGjB,WAAW,EAEX,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAgB,aAAa,EAAiB,MAAM,aAAa,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,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;IAkEjB,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,uBAAuB,GAAG,yBAAyB,EAC3D,aAAa;;;;OAAmB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;CAkE9B"}
|
|
@@ -8,15 +8,17 @@ const debug_1 = __importDefault(require("debug"));
|
|
|
8
8
|
const ethers_1 = require("ethers");
|
|
9
9
|
const core_1 = require("@hyperlane-xyz/core");
|
|
10
10
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
11
|
+
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
11
12
|
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
12
13
|
const HyperlaneIgpDeployer_1 = require("../gas/HyperlaneIgpDeployer");
|
|
13
14
|
const types_1 = require("../ism/types");
|
|
14
15
|
const contracts_1 = require("./contracts");
|
|
15
16
|
const types_2 = require("./types");
|
|
16
17
|
class HyperlaneHookDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
17
|
-
constructor(multiProvider, core, ismFactory, igpDeployer = new HyperlaneIgpDeployer_1.HyperlaneIgpDeployer(multiProvider)) {
|
|
18
|
+
constructor(multiProvider, core, ismFactory, contractVerifier, igpDeployer = new HyperlaneIgpDeployer_1.HyperlaneIgpDeployer(multiProvider, contractVerifier)) {
|
|
18
19
|
super(multiProvider, contracts_1.hookFactories, {
|
|
19
20
|
logger: (0, debug_1.default)('hyperlane:HookDeployer'),
|
|
21
|
+
contractVerifier,
|
|
20
22
|
});
|
|
21
23
|
this.core = core;
|
|
22
24
|
this.ismFactory = ismFactory;
|
|
@@ -55,7 +57,7 @@ class HyperlaneHookDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
55
57
|
}
|
|
56
58
|
else if (config.type === types_2.HookType.PAUSABLE) {
|
|
57
59
|
hook = await this.deployContract(chain, config.type, []);
|
|
58
|
-
await this.transferOwnershipOfContracts(chain, config
|
|
60
|
+
await this.transferOwnershipOfContracts(chain, config, { [types_2.HookType.PAUSABLE]: hook });
|
|
59
61
|
}
|
|
60
62
|
else {
|
|
61
63
|
throw new Error(`Unsupported hook config: ${config}`);
|
|
@@ -93,7 +95,7 @@ class HyperlaneHookDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
93
95
|
hooks = { ...hooks, ...subhooks };
|
|
94
96
|
}
|
|
95
97
|
this.logger(`Deploying aggregation hook of ${config.hooks.map((h) => h.type)}`);
|
|
96
|
-
const address = await this.ismFactory.deployStaticAddressSet(chain, this.ismFactory.getContracts(chain).aggregationHookFactory, aggregatedHooks);
|
|
98
|
+
const address = await this.ismFactory.deployStaticAddressSet(chain, this.ismFactory.getContracts(chain).aggregationHookFactory, aggregatedHooks, this.logger);
|
|
97
99
|
hooks[types_2.HookType.AGGREGATION] = core_1.StaticAggregationHook__factory.connect(address, this.multiProvider.getSignerOrProvider(chain));
|
|
98
100
|
this.addDeployedContracts(chain, hooks);
|
|
99
101
|
return hooks;
|
|
@@ -167,7 +169,7 @@ class HyperlaneHookDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
167
169
|
}
|
|
168
170
|
const routingConfigs = [];
|
|
169
171
|
for (const [dest, hookConfig] of Object.entries(config.domains)) {
|
|
170
|
-
const destDomain = this.multiProvider.getDomainId(dest);
|
|
172
|
+
const destDomain = chainMetadata_1.chainMetadata[dest]?.domainId ?? this.multiProvider.getDomainId(dest);
|
|
171
173
|
if (typeof hookConfig === 'string') {
|
|
172
174
|
routingConfigs.push({
|
|
173
175
|
destination: destDomain,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneHookDeployer.js","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,mCAAgC;AAEhC,8CAQ6B;AAC7B,gDAAiE;
|
|
1
|
+
{"version":3,"file":"HyperlaneHookDeployer.js","sourceRoot":"","sources":["../../src/hook/HyperlaneHookDeployer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,8 @@ export { DeployerOptions, HyperlaneDeployer } from './deploy/HyperlaneDeployer';
|
|
|
26
26
|
export { HyperlaneProxyFactoryDeployer } from './deploy/HyperlaneProxyFactoryDeployer';
|
|
27
27
|
export { CheckerViolation, OwnableConfig, OwnerViolation, ViolationType, } from './deploy/types';
|
|
28
28
|
export { ContractVerifier } from './deploy/verify/ContractVerifier';
|
|
29
|
-
export {
|
|
29
|
+
export { PostDeploymentContractVerifier } from './deploy/verify/PostDeploymentContractVerifier';
|
|
30
|
+
export { BuildArtifact, CompilerOptions, ContractVerificationInput, ExplorerLicenseType, VerificationInput, } from './deploy/verify/types';
|
|
30
31
|
export * as verificationUtils from './deploy/verify/utils';
|
|
31
32
|
export { HyperlaneIgp } from './gas/HyperlaneIgp';
|
|
32
33
|
export { HyperlaneIgpChecker } from './gas/HyperlaneIgpChecker';
|
|
@@ -34,19 +35,22 @@ export { HyperlaneIgpDeployer } from './gas/HyperlaneIgpDeployer';
|
|
|
34
35
|
export { SealevelOverheadIgpAdapter } from './gas/adapters/SealevelIgpAdapter';
|
|
35
36
|
export { SealevelInterchainGasPaymasterConfig, SealevelInterchainGasPaymasterConfigSchema, SealevelInterchainGasPaymasterType, SealevelOverheadIgpData, SealevelOverheadIgpDataSchema, } from './gas/adapters/serialization';
|
|
36
37
|
export { IgpFactories, igpFactories } from './gas/contracts';
|
|
38
|
+
export { GasOracleContractType, StorageGasOracleConfig, } from './gas/oracle/types';
|
|
37
39
|
export { CoinGeckoTokenPriceGetter } from './gas/token-prices';
|
|
38
|
-
export {
|
|
40
|
+
export { IgpBeneficiaryViolation, IgpConfig, IgpGasOraclesViolation, IgpOverheadViolation, IgpViolation, IgpViolationType, } from './gas/types';
|
|
39
41
|
export { HyperlaneHookDeployer } from './hook/HyperlaneHookDeployer';
|
|
40
42
|
export { AggregationHookConfig, DomainRoutingHookConfig, FallbackRoutingHookConfig, HookConfig, HookType, HooksConfig, IgpHookConfig, MerkleTreeHookConfig, OpStackHookConfig, PausableHookConfig, ProtocolFeeHookConfig, } from './hook/types';
|
|
41
|
-
export { HyperlaneIsmFactory
|
|
43
|
+
export { HyperlaneIsmFactory } from './ism/HyperlaneIsmFactory';
|
|
42
44
|
export { buildAggregationIsmConfigs, buildMultisigIsmConfigs, } from './ism/multisig';
|
|
43
45
|
export { AggregationIsmConfig, DeployedIsm, IsmConfig, IsmType, ModuleType, MultisigConfig, MultisigIsmConfig, OpStackIsmConfig, PausableIsmConfig, RoutingIsmConfig, } from './ism/types';
|
|
46
|
+
export { collectValidators, moduleCanCertainlyVerify } from './ism/utils';
|
|
44
47
|
export { ChainMetadataManager, ChainMetadataManagerOptions, } from './metadata/ChainMetadataManager';
|
|
45
48
|
export { AgentChainMetadata, AgentChainMetadataSchema, AgentConfig, AgentConfigSchema, AgentLogFormat, AgentLogLevel, AgentSigner, AgentSignerAwsKey, AgentSignerHexKey, AgentSignerKeyType, AgentSignerNode, GasPaymentEnforcement, GasPaymentEnforcementPolicyType, RelayerConfig, RpcConsensusType, ScraperConfig, ValidatorConfig, buildAgentConfig, } from './metadata/agentConfig';
|
|
46
|
-
export { BlockExplorer, ChainMetadata, ChainMetadataSchema, ChainMetadataSchemaObject, ExplorerFamily, ExplorerFamilyValue, RpcUrl, RpcUrlSchema, getChainIdNumber, getDomainId,
|
|
49
|
+
export { BlockExplorer, ChainMetadata, ChainMetadataSchema, ChainMetadataSchemaObject, ExplorerFamily, ExplorerFamilyValue, RpcUrl, RpcUrlSchema, getChainIdNumber, getDomainId, getReorgPeriod, isValidChainMetadata, } from './metadata/chainMetadataTypes';
|
|
47
50
|
export { ZHash } from './metadata/customZodTypes';
|
|
48
51
|
export { HyperlaneDeploymentArtifacts, HyperlaneDeploymentArtifactsSchema, } from './metadata/deploymentArtifacts';
|
|
49
52
|
export { MatchingList } from './metadata/matchingList';
|
|
53
|
+
export { WarpRouteConfig, WarpRouteConfigSchema, } from './metadata/warpRouteConfig';
|
|
50
54
|
export { InterchainAccount } from './middleware/account/InterchainAccount';
|
|
51
55
|
export { InterchainAccountChecker } from './middleware/account/InterchainAccountChecker';
|
|
52
56
|
export { InterchainAccountConfig, InterchainAccountDeployer, } from './middleware/account/InterchainAccountDeployer';
|
|
@@ -76,19 +80,26 @@ export { EvmGasRouterAdapter, EvmRouterAdapter, } from './router/adapters/EvmRou
|
|
|
76
80
|
export { SealevelGasRouterAdapter, SealevelRouterAdapter, } from './router/adapters/SealevelRouterAdapter';
|
|
77
81
|
export { IGasRouterAdapter, IRouterAdapter } from './router/adapters/types';
|
|
78
82
|
export { MailboxClientConfig as ConnectionClientConfig, ClientViolation as ConnectionClientViolation, ClientViolationType as ConnectionClientViolationType, ForeignDeploymentConfig, GasConfig, GasRouterConfig, MailboxClientConfig, ProxiedFactories, ProxiedRouterConfig, RouterAddress, RouterConfig, RouterViolation, RouterViolationType, proxiedFactories, } from './router/types';
|
|
83
|
+
export { IToken, TokenArgs, TokenConfigSchema } from './token/IToken';
|
|
84
|
+
export { Token } from './token/Token';
|
|
85
|
+
export { TokenAmount } from './token/TokenAmount';
|
|
86
|
+
export { HyperlaneTokenConnection, IbcToHyperlaneTokenConnection, IbcTokenConnection, TokenConnection, TokenConnectionConfigSchema, TokenConnectionType, } from './token/TokenConnection';
|
|
87
|
+
export { PROTOCOL_TO_NATIVE_STANDARD, TOKEN_COLLATERALIZED_STANDARDS, TOKEN_COSMWASM_STANDARDS, TOKEN_HYP_STANDARDS, TOKEN_MULTI_CHAIN_STANDARDS, TOKEN_NFT_STANDARDS, TOKEN_STANDARD_TO_PROTOCOL, TokenStandard, } from './token/TokenStandard';
|
|
79
88
|
export { CW20Metadata, CwHypCollateralAdapter, CwHypNativeAdapter, CwHypSyntheticAdapter, CwNativeTokenAdapter, CwTokenAdapter, } from './token/adapters/CosmWasmTokenAdapter';
|
|
80
89
|
export { CosmIbcToWarpTokenAdapter, CosmIbcTokenAdapter, CosmNativeTokenAdapter, } from './token/adapters/CosmosTokenAdapter';
|
|
81
|
-
export { EvmHypCollateralAdapter, EvmHypSyntheticAdapter, EvmNativeTokenAdapter, EvmTokenAdapter, } from './token/adapters/EvmTokenAdapter';
|
|
82
|
-
export { IHypTokenAdapter, ITokenAdapter, TransferParams, TransferRemoteParams, } from './token/adapters/ITokenAdapter';
|
|
90
|
+
export { EvmHypCollateralAdapter, EvmHypNativeAdapter, EvmHypSyntheticAdapter, EvmNativeTokenAdapter, EvmTokenAdapter, } from './token/adapters/EvmTokenAdapter';
|
|
91
|
+
export { InterchainGasQuote as AdapterInterchainGasQuote, IHypTokenAdapter, ITokenAdapter, TransferParams, TransferRemoteParams, } from './token/adapters/ITokenAdapter';
|
|
83
92
|
export { SealevelHypCollateralAdapter, SealevelHypNativeAdapter, SealevelHypSyntheticAdapter, SealevelNativeTokenAdapter, SealevelTokenAdapter, } from './token/adapters/SealevelTokenAdapter';
|
|
84
93
|
export { SealevelHypTokenInstruction, SealevelHyperlaneTokenData, SealevelHyperlaneTokenDataSchema, SealevelTransferRemoteInstruction, SealevelTransferRemoteSchema, } from './token/adapters/serialization';
|
|
85
94
|
export { CollateralConfig, ERC20Metadata, ERC20RouterConfig, ERC721RouterConfig, HypERC20CollateralConfig, HypERC20Config, HypERC721CollateralConfig, HypERC721Config, HypNativeConfig, MinimalTokenMetadata, NativeConfig, SyntheticConfig, TokenConfig, TokenMetadata, TokenType, isCollateralConfig, isUriConfig, } from './token/config';
|
|
86
95
|
export { HypERC20Factories, HypERC721Factories, TokenFactories, } from './token/contracts';
|
|
87
96
|
export { HypERC20Deployer, HypERC721Deployer } from './token/deploy';
|
|
88
|
-
export { ChainMap, ChainName,
|
|
97
|
+
export { ChainMap, ChainName, ChainNameOrId, Connection, TestChainNames, } from './types';
|
|
89
98
|
export { MultiGeneric } from './utils/MultiGeneric';
|
|
90
99
|
export { filterByChains } from './utils/filter';
|
|
91
100
|
export { multisigIsmVerificationCost } from './utils/ism';
|
|
92
101
|
export { SealevelAccountDataWrapper, SealevelInstructionWrapper, getSealevelAccountDataSchema, } from './utils/sealevelSerialization';
|
|
93
102
|
export { chainMetadataToWagmiChain, wagmiChainMetadata } from './utils/wagmi';
|
|
103
|
+
export { WarpCore, WarpCoreOptions } from './warp/WarpCore';
|
|
104
|
+
export { IgpQuoteConstants, RouteBlacklist, WarpCoreConfig, WarpCoreConfigSchema, WarpTxCategory, WarpTypedTransaction, } from './warp/types';
|
|
94
105
|
//# sourceMappingURL=index.d.ts.map
|