@hyperlane-xyz/sdk 1.1.4 → 1.2.1
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/HyperlaneApp.d.ts +7 -8
- package/dist/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +1 -4
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +229 -25
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +132 -78
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chainMetadata.test.d.ts +2 -0
- package/dist/consts/chainMetadata.test.d.ts.map +1 -0
- package/dist/consts/chainMetadata.test.js +40 -0
- package/dist/consts/chainMetadata.test.js.map +1 -0
- package/dist/consts/chains.d.ts +5 -5
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +5 -1
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +22 -2
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/mainnet.json +18 -9
- package/dist/consts/environments/test.json +25 -22
- package/dist/consts/environments/testnet.json +16 -8
- package/dist/core/HyperlaneCore.d.ts +10 -387
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +7 -12
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +2 -3
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +5 -5
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +2 -4
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +6 -6
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +15 -6
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +6 -2
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +1 -0
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +8 -12
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +8 -8
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +5 -5
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +15 -15
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +44 -39
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts +12 -9
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.js +72 -12
- package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +18 -14
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +69 -27
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +31 -3
- package/dist/deploy/core/types.d.ts.map +1 -1
- package/dist/deploy/core/types.js +11 -1
- package/dist/deploy/core/types.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts +17 -17
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.js +26 -35
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +6 -9
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +15 -21
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts +14 -17
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js +25 -38
- package/dist/deploy/middleware/deploy.js.map +1 -1
- package/dist/deploy/router/GasRouterDeployer.d.ts +4 -4
- package/dist/deploy/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/router/GasRouterDeployer.js +3 -6
- package/dist/deploy/router/GasRouterDeployer.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts +6 -6
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.js +2 -2
- package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +7 -7
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.js +18 -21
- package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/deploy/types.d.ts +3 -4
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/utils.d.ts +2 -6
- package/dist/deploy/utils.d.ts.map +1 -1
- package/dist/deploy/utils.js +1 -27
- package/dist/deploy/utils.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +7 -7
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +3 -5
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/utils.js +1 -1
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/events.d.ts +4 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +12 -9
- package/dist/events.js.map +1 -1
- package/dist/gas/calculator.d.ts +20 -20
- package/dist/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.hardhat-test.js +11 -8
- package/dist/gas/calculator.hardhat-test.js.map +1 -1
- package/dist/gas/calculator.js +9 -11
- package/dist/gas/calculator.js.map +1 -1
- package/dist/gas/calculator.test.js +2 -14
- package/dist/gas/calculator.test.js.map +1 -1
- package/dist/gas/token-prices.d.ts +5 -2
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +12 -2
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/index.d.ts +28 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -71
- package/dist/index.js.map +1 -1
- package/dist/middleware/accounts.hardhat-test.js +19 -13
- package/dist/middleware/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/liquidity-layer.hardhat-test.js +11 -10
- package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/queries.hardhat-test.js +11 -10
- package/dist/middleware/queries.hardhat-test.js.map +1 -1
- package/dist/middleware.d.ts +4 -4
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +204 -37
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +455 -63
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +3 -1
- package/dist/proxy.js.map +1 -1
- package/dist/router.d.ts +11 -6
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1 -2
- package/dist/router.js.map +1 -1
- package/dist/test/envSubsetDeployer/app.d.ts +12 -21
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +13 -18
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +1 -11
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +3 -9
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +4 -3
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
- package/dist/test/envSubsetDeployer/utils.d.ts +0 -3
- package/dist/test/envSubsetDeployer/utils.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/utils.js +2 -10
- package/dist/test/envSubsetDeployer/utils.js.map +1 -1
- package/dist/test/testUtils.d.ts +5 -1
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +8 -1
- package/dist/test/testUtils.js.map +1 -1
- package/dist/types.d.ts +2 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.d.ts +11 -12
- package/dist/utils/MultiGeneric.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +3 -6
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/wagmi.d.ts +1 -1
- package/dist/utils/wagmi.d.ts.map +1 -1
- package/dist/utils/wagmi.js +7 -6
- package/dist/utils/wagmi.js.map +1 -1
- package/package.json +5 -5
- package/dist/consts/chainConnectionConfigs.d.ts +0 -21
- package/dist/consts/chainConnectionConfigs.d.ts.map +0 -1
- package/dist/consts/chainConnectionConfigs.js +0 -35
- package/dist/consts/chainConnectionConfigs.js.map +0 -1
- package/dist/core/message.d.ts +0 -146
- package/dist/core/message.d.ts.map +0 -1
- package/dist/core/message.js +0 -285
- package/dist/core/message.js.map +0 -1
- package/dist/domains.d.ts +0 -4
- package/dist/domains.d.ts.map +0 -1
- package/dist/domains.js +0 -12
- package/dist/domains.js.map +0 -1
- package/dist/providers/ChainConnection.d.ts +0 -23
- package/dist/providers/ChainConnection.d.ts.map +0 -1
- package/dist/providers/ChainConnection.js +0 -67
- package/dist/providers/ChainConnection.js.map +0 -1
package/dist/gas/calculator.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BigNumber } from 'ethers';
|
|
2
2
|
import { types } from '@hyperlane-xyz/utils';
|
|
3
|
-
import { CoreEnvironment,
|
|
3
|
+
import { CoreEnvironment, HyperlaneCore } from '../core/HyperlaneCore';
|
|
4
4
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
5
|
-
import { ChainName
|
|
5
|
+
import { ChainName } from '../types';
|
|
6
6
|
import { TokenPriceGetter } from './token-prices';
|
|
7
7
|
export interface InterchainGasCalculatorConfig {
|
|
8
8
|
/**
|
|
@@ -27,24 +27,24 @@ export interface InterchainGasCalculatorConfig {
|
|
|
27
27
|
*/
|
|
28
28
|
tokenPriceGetter?: TokenPriceGetter;
|
|
29
29
|
}
|
|
30
|
-
export
|
|
31
|
-
origin:
|
|
30
|
+
export interface ParsedMessage {
|
|
31
|
+
origin: ChainName;
|
|
32
32
|
sender: string;
|
|
33
|
-
destination:
|
|
33
|
+
destination: ChainName;
|
|
34
34
|
recipient: string;
|
|
35
35
|
body: string;
|
|
36
|
-
}
|
|
36
|
+
}
|
|
37
37
|
/**
|
|
38
38
|
* Calculates interchain gas payments.
|
|
39
39
|
*/
|
|
40
|
-
export declare class InterchainGasCalculator
|
|
40
|
+
export declare class InterchainGasCalculator {
|
|
41
41
|
private core;
|
|
42
42
|
private multiProvider;
|
|
43
43
|
private tokenPriceGetter;
|
|
44
44
|
private paymentEstimateMultiplier;
|
|
45
45
|
private messageGasEstimateBuffer;
|
|
46
|
-
static fromEnvironment<Env extends CoreEnvironment>(env: Env, multiProvider: MultiProvider
|
|
47
|
-
constructor(multiProvider: MultiProvider
|
|
46
|
+
static fromEnvironment<Env extends CoreEnvironment>(env: Env, multiProvider: MultiProvider, config?: InterchainGasCalculatorConfig): InterchainGasCalculator;
|
|
47
|
+
constructor(multiProvider: MultiProvider, core: HyperlaneCore, config?: InterchainGasCalculatorConfig);
|
|
48
48
|
/**
|
|
49
49
|
* Only intended for IGPs that quote gas payments on-chain.
|
|
50
50
|
* Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
|
|
@@ -59,7 +59,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
59
59
|
* function.
|
|
60
60
|
* @returns The amount of native tokens required to pay for interchain gas.
|
|
61
61
|
*/
|
|
62
|
-
quoteGasPaymentForDefaultIsmIgp
|
|
62
|
+
quoteGasPaymentForDefaultIsmIgp(origin: ChainName, destination: ChainName, gasAmount: BigNumber): Promise<BigNumber>;
|
|
63
63
|
/**
|
|
64
64
|
* Only intended for IGPs that quote gas payments on-chain.
|
|
65
65
|
* Calls the "base" IGP's `quoteGasPayment` function to get the amount of native tokens
|
|
@@ -74,7 +74,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
74
74
|
* gas cost.
|
|
75
75
|
* @returns The amount of native tokens required to pay for interchain gas.
|
|
76
76
|
*/
|
|
77
|
-
quoteGasPayment
|
|
77
|
+
quoteGasPayment(origin: ChainName, destination: ChainName, gasAmount: BigNumber): Promise<BigNumber>;
|
|
78
78
|
/**
|
|
79
79
|
* Only intended for IGPs that quote gas payments on-chain.
|
|
80
80
|
* Calls the origin's default IGP's `quoteGasPayment` function to get the
|
|
@@ -89,7 +89,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
89
89
|
* function.
|
|
90
90
|
* @returns The amount of native tokens required to pay for interchain gas.
|
|
91
91
|
*/
|
|
92
|
-
quoteGasPaymentForIGP
|
|
92
|
+
quoteGasPaymentForIGP(origin: ChainName, destination: ChainName, gasAmount: BigNumber, interchainGasPaymasterAddress: types.Address): Promise<BigNumber>;
|
|
93
93
|
/**
|
|
94
94
|
* Only intended for IGPs that do *not* quote gas payments on-chain.
|
|
95
95
|
* Given an amount of gas to consume on the destination chain, calculates the
|
|
@@ -102,7 +102,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
102
102
|
* @returns An estimated amount of origin chain tokens to cover gas costs on the
|
|
103
103
|
* destination chain.
|
|
104
104
|
*/
|
|
105
|
-
estimatePaymentForGas
|
|
105
|
+
estimatePaymentForGas(origin: ChainName, destination: ChainName, gas: BigNumber): Promise<BigNumber>;
|
|
106
106
|
/**
|
|
107
107
|
* Only intended for IGPs that do *not* quote gas payments on-chain.
|
|
108
108
|
* Given an amount of gas the message's recipient `handle` function is expected
|
|
@@ -119,7 +119,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
119
119
|
* @returns An estimated amount of origin chain tokens to cover gas costs of the
|
|
120
120
|
* message on the destination chain.
|
|
121
121
|
*/
|
|
122
|
-
estimatePaymentForHandleGas
|
|
122
|
+
estimatePaymentForHandleGas(origin: ChainName, destination: ChainName, handleGas: BigNumber): Promise<BigNumber>;
|
|
123
123
|
/**
|
|
124
124
|
* Only intended for IGPs that do *not* quote gas payments on-chain.
|
|
125
125
|
* Calculates the estimated payment to process the message on its destination chain,
|
|
@@ -132,7 +132,7 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
132
132
|
* @returns An estimated amount of origin chain tokens to cover gas costs of the
|
|
133
133
|
* message on the destination chain.
|
|
134
134
|
*/
|
|
135
|
-
protected estimatePaymentForMessage
|
|
135
|
+
protected estimatePaymentForMessage(message: ParsedMessage): Promise<BigNumber>;
|
|
136
136
|
/**
|
|
137
137
|
* Using the exchange rates provided by tokenPriceGetter, returns the amount of
|
|
138
138
|
* `toChain` native tokens equivalent in value to the provided `fromAmount` of
|
|
@@ -143,19 +143,19 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
143
143
|
* @returns The amount of `toChain` native tokens whose value is equivalent to
|
|
144
144
|
* `fromAmount` of `fromChain` native tokens.
|
|
145
145
|
*/
|
|
146
|
-
protected convertBetweenTokens(fromChain:
|
|
146
|
+
protected convertBetweenTokens(fromChain: ChainName, toChain: ChainName, value: BigNumber): Promise<BigNumber>;
|
|
147
147
|
/**
|
|
148
148
|
* Gets a suggested gas price for a chain.
|
|
149
149
|
* @param chainName The name of the chain to get the gas price for
|
|
150
150
|
* @returns The suggested gas price in wei on the destination chain.
|
|
151
151
|
*/
|
|
152
|
-
protected getGasPrice(chain:
|
|
152
|
+
protected getGasPrice(chain: ChainName): Promise<BigNumber>;
|
|
153
153
|
/**
|
|
154
154
|
* Gets the number of decimals of the provided chain's native token.
|
|
155
155
|
* @param chain The chain.
|
|
156
156
|
* @returns The number of decimals of `chain`'s native token.
|
|
157
157
|
*/
|
|
158
|
-
protected tokenDecimals(chain:
|
|
158
|
+
protected tokenDecimals(chain: ChainName): number;
|
|
159
159
|
/**
|
|
160
160
|
* Estimates the amount of gas used by message's recipient `handle` function
|
|
161
161
|
* on its destination chain. This does not assume the Inbox of the destination
|
|
@@ -170,13 +170,13 @@ export declare class InterchainGasCalculator<Chain extends ChainName> {
|
|
|
170
170
|
* @returns The estimated gas required by the message's recipient handle function
|
|
171
171
|
* on the destination chain.
|
|
172
172
|
*/
|
|
173
|
-
protected estimateGasForHandle
|
|
173
|
+
protected estimateGasForHandle(message: ParsedMessage): Promise<BigNumber>;
|
|
174
174
|
/**
|
|
175
175
|
* @returns A generous estimation of the gas consumption of all process
|
|
176
176
|
* operations within Inbox.sol, including intrinsic gas. Does not include any gas
|
|
177
177
|
* consumed within a message's recipient `handle` function.
|
|
178
178
|
*/
|
|
179
|
-
protected estimateGasForProcess
|
|
179
|
+
protected estimateGasForProcess(origin: ChainName, destination: ChainName): Promise<BigNumber>;
|
|
180
180
|
/**
|
|
181
181
|
* @returns The intrinsic gas of a basic transaction. Note this does not consider calldata
|
|
182
182
|
* costs or potentially different intrinsic gas costs for different chains.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/gas/calculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,KAAK,EAAS,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/gas/calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const chai_1 = require("chai");
|
|
13
13
|
const ethers_1 = require("ethers");
|
|
14
14
|
const hardhat_1 = require("hardhat");
|
|
15
|
+
const chains_1 = require("../consts/chains");
|
|
15
16
|
const HyperlaneCore_1 = require("../core/HyperlaneCore");
|
|
16
17
|
const TestCoreDeployer_1 = require("../core/TestCoreDeployer");
|
|
17
|
-
const
|
|
18
|
+
const MultiProvider_1 = require("../providers/MultiProvider");
|
|
18
19
|
const calculator_1 = require("./calculator");
|
|
19
20
|
describe('InterchainGasCalculator', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
const localChain =
|
|
21
|
-
const remoteChain =
|
|
22
|
-
const expectedDefaultQuote = ethers_1.BigNumber.from('1');
|
|
21
|
+
const localChain = chains_1.Chains.test1;
|
|
22
|
+
const remoteChain = chains_1.Chains.test2;
|
|
23
23
|
const testGasAmount = ethers_1.BigNumber.from('100000');
|
|
24
24
|
let signer;
|
|
25
25
|
let multiProvider;
|
|
@@ -27,7 +27,7 @@ describe('InterchainGasCalculator', () => __awaiter(void 0, void 0, void 0, func
|
|
|
27
27
|
let igp;
|
|
28
28
|
before(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
29
|
[signer] = yield hardhat_1.ethers.getSigners();
|
|
30
|
-
multiProvider = (
|
|
30
|
+
multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
|
|
31
31
|
const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
|
|
32
32
|
const coreContractsMaps = yield coreDeployer.deploy();
|
|
33
33
|
const core = new HyperlaneCore_1.HyperlaneCore(coreContractsMaps, multiProvider);
|
|
@@ -37,19 +37,22 @@ describe('InterchainGasCalculator', () => __awaiter(void 0, void 0, void 0, func
|
|
|
37
37
|
describe('quoteGasPaymentForDefaultIsmIgp', () => {
|
|
38
38
|
it("calls the default ISM IGP's quoteGasPayment function", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
39
|
const quote = yield calculator.quoteGasPaymentForDefaultIsmIgp(localChain, remoteChain, testGasAmount);
|
|
40
|
-
(
|
|
40
|
+
// (100,000 gas amount + 151,966 overhead) * 10 gas price
|
|
41
|
+
(0, chai_1.expect)(quote).to.equal(ethers_1.BigNumber.from('2519660'));
|
|
41
42
|
}));
|
|
42
43
|
});
|
|
43
44
|
describe('quoteGasPayment', () => {
|
|
44
45
|
it("calls the IGP's quoteGasPayment function", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
46
|
const quote = yield calculator.quoteGasPayment(localChain, remoteChain, testGasAmount);
|
|
46
|
-
|
|
47
|
+
// 100,000 gas amount * 10 gas price
|
|
48
|
+
(0, chai_1.expect)(quote).to.equal(ethers_1.BigNumber.from('1000000'));
|
|
47
49
|
}));
|
|
48
50
|
});
|
|
49
51
|
describe('quoteGasPaymentForIGP', () => {
|
|
50
52
|
it("calls the provided IGP's quoteGasPayment", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
53
|
const quote = yield calculator.quoteGasPaymentForIGP(localChain, remoteChain, testGasAmount, igp);
|
|
52
|
-
|
|
54
|
+
// 100,000 gas amount * 10 gas price
|
|
55
|
+
(0, chai_1.expect)(quote).to.equal(ethers_1.BigNumber.from('1000000'));
|
|
53
56
|
}));
|
|
54
57
|
});
|
|
55
58
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.hardhat-test.js","sourceRoot":"","sources":["../../src/gas/calculator.hardhat-test.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,+BAA8B;AAC9B,mCAAmC;AACnC,qCAAiC;AAIjC,yDAAsD;AACtD,+DAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"calculator.hardhat-test.js","sourceRoot":"","sources":["../../src/gas/calculator.hardhat-test.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,+BAA8B;AAC9B,mCAAmC;AACnC,qCAAiC;AAIjC,6CAA0C;AAC1C,yDAAsD;AACtD,+DAA4D;AAC5D,8DAA2D;AAE3D,6CAAuD;AAEvD,QAAQ,CAAC,yBAAyB,EAAE,GAAS,EAAE;IAC7C,MAAM,UAAU,GAAG,eAAM,CAAC,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,eAAM,CAAC,KAAK,CAAC;IAEjC,MAAM,aAAa,GAAG,kBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,MAAyB,CAAC;IAC9B,IAAI,aAA4B,CAAC;IAEjC,IAAI,UAAmC,CAAC;IACxC,IAAI,GAAkB,CAAC;IAEvB,MAAM,CAAC,GAAS,EAAE;QAChB,CAAC,MAAM,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAErC,aAAa,GAAG,6BAAa,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,IAAI,mCAAgB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,6BAAa,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACjE,UAAU,GAAG,IAAI,oCAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC9D,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;IACrE,CAAC,CAAA,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,sDAAsD,EAAE,GAAS,EAAE;YACpE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,+BAA+B,CAC5D,UAAU,EACV,WAAW,EACX,aAAa,CACd,CAAC;YAEF,yDAAyD;YACzD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,0CAA0C,EAAE,GAAS,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,eAAe,CAC5C,UAAU,EACV,WAAW,EACX,aAAa,CACd,CAAC;YAEF,oCAAoC;YACpC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,0CAA0C,EAAE,GAAS,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAClD,UAAU,EACV,WAAW,EACX,aAAa,EACb,GAAG,CACJ,CAAC;YAEF,oCAAoC;YACpC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC"}
|
package/dist/gas/calculator.js
CHANGED
|
@@ -17,9 +17,7 @@ const coingecko_api_1 = __importDefault(require("coingecko-api"));
|
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
18
|
const core_1 = require("@hyperlane-xyz/core");
|
|
19
19
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
20
|
-
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
21
20
|
const HyperlaneCore_1 = require("../core/HyperlaneCore");
|
|
22
|
-
const domains_1 = require("../domains");
|
|
23
21
|
const number_1 = require("../utils/number");
|
|
24
22
|
const token_prices_1 = require("./token-prices");
|
|
25
23
|
/**
|
|
@@ -124,9 +122,10 @@ class InterchainGasCalculator {
|
|
|
124
122
|
*/
|
|
125
123
|
quoteGasPaymentForIGP(origin, destination, gasAmount, interchainGasPaymasterAddress) {
|
|
126
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
-
const originProvider = this.multiProvider.
|
|
125
|
+
const originProvider = this.multiProvider.getProvider(origin);
|
|
128
126
|
const igp = core_1.InterchainGasPaymaster__factory.connect(interchainGasPaymasterAddress, originProvider);
|
|
129
|
-
|
|
127
|
+
const domainId = this.multiProvider.getDomainId(destination);
|
|
128
|
+
return igp.quoteGasPayment(domainId, gasAmount);
|
|
130
129
|
});
|
|
131
130
|
}
|
|
132
131
|
/**
|
|
@@ -216,7 +215,7 @@ class InterchainGasCalculator {
|
|
|
216
215
|
*/
|
|
217
216
|
getGasPrice(chain) {
|
|
218
217
|
return __awaiter(this, void 0, void 0, function* () {
|
|
219
|
-
const provider = this.multiProvider.
|
|
218
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
220
219
|
if (provider == undefined) {
|
|
221
220
|
throw new Error(`Missing provider for ${chain}`);
|
|
222
221
|
}
|
|
@@ -229,8 +228,8 @@ class InterchainGasCalculator {
|
|
|
229
228
|
* @returns The number of decimals of `chain`'s native token.
|
|
230
229
|
*/
|
|
231
230
|
tokenDecimals(chain) {
|
|
232
|
-
var _a;
|
|
233
|
-
return (_a =
|
|
231
|
+
var _a, _b, _c;
|
|
232
|
+
return ((_c = (_b = (_a = this.multiProvider.tryGetChainMetadata(chain)) === null || _a === void 0 ? void 0 : _a.nativeToken) === null || _b === void 0 ? void 0 : _b.decimals) !== null && _c !== void 0 ? _c : DEFAULT_TOKEN_DECIMALS);
|
|
234
233
|
}
|
|
235
234
|
/**
|
|
236
235
|
* Estimates the amount of gas used by message's recipient `handle` function
|
|
@@ -248,8 +247,7 @@ class InterchainGasCalculator {
|
|
|
248
247
|
*/
|
|
249
248
|
estimateGasForHandle(message) {
|
|
250
249
|
return __awaiter(this, void 0, void 0, function* () {
|
|
251
|
-
const provider = this.multiProvider.
|
|
252
|
-
.provider;
|
|
250
|
+
const provider = this.multiProvider.getProvider(message.destination);
|
|
253
251
|
const mailbox = this.core.getContracts(message.destination).mailbox
|
|
254
252
|
.contract;
|
|
255
253
|
const handlerInterface = new ethers_1.ethers.utils.Interface([
|
|
@@ -262,7 +260,7 @@ class InterchainGasCalculator {
|
|
|
262
260
|
to: utils_1.utils.bytes32ToAddress(message.recipient),
|
|
263
261
|
from: mailbox.address,
|
|
264
262
|
data: handlerInterface.encodeFunctionData('handle', [
|
|
265
|
-
|
|
263
|
+
this.multiProvider.getChainId(message.origin),
|
|
266
264
|
utils_1.utils.addressToBytes32(message.sender),
|
|
267
265
|
message.body,
|
|
268
266
|
]),
|
|
@@ -285,7 +283,7 @@ class InterchainGasCalculator {
|
|
|
285
283
|
return __awaiter(this, void 0, void 0, function* () {
|
|
286
284
|
// TODO: Check the recipient module
|
|
287
285
|
const module = this.core.getContracts(destination).multisigIsm;
|
|
288
|
-
const threshold = yield module.threshold(
|
|
286
|
+
const threshold = yield module.threshold(this.multiProvider.getDomainId(origin));
|
|
289
287
|
return ethers_1.BigNumber.from(threshold)
|
|
290
288
|
.mul(GAS_OVERHEAD_PER_SIGNATURE)
|
|
291
289
|
.add(GAS_OVERHEAD_BASE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../src/gas/calculator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAsC;AACtC,mCAAwD;AAExD,8CAAsE;AACtE,gDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../src/gas/calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const chai_1 = require("chai");
|
|
16
16
|
const ethers_1 = require("ethers");
|
|
17
17
|
const sinon_1 = __importDefault(require("sinon"));
|
|
18
|
-
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
19
18
|
const chains_1 = require("../consts/chains");
|
|
20
19
|
const HyperlaneCore_1 = require("../core/HyperlaneCore");
|
|
21
20
|
const MultiProvider_1 = require("../providers/MultiProvider");
|
|
@@ -44,16 +43,7 @@ class TestInterchainGasCalculator extends calculator_1.InterchainGasCalculator {
|
|
|
44
43
|
}
|
|
45
44
|
describe('InterchainGasCalculator', () => {
|
|
46
45
|
const provider = new testUtils_1.MockProvider();
|
|
47
|
-
|
|
48
|
-
// This is because InterchainGasCalculator isn't very strongly typed,
|
|
49
|
-
// which is because ParsedMessage isn't very strongly typed. This results
|
|
50
|
-
// in InterchainGasCalculator expecting a multiprovider with providers for
|
|
51
|
-
// every chain.
|
|
52
|
-
const multiProvider = new MultiProvider_1.MultiProvider({
|
|
53
|
-
test1: { id: chainMetadata_1.chainMetadata.test1.id, provider },
|
|
54
|
-
test2: { id: chainMetadata_1.chainMetadata.test2.id, provider },
|
|
55
|
-
test3: { id: chainMetadata_1.chainMetadata.test3.id, provider },
|
|
56
|
-
});
|
|
46
|
+
const multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ provider });
|
|
57
47
|
const core = HyperlaneCore_1.HyperlaneCore.fromEnvironment('test', multiProvider);
|
|
58
48
|
const origin = chains_1.Chains.test1;
|
|
59
49
|
const destination = chains_1.Chains.test2;
|
|
@@ -153,9 +143,7 @@ describe('InterchainGasCalculator', () => {
|
|
|
153
143
|
(0, chai_1.expect)(originWei.toNumber()).to.equal(60500);
|
|
154
144
|
}));
|
|
155
145
|
it('considers when the origin token decimals < the destination token decimals', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
156
|
-
sinon_1.default
|
|
157
|
-
.stub(calculator, 'tokenDecimals')
|
|
158
|
-
.callsFake((chain) => {
|
|
146
|
+
sinon_1.default.stub(calculator, 'tokenDecimals').callsFake((chain) => {
|
|
159
147
|
if (chain === origin) {
|
|
160
148
|
return 16;
|
|
161
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.test.js","sourceRoot":"","sources":["../../src/gas/calculator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAA8B;AAC9B,mCAAmC;AACnC,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"calculator.test.js","sourceRoot":"","sources":["../../src/gas/calculator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import CoinGecko from 'coingecko-api';
|
|
2
|
-
import {
|
|
2
|
+
import { ChainMetadata } from '../consts/chainMetadata';
|
|
3
|
+
import { ChainMap, ChainName } from '../types';
|
|
3
4
|
export interface TokenPriceGetter {
|
|
4
5
|
getTokenPrice(chain: ChainName): Promise<number>;
|
|
5
6
|
getTokenExchangeRate(base: ChainName, quote: ChainName): Promise<number>;
|
|
@@ -24,7 +25,9 @@ declare class TokenPriceCache {
|
|
|
24
25
|
export declare class CoinGeckoTokenPriceGetter implements TokenPriceGetter {
|
|
25
26
|
protected coinGecko: CoinGeckoInterface;
|
|
26
27
|
protected cache: TokenPriceCache;
|
|
27
|
-
|
|
28
|
+
protected metadata: ChainMap<ChainMetadata>;
|
|
29
|
+
constructor(coinGecko: CoinGeckoInterface, expirySeconds?: number, chainMetadata?: Record<string, ChainMetadata>);
|
|
30
|
+
static withDefaultCoinGecko(expirySeconds?: number): CoinGeckoTokenPriceGetter;
|
|
28
31
|
getTokenPrice(chain: ChainName): Promise<number>;
|
|
29
32
|
getTokenExchangeRate(base: ChainName, quote: ChainName): Promise<number>;
|
|
30
33
|
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,EACL,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,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,oBAAY,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC3D,oBAAY,wBAAwB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC3D,oBAAY,0BAA0B,GAAG,UAAU,CACjD,wBAAwB,CAAC,OAAO,CAAC,CAClC,CAAC,CAAC,CAAC,CAAC;AACL,oBAAY,iBAAiB,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9E,aAAK,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,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAG1C,SAAS,EAAE,kBAAkB,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,gCAAuB;IAOtC,MAAM,CAAC,oBAAoB,CACzB,aAAa,CAAC,EAAE,MAAM,GACrB,yBAAyB;IAKtB,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;YA2Bd,gBAAgB;CAe/B"}
|
package/dist/gas/token-prices.js
CHANGED
|
@@ -8,8 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.CoinGeckoTokenPriceGetter = void 0;
|
|
16
|
+
const coingecko_api_1 = __importDefault(require("coingecko-api"));
|
|
13
17
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
18
|
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
15
19
|
const chains_1 = require("../consts/chains");
|
|
@@ -45,9 +49,14 @@ class TokenPriceCache {
|
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
class CoinGeckoTokenPriceGetter {
|
|
48
|
-
constructor(coinGecko, expirySeconds) {
|
|
52
|
+
constructor(coinGecko, expirySeconds, chainMetadata = chainMetadata_1.chainMetadata) {
|
|
49
53
|
this.coinGecko = coinGecko;
|
|
50
54
|
this.cache = new TokenPriceCache(expirySeconds);
|
|
55
|
+
this.metadata = chainMetadata;
|
|
56
|
+
}
|
|
57
|
+
static withDefaultCoinGecko(expirySeconds) {
|
|
58
|
+
const coinGecko = new coingecko_api_1.default();
|
|
59
|
+
return new CoinGeckoTokenPriceGetter(coinGecko, expirySeconds);
|
|
51
60
|
}
|
|
52
61
|
getTokenPrice(chain) {
|
|
53
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -63,6 +72,7 @@ class CoinGeckoTokenPriceGetter {
|
|
|
63
72
|
}
|
|
64
73
|
getTokenPrices(chains) {
|
|
65
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
// TODO improve PI support here?
|
|
66
76
|
const isMainnet = chains.map((c) => chains_1.Mainnets.includes(c));
|
|
67
77
|
const allMainnets = isMainnet.every((v) => v === true);
|
|
68
78
|
const allTestnets = isMainnet.every((v) => v === false);
|
|
@@ -90,7 +100,7 @@ class CoinGeckoTokenPriceGetter {
|
|
|
90
100
|
const currency = 'usd';
|
|
91
101
|
// The CoinGecko API expects, in some cases, IDs that do not match
|
|
92
102
|
// ChainNames.
|
|
93
|
-
const ids = chains.map((chain) =>
|
|
103
|
+
const ids = chains.map((chain) => this.metadata[chain].gasCurrencyCoinGeckoId || chain);
|
|
94
104
|
const response = yield this.coinGecko.simple.price({
|
|
95
105
|
ids,
|
|
96
106
|
vs_currencies: [currency],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-prices.js","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-prices.js","sourceRoot":"","sources":["../../src/gas/token-prices.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,48 +1,45 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export { chainConnectionConfigs, testChainConnectionConfigs, } from './consts/chainConnectionConfigs';
|
|
1
|
+
export { chainIdToMetadata, ChainMetadata, chainMetadata, ChainMetadataSchema, ExplorerFamily, isValidChainMetadata, mainnetChainsMetadata, RpcPagination, testnetChainsMetadata, wagmiChainMetadata, } from './consts/chainMetadata';
|
|
2
|
+
export { AllChains, AllDeprecatedChains, Chains, CoreChainName, DeprecatedChains, Mainnets, TestChains, Testnets, } from './consts/chains';
|
|
4
3
|
export { environments as coreEnvironments, hyperlaneCoreAddresses, } from './consts/environments';
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export { Annotated, getEvents, queryAnnotatedEvents, TSContract, } from './events';
|
|
10
|
-
export { TransparentProxyAddresses, ProxiedContract, ProxyAddresses, } from './proxy';
|
|
11
|
-
export { Router, RouterContracts, RouterFactories, RouterApp, GasRouterApp, } from './router';
|
|
12
|
-
export { ChainConnection } from './providers/ChainConnection';
|
|
13
|
-
export { MultiProvider } from './providers/MultiProvider';
|
|
14
|
-
export { RetryJsonRpcProvider, RetryProvider } from './providers/RetryProvider';
|
|
15
|
-
export { HyperlaneCore, CoreContractsMap, DispatchedMessage, } from './core/HyperlaneCore';
|
|
16
|
-
export { CoreContracts, coreFactories, ConnectionClientContracts, } from './core/contracts';
|
|
17
|
-
export { HyperlaneLifecyleEvent, AnnotatedDispatch, AnnotatedLifecycleEvent, } from './core/events';
|
|
18
|
-
export { HyperlaneMessage, HyperlaneStatus, MessageStatus, resolveDomain, resolveId, resolveChains, } from './core/message';
|
|
4
|
+
export { buildContracts, connectContracts, HyperlaneAddresses, HyperlaneContracts, HyperlaneFactories, serializeContracts, } from './contracts';
|
|
5
|
+
export { ConnectionClientContracts, CoreContracts, coreFactories, GasOracleContracts, } from './core/contracts';
|
|
6
|
+
export { AnnotatedDispatch, AnnotatedLifecycleEvent, HyperlaneLifecyleEvent, } from './core/events';
|
|
7
|
+
export { CoreContractsMap, DispatchedMessage, HyperlaneCore, } from './core/HyperlaneCore';
|
|
19
8
|
export { TestCoreApp, TestCoreContracts } from './core/TestCoreApp';
|
|
20
9
|
export { TestCoreDeployer } from './core/TestCoreDeployer';
|
|
21
|
-
export { InterchainGasCalculator, ParsedMessage } from './gas/calculator';
|
|
22
|
-
export { CoinGeckoTokenPriceGetter, TokenPriceGetter, } from './gas/token-prices';
|
|
23
|
-
export { HyperlaneAppChecker } from './deploy/HyperlaneAppChecker';
|
|
24
|
-
export { CheckerViolation, EnvironmentConfig, OwnerViolation, ViolationType, } from './deploy/types';
|
|
25
|
-
export { HyperlaneCoreDeployer } from './deploy/core/HyperlaneCoreDeployer';
|
|
26
10
|
export { HyperlaneCoreChecker } from './deploy/core/HyperlaneCoreChecker';
|
|
27
|
-
export {
|
|
11
|
+
export { HyperlaneCoreDeployer } from './deploy/core/HyperlaneCoreDeployer';
|
|
12
|
+
export { CoreConfig, CoreViolationType, EnrolledValidatorsViolation, GasOracleContractType, IgpBeneficiaryViolation, IgpGasOraclesViolation, IgpViolation, IgpViolationType, MultisigIsmViolation, MultisigIsmViolationType, } from './deploy/core/types';
|
|
13
|
+
export { HyperlaneAppChecker } from './deploy/HyperlaneAppChecker';
|
|
28
14
|
export { HyperlaneDeployer } from './deploy/HyperlaneDeployer';
|
|
15
|
+
export { InterchainAccountDeployer, InterchainQueryDeployer, } from './deploy/middleware/deploy';
|
|
16
|
+
export { LiquidityLayerApp } from './deploy/middleware/LiquidityLayerApp';
|
|
17
|
+
export { BridgeAdapterConfig, BridgeAdapterType, CircleBridgeAdapterConfig, LiquidityLayerDeployer, PortalAdapterConfig, } from './deploy/middleware/LiquidityLayerRouterDeployer';
|
|
29
18
|
export { ProxyViolation } from './deploy/proxy';
|
|
30
|
-
export { HyperlaneRouterDeployer } from './deploy/router/HyperlaneRouterDeployer';
|
|
31
19
|
export { GasRouterDeployer } from './deploy/router/GasRouterDeployer';
|
|
32
20
|
export { HyperlaneRouterChecker } from './deploy/router/HyperlaneRouterChecker';
|
|
33
|
-
export {
|
|
34
|
-
export { LiquidityLayerDeployer, BridgeAdapterType, BridgeAdapterConfig, CircleBridgeAdapterConfig, PortalAdapterConfig, } from './deploy/middleware/LiquidityLayerRouterDeployer';
|
|
35
|
-
export { LiquidityLayerApp } from './deploy/middleware/LiquidityLayerApp';
|
|
36
|
-
export { LiquidityLayerContracts, interchainAccountFactories, interchainQueryFactories, liquidityLayerFactories, } from './middleware';
|
|
21
|
+
export { HyperlaneRouterDeployer } from './deploy/router/HyperlaneRouterDeployer';
|
|
37
22
|
export { GasRouterConfig, RouterConfig } from './deploy/router/types';
|
|
38
|
-
export {
|
|
23
|
+
export { CheckerViolation, OwnerViolation, ViolationType, } from './deploy/types';
|
|
24
|
+
export { getChainToOwnerMap } from './deploy/utils';
|
|
39
25
|
export { ContractVerifier } from './deploy/verify/ContractVerifier';
|
|
40
|
-
export { ContractVerificationInput, VerificationInput,
|
|
26
|
+
export { CompilerOptions, ContractVerificationInput, VerificationInput, } from './deploy/verify/types';
|
|
41
27
|
export * as verificationUtils from './deploy/verify/utils';
|
|
28
|
+
export { Annotated, getEvents, queryAnnotatedEvents, TSContract, } from './events';
|
|
29
|
+
export { InterchainGasCalculator, ParsedMessage } from './gas/calculator';
|
|
30
|
+
export { CoinGeckoTokenPriceGetter, TokenPriceGetter, } from './gas/token-prices';
|
|
31
|
+
export { HyperlaneApp } from './HyperlaneApp';
|
|
32
|
+
export { interchainAccountFactories, interchainQueryFactories, LiquidityLayerContracts, liquidityLayerFactories, } from './middleware';
|
|
33
|
+
export { MultiProvider } from './providers/MultiProvider';
|
|
34
|
+
export { RetryJsonRpcProvider, RetryProvider } from './providers/RetryProvider';
|
|
35
|
+
export { ProxiedContract, ProxyAddresses, TransparentProxyAddresses, } from './proxy';
|
|
36
|
+
export { GasRouterApp, Router, RouterApp, RouterContracts, RouterFactories, } from './router';
|
|
37
|
+
export { getTestOwnerConfig } from './test/testUtils';
|
|
38
|
+
export { ChainMap, ChainName, Connection, NameOrDomain, TestChainNames, } from './types';
|
|
42
39
|
export { canonizeId, evmId } from './utils/ids';
|
|
43
40
|
export { MultiGeneric } from './utils/MultiGeneric';
|
|
44
41
|
export { bigToFixed, convertDecimalValue, fixedToBig, mulBigAndFixed, } from './utils/number';
|
|
45
|
-
export { objMap, objMapEntries,
|
|
42
|
+
export { objMap, objMapEntries, pick, promiseObjAll } from './utils/objects';
|
|
46
43
|
export { delay } from './utils/time';
|
|
47
44
|
export { chainMetadataToWagmiChain } from './utils/wagmi';
|
|
48
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|