@hyperlane-xyz/sdk 3.9.0 → 3.11.0-beta-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/README.md +11 -3
- package/dist/app/HyperlaneApp.d.ts +6 -7
- package/dist/app/HyperlaneApp.d.ts.map +1 -1
- package/dist/app/HyperlaneApp.js +10 -15
- package/dist/app/HyperlaneApp.js.map +1 -1
- package/dist/app/MultiProtocolApp.d.ts +10 -11
- package/dist/app/MultiProtocolApp.d.ts.map +1 -1
- package/dist/app/MultiProtocolApp.js +25 -43
- package/dist/app/MultiProtocolApp.js.map +1 -1
- package/dist/app/MultiProtocolApp.test.js +15 -17
- package/dist/app/MultiProtocolApp.test.js.map +1 -1
- package/dist/consts/bytecode.d.ts +8 -8
- package/dist/consts/bytecode.d.ts.map +1 -1
- package/dist/consts/bytecode.js +2 -5
- package/dist/consts/bytecode.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +2 -3
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +198 -234
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +0 -1
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +12 -17
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +292 -244
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +5 -11
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +287 -244
- package/dist/consts/environments/testnet.json +49 -47
- package/dist/consts/igp.js +1 -4
- package/dist/consts/igp.js.map +1 -1
- package/dist/consts/mailbox.js +1 -4
- package/dist/consts/mailbox.js.map +1 -1
- package/dist/consts/multisigIsm.d.ts +2 -2
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +43 -54
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/consts/sealevel.js +1 -4
- package/dist/consts/sealevel.js.map +1 -1
- package/dist/contracts/contracts.d.ts +4 -4
- package/dist/contracts/contracts.d.ts.map +1 -1
- package/dist/contracts/contracts.js +33 -48
- package/dist/contracts/contracts.js.map +1 -1
- package/dist/contracts/types.d.ts +1 -1
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js +1 -2
- package/dist/core/CoreDeployer.hardhat-test.js +43 -48
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +9 -9
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +31 -38
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +6 -8
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts +6 -6
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +25 -28
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +12 -12
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +26 -27
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/MultiProtocolCore.d.ts +9 -10
- package/dist/core/MultiProtocolCore.d.ts.map +1 -1
- package/dist/core/MultiProtocolCore.js +18 -23
- package/dist/core/MultiProtocolCore.js.map +1 -1
- package/dist/core/MultiProtocolCore.test.js +30 -32
- package/dist/core/MultiProtocolCore.test.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +3 -3
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +9 -13
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +5 -5
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +7 -11
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/TestRecipientDeployer.d.ts +5 -5
- package/dist/core/TestRecipientDeployer.d.ts.map +1 -1
- package/dist/core/TestRecipientDeployer.js +11 -18
- package/dist/core/TestRecipientDeployer.js.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +6 -6
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.js +12 -13
- package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js +11 -13
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js.map +1 -1
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts +4 -4
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts.map +1 -1
- package/dist/core/adapters/CosmWasmIgpAdapter.js +5 -6
- package/dist/core/adapters/CosmWasmIgpAdapter.js.map +1 -1
- package/dist/core/adapters/EvmCoreAdapter.d.ts +6 -6
- package/dist/core/adapters/EvmCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/EvmCoreAdapter.js +12 -12
- package/dist/core/adapters/EvmCoreAdapter.js.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.d.ts +5 -5
- package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.js +14 -15
- package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.test.js +5 -7
- package/dist/core/adapters/SealevelCoreAdapter.test.js.map +1 -1
- package/dist/core/adapters/types.d.ts +3 -3
- package/dist/core/adapters/types.d.ts.map +1 -1
- package/dist/core/adapters/types.js +1 -2
- package/dist/core/contracts.d.ts +1 -1
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +5 -8
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/events.d.ts +1 -1
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/events.js +1 -2
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +29 -31
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +6 -6
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +4 -7
- package/dist/core/types.js.map +1 -1
- package/dist/cw-types/Cw20Base.types.js +1 -2
- package/dist/cw-types/Cw20Base.types.js.map +1 -1
- package/dist/cw-types/HookAggregate.types.js +1 -2
- package/dist/cw-types/HookAggregate.types.js.map +1 -1
- package/dist/cw-types/HookMerkle.types.js +1 -2
- package/dist/cw-types/HookMerkle.types.js.map +1 -1
- package/dist/cw-types/HookPausable.types.js +1 -2
- package/dist/cw-types/HookPausable.types.js.map +1 -1
- package/dist/cw-types/HookRouting.types.js +1 -2
- package/dist/cw-types/HookRouting.types.js.map +1 -1
- package/dist/cw-types/HookRoutingCustom.types.js +1 -2
- package/dist/cw-types/HookRoutingCustom.types.js.map +1 -1
- package/dist/cw-types/HookRoutingFallback.types.js +1 -2
- package/dist/cw-types/HookRoutingFallback.types.js.map +1 -1
- package/dist/cw-types/Igp.types.js +1 -2
- package/dist/cw-types/Igp.types.js.map +1 -1
- package/dist/cw-types/IgpOracle.types.js +1 -2
- package/dist/cw-types/IgpOracle.types.js.map +1 -1
- package/dist/cw-types/IsmAggregate.types.js +1 -2
- package/dist/cw-types/IsmAggregate.types.js.map +1 -1
- package/dist/cw-types/IsmMultisig.types.js +1 -2
- package/dist/cw-types/IsmMultisig.types.js.map +1 -1
- package/dist/cw-types/IsmRouting.types.js +1 -2
- package/dist/cw-types/IsmRouting.types.js.map +1 -1
- package/dist/cw-types/Mailbox.types.js +1 -2
- package/dist/cw-types/Mailbox.types.js.map +1 -1
- package/dist/cw-types/ValidatorAnnounce.types.js +1 -2
- package/dist/cw-types/ValidatorAnnounce.types.js.map +1 -1
- package/dist/cw-types/WarpCw20.types.js +1 -2
- package/dist/cw-types/WarpCw20.types.js.map +1 -1
- package/dist/cw-types/WarpNative.types.js +1 -2
- package/dist/cw-types/WarpNative.types.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +6 -6
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +39 -36
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +34 -16
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +112 -79
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +6 -6
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +7 -14
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
- package/dist/deploy/contracts.js +8 -11
- package/dist/deploy/contracts.js.map +1 -1
- package/dist/deploy/proxy.js +9 -16
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/types.d.ts +6 -2
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js +16 -7
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +8 -7
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +52 -56
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +6 -7
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/PostDeploymentContractVerifier.js +14 -14
- package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -1
- package/dist/deploy/verify/types.js +7 -10
- package/dist/deploy/verify/types.js.map +1 -1
- package/dist/deploy/verify/utils.d.ts +1 -1
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +4 -11
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +6 -6
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgp.js +9 -13
- package/dist/gas/HyperlaneIgp.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +4 -4
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +20 -24
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +7 -7
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +16 -25
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts +4 -4
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.js +11 -12
- package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
- package/dist/gas/adapters/serialization.js +33 -19
- package/dist/gas/adapters/serialization.js.map +1 -1
- package/dist/gas/contracts.js +5 -8
- package/dist/gas/contracts.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +14 -15
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
- package/dist/gas/oracle/types.js +9 -14
- package/dist/gas/oracle/types.js.map +1 -1
- package/dist/gas/token-prices.d.ts +2 -2
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +17 -17
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/gas/token-prices.test.js +10 -12
- package/dist/gas/token-prices.test.js.map +1 -1
- package/dist/gas/types.d.ts +4 -4
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +2 -5
- package/dist/gas/types.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +16 -16
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +52 -55
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/contracts.js +11 -14
- package/dist/hook/contracts.js.map +1 -1
- package/dist/hook/types.d.ts +3 -3
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +2 -5
- package/dist/hook/types.js.map +1 -1
- package/dist/index.d.ts +106 -105
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +97 -320
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +13 -13
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +77 -79
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +62 -67
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +5 -5
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js +9 -10
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -1
- package/dist/ism/multisig.d.ts +2 -2
- package/dist/ism/multisig.d.ts.map +1 -1
- package/dist/ism/multisig.js +9 -14
- package/dist/ism/multisig.js.map +1 -1
- package/dist/ism/types.d.ts +3 -3
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +5 -9
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/utils.d.ts +5 -5
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +77 -82
- package/dist/ism/utils.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts +5 -5
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +22 -22
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +95 -95
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +100 -104
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/agentConfig.test.js +12 -14
- package/dist/metadata/agentConfig.test.js.map +1 -1
- package/dist/metadata/blockExplorer.d.ts +1 -1
- package/dist/metadata/blockExplorer.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.js +12 -20
- package/dist/metadata/blockExplorer.js.map +1 -1
- package/dist/metadata/chainMetadata.test.js +22 -24
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +71 -79
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/customZodTypes.js +6 -9
- package/dist/metadata/customZodTypes.js.map +1 -1
- package/dist/metadata/deploymentArtifacts.js +8 -11
- package/dist/metadata/deploymentArtifacts.js.map +1 -1
- package/dist/metadata/health.d.ts +2 -2
- package/dist/metadata/health.d.ts.map +1 -1
- package/dist/metadata/health.js +44 -52
- package/dist/metadata/health.js.map +1 -1
- package/dist/metadata/matchingList.js +9 -12
- package/dist/metadata/matchingList.js.map +1 -1
- package/dist/metadata/warpRouteConfig.d.ts +2 -2
- package/dist/metadata/warpRouteConfig.d.ts.map +1 -1
- package/dist/metadata/warpRouteConfig.js +18 -21
- package/dist/metadata/warpRouteConfig.js.map +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts +15 -5
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.js +71 -13
- package/dist/middleware/account/InterchainAccount.js.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.d.ts +6 -6
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.js +4 -8
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -11
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +16 -12
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/account/accounts.hardhat-test.js +44 -30
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/account/contracts.js +6 -9
- package/dist/middleware/account/contracts.js.map +1 -1
- package/dist/middleware/account/types.d.ts +10 -0
- package/dist/middleware/account/types.d.ts.map +1 -0
- package/dist/middleware/account/types.js +2 -0
- package/dist/middleware/account/types.js.map +1 -0
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +6 -6
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +23 -24
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +14 -12
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +32 -28
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.js +7 -10
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +36 -38
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +5 -5
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQuery.js +7 -11
- package/dist/middleware/query/InterchainQuery.js.map +1 -1
- package/dist/middleware/query/InterchainQueryChecker.d.ts +4 -4
- package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryChecker.js +2 -6
- package/dist/middleware/query/InterchainQueryChecker.js.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +13 -9
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.js +16 -12
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
- package/dist/middleware/query/contracts.js +5 -8
- package/dist/middleware/query/contracts.js.map +1 -1
- package/dist/middleware/query/queries.hardhat-test.js +32 -34
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +10 -10
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +37 -35
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.test.js +12 -14
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +7 -7
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +27 -23
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.js +8 -11
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts +3 -4
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js +19 -25
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js.map +1 -1
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts +3 -4
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +32 -38
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -1
- package/dist/providers/SmartProvider/ProviderMethods.js +5 -9
- package/dist/providers/SmartProvider/ProviderMethods.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts +7 -7
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +22 -24
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +45 -45
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.test.js +45 -47
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
- package/dist/providers/SmartProvider/types.d.ts +1 -1
- package/dist/providers/SmartProvider/types.d.ts.map +1 -1
- package/dist/providers/SmartProvider/types.js +2 -5
- package/dist/providers/SmartProvider/types.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts +3 -3
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +38 -48
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/providers/transactionFeeEstimators.d.ts +2 -2
- package/dist/providers/transactionFeeEstimators.d.ts.map +1 -1
- package/dist/providers/transactionFeeEstimators.js +40 -50
- package/dist/providers/transactionFeeEstimators.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +5 -5
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +4 -8
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts +7 -7
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +22 -25
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +4 -4
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +14 -18
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/MultiProtocolRouterApps.d.ts +4 -5
- package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -1
- package/dist/router/MultiProtocolRouterApps.js +14 -19
- package/dist/router/MultiProtocolRouterApps.js.map +1 -1
- package/dist/router/MultiProtocolRouterApps.test.js +13 -15
- package/dist/router/MultiProtocolRouterApps.test.js.map +1 -1
- package/dist/router/ProxiedRouterChecker.d.ts +4 -4
- package/dist/router/ProxiedRouterChecker.d.ts.map +1 -1
- package/dist/router/ProxiedRouterChecker.js +2 -6
- package/dist/router/ProxiedRouterChecker.js.map +1 -1
- package/dist/router/ProxiedRouterDeployer.d.ts +28 -9
- package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
- package/dist/router/ProxiedRouterDeployer.js +13 -19
- package/dist/router/ProxiedRouterDeployer.js.map +1 -1
- package/dist/router/RouterApps.d.ts +6 -7
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +8 -12
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/adapters/EvmRouterAdapter.d.ts +4 -4
- package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -1
- package/dist/router/adapters/EvmRouterAdapter.js +11 -13
- package/dist/router/adapters/EvmRouterAdapter.js.map +1 -1
- package/dist/router/adapters/SealevelRouterAdapter.d.ts +4 -4
- package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -1
- package/dist/router/adapters/SealevelRouterAdapter.js +6 -8
- package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -1
- package/dist/router/adapters/types.d.ts +2 -2
- package/dist/router/adapters/types.d.ts.map +1 -1
- package/dist/router/adapters/types.js +1 -2
- package/dist/router/types.d.ts +4 -4
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +8 -11
- package/dist/router/types.js.map +1 -1
- package/dist/test/metadata-check.js +17 -20
- package/dist/test/metadata-check.js.map +1 -1
- package/dist/test/testUtils.d.ts +8 -8
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +29 -34
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/IToken.d.ts +21 -21
- package/dist/token/IToken.d.ts.map +1 -1
- package/dist/token/IToken.js +18 -21
- package/dist/token/IToken.js.map +1 -1
- package/dist/token/Token.d.ts +7 -7
- package/dist/token/Token.d.ts.map +1 -1
- package/dist/token/Token.js +77 -80
- package/dist/token/Token.js.map +1 -1
- package/dist/token/Token.test.js +68 -70
- package/dist/token/Token.test.js.map +1 -1
- package/dist/token/TokenAmount.d.ts +1 -1
- package/dist/token/TokenAmount.d.ts.map +1 -1
- package/dist/token/TokenAmount.js +5 -7
- package/dist/token/TokenAmount.js.map +1 -1
- package/dist/token/TokenAmount.test.js +22 -24
- package/dist/token/TokenAmount.test.js.map +1 -1
- package/dist/token/TokenConnection.d.ts +2 -2
- package/dist/token/TokenConnection.d.ts.map +1 -1
- package/dist/token/TokenConnection.js +26 -31
- package/dist/token/TokenConnection.js.map +1 -1
- package/dist/token/TokenStandard.d.ts +2 -2
- package/dist/token/TokenStandard.d.ts.map +1 -1
- package/dist/token/TokenStandard.js +54 -57
- package/dist/token/TokenStandard.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +9 -9
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js +28 -19
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js +39 -47
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +6 -6
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +22 -19
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +6 -6
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +32 -26
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +2 -2
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/ITokenAdapter.js +1 -2
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +7 -7
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +68 -61
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/adapters/serialization.d.ts +1 -1
- package/dist/token/adapters/serialization.d.ts.map +1 -1
- package/dist/token/adapters/serialization.js +58 -28
- package/dist/token/adapters/serialization.js.map +1 -1
- package/dist/token/config.d.ts +2 -1
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js +10 -19
- package/dist/token/config.js.map +1 -1
- package/dist/token/contracts.d.ts +21 -0
- package/dist/token/contracts.d.ts.map +1 -1
- package/dist/token/contracts.js +33 -18
- package/dist/token/contracts.js.map +1 -1
- package/dist/token/deploy.d.ts +26 -19
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.hardhat-test.js +16 -18
- package/dist/token/deploy.hardhat-test.js.map +1 -1
- package/dist/token/deploy.js +142 -112
- package/dist/token/deploy.js.map +1 -1
- package/dist/types.js +1 -2
- package/dist/utils/MultiGeneric.d.ts +1 -1
- package/dist/utils/MultiGeneric.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +4 -7
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/fetch.js +3 -10
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/filter.d.ts +1 -1
- package/dist/utils/filter.d.ts.map +1 -1
- package/dist/utils/filter.js +1 -5
- package/dist/utils/filter.js.map +1 -1
- package/dist/utils/ism.js +5 -12
- package/dist/utils/ism.js.map +1 -1
- package/dist/utils/sealevelSerialization.js +10 -9
- package/dist/utils/sealevelSerialization.js.map +1 -1
- package/dist/utils/wagmi.d.ts +2 -2
- package/dist/utils/wagmi.d.ts.map +1 -1
- package/dist/utils/wagmi.js +7 -11
- package/dist/utils/wagmi.js.map +1 -1
- package/dist/warp/WarpCore.d.ts +10 -10
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +53 -51
- package/dist/warp/WarpCore.js.map +1 -1
- package/dist/warp/WarpCore.test.js +67 -73
- package/dist/warp/WarpCore.test.js.map +1 -1
- package/dist/warp/types.d.ts +29 -29
- package/dist/warp/types.d.ts.map +1 -1
- package/dist/warp/types.js +17 -20
- package/dist/warp/types.js.map +1 -1
- package/package.json +22 -14
- package/dist/logger.d.ts +0 -3
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -11
- package/dist/logger.js.map +0 -1
|
@@ -1,35 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { IPostDispatchHook__factory, ProxyAdmin__factory, TimelockController__factory, TransparentUpgradeableProxy__factory, } from '@hyperlane-xyz/core';
|
|
3
|
+
import SdkBuildArtifact from '@hyperlane-xyz/core/buildArtifact.json' assert { type: 'json' };
|
|
4
|
+
import { ProtocolType, eqAddress, rootLogger, runWithTimeout, } from '@hyperlane-xyz/utils';
|
|
5
|
+
import { moduleMatchesConfig } from '../ism/utils.js';
|
|
6
|
+
import { InterchainAccount } from '../middleware/account/InterchainAccount.js';
|
|
7
|
+
import { isProxy, proxyAdmin, proxyConstructorArgs, proxyImplementation, } from './proxy.js';
|
|
8
|
+
import { ContractVerifier } from './verify/ContractVerifier.js';
|
|
9
|
+
import { ExplorerLicenseType, } from './verify/types.js';
|
|
10
|
+
import { buildVerificationInput, getContractVerificationInput, } from './verify/utils.js';
|
|
11
|
+
export class HyperlaneDeployer {
|
|
12
|
+
multiProvider;
|
|
13
|
+
factories;
|
|
14
|
+
options;
|
|
15
|
+
recoverVerificationInputs;
|
|
16
|
+
icaAddresses;
|
|
17
|
+
verificationInputs = {};
|
|
18
|
+
cachedAddresses = {};
|
|
19
|
+
deployedContracts = {};
|
|
20
|
+
startingBlockNumbers = {};
|
|
21
|
+
logger;
|
|
22
|
+
chainTimeoutMs;
|
|
23
|
+
constructor(multiProvider, factories, options = {}, recoverVerificationInputs = false, icaAddresses = {}) {
|
|
20
24
|
this.multiProvider = multiProvider;
|
|
21
25
|
this.factories = factories;
|
|
22
26
|
this.options = options;
|
|
23
27
|
this.recoverVerificationInputs = recoverVerificationInputs;
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.deployedContracts = {};
|
|
27
|
-
this.startingBlockNumbers = {};
|
|
28
|
-
this.logger = options?.logger ?? (0, debug_1.debug)('hyperlane:deployer');
|
|
28
|
+
this.icaAddresses = icaAddresses;
|
|
29
|
+
this.logger = options?.logger ?? rootLogger.child({ module: 'deployer' });
|
|
29
30
|
this.chainTimeoutMs = options?.chainTimeoutMs ?? 5 * 60 * 1000; // 5 minute timeout per chain
|
|
30
31
|
this.options.ismFactory?.setDeployer(this);
|
|
32
|
+
if (Object.keys(icaAddresses).length > 0) {
|
|
33
|
+
this.options.icaApp = InterchainAccount.fromAddressesMap(icaAddresses, multiProvider);
|
|
34
|
+
}
|
|
31
35
|
// if none provided, instantiate a default verifier with SDK's included build artifact
|
|
32
|
-
|
|
36
|
+
this.options.contractVerifier ??= new ContractVerifier(multiProvider, {}, SdkBuildArtifact, ExplorerLicenseType.MIT);
|
|
33
37
|
}
|
|
34
38
|
cacheAddressesMap(addressesMap) {
|
|
35
39
|
this.cachedAddresses = addressesMap;
|
|
@@ -37,18 +41,18 @@ class HyperlaneDeployer {
|
|
|
37
41
|
async deploy(configMap) {
|
|
38
42
|
const configChains = Object.keys(configMap);
|
|
39
43
|
const ethereumConfigChains = configChains.filter((chain) => this.multiProvider.getChainMetadata(chain).protocol ===
|
|
40
|
-
|
|
44
|
+
ProtocolType.Ethereum);
|
|
41
45
|
const targetChains = this.multiProvider.intersect(ethereumConfigChains, true).intersection;
|
|
42
|
-
this.logger(`Start deploy to ${targetChains}`);
|
|
46
|
+
this.logger.debug(`Start deploy to ${targetChains}`);
|
|
43
47
|
for (const chain of targetChains) {
|
|
44
48
|
const signerUrl = await this.multiProvider.tryGetExplorerAddressUrl(chain);
|
|
45
49
|
const signerAddress = await this.multiProvider.getSignerAddress(chain);
|
|
46
50
|
const fromString = signerUrl || signerAddress;
|
|
47
|
-
this.logger(`Deploying to ${chain} from ${fromString}`);
|
|
51
|
+
this.logger.info(`Deploying to ${chain} from ${fromString}`);
|
|
48
52
|
this.startingBlockNumbers[chain] = await this.multiProvider
|
|
49
53
|
.getProvider(chain)
|
|
50
54
|
.getBlockNumber();
|
|
51
|
-
await
|
|
55
|
+
await runWithTimeout(this.chainTimeoutMs, async () => {
|
|
52
56
|
const contracts = await this.deployContracts(chain, configMap[chain]);
|
|
53
57
|
this.addDeployedContracts(chain, contracts);
|
|
54
58
|
});
|
|
@@ -72,11 +76,11 @@ class HyperlaneDeployer {
|
|
|
72
76
|
}
|
|
73
77
|
async runIf(chain, address, fn, label = 'address') {
|
|
74
78
|
const signer = await this.multiProvider.getSignerAddress(chain);
|
|
75
|
-
if (
|
|
79
|
+
if (eqAddress(address, signer)) {
|
|
76
80
|
return fn();
|
|
77
81
|
}
|
|
78
82
|
else {
|
|
79
|
-
this.logger(`Signer (${signer}) does not match ${label} (${address})`);
|
|
83
|
+
this.logger.debug(`Signer (${signer}) does not match ${label} (${address})`);
|
|
80
84
|
}
|
|
81
85
|
return undefined;
|
|
82
86
|
}
|
|
@@ -84,16 +88,16 @@ class HyperlaneDeployer {
|
|
|
84
88
|
return this.runIf(chain, await ownable.callStatic.owner(), fn, 'owner');
|
|
85
89
|
}
|
|
86
90
|
async runIfAdmin(chain, proxy, signerAdminFn, proxyAdminOwnerFn) {
|
|
87
|
-
const admin = await
|
|
91
|
+
const admin = await proxyAdmin(this.multiProvider.getProvider(chain), proxy.address);
|
|
88
92
|
const code = await this.multiProvider.getProvider(chain).getCode(admin);
|
|
89
93
|
// if admin is a ProxyAdmin, run the proxyAdminOwnerFn (if deployer is owner)
|
|
90
94
|
if (code !== '0x') {
|
|
91
|
-
this.logger(`Admin is a ProxyAdmin (${admin})`);
|
|
92
|
-
const proxyAdmin =
|
|
95
|
+
this.logger.debug(`Admin is a ProxyAdmin (${admin})`);
|
|
96
|
+
const proxyAdmin = ProxyAdmin__factory.connect(admin, proxy.signer);
|
|
93
97
|
return this.runIfOwner(chain, proxyAdmin, () => proxyAdminOwnerFn(proxyAdmin));
|
|
94
98
|
}
|
|
95
99
|
else {
|
|
96
|
-
this.logger(`Admin is an EOA (${admin})`);
|
|
100
|
+
this.logger.debug(`Admin is an EOA (${admin})`);
|
|
97
101
|
// if admin is an EOA, run the signerAdminFn (if deployer is admin)
|
|
98
102
|
return this.runIf(chain, admin, () => signerAdminFn(), 'admin');
|
|
99
103
|
}
|
|
@@ -103,7 +107,7 @@ class HyperlaneDeployer {
|
|
|
103
107
|
let matches = false;
|
|
104
108
|
let targetIsm;
|
|
105
109
|
if (typeof config === 'string') {
|
|
106
|
-
if (
|
|
110
|
+
if (eqAddress(configuredIsm, config)) {
|
|
107
111
|
matches = true;
|
|
108
112
|
}
|
|
109
113
|
else {
|
|
@@ -115,15 +119,15 @@ class HyperlaneDeployer {
|
|
|
115
119
|
(() => {
|
|
116
120
|
throw new Error('No ISM factory provided');
|
|
117
121
|
})();
|
|
118
|
-
matches = await
|
|
122
|
+
matches = await moduleMatchesConfig(chain, configuredIsm, config, this.multiProvider, ismFactory.getContracts(chain));
|
|
119
123
|
targetIsm = (await ismFactory.deploy({ destination: chain, config }))
|
|
120
124
|
.address;
|
|
121
125
|
}
|
|
122
126
|
if (!matches) {
|
|
123
127
|
await this.runIfOwner(chain, contract, async () => {
|
|
124
|
-
this.logger(`Set ISM on ${chain} with address ${targetIsm}`);
|
|
128
|
+
this.logger.debug(`Set ISM on ${chain} with address ${targetIsm}`);
|
|
125
129
|
await this.multiProvider.sendTransaction(chain, setIsm(contract, targetIsm));
|
|
126
|
-
if (!
|
|
130
|
+
if (!eqAddress(targetIsm, await getIsm(contract))) {
|
|
127
131
|
throw new Error(`Set ISM failed on ${chain}`);
|
|
128
132
|
}
|
|
129
133
|
});
|
|
@@ -131,12 +135,12 @@ class HyperlaneDeployer {
|
|
|
131
135
|
}
|
|
132
136
|
async configureHook(chain, contract, targetHook, getHook, setHook) {
|
|
133
137
|
const configuredHook = await getHook(contract);
|
|
134
|
-
if (!
|
|
138
|
+
if (!eqAddress(targetHook.address, configuredHook)) {
|
|
135
139
|
const result = await this.runIfOwner(chain, contract, async () => {
|
|
136
|
-
this.logger(`Set hook on ${chain} to ${targetHook.address}, currently is ${configuredHook}`);
|
|
140
|
+
this.logger.debug(`Set hook on ${chain} to ${targetHook.address}, currently is ${configuredHook}`);
|
|
137
141
|
await this.multiProvider.sendTransaction(chain, setHook(contract, targetHook.address));
|
|
138
142
|
const actualHook = await getHook(contract);
|
|
139
|
-
if (!
|
|
143
|
+
if (!eqAddress(targetHook.address, actualHook)) {
|
|
140
144
|
throw new Error(`Set hook failed on ${chain}, wanted ${targetHook.address}, got ${actualHook}`);
|
|
141
145
|
}
|
|
142
146
|
return true;
|
|
@@ -148,14 +152,14 @@ class HyperlaneDeployer {
|
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
154
|
async configureClient(local, client, config) {
|
|
151
|
-
this.logger(`Initializing mailbox client (if not already) on ${local}...`);
|
|
155
|
+
this.logger.debug(`Initializing mailbox client (if not already) on ${local}...`);
|
|
152
156
|
if (config.hook) {
|
|
153
|
-
await this.configureHook(local, client,
|
|
157
|
+
await this.configureHook(local, client, IPostDispatchHook__factory.connect(config.hook, this.multiProvider.getSignerOrProvider(local)), (_client) => _client.hook(), (_client, _hook) => _client.populateTransaction.setHook(_hook));
|
|
154
158
|
}
|
|
155
159
|
if (config.interchainSecurityModule) {
|
|
156
160
|
await this.configureIsm(local, client, config.interchainSecurityModule, (_client) => _client.interchainSecurityModule(), (_client, _module) => _client.populateTransaction.setInterchainSecurityModule(_module));
|
|
157
161
|
}
|
|
158
|
-
this.logger(`Mailbox client on ${local} initialized...`);
|
|
162
|
+
this.logger.debug(`Mailbox client on ${local} initialized...`);
|
|
159
163
|
}
|
|
160
164
|
async deployContractFromFactory(chain, factory, contractName, constructorArgs, initializeArgs, shouldRecover = true) {
|
|
161
165
|
if (shouldRecover) {
|
|
@@ -168,15 +172,15 @@ class HyperlaneDeployer {
|
|
|
168
172
|
return cachedContract;
|
|
169
173
|
}
|
|
170
174
|
}
|
|
171
|
-
this.logger(`Deploy ${contractName} on ${chain} with constructor args (${constructorArgs.join(', ')})`);
|
|
175
|
+
this.logger.info(`Deploy ${contractName} on ${chain} with constructor args (${constructorArgs.join(', ')})`);
|
|
172
176
|
const contract = await this.multiProvider.handleDeploy(chain, factory, constructorArgs);
|
|
173
177
|
if (initializeArgs) {
|
|
174
|
-
this.logger(`Initialize ${contractName} on ${chain}`);
|
|
178
|
+
this.logger.debug(`Initialize ${contractName} on ${chain}`);
|
|
175
179
|
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
176
180
|
const initTx = await contract.initialize(...initializeArgs, overrides);
|
|
177
181
|
await this.multiProvider.handleTx(chain, initTx);
|
|
178
182
|
}
|
|
179
|
-
const verificationInput =
|
|
183
|
+
const verificationInput = getContractVerificationInput(contractName, contract, factory.bytecode);
|
|
180
184
|
this.addVerificationArtifacts(chain, [verificationInput]);
|
|
181
185
|
// try verifying contract
|
|
182
186
|
try {
|
|
@@ -184,54 +188,70 @@ class HyperlaneDeployer {
|
|
|
184
188
|
}
|
|
185
189
|
catch (error) {
|
|
186
190
|
// log error but keep deploying, can also verify post-deployment if needed
|
|
187
|
-
this.logger(`Error verifying contract: ${error}`);
|
|
191
|
+
this.logger.debug(`Error verifying contract: ${error}`);
|
|
188
192
|
}
|
|
189
193
|
return contract;
|
|
190
194
|
}
|
|
191
|
-
|
|
192
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Deploys a contract with a specified name.
|
|
197
|
+
*
|
|
198
|
+
* This is a generic function capable of deploying any contract type, defined within the `Factories` type, to a specified chain.
|
|
199
|
+
*
|
|
200
|
+
* @param {ChainName} chain - The name of the chain on which the contract is to be deployed.
|
|
201
|
+
* @param {K} contractKey - The key identifying the factory to use for deployment.
|
|
202
|
+
* @param {string} contractName - The name of the contract to deploy. This must match the contract source code.
|
|
203
|
+
* @param {Parameters<Factories[K]['deploy']>} constructorArgs - Arguments for the contract's constructor.
|
|
204
|
+
* @param {Parameters<Awaited<ReturnType<Factories[K]['deploy']>>['initialize']>?} initializeArgs - Optional arguments for the contract's initialization function.
|
|
205
|
+
* @param {boolean} shouldRecover - Flag indicating whether to attempt recovery if deployment fails.
|
|
206
|
+
* @returns {Promise<HyperlaneContracts<Factories>[K]>} A promise that resolves to the deployed contract instance.
|
|
207
|
+
*/
|
|
208
|
+
async deployContractWithName(chain, contractKey, contractName, constructorArgs, initializeArgs, shouldRecover = true) {
|
|
209
|
+
const contract = await this.deployContractFromFactory(chain, this.factories[contractKey], contractName, constructorArgs, initializeArgs, shouldRecover);
|
|
193
210
|
this.writeCache(chain, contractName, contract.address);
|
|
194
211
|
return contract;
|
|
195
212
|
}
|
|
213
|
+
async deployContract(chain, contractKey, constructorArgs, initializeArgs, shouldRecover = true) {
|
|
214
|
+
return this.deployContractWithName(chain, contractKey, contractKey.toString(), constructorArgs, initializeArgs, shouldRecover);
|
|
215
|
+
}
|
|
196
216
|
async changeAdmin(chain, proxy, admin) {
|
|
197
|
-
const actualAdmin = await
|
|
198
|
-
if (
|
|
199
|
-
this.logger(`Admin set correctly, skipping admin change`);
|
|
217
|
+
const actualAdmin = await proxyAdmin(this.multiProvider.getProvider(chain), proxy.address);
|
|
218
|
+
if (eqAddress(admin, actualAdmin)) {
|
|
219
|
+
this.logger.debug(`Admin set correctly, skipping admin change`);
|
|
200
220
|
return;
|
|
201
221
|
}
|
|
202
222
|
const txOverrides = this.multiProvider.getTransactionOverrides(chain);
|
|
203
|
-
this.logger(`Changing proxy admin`);
|
|
223
|
+
this.logger.debug(`Changing proxy admin`);
|
|
204
224
|
await this.runIfAdmin(chain, proxy, () => this.multiProvider.handleTx(chain, proxy.changeAdmin(admin, txOverrides)), (proxyAdmin) => this.multiProvider.handleTx(chain, proxyAdmin.changeProxyAdmin(proxy.address, admin, txOverrides)));
|
|
205
225
|
}
|
|
206
226
|
async upgradeAndInitialize(chain, proxy, implementation, initializeArgs) {
|
|
207
227
|
const current = await proxy.callStatic.implementation();
|
|
208
|
-
if (
|
|
209
|
-
this.logger(`Implementation set correctly, skipping upgrade`);
|
|
228
|
+
if (eqAddress(implementation.address, current)) {
|
|
229
|
+
this.logger.debug(`Implementation set correctly, skipping upgrade`);
|
|
210
230
|
return;
|
|
211
231
|
}
|
|
212
|
-
this.logger(`Upgrading and initializing implementation`);
|
|
232
|
+
this.logger.debug(`Upgrading and initializing implementation`);
|
|
213
233
|
const initData = implementation.interface.encodeFunctionData('initialize', initializeArgs);
|
|
214
234
|
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
215
235
|
await this.runIfAdmin(chain, proxy, () => this.multiProvider.handleTx(chain, proxy.upgradeToAndCall(implementation.address, initData, overrides)), (proxyAdmin) => this.multiProvider.handleTx(chain, proxyAdmin.upgradeAndCall(proxy.address, implementation.address, initData, overrides)));
|
|
216
236
|
}
|
|
217
237
|
async deployProxy(chain, implementation, proxyAdmin, initializeArgs) {
|
|
218
|
-
const isProxied = await
|
|
238
|
+
const isProxied = await isProxy(this.multiProvider.getProvider(chain), implementation.address);
|
|
219
239
|
if (isProxied) {
|
|
220
240
|
// if the implementation is already a proxy, do not deploy a new proxy
|
|
221
241
|
return implementation;
|
|
222
242
|
}
|
|
223
|
-
const constructorArgs =
|
|
224
|
-
const proxy = await this.deployContractFromFactory(chain, new
|
|
243
|
+
const constructorArgs = proxyConstructorArgs(implementation, proxyAdmin, initializeArgs);
|
|
244
|
+
const proxy = await this.deployContractFromFactory(chain, new TransparentUpgradeableProxy__factory(), 'TransparentUpgradeableProxy', constructorArgs);
|
|
225
245
|
return implementation.attach(proxy.address);
|
|
226
246
|
}
|
|
227
247
|
async deployTimelock(chain, timelockConfig) {
|
|
228
|
-
return this.multiProvider.handleDeploy(chain, new
|
|
248
|
+
return this.multiProvider.handleDeploy(chain, new TimelockController__factory(),
|
|
229
249
|
// delay, [proposers], [executors], admin
|
|
230
250
|
[
|
|
231
251
|
timelockConfig.delay,
|
|
232
252
|
[timelockConfig.roles.proposer],
|
|
233
253
|
[timelockConfig.roles.executor],
|
|
234
|
-
|
|
254
|
+
ethers.constants.AddressZero,
|
|
235
255
|
]);
|
|
236
256
|
}
|
|
237
257
|
writeCache(chain, contractName, address) {
|
|
@@ -242,43 +262,43 @@ class HyperlaneDeployer {
|
|
|
242
262
|
}
|
|
243
263
|
readCache(chain, factory, contractName) {
|
|
244
264
|
const cachedAddress = this.cachedAddresses[chain]?.[contractName];
|
|
245
|
-
const hit = !!cachedAddress && cachedAddress !==
|
|
246
|
-
const contractAddress = hit ? cachedAddress :
|
|
265
|
+
const hit = !!cachedAddress && cachedAddress !== ethers.constants.AddressZero;
|
|
266
|
+
const contractAddress = hit ? cachedAddress : ethers.constants.AddressZero;
|
|
247
267
|
const contract = factory
|
|
248
268
|
.attach(contractAddress)
|
|
249
269
|
.connect(this.multiProvider.getSignerOrProvider(chain));
|
|
250
270
|
if (hit) {
|
|
251
|
-
this.logger(`Recovered ${contractName.toString()} on ${chain} ${cachedAddress}`);
|
|
271
|
+
this.logger.debug(`Recovered ${contractName.toString()} on ${chain} ${cachedAddress}`);
|
|
252
272
|
return contract;
|
|
253
273
|
}
|
|
254
274
|
return undefined;
|
|
255
275
|
}
|
|
256
276
|
async recoverVerificationArtifacts(chain, contractName, cachedContract, constructorArgs, initializeArgs) {
|
|
257
277
|
const provider = this.multiProvider.getProvider(chain);
|
|
258
|
-
const isProxied = await
|
|
278
|
+
const isProxied = await isProxy(provider, cachedContract.address);
|
|
259
279
|
let implementation;
|
|
260
280
|
if (isProxied) {
|
|
261
|
-
implementation = await
|
|
281
|
+
implementation = await proxyImplementation(provider, cachedContract.address);
|
|
262
282
|
}
|
|
263
283
|
else {
|
|
264
284
|
implementation = cachedContract.address;
|
|
265
285
|
}
|
|
266
|
-
const implementationInput =
|
|
286
|
+
const implementationInput = buildVerificationInput(contractName, implementation, cachedContract.interface.encodeDeploy(constructorArgs));
|
|
267
287
|
if (!isProxied) {
|
|
268
288
|
return [implementationInput];
|
|
269
289
|
}
|
|
270
|
-
const admin = await
|
|
271
|
-
const proxyArgs =
|
|
272
|
-
const proxyInput =
|
|
290
|
+
const admin = await proxyAdmin(provider, cachedContract.address);
|
|
291
|
+
const proxyArgs = proxyConstructorArgs(cachedContract.attach(implementation), admin, initializeArgs);
|
|
292
|
+
const proxyInput = buildVerificationInput('TransparentUpgradeableProxy', cachedContract.address, TransparentUpgradeableProxy__factory.createInterface().encodeDeploy(proxyArgs));
|
|
273
293
|
return [implementationInput, proxyInput];
|
|
274
294
|
}
|
|
275
295
|
/**
|
|
276
296
|
* Deploys the Implementation and Proxy for a given contract
|
|
277
297
|
*
|
|
278
298
|
*/
|
|
279
|
-
async deployProxiedContract(chain, contractName, proxyAdmin, constructorArgs, initializeArgs) {
|
|
299
|
+
async deployProxiedContract(chain, contractKey, contractName, proxyAdmin, constructorArgs, initializeArgs) {
|
|
280
300
|
// Try to initialize the implementation even though it may not be necessary
|
|
281
|
-
const implementation = await this.
|
|
301
|
+
const implementation = await this.deployContractWithName(chain, contractKey, contractName, constructorArgs, initializeArgs);
|
|
282
302
|
// Initialize the proxy the same way
|
|
283
303
|
const contract = await this.deployProxy(chain, implementation, proxyAdmin, initializeArgs);
|
|
284
304
|
this.writeCache(chain, contractName, contract.address);
|
|
@@ -303,11 +323,11 @@ class HyperlaneDeployer {
|
|
|
303
323
|
continue;
|
|
304
324
|
}
|
|
305
325
|
const current = await ownable.owner();
|
|
306
|
-
const owner = config.ownerOverrides?.[contractName] ?? config.owner;
|
|
307
|
-
if (!
|
|
308
|
-
this.logger('Current owner and config owner to not match');
|
|
326
|
+
const owner = await this.resolveInterchainAccountAsOwner(chain, config.ownerOverrides?.[contractName] ?? config.owner);
|
|
327
|
+
if (!eqAddress(current, owner)) {
|
|
328
|
+
this.logger.debug('Current owner and config owner to not match');
|
|
309
329
|
const receipt = await this.runIfOwner(chain, ownable, () => {
|
|
310
|
-
this.logger(`Transferring ownership of ${contractName} to ${owner} on ${chain}`);
|
|
330
|
+
this.logger.debug(`Transferring ownership of ${contractName} to ${owner} on ${chain}`);
|
|
311
331
|
return this.multiProvider.handleTx(chain, ownable.transferOwnership(owner, this.multiProvider.getTransactionOverrides(chain)));
|
|
312
332
|
});
|
|
313
333
|
if (receipt)
|
|
@@ -316,6 +336,19 @@ class HyperlaneDeployer {
|
|
|
316
336
|
}
|
|
317
337
|
return receipts.filter((x) => !!x);
|
|
318
338
|
}
|
|
339
|
+
async resolveInterchainAccountAsOwner(chain, owner) {
|
|
340
|
+
if (typeof owner === 'string') {
|
|
341
|
+
return owner;
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
const routerAddress = this.options.icaApp?.routerAddress(chain);
|
|
345
|
+
if (!routerAddress) {
|
|
346
|
+
throw new Error('InterchainAccountRouter not deployed');
|
|
347
|
+
}
|
|
348
|
+
const router = InterchainAccount.fromAddressesMap({ chain: { router: routerAddress } }, this.multiProvider);
|
|
349
|
+
// submits network transaction to deploy the account iff it doesn't exist
|
|
350
|
+
return router.deployAccount(chain, owner);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
319
353
|
}
|
|
320
|
-
exports.HyperlaneDeployer = HyperlaneDeployer;
|
|
321
354
|
//# sourceMappingURL=HyperlaneDeployer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { HyperlaneContracts } from '../contracts/types';
|
|
2
|
-
import { MultiProvider } from '../providers/MultiProvider';
|
|
3
|
-
import { ChainName } from '../types';
|
|
4
|
-
import { HyperlaneDeployer } from './HyperlaneDeployer';
|
|
5
|
-
import { ProxyFactoryFactories } from './contracts';
|
|
6
|
-
import { ContractVerifier } from './verify/ContractVerifier';
|
|
1
|
+
import { HyperlaneContracts } from '../contracts/types.js';
|
|
2
|
+
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
3
|
+
import { ChainName } from '../types.js';
|
|
4
|
+
import { HyperlaneDeployer } from './HyperlaneDeployer.js';
|
|
5
|
+
import { ProxyFactoryFactories } from './contracts.js';
|
|
6
|
+
import { ContractVerifier } from './verify/ContractVerifier.js';
|
|
7
7
|
export declare class HyperlaneProxyFactoryDeployer extends HyperlaneDeployer<{}, ProxyFactoryFactories> {
|
|
8
8
|
constructor(multiProvider: MultiProvider, contractVerifier?: ContractVerifier);
|
|
9
9
|
deployContracts(chain: ChainName): Promise<HyperlaneContracts<ProxyFactoryFactories>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneProxyFactoryDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneProxyFactoryDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"HyperlaneProxyFactoryDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneProxyFactoryDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,qBAAa,6BAA8B,SAAQ,iBAAiB,CAClE,EAAE,EACF,qBAAqB,CACtB;gBAEG,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,gBAAgB;IAQ/B,eAAe,CACnB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;CAkBtD"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HyperlaneProxyFactoryDeployer = void 0;
|
|
7
|
-
const debug_1 = __importDefault(require("debug"));
|
|
8
|
-
const HyperlaneDeployer_1 = require("./HyperlaneDeployer");
|
|
9
|
-
const contracts_1 = require("./contracts");
|
|
10
|
-
class HyperlaneProxyFactoryDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
1
|
+
import { rootLogger } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { HyperlaneDeployer } from './HyperlaneDeployer.js';
|
|
3
|
+
import { proxyFactoryFactories, proxyFactoryImplementations, } from './contracts.js';
|
|
4
|
+
export class HyperlaneProxyFactoryDeployer extends HyperlaneDeployer {
|
|
11
5
|
constructor(multiProvider, contractVerifier) {
|
|
12
|
-
super(multiProvider,
|
|
13
|
-
logger: (
|
|
6
|
+
super(multiProvider, proxyFactoryFactories, {
|
|
7
|
+
logger: rootLogger.child({ module: 'IsmFactoryDeployer' }),
|
|
14
8
|
contractVerifier,
|
|
15
9
|
});
|
|
16
10
|
}
|
|
@@ -20,7 +14,7 @@ class HyperlaneProxyFactoryDeployer extends HyperlaneDeployer_1.HyperlaneDeploye
|
|
|
20
14
|
const factory = await this.deployContract(chain, factoryName, []);
|
|
21
15
|
this.addVerificationArtifacts(chain, [
|
|
22
16
|
{
|
|
23
|
-
name:
|
|
17
|
+
name: proxyFactoryImplementations[factoryName],
|
|
24
18
|
address: await factory.implementation(),
|
|
25
19
|
constructorArguments: '',
|
|
26
20
|
isProxy: true,
|
|
@@ -31,5 +25,4 @@ class HyperlaneProxyFactoryDeployer extends HyperlaneDeployer_1.HyperlaneDeploye
|
|
|
31
25
|
return contracts;
|
|
32
26
|
}
|
|
33
27
|
}
|
|
34
|
-
exports.HyperlaneProxyFactoryDeployer = HyperlaneProxyFactoryDeployer;
|
|
35
28
|
//# sourceMappingURL=HyperlaneProxyFactoryDeployer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneProxyFactoryDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneProxyFactoryDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneProxyFactoryDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneProxyFactoryDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAEL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,MAAM,OAAO,6BAA8B,SAAQ,iBAGlD;IACC,YACE,aAA4B,EAC5B,gBAAmC;QAEnC,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE;YAC1C,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YAC1D,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAgB;QAEhB,MAAM,SAAS,GAAQ,EAAE,CAAC;QAC1B,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CACnC,IAAI,CAAC,SAAS,CACoB,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE;gBACnC;oBACE,IAAI,EAAE,2BAA2B,CAAC,WAAW,CAAC;oBAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE;oBACvC,oBAAoB,EAAE,EAAE;oBACxB,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;QACnC,CAAC;QACD,OAAO,SAAsD,CAAC;IAChE,CAAC;CACF"}
|
package/dist/deploy/contracts.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.proxyFactoryImplementations = exports.proxyFactoryFactories = void 0;
|
|
4
|
-
const core_1 = require("@hyperlane-xyz/core");
|
|
1
|
+
import { DomainRoutingIsmFactory__factory, StaticAggregationHookFactory__factory, StaticAggregationIsmFactory__factory, StaticMerkleRootMultisigIsmFactory__factory, StaticMessageIdMultisigIsmFactory__factory, } from '@hyperlane-xyz/core';
|
|
5
2
|
// Any name changes here should also be reflected in the example artifacts.
|
|
6
3
|
// E.g. typescript/cli/examples/contract-artifacts.yaml
|
|
7
|
-
|
|
8
|
-
staticMerkleRootMultisigIsmFactory: new
|
|
9
|
-
staticMessageIdMultisigIsmFactory: new
|
|
10
|
-
staticAggregationIsmFactory: new
|
|
11
|
-
staticAggregationHookFactory: new
|
|
12
|
-
domainRoutingIsmFactory: new
|
|
4
|
+
export const proxyFactoryFactories = {
|
|
5
|
+
staticMerkleRootMultisigIsmFactory: new StaticMerkleRootMultisigIsmFactory__factory(),
|
|
6
|
+
staticMessageIdMultisigIsmFactory: new StaticMessageIdMultisigIsmFactory__factory(),
|
|
7
|
+
staticAggregationIsmFactory: new StaticAggregationIsmFactory__factory(),
|
|
8
|
+
staticAggregationHookFactory: new StaticAggregationHookFactory__factory(),
|
|
9
|
+
domainRoutingIsmFactory: new DomainRoutingIsmFactory__factory(),
|
|
13
10
|
};
|
|
14
11
|
// must match contract names for verification
|
|
15
|
-
|
|
12
|
+
export const proxyFactoryImplementations = {
|
|
16
13
|
staticMerkleRootMultisigIsmFactory: 'StaticMerkleRootMultisigIsm',
|
|
17
14
|
staticMessageIdMultisigIsmFactory: 'StaticMessageIdMultisigIsm',
|
|
18
15
|
staticAggregationIsmFactory: 'StaticAggregationIsm',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/deploy/contracts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/deploy/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,qCAAqC,EACrC,oCAAoC,EACpC,2CAA2C,EAC3C,0CAA0C,GAC3C,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,kCAAkC,EAChC,IAAI,2CAA2C,EAAE;IACnD,iCAAiC,EAC/B,IAAI,0CAA0C,EAAE;IAClD,2BAA2B,EAAE,IAAI,oCAAoC,EAAE;IACvE,4BAA4B,EAAE,IAAI,qCAAqC,EAAE;IACzE,uBAAuB,EAAE,IAAI,gCAAgC,EAAE;CAChE,CAAC;AAMF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAgC;IACtE,kCAAkC,EAAE,6BAA6B;IACjE,iCAAiC,EAAE,4BAA4B;IAC/D,2BAA2B,EAAE,sBAAsB;IACnD,4BAA4B,EAAE,uBAAuB;IACrD,uBAAuB,EAAE,mBAAmB;CAC7C,CAAC"}
|
package/dist/deploy/proxy.js
CHANGED
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ethers_1 = require("ethers");
|
|
5
|
-
const utils_1 = require("@hyperlane-xyz/utils");
|
|
6
|
-
async function proxyImplementation(provider, proxy) {
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { eqAddress } from '@hyperlane-xyz/utils';
|
|
3
|
+
export async function proxyImplementation(provider, proxy) {
|
|
7
4
|
// Hardcoded storage slot for implementation per EIP-1967
|
|
8
5
|
const storageValue = await provider.getStorageAt(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc');
|
|
9
|
-
return
|
|
6
|
+
return ethers.utils.getAddress(storageValue.slice(26));
|
|
10
7
|
}
|
|
11
|
-
|
|
12
|
-
async function proxyAdmin(provider, proxy) {
|
|
8
|
+
export async function proxyAdmin(provider, proxy) {
|
|
13
9
|
// Hardcoded storage slot for admin per EIP-1967
|
|
14
10
|
const storageValue = await provider.getStorageAt(proxy, '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103');
|
|
15
|
-
return
|
|
11
|
+
return ethers.utils.getAddress(storageValue.slice(26));
|
|
16
12
|
}
|
|
17
|
-
|
|
18
|
-
function proxyConstructorArgs(implementation, proxyAdmin, initializeArgs) {
|
|
13
|
+
export function proxyConstructorArgs(implementation, proxyAdmin, initializeArgs) {
|
|
19
14
|
const initData = initializeArgs
|
|
20
15
|
? implementation.interface.encodeFunctionData('initialize', initializeArgs)
|
|
21
16
|
: '0x';
|
|
22
17
|
return [implementation.address, proxyAdmin, initData];
|
|
23
18
|
}
|
|
24
|
-
|
|
25
|
-
async function isProxy(provider, proxy) {
|
|
19
|
+
export async function isProxy(provider, proxy) {
|
|
26
20
|
const admin = await proxyAdmin(provider, proxy);
|
|
27
|
-
return !
|
|
21
|
+
return !eqAddress(admin, ethers.constants.AddressZero);
|
|
28
22
|
}
|
|
29
|
-
exports.isProxy = isProxy;
|
|
30
23
|
//# sourceMappingURL=proxy.js.map
|
package/dist/deploy/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAW,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAa1D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAmC,EACnC,KAAc;IAEd,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAmC,EACnC,KAAc;IAEd,gDAAgD;IAChD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,cAAiB,EACjB,UAAkB,EAClB,cAA4C;IAE5C,MAAM,QAAQ,GAAG,cAAc;QAC7B,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,QAAmC,EACnC,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACzD,CAAC"}
|