@hyperlane-xyz/sdk 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/HyperlaneApp.d.ts +11 -7
- package/dist/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +14 -0
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/agents/types.d.ts +56 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +43 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/consts/bytecode.d.ts +11 -0
- package/dist/consts/bytecode.d.ts.map +1 -0
- package/dist/consts/bytecode.js +15 -0
- package/dist/consts/bytecode.js.map +1 -0
- package/dist/consts/environments/index.d.ts +64 -231
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +2 -12
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +28 -99
- package/dist/consts/environments/test.json +20 -44
- package/dist/consts/environments/testnet.json +27 -90
- package/dist/consts/multisigIsm.d.ts +4 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -0
- package/dist/consts/multisigIsm.js +174 -0
- package/dist/consts/multisigIsm.js.map +1 -0
- package/dist/contracts.d.ts +14 -10
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +28 -43
- package/dist/contracts.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +5 -16
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +7 -35
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts +0 -6
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +20 -155
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +8 -22
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +14 -141
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +8 -12
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +6 -3
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +2 -2
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +4 -25
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +3 -22
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +1 -7
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +2 -2
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +4 -47
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -16
- package/dist/core/types.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +2 -4
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +46 -28
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +20 -19
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +112 -86
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -13
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +8 -13
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -0
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/verify/utils.d.ts +1 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +9 -4
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +53 -0
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgp.js +72 -0
- package/dist/gas/HyperlaneIgp.js.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts +14 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.js +148 -0
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts +22 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.js +113 -0
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -0
- package/dist/gas/contracts.d.ts +9 -0
- package/dist/gas/contracts.d.ts.map +1 -0
- package/dist/gas/contracts.js +11 -0
- package/dist/gas/contracts.js.map +1 -0
- package/dist/gas/types.d.ts +35 -50
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +11 -17
- package/dist/gas/types.js.map +1 -1
- package/dist/index.d.ts +33 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -43
- package/dist/index.js.map +1 -1
- package/dist/middleware/MiddlewareRouterChecker.d.ts +8 -0
- package/dist/middleware/MiddlewareRouterChecker.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterChecker.js +26 -0
- package/dist/middleware/MiddlewareRouterChecker.js.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts +17 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.js +62 -0
- package/dist/middleware/MiddlewareRouterDeployer.js.map +1 -0
- package/dist/middleware/account/InterchainAccount.d.ts +11 -0
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccount.js +21 -0
- package/dist/middleware/account/InterchainAccount.js.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts +7 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.js +8 -0
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.js +64 -0
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/{accounts.hardhat-test.js → account/accounts.hardhat-test.js} +21 -24
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -0
- package/dist/middleware/account/contracts.d.ts +7 -0
- package/dist/middleware/account/contracts.d.ts.map +1 -0
- package/dist/middleware/account/contracts.js +9 -0
- package/dist/middleware/account/contracts.js.map +1 -0
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +5 -4
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +12 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +8 -6
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +13 -10
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.d.ts +5 -8
- package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.js +2 -1
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +33 -30
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +11 -0
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQuery.js +21 -0
- package/dist/middleware/query/InterchainQuery.js.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts +7 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.js +8 -0
- package/dist/middleware/query/InterchainQueryChecker.js.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +12 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.js +13 -0
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -0
- package/dist/middleware/query/contracts.d.ts +7 -0
- package/dist/middleware/query/contracts.d.ts.map +1 -0
- package/dist/middleware/query/contracts.js +9 -0
- package/dist/middleware/query/contracts.js.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/{queries.hardhat-test.js → query/queries.hardhat-test.js} +21 -12
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +6 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +32 -26
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +4 -4
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +1 -1
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts +3 -5
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +4 -8
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +9 -6
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +13 -28
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/RouterApps.d.ts +6 -4
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +2 -2
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/types.d.ts +4 -16
- package/dist/router/types.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.d.ts +18 -11
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +14 -15
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +6 -4
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +7 -5
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +12 -13
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
- package/dist/test/testUtils.d.ts +10 -23
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +45 -60
- package/dist/test/testUtils.js.map +1 -1
- package/dist/utils/ism.d.ts +2 -0
- package/dist/utils/ism.d.ts.map +1 -0
- package/dist/utils/ism.js +18 -0
- package/dist/utils/ism.js.map +1 -0
- package/dist/utils/objects.d.ts +3 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +35 -2
- package/dist/utils/objects.js.map +1 -1
- package/package.json +4 -4
- package/dist/deploy/utils.d.ts +0 -6
- package/dist/deploy/utils.d.ts.map +0 -1
- package/dist/deploy/utils.js +0 -13
- package/dist/deploy/utils.js.map +0 -1
- package/dist/gas/calculator.d.ts +0 -186
- package/dist/gas/calculator.d.ts.map +0 -1
- package/dist/gas/calculator.hardhat-test.d.ts +0 -2
- package/dist/gas/calculator.hardhat-test.d.ts.map +0 -1
- package/dist/gas/calculator.hardhat-test.js +0 -59
- package/dist/gas/calculator.hardhat-test.js.map +0 -1
- package/dist/gas/calculator.js +0 -301
- package/dist/gas/calculator.js.map +0 -1
- package/dist/gas/calculator.test.d.ts +0 -2
- package/dist/gas/calculator.test.d.ts.map +0 -1
- package/dist/gas/calculator.test.js +0 -197
- package/dist/gas/calculator.test.js.map +0 -1
- package/dist/middleware/accounts.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/accounts.hardhat-test.js.map +0 -1
- package/dist/middleware/deploy.d.ts +0 -28
- package/dist/middleware/deploy.d.ts.map +0 -1
- package/dist/middleware/deploy.js +0 -68
- package/dist/middleware/deploy.js.map +0 -1
- package/dist/middleware/queries.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/queries.hardhat-test.js.map +0 -1
- package/dist/proxy.d.ts +0 -21
- package/dist/proxy.d.ts.map +0 -1
- package/dist/proxy.js +0 -32
- package/dist/proxy.js.map +0 -1
- /package/dist/middleware/{accounts.hardhat-test.d.ts → account/accounts.hardhat-test.d.ts} +0 -0
- /package/dist/middleware/{queries.hardhat-test.d.ts → query/queries.hardhat-test.d.ts} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HyperlaneIgp = void 0;
|
|
4
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
5
|
+
const HyperlaneApp_1 = require("../HyperlaneApp");
|
|
6
|
+
const environments_1 = require("../consts/environments");
|
|
7
|
+
const contracts_1 = require("./contracts");
|
|
8
|
+
class HyperlaneIgp extends HyperlaneApp_1.HyperlaneApp {
|
|
9
|
+
static fromEnvironment(env, multiProvider) {
|
|
10
|
+
const envAddresses = environments_1.hyperlaneEnvironments[env];
|
|
11
|
+
if (!envAddresses) {
|
|
12
|
+
throw new Error(`No addresses found for ${env}`);
|
|
13
|
+
}
|
|
14
|
+
const fromAddressesMap = this.fromAddressesMap(envAddresses, contracts_1.igpFactories, multiProvider);
|
|
15
|
+
return new HyperlaneIgp(fromAddressesMap.contractsMap, fromAddressesMap.multiProvider);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
|
|
19
|
+
* required to pay for interchain gas.
|
|
20
|
+
* The default ISM IGP will add any gas overhead amounts related to the Mailbox
|
|
21
|
+
* and default ISM on the destination to the provided gasAmount.
|
|
22
|
+
* @param origin The name of the origin chain.
|
|
23
|
+
* @param destination The name of the destination chain.
|
|
24
|
+
* @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
|
|
25
|
+
* The default IGP is expected to add any gas overhead related to the Mailbox
|
|
26
|
+
* or ISM, so this gas amount is only required to cover the usage of the `handle`
|
|
27
|
+
* function.
|
|
28
|
+
* @returns The amount of native tokens required to pay for interchain gas.
|
|
29
|
+
*/
|
|
30
|
+
quoteGasPayment(origin, destination, gasAmount) {
|
|
31
|
+
const igp = this.getContracts(origin).interchainGasPaymaster;
|
|
32
|
+
return this.quoteGasPaymentForIgp(origin, destination, gasAmount, igp.address);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Calls the default ISM IGP's `quoteGasPayment` function to get the amount of native tokens
|
|
36
|
+
* required to pay for interchain gas.
|
|
37
|
+
* The default ISM IGP will add any gas overhead amounts related to the Mailbox
|
|
38
|
+
* and default ISM on the destination to the provided gasAmount.
|
|
39
|
+
* @param origin The name of the origin chain.
|
|
40
|
+
* @param destination The name of the destination chain.
|
|
41
|
+
* @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
|
|
42
|
+
* The default IGP is expected to add any gas overhead related to the Mailbox
|
|
43
|
+
* or ISM, so this gas amount is only required to cover the usage of the `handle`
|
|
44
|
+
* function.
|
|
45
|
+
* @returns The amount of native tokens required to pay for interchain gas.
|
|
46
|
+
*/
|
|
47
|
+
quoteGasPaymentForDefaultIsmIgp(origin, destination, gasAmount) {
|
|
48
|
+
const igp = this.getContracts(origin).defaultIsmInterchainGasPaymaster;
|
|
49
|
+
return this.quoteGasPaymentForIgp(origin, destination, gasAmount, igp.address);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Calls the origin's default IGP's `quoteGasPayment` function to get the
|
|
53
|
+
* amount of native tokens required to pay for interchain gas.
|
|
54
|
+
* The default IGP is expected to add any gas overhead related to the Mailbox
|
|
55
|
+
* and ISM to the provided gasAmount.
|
|
56
|
+
* @param origin The name of the origin chain.
|
|
57
|
+
* @param destination The name of the destination chain.
|
|
58
|
+
* @param gasAmount The amount of gas to use when calling `quoteGasPayment`.
|
|
59
|
+
* The default IGP is expected to add any gas overhead related to the Mailbox
|
|
60
|
+
* or ISM, so this gas amount is only required to cover the usage of the `handle`
|
|
61
|
+
* function.
|
|
62
|
+
* @returns The amount of native tokens required to pay for interchain gas.
|
|
63
|
+
*/
|
|
64
|
+
quoteGasPaymentForIgp(origin, destination, gasAmount, interchainGasPaymasterAddress) {
|
|
65
|
+
const originProvider = this.multiProvider.getProvider(origin);
|
|
66
|
+
const igp = core_1.InterchainGasPaymaster__factory.connect(interchainGasPaymasterAddress, originProvider);
|
|
67
|
+
const domainId = this.multiProvider.getDomainId(destination);
|
|
68
|
+
return igp.quoteGasPayment(domainId, gasAmount);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.HyperlaneIgp = HyperlaneIgp;
|
|
72
|
+
//# sourceMappingURL=HyperlaneIgp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneIgp.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgp.ts"],"names":[],"mappings":";;;AAEA,8CAAsE;AAGtE,kDAA+C;AAC/C,yDAGgC;AAIhC,2CAAyD;AAEzD,MAAa,YAAa,SAAQ,2BAA0B;IAC1D,MAAM,CAAC,eAAe,CACpB,GAAQ,EACR,aAA4B;QAE5B,MAAM,YAAY,GAAG,oCAAqB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;SAClD;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAC5C,YAAY,EACZ,wBAAY,EACZ,aAAa,CACd,CAAC;QACF,OAAO,IAAI,YAAY,CACrB,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,aAAa,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;QAC7D,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,+BAA+B,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC;QACvE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,qBAAqB,CAC7B,MAAiB,EACjB,WAAsB,EACtB,SAAoB,EACpB,6BAA4C;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,sCAA+B,CAAC,OAAO,CACjD,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AArGD,oCAqGC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { types } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { HyperlaneAppChecker } from '../deploy/HyperlaneAppChecker';
|
|
3
|
+
import { ChainName } from '../types';
|
|
4
|
+
import { HyperlaneIgp } from './HyperlaneIgp';
|
|
5
|
+
import { OverheadIgpConfig } from './types';
|
|
6
|
+
export declare class HyperlaneIgpChecker extends HyperlaneAppChecker<HyperlaneIgp, OverheadIgpConfig> {
|
|
7
|
+
checkChain(chain: ChainName): Promise<void>;
|
|
8
|
+
checkDomainOwnership(chain: ChainName): Promise<void>;
|
|
9
|
+
checkBytecodes(chain: ChainName): Promise<void>;
|
|
10
|
+
checkOverheadInterchainGasPaymaster(local: ChainName): Promise<void>;
|
|
11
|
+
checkInterchainGasPaymaster(local: ChainName): Promise<void>;
|
|
12
|
+
getGasOracleAddress(local: ChainName, remote: ChainName): types.Address;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=HyperlaneIgpChecker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAML,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,qBAAa,mBAAoB,SAAQ,mBAAmB,CAC1D,YAAY,EACZ,iBAAiB,CAClB;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC/C,mCAAmC,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCpE,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDlE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC,OAAO;CAgBxE"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HyperlaneIgpChecker = void 0;
|
|
13
|
+
const ethers_1 = require("ethers");
|
|
14
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
15
|
+
const bytecode_1 = require("../consts/bytecode");
|
|
16
|
+
const HyperlaneAppChecker_1 = require("../deploy/HyperlaneAppChecker");
|
|
17
|
+
const proxy_1 = require("../deploy/proxy");
|
|
18
|
+
const types_1 = require("./types");
|
|
19
|
+
class HyperlaneIgpChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
20
|
+
checkChain(chain) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
yield this.checkDomainOwnership(chain);
|
|
23
|
+
yield this.checkProxiedContracts(chain);
|
|
24
|
+
yield this.checkBytecodes(chain);
|
|
25
|
+
yield this.checkOverheadInterchainGasPaymaster(chain);
|
|
26
|
+
yield this.checkInterchainGasPaymaster(chain);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
checkDomainOwnership(chain) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const config = this.configMap[chain];
|
|
32
|
+
if (config.owner) {
|
|
33
|
+
return this.checkOwnership(chain, config.owner);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
checkBytecodes(chain) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const contracts = this.app.getContracts(chain);
|
|
40
|
+
yield this.checkBytecode(chain, 'InterchainGasPaymaster proxy', contracts.interchainGasPaymaster.address, [bytecode_1.BytecodeHash.TRANSPARENT_PROXY_BYTECODE_HASH]);
|
|
41
|
+
const implementation = yield (0, proxy_1.proxyImplementation)(this.multiProvider.getProvider(chain), contracts.interchainGasPaymaster.address);
|
|
42
|
+
yield this.checkBytecode(chain, 'InterchainGasPaymaster implementation', implementation, [
|
|
43
|
+
bytecode_1.BytecodeHash.INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
|
|
44
|
+
bytecode_1.BytecodeHash.OWNER_INITIALIZABLE_INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
|
|
45
|
+
]);
|
|
46
|
+
yield this.checkBytecode(chain, 'OverheadIGP', contracts.defaultIsmInterchainGasPaymaster.address, [bytecode_1.BytecodeHash.OVERHEAD_IGP_BYTECODE_HASH], (bytecode) =>
|
|
47
|
+
// Remove the address of the wrapped IGP from the bytecode
|
|
48
|
+
bytecode.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
49
|
+
.encode(['address'], [contracts.interchainGasPaymaster.address])
|
|
50
|
+
.slice(2), ''));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
checkOverheadInterchainGasPaymaster(local) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const coreContracts = this.app.getContracts(local);
|
|
56
|
+
const defaultIsmIgp = coreContracts.defaultIsmInterchainGasPaymaster;
|
|
57
|
+
// Construct the violation, updating the actual & expected
|
|
58
|
+
// objects as violations are found.
|
|
59
|
+
// A single violation is used so that only a single `setDestinationGasOverheads`
|
|
60
|
+
// call is generated to set multiple gas overheads.
|
|
61
|
+
const overheadViolation = {
|
|
62
|
+
type: 'InterchainGasPaymaster',
|
|
63
|
+
subType: types_1.IgpViolationType.Overhead,
|
|
64
|
+
contract: defaultIsmIgp,
|
|
65
|
+
chain: local,
|
|
66
|
+
actual: {},
|
|
67
|
+
expected: {},
|
|
68
|
+
};
|
|
69
|
+
const remotes = this.app.remoteChains(local);
|
|
70
|
+
for (const remote of remotes) {
|
|
71
|
+
const expectedOverhead = this.configMap[local].overhead[remote];
|
|
72
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
73
|
+
const existingOverhead = yield defaultIsmIgp.destinationGasOverhead(remoteId);
|
|
74
|
+
if (!existingOverhead.eq(expectedOverhead)) {
|
|
75
|
+
const remoteChain = remote;
|
|
76
|
+
overheadViolation.actual[remoteChain] = existingOverhead;
|
|
77
|
+
overheadViolation.expected[remoteChain] =
|
|
78
|
+
ethers_1.BigNumber.from(expectedOverhead);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (Object.keys(overheadViolation.actual).length > 0) {
|
|
82
|
+
this.addViolation(overheadViolation);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
checkInterchainGasPaymaster(local) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const coreContracts = this.app.getContracts(local);
|
|
89
|
+
const igp = coreContracts.interchainGasPaymaster;
|
|
90
|
+
// Construct the violation, updating the actual & expected
|
|
91
|
+
// objects as violations are found.
|
|
92
|
+
// A single violation is used so that only a single `setGasOracles`
|
|
93
|
+
// call is generated to set multiple gas oracles.
|
|
94
|
+
const gasOraclesViolation = {
|
|
95
|
+
type: 'InterchainGasPaymaster',
|
|
96
|
+
subType: types_1.IgpViolationType.GasOracles,
|
|
97
|
+
contract: igp,
|
|
98
|
+
chain: local,
|
|
99
|
+
actual: {},
|
|
100
|
+
expected: {},
|
|
101
|
+
};
|
|
102
|
+
const remotes = this.app.remoteChains(local);
|
|
103
|
+
for (const remote of remotes) {
|
|
104
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
105
|
+
const actualGasOracle = yield igp.gasOracles(remoteId);
|
|
106
|
+
const expectedGasOracle = this.getGasOracleAddress(local, remote);
|
|
107
|
+
if (!utils_1.utils.eqAddress(actualGasOracle, expectedGasOracle)) {
|
|
108
|
+
const remoteChain = remote;
|
|
109
|
+
gasOraclesViolation.actual[remoteChain] = actualGasOracle;
|
|
110
|
+
gasOraclesViolation.expected[remoteChain] = expectedGasOracle;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Add the violation only if it's been populated with gas oracle inconsistencies
|
|
114
|
+
if (Object.keys(gasOraclesViolation.actual).length > 0) {
|
|
115
|
+
this.addViolation(gasOraclesViolation);
|
|
116
|
+
}
|
|
117
|
+
const actualBeneficiary = yield igp.beneficiary();
|
|
118
|
+
const expectedBeneficiary = this.configMap[local].beneficiary;
|
|
119
|
+
if (!utils_1.utils.eqAddress(actualBeneficiary, expectedBeneficiary)) {
|
|
120
|
+
const violation = {
|
|
121
|
+
type: 'InterchainGasPaymaster',
|
|
122
|
+
subType: types_1.IgpViolationType.Beneficiary,
|
|
123
|
+
contract: igp,
|
|
124
|
+
chain: local,
|
|
125
|
+
actual: actualBeneficiary,
|
|
126
|
+
expected: expectedBeneficiary,
|
|
127
|
+
};
|
|
128
|
+
this.addViolation(violation);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
getGasOracleAddress(local, remote) {
|
|
133
|
+
const config = this.configMap[local];
|
|
134
|
+
const gasOracleType = config.gasOracleType[remote];
|
|
135
|
+
if (!gasOracleType) {
|
|
136
|
+
throw Error(`Expected gas oracle type for local ${local} and remote ${remote}`);
|
|
137
|
+
}
|
|
138
|
+
const coreContracts = this.app.getContracts(local);
|
|
139
|
+
switch (gasOracleType) {
|
|
140
|
+
case types_1.GasOracleContractType.StorageGasOracle:
|
|
141
|
+
return coreContracts.storageGasOracle.address;
|
|
142
|
+
default:
|
|
143
|
+
throw Error(`Unsupported gas oracle type ${gasOracleType}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.HyperlaneIgpChecker = HyperlaneIgpChecker;
|
|
148
|
+
//# sourceMappingURL=HyperlaneIgpChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpChecker.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAyD;AAEzD,gDAAoD;AAEpD,iDAAkD;AAClD,uEAAoE;AACpE,2CAAsD;AAItD,mCAOiB;AAEjB,MAAa,mBAAoB,SAAQ,yCAGxC;IACO,UAAU,CAAC,KAAgB;;YAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAgB;;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aACjD;QACH,CAAC;KAAA;IAEK,cAAc,CAAC,KAAgB;;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,EACL,8BAA8B,EAC9B,SAAS,CAAC,sBAAsB,CAAC,OAAO,EACxC,CAAC,uBAAY,CAAC,+BAA+B,CAAC,CAC/C,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAmB,EAC9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,EACrC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CACzC,CAAC;YACF,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,EACL,uCAAuC,EACvC,cAAc,EACd;gBACE,uBAAY,CAAC,sCAAsC;gBACnD,uBAAY,CAAC,0DAA0D;aACxE,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,EACL,aAAa,EACb,SAAS,CAAC,gCAAgC,CAAC,OAAO,EAClD,CAAC,uBAAY,CAAC,0BAA0B,CAAC,EACzC,CAAC,QAAQ,EAAE,EAAE;YACX,0DAA0D;YAC1D,QAAQ,CAAC,UAAU,CACjB,cAAW,CAAC,eAAe;iBACxB,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;iBAC/D,KAAK,CAAC,CAAC,CAAC,EACX,EAAE,CACH,CACJ,CAAC;QACJ,CAAC;KAAA;IAEK,mCAAmC,CAAC,KAAgB;;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,aAAa,GAAG,aAAa,CAAC,gCAAgC,CAAC;YAErE,0DAA0D;YAC1D,mCAAmC;YACnC,gFAAgF;YAChF,mDAAmD;YACnD,MAAM,iBAAiB,GAAyB;gBAC9C,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,wBAAgB,CAAC,QAAQ;gBAClC,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAEhE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,sBAAsB,CACjE,QAAQ,CACT,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE;oBAC1C,MAAM,WAAW,GAAG,MAAmB,CAAC;oBACxC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;oBACzD,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACrC,kBAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACpC;aACF;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;aACtC;QACH,CAAC;KAAA;IAEK,2BAA2B,CAAC,KAAgB;;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,aAAa,CAAC,sBAAsB,CAAC;YAEjD,0DAA0D;YAC1D,mCAAmC;YACnC,mEAAmE;YACnE,iDAAiD;YACjD,MAAM,mBAAmB,GAA2B;gBAClD,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,wBAAgB,CAAC,UAAU;gBACpC,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAElE,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE;oBACxD,MAAM,WAAW,GAAG,MAAmB,CAAC;oBACxC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC;oBAC1D,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC;iBAC/D;aACF;YACD,gFAAgF;YAChF,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;aACxC;YAED,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;YAC9D,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE;gBAC5D,MAAM,SAAS,GAA4B;oBACzC,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,wBAAgB,CAAC,WAAW;oBACrC,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,iBAAiB;oBACzB,QAAQ,EAAE,mBAAmB;iBAC9B,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;IAED,mBAAmB,CAAC,KAAgB,EAAE,MAAiB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,KAAK,CACT,sCAAsC,KAAK,eAAe,MAAM,EAAE,CACnE,CAAC;SACH;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,QAAQ,aAAa,EAAE;YACrB,KAAK,6BAAqB,CAAC,gBAAgB;gBACzC,OAAO,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAChD;gBACE,MAAM,KAAK,CAAC,+BAA+B,aAAa,EAAE,CAAC,CAAC;SAC/D;IACH,CAAC;CACF;AAhKD,kDAgKC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { InterchainGasPaymaster, OverheadIgp, ProxyAdmin, StorageGasOracle } from '@hyperlane-xyz/core';
|
|
2
|
+
import { types } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { HyperlaneContracts } from '../contracts';
|
|
4
|
+
import { DeployOptions, HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
|
|
5
|
+
import { MultiProvider } from '../providers/MultiProvider';
|
|
6
|
+
import { ChainMap, ChainName } from '../types';
|
|
7
|
+
import { IgpFactories } from './contracts';
|
|
8
|
+
import { OverheadIgpConfig } from './types';
|
|
9
|
+
export declare class HyperlaneIgpDeployer extends HyperlaneDeployer<OverheadIgpConfig, IgpFactories> {
|
|
10
|
+
startingBlockNumbers: ChainMap<number | undefined>;
|
|
11
|
+
constructor(multiProvider: MultiProvider, configMap: ChainMap<OverheadIgpConfig>, factoriesOverride?: {
|
|
12
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
13
|
+
interchainGasPaymaster: import("@hyperlane-xyz/core").InterchainGasPaymaster__factory;
|
|
14
|
+
defaultIsmInterchainGasPaymaster: import("@hyperlane-xyz/core").OverheadIgp__factory;
|
|
15
|
+
storageGasOracle: import("@hyperlane-xyz/core").StorageGasOracle__factory;
|
|
16
|
+
});
|
|
17
|
+
deployInterchainGasPaymaster(chain: ChainName, proxyAdmin: ProxyAdmin, storageGasOracle: StorageGasOracle, deployOpts?: DeployOptions): Promise<InterchainGasPaymaster>;
|
|
18
|
+
deployOverheadInterchainGasPaymaster(chain: ChainName, interchainGasPaymasterAddress: types.Address, deployOpts?: DeployOptions): Promise<OverheadIgp>;
|
|
19
|
+
deployStorageGasOracle(chain: ChainName, deployOpts?: DeployOptions): Promise<StorageGasOracle>;
|
|
20
|
+
deployContracts(chain: ChainName, config: OverheadIgpConfig): Promise<HyperlaneContracts<IgpFactories>>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=HyperlaneIgpDeployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.d.ts","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,WAAW,EAGX,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,iBAAiB,CACzD,iBAAiB,EACjB,YAAY,CACb;IACC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBAGjD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,iBAAiB;;;;;KAAe;IAQ5B,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,sBAAsB,CAAC;IA2C5B,oCAAoC,CACxC,KAAK,EAAE,SAAS,EAChB,6BAA6B,EAAE,KAAK,CAAC,OAAO,EAC5C,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,WAAW,CAAC;IAmDjB,sBAAsB,CAC1B,KAAK,EAAE,SAAS,EAChB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAItB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CA6B7C"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.HyperlaneIgpDeployer = void 0;
|
|
16
|
+
const debug_1 = __importDefault(require("debug"));
|
|
17
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
18
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
19
|
+
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
20
|
+
const objects_1 = require("../utils/objects");
|
|
21
|
+
const contracts_1 = require("./contracts");
|
|
22
|
+
class HyperlaneIgpDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
23
|
+
constructor(multiProvider, configMap, factoriesOverride = contracts_1.igpFactories) {
|
|
24
|
+
super(multiProvider, configMap, factoriesOverride, {
|
|
25
|
+
logger: (0, debug_1.default)('hyperlane:IgpDeployer'),
|
|
26
|
+
});
|
|
27
|
+
this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
|
|
28
|
+
}
|
|
29
|
+
deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle, deployOpts) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const owner = this.configMap[chain].owner;
|
|
32
|
+
const beneficiary = this.configMap[chain].beneficiary;
|
|
33
|
+
const igp = yield this.deployProxiedContract(chain, 'interchainGasPaymaster', [beneficiary], [owner, beneficiary], proxyAdmin.address, deployOpts);
|
|
34
|
+
// Set the gas oracles
|
|
35
|
+
const configChains = Object.keys(this.configMap);
|
|
36
|
+
const remotes = this.multiProvider
|
|
37
|
+
.intersect(configChains, false)
|
|
38
|
+
.multiProvider.getRemoteChains(chain);
|
|
39
|
+
const gasOracleConfigsToSet = [];
|
|
40
|
+
for (const remote of remotes) {
|
|
41
|
+
const remoteId = this.multiProvider.getDomainId(remote);
|
|
42
|
+
const currentGasOracle = yield igp.gasOracles(remoteId);
|
|
43
|
+
if (!utils_1.utils.eqAddress(currentGasOracle, storageGasOracle.address)) {
|
|
44
|
+
gasOracleConfigsToSet.push({
|
|
45
|
+
remoteDomain: remoteId,
|
|
46
|
+
gasOracle: storageGasOracle.address,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (gasOracleConfigsToSet.length > 0) {
|
|
51
|
+
yield this.runIfOwner(chain, igp, () => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
return this.multiProvider.handleTx(chain, igp.setGasOracles(gasOracleConfigsToSet));
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
return igp;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
deployOverheadInterchainGasPaymaster(chain, interchainGasPaymasterAddress, deployOpts) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const deployer = yield this.multiProvider.getSignerAddress(chain);
|
|
61
|
+
// Transfer ownership to the deployer so the destination gas overheads can be set
|
|
62
|
+
const initCalldata = core_1.Ownable__factory.createInterface().encodeFunctionData('transferOwnership', [deployer]);
|
|
63
|
+
const overheadInterchainGasPaymaster = yield this.deployContract(chain, 'defaultIsmInterchainGasPaymaster', [interchainGasPaymasterAddress], Object.assign(Object.assign({}, deployOpts), { initCalldata }));
|
|
64
|
+
const configChains = Object.keys(this.configMap);
|
|
65
|
+
const remotes = this.multiProvider
|
|
66
|
+
.intersect(configChains, false)
|
|
67
|
+
.multiProvider.getRemoteChains(chain);
|
|
68
|
+
// Only set gas overhead configs if they differ from what's on chain
|
|
69
|
+
const configs = [];
|
|
70
|
+
for (const remote of remotes) {
|
|
71
|
+
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
72
|
+
const gasOverhead = this.configMap[chain].overhead[remote];
|
|
73
|
+
const existingOverhead = yield overheadInterchainGasPaymaster.destinationGasOverhead(remoteDomain);
|
|
74
|
+
if (!existingOverhead.eq(gasOverhead)) {
|
|
75
|
+
configs.push({ domain: remoteDomain, gasOverhead });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (configs.length > 0) {
|
|
79
|
+
yield this.runIfOwner(chain, overheadInterchainGasPaymaster, () => this.multiProvider.handleTx(chain, overheadInterchainGasPaymaster.setDestinationGasOverheads(configs, this.multiProvider.getTransactionOverrides(chain))));
|
|
80
|
+
}
|
|
81
|
+
return overheadInterchainGasPaymaster;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
deployStorageGasOracle(chain, deployOpts) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
return this.deployContract(chain, 'storageGasOracle', [], deployOpts);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
deployContracts(chain, config) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
92
|
+
const startingBlockNumber = yield provider.getBlockNumber();
|
|
93
|
+
this.startingBlockNumbers[chain] = startingBlockNumber;
|
|
94
|
+
// NB: To share ProxyAdmins with HyperlaneCore, ensure the ProxyAdmin
|
|
95
|
+
// is loaded into the contract cache.
|
|
96
|
+
const proxyAdmin = yield this.deployContract(chain, 'proxyAdmin', []);
|
|
97
|
+
const storageGasOracle = yield this.deployStorageGasOracle(chain);
|
|
98
|
+
const interchainGasPaymaster = yield this.deployInterchainGasPaymaster(chain, proxyAdmin, storageGasOracle);
|
|
99
|
+
const overheadInterchainGasPaymaster = yield this.deployOverheadInterchainGasPaymaster(chain, interchainGasPaymaster.address);
|
|
100
|
+
// Ownership of the Mailbox and the interchainGasPaymaster is transferred upon initialization.
|
|
101
|
+
const ownables = [overheadInterchainGasPaymaster];
|
|
102
|
+
yield this.transferOwnershipOfContracts(chain, config.owner, ownables);
|
|
103
|
+
return {
|
|
104
|
+
proxyAdmin,
|
|
105
|
+
storageGasOracle,
|
|
106
|
+
interchainGasPaymaster,
|
|
107
|
+
defaultIsmInterchainGasPaymaster: overheadInterchainGasPaymaster,
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.HyperlaneIgpDeployer = HyperlaneIgpDeployer;
|
|
113
|
+
//# sourceMappingURL=HyperlaneIgpDeployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneIgpDeployer.js","sourceRoot":"","sources":["../../src/gas/HyperlaneIgpDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InterchainGasPaymaster__factory, OverheadIgp__factory, ProxyAdmin__factory, StorageGasOracle__factory } from '@hyperlane-xyz/core';
|
|
2
|
+
export declare const igpFactories: {
|
|
3
|
+
proxyAdmin: ProxyAdmin__factory;
|
|
4
|
+
interchainGasPaymaster: InterchainGasPaymaster__factory;
|
|
5
|
+
defaultIsmInterchainGasPaymaster: OverheadIgp__factory;
|
|
6
|
+
storageGasOracle: StorageGasOracle__factory;
|
|
7
|
+
};
|
|
8
|
+
export declare type IgpFactories = typeof igpFactories;
|
|
9
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/gas/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,YAAY;;;;;CAKxB,CAAC;AAEF,oBAAY,YAAY,GAAG,OAAO,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.igpFactories = void 0;
|
|
4
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
5
|
+
exports.igpFactories = {
|
|
6
|
+
proxyAdmin: new core_1.ProxyAdmin__factory(),
|
|
7
|
+
interchainGasPaymaster: new core_1.InterchainGasPaymaster__factory(),
|
|
8
|
+
defaultIsmInterchainGasPaymaster: new core_1.OverheadIgp__factory(),
|
|
9
|
+
storageGasOracle: new core_1.StorageGasOracle__factory(),
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/gas/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAEhB,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,sBAAsB,EAAE,IAAI,sCAA+B,EAAE;IAC7D,gCAAgC,EAAE,IAAI,2BAAoB,EAAE;IAC5D,gBAAgB,EAAE,IAAI,gCAAyB,EAAE;CAClD,CAAC"}
|
package/dist/gas/types.d.ts
CHANGED
|
@@ -1,59 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import { InterchainGasPaymaster, OverheadIgp } from '@hyperlane-xyz/core';
|
|
2
3
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
4
|
import type { CheckerViolation } from '../deploy/types';
|
|
4
|
-
import {
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare type CoreConfig = {
|
|
10
|
-
multisigIsm: MultisigIsmConfig;
|
|
5
|
+
import { ChainMap } from '../types';
|
|
6
|
+
export declare enum GasOracleContractType {
|
|
7
|
+
StorageGasOracle = "StorageGasOracle"
|
|
8
|
+
}
|
|
9
|
+
export declare type IgpConfig = {
|
|
11
10
|
owner: types.Address;
|
|
12
|
-
|
|
11
|
+
beneficiary: types.Address;
|
|
12
|
+
gasOracleType: ChainMap<GasOracleContractType>;
|
|
13
13
|
};
|
|
14
|
-
export declare
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
contract: Mailbox;
|
|
30
|
-
mailboxType: MailboxViolationType;
|
|
31
|
-
}
|
|
32
|
-
export interface MailboxMultisigIsmViolation extends MailboxViolation {
|
|
14
|
+
export declare type OverheadIgpConfig = IgpConfig & {
|
|
15
|
+
overhead: ChainMap<number>;
|
|
16
|
+
};
|
|
17
|
+
export declare enum IgpViolationType {
|
|
18
|
+
Beneficiary = "Beneficiary",
|
|
19
|
+
GasOracles = "GasOracles",
|
|
20
|
+
Overhead = "Overhead"
|
|
21
|
+
}
|
|
22
|
+
export interface IgpViolation extends CheckerViolation {
|
|
23
|
+
type: 'InterchainGasPaymaster';
|
|
24
|
+
subType: IgpViolationType;
|
|
25
|
+
}
|
|
26
|
+
export interface IgpBeneficiaryViolation extends IgpViolation {
|
|
27
|
+
subType: IgpViolationType.Beneficiary;
|
|
28
|
+
contract: InterchainGasPaymaster;
|
|
33
29
|
actual: types.Address;
|
|
34
30
|
expected: types.Address;
|
|
35
31
|
}
|
|
36
|
-
export interface
|
|
37
|
-
|
|
38
|
-
contract:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
export interface
|
|
43
|
-
subType:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
export interface ThresholdViolation extends MultisigIsmViolation {
|
|
48
|
-
subType: MultisigIsmViolationType.Threshold;
|
|
49
|
-
actual: number;
|
|
50
|
-
expected: number;
|
|
51
|
-
}
|
|
52
|
-
export interface ValidatorAnnounceViolation extends CheckerViolation {
|
|
53
|
-
type: CoreViolationType.ValidatorAnnounce;
|
|
54
|
-
chain: ChainName;
|
|
55
|
-
validator: types.Address;
|
|
56
|
-
actual: boolean;
|
|
57
|
-
expected: boolean;
|
|
32
|
+
export interface IgpGasOraclesViolation extends IgpViolation {
|
|
33
|
+
subType: IgpViolationType.GasOracles;
|
|
34
|
+
contract: InterchainGasPaymaster;
|
|
35
|
+
actual: ChainMap<types.Address>;
|
|
36
|
+
expected: ChainMap<types.Address>;
|
|
37
|
+
}
|
|
38
|
+
export interface IgpOverheadViolation extends IgpViolation {
|
|
39
|
+
subType: IgpViolationType.Overhead;
|
|
40
|
+
contract: OverheadIgp;
|
|
41
|
+
actual: ChainMap<BigNumber>;
|
|
42
|
+
expected: ChainMap<BigNumber>;
|
|
58
43
|
}
|
|
59
44
|
//# sourceMappingURL=types.d.ts.map
|
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,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,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,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,qBAAqB;IAC/B,gBAAgB,qBAAqB;CACtC;AAED,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;IAC3B,aAAa,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,oBAAY,iBAAiB,GAAG,SAAS,GAAG;IAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B,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,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC;IACrC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;CAC/B"}
|
package/dist/gas/types.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
MultisigIsmViolationType["Threshold"] = "Threshold";
|
|
15
|
-
})(MultisigIsmViolationType = exports.MultisigIsmViolationType || (exports.MultisigIsmViolationType = {}));
|
|
16
|
-
var MailboxViolationType;
|
|
17
|
-
(function (MailboxViolationType) {
|
|
18
|
-
MailboxViolationType["DefaultIsm"] = "DefaultIsm";
|
|
19
|
-
})(MailboxViolationType = exports.MailboxViolationType || (exports.MailboxViolationType = {}));
|
|
3
|
+
exports.IgpViolationType = exports.GasOracleContractType = void 0;
|
|
4
|
+
var GasOracleContractType;
|
|
5
|
+
(function (GasOracleContractType) {
|
|
6
|
+
GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
|
|
7
|
+
})(GasOracleContractType = exports.GasOracleContractType || (exports.GasOracleContractType = {}));
|
|
8
|
+
var IgpViolationType;
|
|
9
|
+
(function (IgpViolationType) {
|
|
10
|
+
IgpViolationType["Beneficiary"] = "Beneficiary";
|
|
11
|
+
IgpViolationType["GasOracles"] = "GasOracles";
|
|
12
|
+
IgpViolationType["Overhead"] = "Overhead";
|
|
13
|
+
})(IgpViolationType = exports.IgpViolationType || (exports.IgpViolationType = {}));
|
|
20
14
|
//# sourceMappingURL=types.js.map
|
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":";;;AAQA,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;AACvC,CAAC,EAFW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAEhC;AAYD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
|