@hyperlane-xyz/sdk 1.2.3 → 1.3.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 +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 -249
- 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 +27 -107
- package/dist/consts/environments/test.json +20 -44
- package/dist/consts/environments/testnet.json +27 -99
- 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 +13 -10
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +21 -45
- package/dist/contracts.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.d.ts +2 -0
- package/dist/core/CoreDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.js +93 -0
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -0
- package/dist/core/HyperlaneCore.d.ts +7 -17
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +21 -45
- 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 +11 -30
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +24 -152
- 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 +14 -6
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +14 -29
- 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 +5 -3
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +43 -20
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +25 -25
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +143 -160
- 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 +18 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.js +158 -0
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts +16 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.js +97 -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 +65 -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 +70 -0
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts +2 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.js +65 -0
- 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/accounts.hardhat-test.js +6 -12
- package/dist/middleware/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/deploy.d.ts +7 -7
- package/dist/middleware/deploy.d.ts.map +1 -1
- package/dist/middleware/deploy.js +76 -20
- package/dist/middleware/deploy.js.map +1 -1
- 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 +15 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +15 -6
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +37 -25
- 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 +35 -32
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/queries.hardhat-test.js +1 -1
- package/dist/middleware/queries.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 +17 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.js +40 -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 +2 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.js +82 -0
- 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/proxy.d.ts +4 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +8 -1
- package/dist/proxy.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +5 -6
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +6 -10
- 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 +6 -11
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +10 -9
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +20 -39
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/ProxiedRouterChecker.d.ts +8 -0
- package/dist/router/ProxiedRouterChecker.d.ts.map +1 -0
- package/dist/router/ProxiedRouterChecker.js +26 -0
- package/dist/router/ProxiedRouterChecker.js.map +1 -0
- package/dist/router/ProxiedRouterDeployer.d.ts +13 -0
- package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -0
- package/dist/router/ProxiedRouterDeployer.js +35 -0
- package/dist/router/ProxiedRouterDeployer.js.map +1 -0
- 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/app.d.ts +14 -0
- package/dist/router/app.d.ts.map +1 -0
- package/dist/router/app.js +31 -0
- package/dist/router/app.js.map +1 -0
- package/dist/router/types.d.ts +5 -18
- 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 +39 -3
- package/dist/utils/objects.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
import { Debugger } from 'debug';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { Ownable, ProxyAdmin } from '@hyperlane-xyz/core';
|
|
2
|
+
import { Contract, ethers } from 'ethers';
|
|
3
|
+
import { HyperlaneConnectionClient, Ownable, ProxyAdmin, TransparentUpgradeableProxy } from '@hyperlane-xyz/core';
|
|
4
4
|
import { types } from '@hyperlane-xyz/utils';
|
|
5
|
-
import { HyperlaneContracts, HyperlaneFactories } from '../contracts';
|
|
5
|
+
import { HyperlaneContracts, HyperlaneContractsMap, HyperlaneFactories } from '../contracts';
|
|
6
|
+
import { HyperlaneAddressesMap } from '../contracts';
|
|
6
7
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
7
|
-
import {
|
|
8
|
+
import { ConnectionClientConfig } from '../router/types';
|
|
8
9
|
import { ChainMap, ChainName } from '../types';
|
|
9
10
|
import { ContractVerificationInput } from './verify/types';
|
|
10
11
|
export interface DeployerOptions {
|
|
11
12
|
logger?: Debugger;
|
|
13
|
+
chainTimeoutMs?: number;
|
|
12
14
|
}
|
|
13
|
-
export
|
|
14
|
-
create2Salt?: string;
|
|
15
|
-
initCalldata?: string;
|
|
16
|
-
}
|
|
17
|
-
export declare const CREATE2FACTORY_ADDRESS = "0xc97D8e6f57b0d64971453dDc6EB8483fec9d163a";
|
|
18
|
-
export declare abstract class HyperlaneDeployer<Config, Contracts extends HyperlaneContracts, Factories extends HyperlaneFactories> {
|
|
15
|
+
export declare abstract class HyperlaneDeployer<Config, Factories extends HyperlaneFactories> {
|
|
19
16
|
protected readonly multiProvider: MultiProvider;
|
|
20
|
-
protected readonly configMap: ChainMap<Config>;
|
|
21
17
|
protected readonly factories: Factories;
|
|
22
18
|
protected readonly options?: DeployerOptions | undefined;
|
|
23
|
-
deployedContracts: ChainMap<Contracts>;
|
|
24
19
|
verificationInputs: ChainMap<ContractVerificationInput[]>;
|
|
20
|
+
deployedContracts: HyperlaneContractsMap<Factories>;
|
|
21
|
+
startingBlockNumbers: ChainMap<number | undefined>;
|
|
25
22
|
protected logger: Debugger;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
protected chainTimeoutMs: number;
|
|
24
|
+
constructor(multiProvider: MultiProvider, factories: Factories, options?: DeployerOptions | undefined);
|
|
25
|
+
cacheContracts(partialDeployment: HyperlaneContractsMap<Factories>): void;
|
|
26
|
+
cacheAddresses(partialDeployment: HyperlaneAddressesMap<Factories>): void;
|
|
27
|
+
abstract deployContracts(chain: ChainName, config: Config): Promise<HyperlaneContracts<Factories>>;
|
|
28
|
+
deploy(configMap: ChainMap<Config>): Promise<HyperlaneContractsMap<Factories>>;
|
|
29
|
+
protected runIf<T>(chain: ChainName, address: string, fn: () => Promise<T>, label?: string): Promise<T | undefined>;
|
|
30
30
|
protected runIfOwner<T>(chain: ChainName, ownable: Ownable, fn: () => Promise<T>): Promise<T | undefined>;
|
|
31
|
-
protected
|
|
32
|
-
|
|
33
|
-
protected
|
|
31
|
+
protected runIfAdmin<T>(chain: ChainName, proxy: Contract, signerAdminFn: () => Promise<T>, proxyAdminOwnerFn: (proxyAdmin: ProxyAdmin) => Promise<T>): Promise<T | undefined>;
|
|
32
|
+
protected initConnectionClient(local: ChainName, connectionClient: HyperlaneConnectionClient, config: ConnectionClientConfig): Promise<void>;
|
|
33
|
+
protected deployContractFromFactory<F extends ethers.ContractFactory>(chain: ChainName, factory: F, contractName: string, constructorArgs: Parameters<F['deploy']>, initializeArgs?: Parameters<Awaited<ReturnType<F['deploy']>>['initialize']>): Promise<ReturnType<F['deploy']>>;
|
|
34
|
+
deployContract<K extends keyof Factories>(chain: ChainName, contractName: K, constructorArgs: Parameters<Factories[K]['deploy']>, initializeArgs?: Parameters<Awaited<ReturnType<Factories[K]['deploy']>>['initialize']>): Promise<HyperlaneContracts<Factories>[K]>;
|
|
35
|
+
protected changeAdmin(chain: ChainName, proxy: TransparentUpgradeableProxy, admin: string): Promise<void>;
|
|
36
|
+
protected upgradeAndInitialize<C extends ethers.Contract>(chain: ChainName, proxy: TransparentUpgradeableProxy, implementation: C, initializeArgs: Parameters<C['initialize']>): Promise<void>;
|
|
37
|
+
protected deployProxy<C extends ethers.Contract>(chain: ChainName, implementation: C, proxyAdmin: string, initializeArgs?: Parameters<C['initialize']>): Promise<C>;
|
|
34
38
|
private cacheContract;
|
|
35
39
|
/**
|
|
36
40
|
* Deploys the Implementation and Proxy for a given contract
|
|
37
41
|
*
|
|
38
42
|
*/
|
|
39
|
-
deployProxiedContract<K extends keyof Factories
|
|
40
|
-
/**
|
|
41
|
-
* Changes the proxyAdmin of `proxyAddress` from `currentProxyAdmin` to `desiredProxyAdmin`
|
|
42
|
-
* if the admin is not already the `desiredProxyAdmin`.
|
|
43
|
-
*/
|
|
44
|
-
changeProxyAdmin(chain: ChainName, proxyAddress: types.Address, currentProxyAdmin: ProxyAdmin, desiredProxyAdmin: ProxyAdmin): Promise<void>;
|
|
43
|
+
deployProxiedContract<K extends keyof Factories>(chain: ChainName, contractName: K, proxyAdmin: string, constructorArgs: Parameters<Factories[K]['deploy']>, initializeArgs?: Parameters<HyperlaneContracts<Factories>[K]['initialize']>): Promise<HyperlaneContracts<Factories>[K]>;
|
|
45
44
|
mergeWithExistingVerificationInputs(existingInputsMap: ChainMap<ContractVerificationInput[]>): ChainMap<ContractVerificationInput[]>;
|
|
45
|
+
protected transferOwnershipOfContracts(chain: ChainName, owner: types.Address, ownables: Ownable[]): Promise<ethers.ContractReceipt[]>;
|
|
46
46
|
}
|
|
47
47
|
//# sourceMappingURL=HyperlaneDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,236 +9,205 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.HyperlaneDeployer =
|
|
12
|
+
exports.HyperlaneDeployer = void 0;
|
|
13
13
|
const debug_1 = require("debug");
|
|
14
|
-
const ethers_1 = require("ethers");
|
|
15
14
|
const core_1 = require("@hyperlane-xyz/core");
|
|
15
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
16
16
|
const contracts_1 = require("../contracts");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
exports.CREATE2FACTORY_ADDRESS = '0xc97D8e6f57b0d64971453dDc6EB8483fec9d163a';
|
|
17
|
+
const contracts_2 = require("../contracts");
|
|
18
|
+
const proxy_1 = require("./proxy");
|
|
19
|
+
const utils_2 = require("./verify/utils");
|
|
21
20
|
class HyperlaneDeployer {
|
|
22
|
-
constructor(multiProvider,
|
|
21
|
+
constructor(multiProvider, factories, options) {
|
|
22
|
+
var _a, _b;
|
|
23
23
|
this.multiProvider = multiProvider;
|
|
24
|
-
this.configMap = configMap;
|
|
25
24
|
this.factories = factories;
|
|
26
25
|
this.options = options;
|
|
26
|
+
this.verificationInputs = {};
|
|
27
27
|
this.deployedContracts = {};
|
|
28
|
-
this.
|
|
29
|
-
this.logger = (options === null || options === void 0 ? void 0 : options.logger)
|
|
28
|
+
this.startingBlockNumbers = {};
|
|
29
|
+
this.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) !== null && _a !== void 0 ? _a : (0, debug_1.debug)('hyperlane:deployer');
|
|
30
|
+
this.chainTimeoutMs = (_b = options === null || options === void 0 ? void 0 : options.chainTimeoutMs) !== null && _b !== void 0 ? _b : 5 * 60 * 1000; // 5 minute timeout per chain
|
|
30
31
|
}
|
|
31
32
|
cacheContracts(partialDeployment) {
|
|
32
33
|
this.deployedContracts = (0, contracts_1.connectContractsMap)(partialDeployment, this.multiProvider);
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
cacheAddresses(partialDeployment) {
|
|
36
|
+
this.cacheContracts((0, contracts_2.attachContractsMap)(partialDeployment, this.factories));
|
|
37
|
+
}
|
|
38
|
+
deploy(configMap) {
|
|
36
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
|
|
38
|
-
this.cacheContracts(partialDeployment);
|
|
39
|
-
}
|
|
40
|
-
const configChains = Object.keys(this.configMap);
|
|
40
|
+
const configChains = Object.keys(configMap);
|
|
41
41
|
const targetChains = this.multiProvider.intersect(configChains, true).intersection;
|
|
42
42
|
this.logger(`Start deploy to ${targetChains}`);
|
|
43
43
|
for (const chain of targetChains) {
|
|
44
44
|
const signerUrl = yield this.multiProvider.tryGetExplorerAddressUrl(chain);
|
|
45
|
-
this.logger(`Deploying to ${chain} from ${signerUrl}
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
this.logger(`Deploying to ${chain} from ${signerUrl}`);
|
|
46
|
+
this.startingBlockNumbers[chain] = yield this.multiProvider
|
|
47
|
+
.getProvider(chain)
|
|
48
|
+
.getBlockNumber();
|
|
49
|
+
yield utils_1.utils.runWithTimeout(this.chainTimeoutMs, () => __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
this.deployedContracts[chain] = yield this.deployContracts(chain, configMap[chain]);
|
|
51
|
+
}));
|
|
49
52
|
}
|
|
50
53
|
return this.deployedContracts;
|
|
51
54
|
});
|
|
52
55
|
}
|
|
53
|
-
|
|
56
|
+
runIf(chain, address, fn, label = 'address') {
|
|
54
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
const logObj = { owner, signer: address };
|
|
58
|
-
if (address === owner) {
|
|
58
|
+
const signer = yield this.multiProvider.getSignerAddress(chain);
|
|
59
|
+
if (utils_1.utils.eqAddress(address, signer)) {
|
|
59
60
|
return fn();
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
62
|
-
this.logger(
|
|
63
|
+
this.logger(`Signer (${signer}) does not match ${label} (${address})`);
|
|
63
64
|
}
|
|
64
65
|
return undefined;
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
+
runIfOwner(chain, ownable, fn) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
return this.runIf(chain, yield ownable.callStatic.owner(), fn, 'owner');
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
runIfAdmin(chain, proxy, signerAdminFn, proxyAdminOwnerFn) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const admin = yield (0, proxy_1.proxyAdmin)(this.multiProvider.getProvider(chain), proxy.address);
|
|
76
|
+
const code = yield this.multiProvider.getProvider(chain).getCode(admin);
|
|
77
|
+
// if admin is a ProxyAdmin, run the proxyAdminOwnerFn (if deployer is owner)
|
|
78
|
+
if (code !== '0x') {
|
|
79
|
+
this.logger(`Admin is a ProxyAdmin (${admin})`);
|
|
80
|
+
const proxyAdmin = core_1.ProxyAdmin__factory.connect(admin, proxy.signer);
|
|
81
|
+
return this.runIfOwner(chain, proxyAdmin, () => proxyAdminOwnerFn(proxyAdmin));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.logger(`Admin is an EOA (${admin})`);
|
|
85
|
+
// if admin is an EOA, run the signerAdminFn (if deployer is admin)
|
|
86
|
+
return this.runIf(chain, admin, () => signerAdminFn(), 'admin');
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
initConnectionClient(local, connectionClient, config) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
this.logger(`Initializing connection client on ${local}...`);
|
|
93
|
+
return this.runIfOwner(local, connectionClient, () => __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
// set mailbox if not already set (and configured)
|
|
95
|
+
if (config.mailbox !== (yield connectionClient.mailbox())) {
|
|
96
|
+
this.logger(`Set mailbox on (${local})`);
|
|
97
|
+
yield this.multiProvider.handleTx(local, connectionClient.setMailbox(config.mailbox));
|
|
98
|
+
}
|
|
99
|
+
// set interchain gas paymaster if not already set (and configured)
|
|
100
|
+
if (config.interchainGasPaymaster !==
|
|
101
|
+
(yield connectionClient.interchainGasPaymaster())) {
|
|
102
|
+
this.logger(`Set interchain gas paymaster on ${local}`);
|
|
103
|
+
yield this.multiProvider.handleTx(local, connectionClient.setInterchainGasPaymaster(config.interchainGasPaymaster));
|
|
104
|
+
}
|
|
105
|
+
// set interchain security module if not already set (and configured)
|
|
106
|
+
if (config.interchainSecurityModule &&
|
|
107
|
+
config.interchainSecurityModule !==
|
|
108
|
+
(yield connectionClient.interchainSecurityModule())) {
|
|
109
|
+
this.logger(`Set interchain security module on ${local}`);
|
|
110
|
+
yield this.multiProvider.handleTx(local, connectionClient.setInterchainSecurityModule(config.interchainSecurityModule));
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
deployContractFromFactory(chain, factory, contractName, constructorArgs, initializeArgs) {
|
|
68
116
|
var _a;
|
|
69
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
118
|
const cachedContract = (_a = this.deployedContracts[chain]) === null || _a === void 0 ? void 0 : _a[contractName];
|
|
71
|
-
if (cachedContract
|
|
119
|
+
if (cachedContract) {
|
|
72
120
|
this.logger(`Recovered ${contractName} on ${chain} ${cachedContract.address}`);
|
|
73
121
|
return cachedContract;
|
|
74
122
|
}
|
|
75
|
-
const provider = this.multiProvider.getProvider(chain);
|
|
76
123
|
const signer = this.multiProvider.getSigner(chain);
|
|
77
124
|
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
78
125
|
this.logger(`Deploy ${contractName} on ${chain}`);
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
const contractAddr = yield create2Factory.deployedAddress(bytecode, yield signer.getAddress(), salt);
|
|
88
|
-
const contractCode = yield provider.getCode(contractAddr);
|
|
89
|
-
if (contractCode === '0x') {
|
|
90
|
-
const deployTx = deployOpts.initCalldata
|
|
91
|
-
? yield create2Factory.deployAndInit(bytecode, salt, deployOpts.initCalldata, overrides)
|
|
92
|
-
: yield create2Factory.deploy(bytecode, salt, overrides);
|
|
93
|
-
yield this.multiProvider.handleTx(chain, deployTx);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.logger(`Found contract deployed at CREATE2 address, skipping contract deploy`);
|
|
97
|
-
}
|
|
98
|
-
this.verificationInputs[chain].push({
|
|
99
|
-
name: contractName.charAt(0).toUpperCase() + contractName.slice(1),
|
|
100
|
-
address: contractAddr,
|
|
101
|
-
isProxy: contractName.endsWith('Proxy'),
|
|
102
|
-
constructorArguments: encodedConstructorArgs,
|
|
103
|
-
});
|
|
104
|
-
return factory.attach(contractAddr).connect(signer);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
const contract = yield factory
|
|
108
|
-
.connect(signer)
|
|
109
|
-
.deploy(...constructorArgs, overrides);
|
|
110
|
-
yield this.multiProvider.handleTx(chain, contract.deployTransaction);
|
|
111
|
-
if (deployOpts === null || deployOpts === void 0 ? void 0 : deployOpts.initCalldata) {
|
|
112
|
-
this.logger(`Initialize ${contractName} on ${chain}`);
|
|
113
|
-
const initTx = yield signer.sendTransaction({
|
|
114
|
-
to: contract.address,
|
|
115
|
-
data: deployOpts.initCalldata,
|
|
116
|
-
});
|
|
117
|
-
yield this.multiProvider.handleTx(chain, initTx);
|
|
118
|
-
}
|
|
119
|
-
const verificationInput = (0, utils_1.getContractVerificationInput)(contractName, contract, factory.bytecode);
|
|
120
|
-
this.verificationInputs[chain].push(verificationInput);
|
|
121
|
-
return contract;
|
|
126
|
+
const contract = yield factory
|
|
127
|
+
.connect(signer)
|
|
128
|
+
.deploy(...constructorArgs, overrides);
|
|
129
|
+
yield this.multiProvider.handleTx(chain, contract.deployTransaction);
|
|
130
|
+
if (initializeArgs) {
|
|
131
|
+
this.logger(`Initialize ${contractName} on ${chain}`);
|
|
132
|
+
const initTx = yield contract.initialize(...initializeArgs);
|
|
133
|
+
yield this.multiProvider.handleTx(chain, initTx);
|
|
122
134
|
}
|
|
135
|
+
const verificationInput = (0, utils_2.getContractVerificationInput)(contractName, contract, factory.bytecode);
|
|
136
|
+
this.verificationInputs[chain] = this.verificationInputs[chain] || [];
|
|
137
|
+
this.verificationInputs[chain].push(verificationInput);
|
|
138
|
+
return contract;
|
|
123
139
|
});
|
|
124
140
|
}
|
|
125
|
-
deployContract(chain, contractName,
|
|
141
|
+
deployContract(chain, contractName, constructorArgs, initializeArgs) {
|
|
126
142
|
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
-
const contract = yield this.deployContractFromFactory(chain, this.factories[contractName], contractName.toString(),
|
|
143
|
+
const contract = (yield this.deployContractFromFactory(chain, this.factories[contractName], contractName.toString(), constructorArgs, initializeArgs));
|
|
128
144
|
this.cacheContract(chain, contractName, contract);
|
|
129
145
|
return contract;
|
|
130
146
|
});
|
|
131
147
|
}
|
|
132
|
-
|
|
148
|
+
changeAdmin(chain, proxy, admin) {
|
|
133
149
|
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
138
|
-
this.logger(`Deploying transparent upgradable proxy`);
|
|
139
|
-
if (deployOpts &&
|
|
140
|
-
deployOpts.create2Salt &&
|
|
141
|
-
(yield provider.getCode(exports.CREATE2FACTORY_ADDRESS)) != '0x') {
|
|
142
|
-
// To get consistent addresses with Create2, we need to use
|
|
143
|
-
// consistent constructor arguments.
|
|
144
|
-
// The three constructor arguments we need to configure are:
|
|
145
|
-
// 1. Proxy implementation: This will start as the Create2Factory
|
|
146
|
-
// address, as it needs to be a contract address.
|
|
147
|
-
// After we've taken over as the proxy admin, we will set it
|
|
148
|
-
// to the proper address.
|
|
149
|
-
// 2. Proxy admin: This will start as the Create2Factory contract
|
|
150
|
-
// address. We will change this to the proper address atomically.
|
|
151
|
-
// 3. Initialization data: This will start as null, and we will
|
|
152
|
-
// initialize our proxied contract manually.
|
|
153
|
-
const constructorArgs = [exports.CREATE2FACTORY_ADDRESS, exports.CREATE2FACTORY_ADDRESS, '0x'];
|
|
154
|
-
// The proxy admin during deployment must be owned by the deployer.
|
|
155
|
-
// If the canonical proxyAdmin isn't owned by the deployer, we use
|
|
156
|
-
// a temporary deployer-owned proxy admin.
|
|
157
|
-
// Note this requires the proxy contracts to ensure admin power has been
|
|
158
|
-
// transferred to the canonical proxy admin at some point in the future.
|
|
159
|
-
const proxyAdminOwner = yield proxyAdmin.owner();
|
|
160
|
-
const deployer = yield this.multiProvider.getSignerAddress(chain);
|
|
161
|
-
let deployerOwnedProxyAdmin = proxyAdmin;
|
|
162
|
-
if (proxyAdminOwner.toLowerCase() !== deployer.toLowerCase()) {
|
|
163
|
-
deployerOwnedProxyAdmin = yield this.deployContractFromFactory(chain, new core_1.ProxyAdmin__factory(), 'DeployerOwnedProxyAdmin', []);
|
|
164
|
-
}
|
|
165
|
-
// We set the initCallData to atomically change admin to the deployer owned proxyAdmin
|
|
166
|
-
// contract.
|
|
167
|
-
const initCalldata = new core_1.TransparentUpgradeableProxy__factory().interface.encodeFunctionData('changeAdmin', [deployerOwnedProxyAdmin.address]);
|
|
168
|
-
proxy = yield this.deployContractFromFactory(chain, new core_1.TransparentUpgradeableProxy__factory(), 'TransparentUpgradeableProxy', constructorArgs, Object.assign(Object.assign({}, deployOpts), { initCalldata }));
|
|
169
|
-
this.logger(`Upgrading and initializing transparent upgradable proxy`);
|
|
170
|
-
// We now have a deployed proxy admin'd by deployerOwnedProxyAdmin.
|
|
171
|
-
// Upgrade its implementation and initialize it
|
|
172
|
-
const upgradeAndCallTx = yield deployerOwnedProxyAdmin.upgradeAndCall(proxy.address, implementation.address, initData, overrides);
|
|
173
|
-
yield this.multiProvider.handleTx(chain, upgradeAndCallTx);
|
|
174
|
-
// Change the proxy admin from deployerOwnedProxyAdmin to proxyAdmin if necessary.
|
|
175
|
-
yield this.changeProxyAdmin(chain, proxy.address, deployerOwnedProxyAdmin, proxyAdmin);
|
|
150
|
+
if (utils_1.utils.eqAddress(admin, yield proxy.callStatic.admin())) {
|
|
151
|
+
this.logger(`Admin set correctly, skipping admin change`);
|
|
152
|
+
return;
|
|
176
153
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
154
|
+
this.logger(`Changing proxy admin`);
|
|
155
|
+
yield this.runIfAdmin(chain, proxy, () => this.multiProvider.handleTx(chain, proxy.changeAdmin(admin)), (proxyAdmin) => this.multiProvider.handleTx(chain, proxyAdmin.changeProxyAdmin(proxy.address, admin)));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
upgradeAndInitialize(chain, proxy, implementation, initializeArgs) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
const current = yield proxy.callStatic.implementation();
|
|
161
|
+
if (utils_1.utils.eqAddress(implementation.address, current)) {
|
|
162
|
+
this.logger(`Implementation set correctly, skipping upgrade`);
|
|
163
|
+
return;
|
|
180
164
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
165
|
+
this.logger(`Upgrading and initializing implementation`);
|
|
166
|
+
const initData = implementation.interface.encodeFunctionData('initialize', initializeArgs);
|
|
167
|
+
yield this.runIfAdmin(chain, proxy, () => this.multiProvider.handleTx(chain, proxy.upgradeToAndCall(implementation.address, initData)), (proxyAdmin) => this.multiProvider.handleTx(chain, proxyAdmin.upgradeAndCall(proxy.address, implementation.address, initData)));
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
deployProxy(chain, implementation, proxyAdmin, initializeArgs) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
const initData = initializeArgs
|
|
173
|
+
? implementation.interface.encodeFunctionData('initialize', initializeArgs)
|
|
174
|
+
: '0x';
|
|
175
|
+
this.logger(`Deploying transparent upgradable proxy`);
|
|
176
|
+
const constructorArgs = [
|
|
177
|
+
implementation.address,
|
|
178
|
+
proxyAdmin,
|
|
179
|
+
initData,
|
|
180
|
+
];
|
|
181
|
+
const proxy = yield this.deployContractFromFactory(chain, new core_1.TransparentUpgradeableProxy__factory(), 'TransparentUpgradeableProxy', constructorArgs);
|
|
182
|
+
return implementation.attach(proxy.address);
|
|
186
183
|
});
|
|
187
184
|
}
|
|
188
185
|
cacheContract(chain, contractName, contract) {
|
|
189
186
|
if (!this.deployedContracts[chain]) {
|
|
190
187
|
this.deployedContracts[chain] = {};
|
|
191
188
|
}
|
|
192
|
-
// @ts-ignore
|
|
193
189
|
this.deployedContracts[chain][contractName] = contract;
|
|
194
190
|
}
|
|
195
191
|
/**
|
|
196
192
|
* Deploys the Implementation and Proxy for a given contract
|
|
197
193
|
*
|
|
198
194
|
*/
|
|
199
|
-
deployProxiedContract(chain, contractName,
|
|
195
|
+
deployProxiedContract(chain, contractName, proxyAdmin, constructorArgs, initializeArgs) {
|
|
200
196
|
var _a;
|
|
201
197
|
return __awaiter(this, void 0, void 0, function* () {
|
|
202
198
|
const cachedProxy = (_a = this.deployedContracts[chain]) === null || _a === void 0 ? void 0 : _a[contractName];
|
|
203
|
-
if (cachedProxy
|
|
204
|
-
cachedProxy.
|
|
205
|
-
cachedProxy.addresses.implementation) {
|
|
206
|
-
this.logger(`Recovered ${contractName.toString()} on ${chain} proxy=${cachedProxy.addresses.proxy} implementation=${cachedProxy.addresses.implementation}`);
|
|
207
|
-
return cachedProxy;
|
|
208
|
-
}
|
|
209
|
-
const implementation = yield this.deployContract(chain, contractName, constructorArgs, deployOpts);
|
|
210
|
-
// If the proxy already existed in artifacts but the implementation did not,
|
|
211
|
-
// we only deploy the implementation and keep the proxy.
|
|
212
|
-
// Changing the proxy's implementation address on-chain is left to
|
|
213
|
-
// the govern / checker script
|
|
214
|
-
if (cachedProxy && cachedProxy.addresses.proxy) {
|
|
215
|
-
this.logger(`Recovered ${contractName.toString()} on ${chain} proxy=${cachedProxy.addresses.proxy}`);
|
|
216
|
-
cachedProxy.addresses.implementation = implementation.address;
|
|
217
|
-
this.cacheContract(chain, contractName, cachedProxy);
|
|
199
|
+
if (cachedProxy) {
|
|
200
|
+
this.logger(`Recovered ${contractName} on ${chain} ${cachedProxy.address}`);
|
|
218
201
|
return cachedProxy;
|
|
219
202
|
}
|
|
220
|
-
|
|
203
|
+
// Try to initialize the implementation even though it may not be necessary
|
|
204
|
+
const implementation = yield this.deployContract(chain, contractName, constructorArgs, initializeArgs);
|
|
205
|
+
// Initialize the proxy the same way
|
|
206
|
+
const contract = yield this.deployProxy(chain, implementation, proxyAdmin, initializeArgs);
|
|
221
207
|
this.cacheContract(chain, contractName, contract);
|
|
222
208
|
return contract;
|
|
223
209
|
});
|
|
224
210
|
}
|
|
225
|
-
/**
|
|
226
|
-
* Changes the proxyAdmin of `proxyAddress` from `currentProxyAdmin` to `desiredProxyAdmin`
|
|
227
|
-
* if the admin is not already the `desiredProxyAdmin`.
|
|
228
|
-
*/
|
|
229
|
-
changeProxyAdmin(chain, proxyAddress, currentProxyAdmin, desiredProxyAdmin) {
|
|
230
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
231
|
-
if (currentProxyAdmin.address.toLowerCase() ===
|
|
232
|
-
desiredProxyAdmin.address.toLowerCase()) {
|
|
233
|
-
this.logger('Current proxy admin is the desired proxy admin');
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
|
-
this.logger(`Transferring proxy admin from ${currentProxyAdmin} to ${desiredProxyAdmin}`);
|
|
237
|
-
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
238
|
-
const changeAdminTx = yield currentProxyAdmin.changeProxyAdmin(proxyAddress, desiredProxyAdmin.address, overrides);
|
|
239
|
-
yield this.multiProvider.handleTx(chain, changeAdminTx);
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
211
|
mergeWithExistingVerificationInputs(existingInputsMap) {
|
|
243
212
|
const allChains = new Set();
|
|
244
213
|
Object.keys(existingInputsMap).forEach((_) => allChains.add(_));
|
|
@@ -251,6 +220,20 @@ class HyperlaneDeployer {
|
|
|
251
220
|
}
|
|
252
221
|
return ret;
|
|
253
222
|
}
|
|
223
|
+
transferOwnershipOfContracts(chain, owner, ownables) {
|
|
224
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
225
|
+
const receipts = [];
|
|
226
|
+
for (const ownable of ownables) {
|
|
227
|
+
const currentOwner = yield ownable.owner();
|
|
228
|
+
if (!utils_1.utils.eqAddress(currentOwner, owner)) {
|
|
229
|
+
const receipt = yield this.runIfOwner(chain, ownable, () => this.multiProvider.handleTx(chain, ownable.transferOwnership(owner, this.multiProvider.getTransactionOverrides(chain))));
|
|
230
|
+
if (receipt)
|
|
231
|
+
receipts.push(receipt);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return receipts.filter((x) => !!x);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
254
237
|
}
|
|
255
238
|
exports.HyperlaneDeployer = HyperlaneDeployer;
|
|
256
239
|
//# sourceMappingURL=HyperlaneDeployer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;
|
|
1
|
+
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|
package/dist/deploy/proxy.d.ts
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
|
-
import { TransparentProxyAddresses } from '../proxy';
|
|
4
|
-
import { ChainName } from '../types';
|
|
5
|
-
import { CheckerViolation } from './types';
|
|
6
|
-
export interface ProxyViolation extends CheckerViolation {
|
|
7
|
-
type: TransparentProxyAddresses['kind'];
|
|
8
|
-
data: {
|
|
9
|
-
proxyAddresses: TransparentProxyAddresses;
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
actual: string;
|
|
13
|
-
expected: string;
|
|
14
|
-
}
|
|
15
3
|
export declare function proxyImplementation(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
16
4
|
export declare function proxyAdmin(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
17
|
-
export declare function
|
|
5
|
+
export declare function isProxy(provider: ethers.providers.Provider, proxy: types.Address): Promise<boolean>;
|
|
18
6
|
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|