@hyperlane-xyz/sdk 3.7.0 → 3.8.0-beta0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts/chainMetadata.d.ts +1 -2
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +43 -64
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +1 -2
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +2 -4
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +121 -133
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/testnet.json +166 -178
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +6 -18
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +4 -2
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +3 -3
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +6 -2
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +24 -11
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestRecipientDeployer.d.ts +2 -1
- package/dist/core/TestRecipientDeployer.d.ts.map +1 -1
- package/dist/core/TestRecipientDeployer.js +2 -1
- package/dist/core/TestRecipientDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +7 -6
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +34 -13
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -1
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +9 -12
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +147 -121
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +14 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js +31 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -0
- package/dist/deploy/verify/types.d.ts +60 -3
- package/dist/deploy/verify/types.d.ts.map +1 -1
- package/dist/deploy/verify/types.js +42 -0
- package/dist/deploy/verify/types.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +0 -2
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +8 -29
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +6 -7
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +40 -59
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +17 -22
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
- package/dist/gas/oracle/types.d.ts +6 -9
- package/dist/gas/oracle/types.d.ts.map +1 -1
- package/dist/gas/oracle/types.js +23 -1
- package/dist/gas/oracle/types.js.map +1 -1
- package/dist/gas/types.d.ts +3 -4
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +1 -5
- package/dist/gas/types.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +2 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +6 -4
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/index.d.ts +16 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -22
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +11 -10
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -12
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +39 -287
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/utils.d.ts +11 -0
- package/dist/ism/utils.d.ts.map +1 -0
- package/dist/ism/utils.js +277 -0
- package/dist/ism/utils.js.map +1 -0
- package/dist/metadata/ChainMetadataManager.d.ts +43 -21
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +26 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +97 -46
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.d.ts +6 -1
- package/dist/metadata/blockExplorer.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.js +15 -1
- package/dist/metadata/blockExplorer.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +188 -1
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +14 -4
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/customZodTypes.d.ts +2 -0
- package/dist/metadata/customZodTypes.d.ts.map +1 -1
- package/dist/metadata/customZodTypes.js +3 -1
- package/dist/metadata/customZodTypes.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +4 -2
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +4 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.js +4 -2
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +10 -12
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +2 -7
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +17 -17
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +1 -0
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +5 -2
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +10 -1
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +2 -2
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +1 -0
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +2 -2
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +2 -3
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/test/testUtils.d.ts +1 -2
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +12 -28
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/IToken.d.ts +147 -0
- package/dist/token/IToken.d.ts.map +1 -0
- package/dist/token/IToken.js +37 -0
- package/dist/token/IToken.js.map +1 -0
- package/dist/token/Token.d.ts +58 -0
- package/dist/token/Token.d.ts.map +1 -0
- package/dist/token/Token.js +260 -0
- package/dist/token/Token.js.map +1 -0
- package/dist/token/Token.test.d.ts +2 -0
- package/dist/token/Token.test.d.ts.map +1 -0
- package/dist/token/Token.test.js +155 -0
- package/dist/token/Token.test.js.map +1 -0
- package/dist/token/TokenAmount.d.ts +12 -0
- package/dist/token/TokenAmount.d.ts.map +1 -0
- package/dist/token/TokenAmount.js +24 -0
- package/dist/token/TokenAmount.js.map +1 -0
- package/dist/token/TokenAmount.test.d.ts +2 -0
- package/dist/token/TokenAmount.test.d.ts.map +1 -0
- package/dist/token/TokenAmount.test.js +41 -0
- package/dist/token/TokenAmount.test.js.map +1 -0
- package/dist/token/TokenConnection.d.ts +81 -0
- package/dist/token/TokenConnection.d.ts.map +1 -0
- package/dist/token/TokenConnection.js +36 -0
- package/dist/token/TokenConnection.js.map +1 -0
- package/dist/token/TokenStandard.d.ts +36 -0
- package/dist/token/TokenStandard.d.ts.map +1 -0
- package/dist/token/TokenStandard.js +118 -0
- package/dist/token/TokenStandard.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +29 -30
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js +65 -50
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +11 -9
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +25 -6
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +27 -16
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +69 -23
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +16 -11
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +15 -13
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +17 -15
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/deploy.d.ts +3 -2
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +4 -2
- package/dist/token/deploy.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/warp/WarpCore.d.ts +76 -0
- package/dist/warp/WarpCore.d.ts.map +1 -0
- package/dist/warp/WarpCore.js +288 -0
- package/dist/warp/WarpCore.js.map +1 -0
- package/dist/warp/WarpCore.test.d.ts +2 -0
- package/dist/warp/WarpCore.test.d.ts.map +1 -0
- package/dist/warp/WarpCore.test.js +143 -0
- package/dist/warp/WarpCore.test.js.map +1 -0
- package/dist/warp/types.d.ts +274 -0
- package/dist/warp/types.d.ts.map +1 -0
- package/dist/warp/types.js +38 -0
- package/dist/warp/types.js.map +1 -0
- package/logos/black/cosmwasm.svg +1 -1
- package/logos/black/plume.svg +29 -0
- package/logos/color/cosmos.svg +1 -1
- package/logos/color/cosmwasm.svg +1 -1
- package/logos/color/manta.svg +1 -1
- package/logos/color/plume.svg +24 -0
- package/package.json +5 -4
- package/dist/gas/oracle/logging.d.ts +0 -7
- package/dist/gas/oracle/logging.d.ts.map +0 -1
- package/dist/gas/oracle/logging.js +0 -18
- package/dist/gas/oracle/logging.js.map +0 -1
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const debug_1 = require("debug");
|
|
5
|
-
const ethers_1 = require("ethers");
|
|
6
|
+
exports.HyperlaneIsmFactory = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
6
8
|
const core_1 = require("@hyperlane-xyz/core");
|
|
7
9
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
8
10
|
const HyperlaneApp_1 = require("../app/HyperlaneApp");
|
|
9
11
|
const environments_1 = require("../consts/environments");
|
|
10
12
|
const contracts_1 = require("../contracts/contracts");
|
|
11
13
|
const contracts_2 = require("../deploy/contracts");
|
|
12
|
-
const logger_1 = require("../logger");
|
|
13
14
|
const types_1 = require("./types");
|
|
15
|
+
const utils_2 = require("./utils");
|
|
14
16
|
class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
15
17
|
constructor() {
|
|
16
18
|
super(...arguments);
|
|
@@ -19,6 +21,9 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
19
21
|
// TODO: fix this in the next refactoring
|
|
20
22
|
this.deployedIsms = {};
|
|
21
23
|
}
|
|
24
|
+
setDeployer(deployer) {
|
|
25
|
+
this.deployer = deployer;
|
|
26
|
+
}
|
|
22
27
|
static fromEnvironment(env, multiProvider) {
|
|
23
28
|
const envAddresses = environments_1.hyperlaneEnvironments[env];
|
|
24
29
|
if (!envAddresses) {
|
|
@@ -29,7 +34,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
29
34
|
}
|
|
30
35
|
static fromAddressesMap(addressesMap, multiProvider) {
|
|
31
36
|
const helper = (0, contracts_1.appFromAddressesMapHelper)(addressesMap, contracts_2.proxyFactoryFactories, multiProvider);
|
|
32
|
-
return new HyperlaneIsmFactory(helper.contractsMap, multiProvider, (0, debug_1.
|
|
37
|
+
return new HyperlaneIsmFactory(helper.contractsMap, multiProvider, (0, debug_1.default)('hyperlane:IsmFactoryApp'));
|
|
33
38
|
}
|
|
34
39
|
async deploy(params) {
|
|
35
40
|
const { destination, config, origin, mailbox, existingIsmAddress } = params;
|
|
@@ -38,12 +43,13 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
38
43
|
return core_1.IInterchainSecurityModule__factory.connect(config, this.multiProvider.getSignerOrProvider(destination));
|
|
39
44
|
}
|
|
40
45
|
const ismType = config.type;
|
|
41
|
-
this.logger(
|
|
46
|
+
const logger = this.logger.extend(`${destination}:${ismType}`);
|
|
47
|
+
logger(`Deploying ${ismType} to ${destination} ${origin ? `(for verifying ${origin})` : ''}`);
|
|
42
48
|
let contract;
|
|
43
49
|
switch (ismType) {
|
|
44
50
|
case types_1.IsmType.MESSAGE_ID_MULTISIG:
|
|
45
51
|
case types_1.IsmType.MERKLE_ROOT_MULTISIG:
|
|
46
|
-
contract = await this.deployMultisigIsm(destination, config);
|
|
52
|
+
contract = await this.deployMultisigIsm(destination, config, logger);
|
|
47
53
|
break;
|
|
48
54
|
case types_1.IsmType.ROUTING:
|
|
49
55
|
case types_1.IsmType.FALLBACK_ROUTING:
|
|
@@ -53,6 +59,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
53
59
|
origin,
|
|
54
60
|
mailbox,
|
|
55
61
|
existingIsmAddress,
|
|
62
|
+
logger,
|
|
56
63
|
});
|
|
57
64
|
break;
|
|
58
65
|
case types_1.IsmType.AGGREGATION:
|
|
@@ -61,16 +68,26 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
61
68
|
config,
|
|
62
69
|
origin,
|
|
63
70
|
mailbox,
|
|
71
|
+
logger,
|
|
64
72
|
});
|
|
65
73
|
break;
|
|
66
74
|
case types_1.IsmType.OP_STACK:
|
|
67
|
-
|
|
75
|
+
if (!this.deployer) {
|
|
76
|
+
throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
|
|
77
|
+
}
|
|
78
|
+
contract = await this.deployer?.deployContractFromFactory(destination, new core_1.OPStackIsm__factory(), types_1.IsmType.OP_STACK, [config.nativeBridge]);
|
|
68
79
|
break;
|
|
69
80
|
case types_1.IsmType.PAUSABLE:
|
|
70
|
-
|
|
81
|
+
if (!this.deployer) {
|
|
82
|
+
throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
|
|
83
|
+
}
|
|
84
|
+
contract = await this.deployer?.deployContractFromFactory(destination, new core_1.PausableIsm__factory(), types_1.IsmType.PAUSABLE, [config.owner]);
|
|
71
85
|
break;
|
|
72
86
|
case types_1.IsmType.TEST_ISM:
|
|
73
|
-
|
|
87
|
+
if (!this.deployer) {
|
|
88
|
+
throw new Error(`HyperlaneDeployer must be set to deploy ${ismType}`);
|
|
89
|
+
}
|
|
90
|
+
contract = await this.deployer?.deployContractFromFactory(destination, new core_1.TestIsm__factory(), types_1.IsmType.TEST_ISM, []);
|
|
74
91
|
break;
|
|
75
92
|
default:
|
|
76
93
|
throw new Error(`Unsupported ISM type ${ismType}`);
|
|
@@ -92,12 +109,12 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
92
109
|
}
|
|
93
110
|
return contract;
|
|
94
111
|
}
|
|
95
|
-
async deployMultisigIsm(destination, config) {
|
|
112
|
+
async deployMultisigIsm(destination, config, logger) {
|
|
96
113
|
const signer = this.multiProvider.getSigner(destination);
|
|
97
114
|
const multisigIsmFactory = config.type === types_1.IsmType.MERKLE_ROOT_MULTISIG
|
|
98
115
|
? this.getContracts(destination).merkleRootMultisigIsmFactory
|
|
99
116
|
: this.getContracts(destination).messageIdMultisigIsmFactory;
|
|
100
|
-
const address = await this.deployStaticAddressSet(destination, multisigIsmFactory, config.validators, config.threshold);
|
|
117
|
+
const address = await this.deployStaticAddressSet(destination, multisigIsmFactory, config.validators, logger, config.threshold);
|
|
101
118
|
return core_1.IMultisigIsm__factory.connect(address, signer);
|
|
102
119
|
}
|
|
103
120
|
async deployRoutingIsm(params) {
|
|
@@ -115,7 +132,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
115
132
|
});
|
|
116
133
|
const safeConfigDomains = Object.keys(config.domains).map((domain) => this.multiProvider.getDomainId(domain));
|
|
117
134
|
const delta = existingIsmAddress
|
|
118
|
-
? await routingModuleDelta(destination, existingIsmAddress, config, this.multiProvider, this.getContracts(destination), mailbox)
|
|
135
|
+
? await (0, utils_2.routingModuleDelta)(destination, existingIsmAddress, config, this.multiProvider, this.getContracts(destination), mailbox)
|
|
119
136
|
: {
|
|
120
137
|
domainsToUnenroll: [],
|
|
121
138
|
domainsToEnroll: safeConfigDomains,
|
|
@@ -134,7 +151,7 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
134
151
|
// deploying all the ISMs which have to be updated
|
|
135
152
|
for (const originDomain of delta.domainsToEnroll) {
|
|
136
153
|
const origin = this.multiProvider.getChainName(originDomain); // already filtered to only include domains in the multiprovider
|
|
137
|
-
|
|
154
|
+
params.logger(`Reconfiguring preexisting routing ISM at for origin ${origin}...`);
|
|
138
155
|
const ism = await this.deploy({
|
|
139
156
|
destination,
|
|
140
157
|
config: config.domains[origin],
|
|
@@ -147,13 +164,13 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
147
164
|
}
|
|
148
165
|
// unenrolling domains if needed
|
|
149
166
|
for (const originDomain of delta.domainsToUnenroll) {
|
|
150
|
-
|
|
167
|
+
params.logger(`Unenrolling originDomain ${originDomain} from preexisting routing ISM at ${existingIsmAddress}...`);
|
|
151
168
|
const tx = await routingIsm.remove(originDomain, overrides);
|
|
152
169
|
await this.multiProvider.handleTx(destination, tx);
|
|
153
170
|
}
|
|
154
171
|
// transfer ownership if needed
|
|
155
172
|
if (delta.owner) {
|
|
156
|
-
|
|
173
|
+
params.logger(`Transferring ownership of routing ISM...`);
|
|
157
174
|
const tx = await routingIsm.transferOwnership(delta.owner, overrides);
|
|
158
175
|
await this.multiProvider.handleTx(destination, tx);
|
|
159
176
|
}
|
|
@@ -176,9 +193,9 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
176
193
|
if (!mailbox) {
|
|
177
194
|
throw new Error('Mailbox address is required for deploying fallback routing ISM');
|
|
178
195
|
}
|
|
179
|
-
|
|
196
|
+
params.logger('Deploying fallback routing ISM ...');
|
|
180
197
|
routingIsm = await this.multiProvider.handleDeploy(destination, new core_1.DefaultFallbackRoutingIsm__factory(), [mailbox]);
|
|
181
|
-
|
|
198
|
+
params.logger('Initialising fallback routing ISM ...');
|
|
182
199
|
receipt = await this.multiProvider.handleTx(destination, routingIsm['initialize(address,uint32[],address[])'](config.owner, safeConfigDomains, submoduleAddresses, overrides));
|
|
183
200
|
}
|
|
184
201
|
else {
|
|
@@ -219,290 +236,25 @@ class HyperlaneIsmFactory extends HyperlaneApp_1.HyperlaneApp {
|
|
|
219
236
|
});
|
|
220
237
|
addresses.push(submodule.address);
|
|
221
238
|
}
|
|
222
|
-
const address = await this.deployStaticAddressSet(destination, aggregationIsmFactory, addresses, config.threshold);
|
|
239
|
+
const address = await this.deployStaticAddressSet(destination, aggregationIsmFactory, addresses, params.logger, config.threshold);
|
|
223
240
|
return core_1.IAggregationIsm__factory.connect(address, signer);
|
|
224
241
|
}
|
|
225
|
-
async
|
|
226
|
-
return await this.multiProvider.handleDeploy(chain, new core_1.OPStackIsm__factory(), [config.nativeBridge]);
|
|
227
|
-
}
|
|
228
|
-
async deployStaticAddressSet(chain, factory, values, threshold = values.length) {
|
|
242
|
+
async deployStaticAddressSet(chain, factory, values, logger, threshold = values.length) {
|
|
229
243
|
const sorted = [...values].sort();
|
|
230
244
|
const address = await factory['getAddress(address[],uint8)'](sorted, threshold);
|
|
231
245
|
const code = await this.multiProvider.getProvider(chain).getCode(address);
|
|
232
246
|
if (code === '0x') {
|
|
233
|
-
|
|
247
|
+
logger(`Deploying new ${threshold} of ${values.length} address set to ${chain}`);
|
|
234
248
|
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
235
249
|
const hash = await factory['deploy(address[],uint8)'](sorted, threshold, overrides);
|
|
236
250
|
await this.multiProvider.handleTx(chain, hash);
|
|
237
251
|
// TODO: add proxy verification artifact?
|
|
238
252
|
}
|
|
239
253
|
else {
|
|
240
|
-
|
|
254
|
+
logger(`Recovered ${threshold} of ${values.length} address set on ${chain}`);
|
|
241
255
|
}
|
|
242
256
|
return address;
|
|
243
257
|
}
|
|
244
258
|
}
|
|
245
259
|
exports.HyperlaneIsmFactory = HyperlaneIsmFactory;
|
|
246
|
-
// Note that this function may return false negatives, but should
|
|
247
|
-
// not return false positives.
|
|
248
|
-
// This can happen if, for example, the module has sender, recipient, or
|
|
249
|
-
// body specific logic, as the sample message used when querying the ISM
|
|
250
|
-
// sets all of these to zero.
|
|
251
|
-
async function moduleCanCertainlyVerify(destModule, multiProvider, origin, destination) {
|
|
252
|
-
const originDomainId = multiProvider.tryGetDomainId(origin);
|
|
253
|
-
const destinationDomainId = multiProvider.tryGetDomainId(destination);
|
|
254
|
-
if (!originDomainId || !destinationDomainId) {
|
|
255
|
-
return false;
|
|
256
|
-
}
|
|
257
|
-
const message = (0, utils_1.formatMessage)(0, 0, originDomainId, ethers_1.ethers.constants.AddressZero, destinationDomainId, ethers_1.ethers.constants.AddressZero, '0x');
|
|
258
|
-
const provider = multiProvider.getSignerOrProvider(destination);
|
|
259
|
-
if (typeof destModule === 'string') {
|
|
260
|
-
const module = core_1.IInterchainSecurityModule__factory.connect(destModule, provider);
|
|
261
|
-
try {
|
|
262
|
-
const moduleType = await module.moduleType();
|
|
263
|
-
if (moduleType === types_1.ModuleType.MERKLE_ROOT_MULTISIG ||
|
|
264
|
-
moduleType === types_1.ModuleType.MESSAGE_ID_MULTISIG) {
|
|
265
|
-
const multisigModule = core_1.IMultisigIsm__factory.connect(destModule, provider);
|
|
266
|
-
const [, threshold] = await multisigModule.validatorsAndThreshold(message);
|
|
267
|
-
return threshold > 0;
|
|
268
|
-
}
|
|
269
|
-
else if (moduleType === types_1.ModuleType.ROUTING) {
|
|
270
|
-
const routingIsm = core_1.IRoutingIsm__factory.connect(destModule, provider);
|
|
271
|
-
const subModule = await routingIsm.route(message);
|
|
272
|
-
return moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
|
|
273
|
-
}
|
|
274
|
-
else if (moduleType === types_1.ModuleType.AGGREGATION) {
|
|
275
|
-
const aggregationIsm = core_1.IAggregationIsm__factory.connect(destModule, provider);
|
|
276
|
-
const [subModules, threshold] = await aggregationIsm.modulesAndThreshold(message);
|
|
277
|
-
let verified = 0;
|
|
278
|
-
for (const subModule of subModules) {
|
|
279
|
-
const canVerify = await moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
|
|
280
|
-
if (canVerify) {
|
|
281
|
-
verified += 1;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return verified >= threshold;
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
throw new Error(`Unsupported module type: ${moduleType}`);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
catch (e) {
|
|
291
|
-
(0, logger_1.logger)(`Error checking module ${destModule}: ${e}`);
|
|
292
|
-
return false;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
// destModule is an IsmConfig
|
|
297
|
-
switch (destModule.type) {
|
|
298
|
-
case types_1.IsmType.MERKLE_ROOT_MULTISIG:
|
|
299
|
-
case types_1.IsmType.MESSAGE_ID_MULTISIG:
|
|
300
|
-
return destModule.threshold > 0;
|
|
301
|
-
case types_1.IsmType.ROUTING: {
|
|
302
|
-
const checking = moduleCanCertainlyVerify(destModule.domains[destination], multiProvider, origin, destination);
|
|
303
|
-
return checking;
|
|
304
|
-
}
|
|
305
|
-
case types_1.IsmType.AGGREGATION: {
|
|
306
|
-
let verified = 0;
|
|
307
|
-
for (const subModule of destModule.modules) {
|
|
308
|
-
const canVerify = await moduleCanCertainlyVerify(subModule, multiProvider, origin, destination);
|
|
309
|
-
if (canVerify) {
|
|
310
|
-
verified += 1;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return verified >= destModule.threshold;
|
|
314
|
-
}
|
|
315
|
-
case types_1.IsmType.OP_STACK:
|
|
316
|
-
return destModule.nativeBridge !== ethers_1.ethers.constants.AddressZero;
|
|
317
|
-
case types_1.IsmType.TEST_ISM: {
|
|
318
|
-
return true;
|
|
319
|
-
}
|
|
320
|
-
default:
|
|
321
|
-
throw new Error(`Unsupported module type: ${destModule.type}`);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
exports.moduleCanCertainlyVerify = moduleCanCertainlyVerify;
|
|
326
|
-
async function moduleMatchesConfig(chain, moduleAddress, config, multiProvider, contracts, mailbox) {
|
|
327
|
-
if (typeof config === 'string') {
|
|
328
|
-
return (0, utils_1.eqAddress)(moduleAddress, config);
|
|
329
|
-
}
|
|
330
|
-
// If the module address is zero, it can't match any object-based config.
|
|
331
|
-
// The subsequent check of what moduleType it is will throw, so we fail here.
|
|
332
|
-
if ((0, utils_1.eqAddress)(moduleAddress, ethers_1.ethers.constants.AddressZero)) {
|
|
333
|
-
return false;
|
|
334
|
-
}
|
|
335
|
-
const provider = multiProvider.getProvider(chain);
|
|
336
|
-
const module = core_1.IInterchainSecurityModule__factory.connect(moduleAddress, provider);
|
|
337
|
-
const actualType = await module.moduleType();
|
|
338
|
-
if (actualType !== (0, types_1.ismTypeToModuleType)(config.type))
|
|
339
|
-
return false;
|
|
340
|
-
let matches = true;
|
|
341
|
-
switch (config.type) {
|
|
342
|
-
case types_1.IsmType.MERKLE_ROOT_MULTISIG: {
|
|
343
|
-
// A MerkleRootMultisigIsm matches if validators and threshold match the config
|
|
344
|
-
const expectedAddress = await contracts.merkleRootMultisigIsmFactory.getAddress(config.validators.sort(), config.threshold);
|
|
345
|
-
matches = (0, utils_1.eqAddress)(expectedAddress, module.address);
|
|
346
|
-
break;
|
|
347
|
-
}
|
|
348
|
-
case types_1.IsmType.MESSAGE_ID_MULTISIG: {
|
|
349
|
-
// A MessageIdMultisigIsm matches if validators and threshold match the config
|
|
350
|
-
const expectedAddress = await contracts.messageIdMultisigIsmFactory.getAddress(config.validators.sort(), config.threshold);
|
|
351
|
-
matches = (0, utils_1.eqAddress)(expectedAddress, module.address);
|
|
352
|
-
break;
|
|
353
|
-
}
|
|
354
|
-
case types_1.IsmType.FALLBACK_ROUTING:
|
|
355
|
-
case types_1.IsmType.ROUTING: {
|
|
356
|
-
// A RoutingIsm matches if:
|
|
357
|
-
// 1. The set of domains in the config equals those on-chain
|
|
358
|
-
// 2. The modules for each domain match the config
|
|
359
|
-
// TODO: Check (1)
|
|
360
|
-
const routingIsm = core_1.DomainRoutingIsm__factory.connect(moduleAddress, provider);
|
|
361
|
-
// Check that the RoutingISM owner matches the config
|
|
362
|
-
const owner = await routingIsm.owner();
|
|
363
|
-
matches && (matches = (0, utils_1.eqAddress)(owner, config.owner));
|
|
364
|
-
// check if the mailbox matches the config for fallback routing
|
|
365
|
-
if (config.type === types_1.IsmType.FALLBACK_ROUTING) {
|
|
366
|
-
const client = core_1.MailboxClient__factory.connect(moduleAddress, provider);
|
|
367
|
-
const mailboxAddress = await client.mailbox();
|
|
368
|
-
matches =
|
|
369
|
-
matches &&
|
|
370
|
-
mailbox !== undefined &&
|
|
371
|
-
(0, utils_1.eqAddress)(mailboxAddress, mailbox);
|
|
372
|
-
}
|
|
373
|
-
const delta = await routingModuleDelta(chain, moduleAddress, config, multiProvider, contracts, mailbox);
|
|
374
|
-
matches =
|
|
375
|
-
matches &&
|
|
376
|
-
delta.domainsToEnroll.length === 0 &&
|
|
377
|
-
delta.domainsToUnenroll.length === 0 &&
|
|
378
|
-
!delta.mailbox &&
|
|
379
|
-
!delta.owner;
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
|
-
case types_1.IsmType.AGGREGATION: {
|
|
383
|
-
// An AggregationIsm matches if:
|
|
384
|
-
// 1. The threshold matches the config
|
|
385
|
-
// 2. There is a bijection between on and off-chain configured modules
|
|
386
|
-
const aggregationIsm = core_1.StaticAggregationIsm__factory.connect(moduleAddress, provider);
|
|
387
|
-
const [subModules, threshold] = await aggregationIsm.modulesAndThreshold('0x');
|
|
388
|
-
matches && (matches = threshold === config.threshold);
|
|
389
|
-
matches && (matches = subModules.length === config.modules.length);
|
|
390
|
-
const configIndexMatched = new Map();
|
|
391
|
-
for (const subModule of subModules) {
|
|
392
|
-
const subModuleMatchesConfig = await Promise.all(config.modules.map((c) => moduleMatchesConfig(chain, subModule, c, multiProvider, contracts)));
|
|
393
|
-
// The submodule returned by the ISM must match exactly one
|
|
394
|
-
// entry in the config.
|
|
395
|
-
const count = subModuleMatchesConfig.filter(Boolean).length;
|
|
396
|
-
matches && (matches = count === 1);
|
|
397
|
-
// That entry in the config should not have been matched already.
|
|
398
|
-
subModuleMatchesConfig.forEach((matched, index) => {
|
|
399
|
-
if (matched) {
|
|
400
|
-
matches && (matches = !configIndexMatched.has(index));
|
|
401
|
-
configIndexMatched.set(index, true);
|
|
402
|
-
}
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
case types_1.IsmType.OP_STACK: {
|
|
408
|
-
const opStackIsm = core_1.OPStackIsm__factory.connect(moduleAddress, provider);
|
|
409
|
-
const type = await opStackIsm.moduleType();
|
|
410
|
-
matches && (matches = type === types_1.ModuleType.NULL);
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
case types_1.IsmType.TEST_ISM: {
|
|
414
|
-
// This is just a TestISM
|
|
415
|
-
matches = true;
|
|
416
|
-
break;
|
|
417
|
-
}
|
|
418
|
-
case types_1.IsmType.PAUSABLE: {
|
|
419
|
-
const pausableIsm = core_1.PausableIsm__factory.connect(moduleAddress, provider);
|
|
420
|
-
const owner = await pausableIsm.owner();
|
|
421
|
-
matches && (matches = (0, utils_1.eqAddress)(owner, config.owner));
|
|
422
|
-
if (config.paused) {
|
|
423
|
-
const isPaused = await pausableIsm.paused();
|
|
424
|
-
matches && (matches = config.paused === isPaused);
|
|
425
|
-
}
|
|
426
|
-
break;
|
|
427
|
-
}
|
|
428
|
-
default: {
|
|
429
|
-
throw new Error('Unsupported ModuleType');
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
return matches;
|
|
433
|
-
}
|
|
434
|
-
exports.moduleMatchesConfig = moduleMatchesConfig;
|
|
435
|
-
async function routingModuleDelta(destination, moduleAddress, config, multiProvider, contracts, mailbox) {
|
|
436
|
-
const provider = multiProvider.getProvider(destination);
|
|
437
|
-
const routingIsm = core_1.DomainRoutingIsm__factory.connect(moduleAddress, provider);
|
|
438
|
-
const owner = await routingIsm.owner();
|
|
439
|
-
const deployedDomains = (await routingIsm.domains()).map((domain) => domain.toNumber());
|
|
440
|
-
// config.domains is already filtered to only include domains in the multiprovider
|
|
441
|
-
const safeConfigDomains = (0, utils_1.objMap)(config.domains, (domain) => multiProvider.getDomainId(domain));
|
|
442
|
-
const delta = {
|
|
443
|
-
domainsToUnenroll: [],
|
|
444
|
-
domainsToEnroll: [],
|
|
445
|
-
};
|
|
446
|
-
// if owners don't match, we need to transfer ownership
|
|
447
|
-
if (!(0, utils_1.eqAddress)(owner, (0, utils_1.normalizeAddress)(config.owner)))
|
|
448
|
-
delta.owner = config.owner;
|
|
449
|
-
if (config.type === types_1.IsmType.FALLBACK_ROUTING) {
|
|
450
|
-
const client = core_1.MailboxClient__factory.connect(moduleAddress, provider);
|
|
451
|
-
const mailboxAddress = await client.mailbox();
|
|
452
|
-
if (mailbox && !(0, utils_1.eqAddress)(mailboxAddress, mailbox))
|
|
453
|
-
delta.mailbox = mailbox;
|
|
454
|
-
}
|
|
455
|
-
// check for exclusion of domains in the config
|
|
456
|
-
delta.domainsToUnenroll = deployedDomains.filter((domain) => !Object.values(safeConfigDomains).includes(domain));
|
|
457
|
-
// check for inclusion of domains in the config
|
|
458
|
-
for (const [origin, subConfig] of Object.entries(config.domains)) {
|
|
459
|
-
const originDomain = safeConfigDomains[origin];
|
|
460
|
-
if (!deployedDomains.includes(originDomain)) {
|
|
461
|
-
delta.domainsToEnroll.push(originDomain);
|
|
462
|
-
}
|
|
463
|
-
else {
|
|
464
|
-
const subModule = await routingIsm.module(originDomain);
|
|
465
|
-
// Recursively check that the submodule for each configured
|
|
466
|
-
// domain matches the submodule config.
|
|
467
|
-
const subModuleMatches = await moduleMatchesConfig(destination, subModule, subConfig, multiProvider, contracts, mailbox);
|
|
468
|
-
if (!subModuleMatches)
|
|
469
|
-
delta.domainsToEnroll.push(originDomain);
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
return delta;
|
|
473
|
-
}
|
|
474
|
-
exports.routingModuleDelta = routingModuleDelta;
|
|
475
|
-
function collectValidators(origin, config) {
|
|
476
|
-
// TODO: support address configurations in collectValidators
|
|
477
|
-
if (typeof config === 'string') {
|
|
478
|
-
(0, debug_1.debug)('hyperlane:IsmFactory')('Address config unimplemented in collectValidators');
|
|
479
|
-
return new Set([]);
|
|
480
|
-
}
|
|
481
|
-
let validators = [];
|
|
482
|
-
if (config.type === types_1.IsmType.MERKLE_ROOT_MULTISIG ||
|
|
483
|
-
config.type === types_1.IsmType.MESSAGE_ID_MULTISIG) {
|
|
484
|
-
validators = config.validators;
|
|
485
|
-
}
|
|
486
|
-
else if (config.type === types_1.IsmType.ROUTING) {
|
|
487
|
-
if (Object.keys(config.domains).includes(origin)) {
|
|
488
|
-
const domainValidators = collectValidators(origin, config.domains[origin]);
|
|
489
|
-
validators = [...domainValidators];
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
else if (config.type === types_1.IsmType.AGGREGATION) {
|
|
493
|
-
const aggregatedValidators = config.modules.map((c) => collectValidators(origin, c));
|
|
494
|
-
aggregatedValidators.forEach((set) => {
|
|
495
|
-
validators = validators.concat([...set]);
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
else if (config.type === types_1.IsmType.TEST_ISM ||
|
|
499
|
-
config.type === types_1.IsmType.PAUSABLE) {
|
|
500
|
-
return new Set([]);
|
|
501
|
-
}
|
|
502
|
-
else {
|
|
503
|
-
throw new Error('Unsupported ModuleType');
|
|
504
|
-
}
|
|
505
|
-
return new Set(validators);
|
|
506
|
-
}
|
|
507
|
-
exports.collectValidators = collectValidators;
|
|
508
260
|
//# sourceMappingURL=HyperlaneIsmFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneIsmFactory.js","sourceRoot":"","sources":["../../src/ism/HyperlaneIsmFactory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HyperlaneIsmFactory.js","sourceRoot":"","sources":["../../src/ism/HyperlaneIsmFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { HyperlaneContracts } from '../contracts/types';
|
|
3
|
+
import { ProxyFactoryFactories } from '../deploy/contracts';
|
|
4
|
+
import { MultiProvider } from '../providers/MultiProvider';
|
|
5
|
+
import { ChainName } from '../types';
|
|
6
|
+
import { IsmConfig, RoutingIsmConfig, RoutingIsmDelta } from './types';
|
|
7
|
+
export declare function moduleCanCertainlyVerify(destModule: Address | IsmConfig, multiProvider: MultiProvider, origin: ChainName, destination: ChainName): Promise<boolean>;
|
|
8
|
+
export declare function moduleMatchesConfig(chain: ChainName, moduleAddress: Address, config: IsmConfig, multiProvider: MultiProvider, contracts: HyperlaneContracts<ProxyFactoryFactories>, mailbox?: Address): Promise<boolean>;
|
|
9
|
+
export declare function routingModuleDelta(destination: ChainName, moduleAddress: Address, config: RoutingIsmConfig, multiProvider: MultiProvider, contracts: HyperlaneContracts<ProxyFactoryFactories>, mailbox?: Address): Promise<RoutingIsmDelta>;
|
|
10
|
+
export declare function collectValidators(origin: ChainName, config: IsmConfig): Set<string>;
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ism/utils.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,SAAS,EAGT,gBAAgB,EAChB,eAAe,EAEhB,MAAM,SAAS,CAAC;AASjB,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,OAAO,CAAC,CAiHlB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CA8IlB;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,GAChB,GAAG,CAAC,MAAM,CAAC,CAsCb"}
|