@hyperlane-xyz/cli 11.0.0 → 12.1.0-cli-bundle.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/cli-bundle/338.index.js +214 -0
- package/cli-bundle/file.js +12 -0
- package/cli-bundle/index.js +555413 -0
- package/cli-bundle/package.json +3 -0
- package/cli-bundle/worker-pipeline.js +38 -0
- package/cli-bundle/worker.js +54 -0
- package/cli-bundle/worker1.js +169 -0
- package/package.json +30 -33
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -68
- package/dist/cli.js.map +0 -1
- package/dist/env.d.ts +0 -2
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -14
- package/dist/env.js.map +0 -1
- package/dist/src/avs/check.d.ts +0 -3
- package/dist/src/avs/check.d.ts.map +0 -1
- package/dist/src/avs/check.js +0 -234
- package/dist/src/avs/check.js.map +0 -1
- package/dist/src/avs/config.d.ts +0 -12
- package/dist/src/avs/config.d.ts.map +0 -1
- package/dist/src/avs/config.js +0 -18
- package/dist/src/avs/config.js.map +0 -1
- package/dist/src/avs/stakeRegistry.d.ts +0 -22
- package/dist/src/avs/stakeRegistry.d.ts.map +0 -1
- package/dist/src/avs/stakeRegistry.js +0 -64
- package/dist/src/avs/stakeRegistry.js.map +0 -1
- package/dist/src/check/warp.d.ts +0 -6
- package/dist/src/check/warp.d.ts.map +0 -1
- package/dist/src/check/warp.js +0 -22
- package/dist/src/check/warp.js.map +0 -1
- package/dist/src/commands/avs.d.ts +0 -12
- package/dist/src/commands/avs.d.ts.map +0 -1
- package/dist/src/commands/avs.js +0 -86
- package/dist/src/commands/avs.js.map +0 -1
- package/dist/src/commands/config.d.ts +0 -6
- package/dist/src/commands/config.d.ts.map +0 -1
- package/dist/src/commands/config.js +0 -93
- package/dist/src/commands/config.js.map +0 -1
- package/dist/src/commands/core.d.ts +0 -38
- package/dist/src/commands/core.d.ts.map +0 -1
- package/dist/src/commands/core.js +0 -166
- package/dist/src/commands/core.js.map +0 -1
- package/dist/src/commands/deploy.d.ts +0 -6
- package/dist/src/commands/deploy.d.ts.map +0 -1
- package/dist/src/commands/deploy.js +0 -36
- package/dist/src/commands/deploy.js.map +0 -1
- package/dist/src/commands/hook.d.ts +0 -12
- package/dist/src/commands/hook.d.ts.map +0 -1
- package/dist/src/commands/hook.js +0 -36
- package/dist/src/commands/hook.js.map +0 -1
- package/dist/src/commands/ism.d.ts +0 -12
- package/dist/src/commands/ism.d.ts.map +0 -1
- package/dist/src/commands/ism.js +0 -38
- package/dist/src/commands/ism.js.map +0 -1
- package/dist/src/commands/options.d.ts +0 -44
- package/dist/src/commands/options.d.ts.map +0 -1
- package/dist/src/commands/options.js +0 -188
- package/dist/src/commands/options.js.map +0 -1
- package/dist/src/commands/registry.d.ts +0 -6
- package/dist/src/commands/registry.d.ts.map +0 -1
- package/dist/src/commands/registry.js +0 -168
- package/dist/src/commands/registry.js.map +0 -1
- package/dist/src/commands/relayer.d.ts +0 -9
- package/dist/src/commands/relayer.d.ts.map +0 -1
- package/dist/src/commands/relayer.js +0 -56
- package/dist/src/commands/relayer.js.map +0 -1
- package/dist/src/commands/send.d.ts +0 -25
- package/dist/src/commands/send.d.ts.map +0 -1
- package/dist/src/commands/send.js +0 -75
- package/dist/src/commands/send.js.map +0 -1
- package/dist/src/commands/signCommands.d.ts +0 -14
- package/dist/src/commands/signCommands.d.ts.map +0 -1
- package/dist/src/commands/signCommands.js +0 -28
- package/dist/src/commands/signCommands.js.map +0 -1
- package/dist/src/commands/status.d.ts +0 -8
- package/dist/src/commands/status.d.ts.map +0 -1
- package/dist/src/commands/status.js +0 -28
- package/dist/src/commands/status.js.map +0 -1
- package/dist/src/commands/strategy.d.ts +0 -13
- package/dist/src/commands/strategy.d.ts.map +0 -1
- package/dist/src/commands/strategy.js +0 -49
- package/dist/src/commands/strategy.js.map +0 -1
- package/dist/src/commands/submit.d.ts +0 -18
- package/dist/src/commands/submit.d.ts.map +0 -1
- package/dist/src/commands/submit.js +0 -41
- package/dist/src/commands/submit.js.map +0 -1
- package/dist/src/commands/types.d.ts +0 -3
- package/dist/src/commands/types.d.ts.map +0 -1
- package/dist/src/commands/types.js +0 -2
- package/dist/src/commands/types.js.map +0 -1
- package/dist/src/commands/validator.d.ts +0 -3
- package/dist/src/commands/validator.d.ts.map +0 -1
- package/dist/src/commands/validator.js +0 -78
- package/dist/src/commands/validator.js.map +0 -1
- package/dist/src/commands/warp.d.ts +0 -37
- package/dist/src/commands/warp.d.ts.map +0 -1
- package/dist/src/commands/warp.js +0 -272
- package/dist/src/commands/warp.js.map +0 -1
- package/dist/src/config/agent.d.ts +0 -7
- package/dist/src/config/agent.d.ts.map +0 -1
- package/dist/src/config/agent.js +0 -82
- package/dist/src/config/agent.js.map +0 -1
- package/dist/src/config/chain.d.ts +0 -7
- package/dist/src/config/chain.d.ts.map +0 -1
- package/dist/src/config/chain.js +0 -224
- package/dist/src/config/chain.js.map +0 -1
- package/dist/src/config/chain.test.d.ts +0 -2
- package/dist/src/config/chain.test.d.ts.map +0 -1
- package/dist/src/config/chain.test.js +0 -9
- package/dist/src/config/chain.test.js.map +0 -1
- package/dist/src/config/core.d.ts +0 -9
- package/dist/src/config/core.d.ts.map +0 -1
- package/dist/src/config/core.js +0 -62
- package/dist/src/config/core.js.map +0 -1
- package/dist/src/config/hooks.d.ts +0 -28
- package/dist/src/config/hooks.d.ts.map +0 -1
- package/dist/src/config/hooks.js +0 -260
- package/dist/src/config/hooks.js.map +0 -1
- package/dist/src/config/ism.d.ts +0 -220
- package/dist/src/config/ism.d.ts.map +0 -1
- package/dist/src/config/ism.js +0 -186
- package/dist/src/config/ism.js.map +0 -1
- package/dist/src/config/multisig.d.ts +0 -45
- package/dist/src/config/multisig.d.ts.map +0 -1
- package/dist/src/config/multisig.js +0 -95
- package/dist/src/config/multisig.js.map +0 -1
- package/dist/src/config/prompts.d.ts +0 -2
- package/dist/src/config/prompts.d.ts.map +0 -1
- package/dist/src/config/prompts.js +0 -9
- package/dist/src/config/prompts.js.map +0 -1
- package/dist/src/config/strategy.d.ts +0 -11
- package/dist/src/config/strategy.d.ts.map +0 -1
- package/dist/src/config/strategy.js +0 -106
- package/dist/src/config/strategy.js.map +0 -1
- package/dist/src/config/submit.d.ts +0 -9
- package/dist/src/config/submit.d.ts.map +0 -1
- package/dist/src/config/submit.js +0 -29
- package/dist/src/config/submit.js.map +0 -1
- package/dist/src/config/utils.d.ts +0 -3
- package/dist/src/config/utils.d.ts.map +0 -1
- package/dist/src/config/utils.js +0 -14
- package/dist/src/config/utils.js.map +0 -1
- package/dist/src/config/warp.d.ts +0 -11
- package/dist/src/config/warp.d.ts.map +0 -1
- package/dist/src/config/warp.js +0 -230
- package/dist/src/config/warp.js.map +0 -1
- package/dist/src/consts.d.ts +0 -7
- package/dist/src/consts.d.ts.map +0 -1
- package/dist/src/consts.js +0 -7
- package/dist/src/consts.js.map +0 -1
- package/dist/src/context/context.d.ts +0 -25
- package/dist/src/context/context.d.ts.map +0 -1
- package/dist/src/context/context.js +0 -180
- package/dist/src/context/context.js.map +0 -1
- package/dist/src/context/strategies/chain/ChainResolverFactory.d.ts +0 -14
- package/dist/src/context/strategies/chain/ChainResolverFactory.d.ts.map +0 -1
- package/dist/src/context/strategies/chain/ChainResolverFactory.js +0 -32
- package/dist/src/context/strategies/chain/ChainResolverFactory.js.map +0 -1
- package/dist/src/context/strategies/chain/MultiChainResolver.d.ts +0 -36
- package/dist/src/context/strategies/chain/MultiChainResolver.d.ts.map +0 -1
- package/dist/src/context/strategies/chain/MultiChainResolver.js +0 -172
- package/dist/src/context/strategies/chain/MultiChainResolver.js.map +0 -1
- package/dist/src/context/strategies/chain/types.d.ts +0 -10
- package/dist/src/context/strategies/chain/types.d.ts.map +0 -1
- package/dist/src/context/strategies/chain/types.js +0 -2
- package/dist/src/context/strategies/chain/types.js.map +0 -1
- package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.d.ts +0 -19
- package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.d.ts.map +0 -1
- package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.js +0 -7
- package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.js.map +0 -1
- package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.d.ts +0 -6
- package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.d.ts.map +0 -1
- package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.js +0 -47
- package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.js.map +0 -1
- package/dist/src/context/strategies/signer/MultiProtocolSignerManager.d.ts +0 -51
- package/dist/src/context/strategies/signer/MultiProtocolSignerManager.d.ts.map +0 -1
- package/dist/src/context/strategies/signer/MultiProtocolSignerManager.js +0 -115
- package/dist/src/context/strategies/signer/MultiProtocolSignerManager.js.map +0 -1
- package/dist/src/context/types.d.ts +0 -36
- package/dist/src/context/types.d.ts.map +0 -1
- package/dist/src/context/types.js +0 -2
- package/dist/src/context/types.js.map +0 -1
- package/dist/src/deploy/agent.d.ts +0 -8
- package/dist/src/deploy/agent.d.ts.map +0 -1
- package/dist/src/deploy/agent.js +0 -41
- package/dist/src/deploy/agent.js.map +0 -1
- package/dist/src/deploy/core.d.ts +0 -17
- package/dist/src/deploy/core.d.ts.map +0 -1
- package/dist/src/deploy/core.js +0 -84
- package/dist/src/deploy/core.js.map +0 -1
- package/dist/src/deploy/dry-run.d.ts +0 -19
- package/dist/src/deploy/dry-run.d.ts.map +0 -1
- package/dist/src/deploy/dry-run.js +0 -46
- package/dist/src/deploy/dry-run.js.map +0 -1
- package/dist/src/deploy/utils.d.ts +0 -19
- package/dist/src/deploy/utils.d.ts.map +0 -1
- package/dist/src/deploy/utils.js +0 -112
- package/dist/src/deploy/utils.js.map +0 -1
- package/dist/src/deploy/warp.d.ts +0 -34
- package/dist/src/deploy/warp.d.ts.map +0 -1
- package/dist/src/deploy/warp.js +0 -517
- package/dist/src/deploy/warp.js.map +0 -1
- package/dist/src/hook/read.d.ts +0 -13
- package/dist/src/hook/read.d.ts.map +0 -1
- package/dist/src/hook/read.js +0 -25
- package/dist/src/hook/read.js.map +0 -1
- package/dist/src/ism/read.d.ts +0 -13
- package/dist/src/ism/read.d.ts.map +0 -1
- package/dist/src/ism/read.js +0 -25
- package/dist/src/ism/read.js.map +0 -1
- package/dist/src/logger.d.ts +0 -21
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -40
- package/dist/src/logger.js.map +0 -1
- package/dist/src/read/core.d.ts +0 -9
- package/dist/src/read/core.d.ts.map +0 -1
- package/dist/src/read/core.js +0 -22
- package/dist/src/read/core.js.map +0 -1
- package/dist/src/read/warp.d.ts +0 -10
- package/dist/src/read/warp.d.ts.map +0 -1
- package/dist/src/read/warp.js +0 -60
- package/dist/src/read/warp.js.map +0 -1
- package/dist/src/send/message.d.ts +0 -12
- package/dist/src/send/message.d.ts.map +0 -1
- package/dist/src/send/message.js +0 -75
- package/dist/src/send/message.js.map +0 -1
- package/dist/src/send/transfer.d.ts +0 -16
- package/dist/src/send/transfer.d.ts.map +0 -1
- package/dist/src/send/transfer.js +0 -113
- package/dist/src/send/transfer.js.map +0 -1
- package/dist/src/status/message.d.ts +0 -10
- package/dist/src/status/message.d.ts.map +0 -1
- package/dist/src/status/message.js +0 -70
- package/dist/src/status/message.js.map +0 -1
- package/dist/src/submit/submit.d.ts +0 -5
- package/dist/src/submit/submit.d.ts.map +0 -1
- package/dist/src/submit/submit.js +0 -42
- package/dist/src/submit/submit.js.map +0 -1
- package/dist/src/submit/types.d.ts +0 -6
- package/dist/src/submit/types.d.ts.map +0 -1
- package/dist/src/submit/types.js +0 -2
- package/dist/src/submit/types.js.map +0 -1
- package/dist/src/tests/commands/core.d.ts +0 -32
- package/dist/src/tests/commands/core.d.ts.map +0 -1
- package/dist/src/tests/commands/core.js +0 -116
- package/dist/src/tests/commands/core.js.map +0 -1
- package/dist/src/tests/commands/helpers.d.ts +0 -107
- package/dist/src/tests/commands/helpers.d.ts.map +0 -1
- package/dist/src/tests/commands/helpers.js +0 -291
- package/dist/src/tests/commands/helpers.js.map +0 -1
- package/dist/src/tests/commands/warp.d.ts +0 -54
- package/dist/src/tests/commands/warp.d.ts.map +0 -1
- package/dist/src/tests/commands/warp.js +0 -225
- package/dist/src/tests/commands/warp.js.map +0 -1
- package/dist/src/tests/core/core-apply.e2e-test.d.ts +0 -2
- package/dist/src/tests/core/core-apply.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/core/core-apply.e2e-test.js +0 -155
- package/dist/src/tests/core/core-apply.e2e-test.js.map +0 -1
- package/dist/src/tests/core/core-check.e2e-test.d.ts +0 -2
- package/dist/src/tests/core/core-check.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/core/core-check.e2e-test.js +0 -49
- package/dist/src/tests/core/core-check.e2e-test.js.map +0 -1
- package/dist/src/tests/core/core-deploy.e2e-test.d.ts +0 -2
- package/dist/src/tests/core/core-deploy.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/core/core-deploy.e2e-test.js +0 -165
- package/dist/src/tests/core/core-deploy.e2e-test.js.map +0 -1
- package/dist/src/tests/core/core-init.e2e-test.d.ts +0 -2
- package/dist/src/tests/core/core-init.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/core/core-init.e2e-test.js +0 -124
- package/dist/src/tests/core/core-init.e2e-test.js.map +0 -1
- package/dist/src/tests/core/core-read.e2e-test.d.ts +0 -2
- package/dist/src/tests/core/core-read.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/core/core-read.e2e-test.js +0 -29
- package/dist/src/tests/core/core-read.e2e-test.js.map +0 -1
- package/dist/src/tests/deployTestErc20.d.ts +0 -2
- package/dist/src/tests/deployTestErc20.d.ts.map +0 -1
- package/dist/src/tests/deployTestErc20.js +0 -27
- package/dist/src/tests/deployTestErc20.js.map +0 -1
- package/dist/src/tests/hooks.test.d.ts +0 -2
- package/dist/src/tests/hooks.test.d.ts.map +0 -1
- package/dist/src/tests/hooks.test.js +0 -89
- package/dist/src/tests/hooks.test.js.map +0 -1
- package/dist/src/tests/ism.test.d.ts +0 -2
- package/dist/src/tests/ism.test.d.ts.map +0 -1
- package/dist/src/tests/ism.test.js +0 -76
- package/dist/src/tests/ism.test.js.map +0 -1
- package/dist/src/tests/relay.e2e-test.d.ts +0 -2
- package/dist/src/tests/relay.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/relay.e2e-test.js +0 -44
- package/dist/src/tests/relay.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-apply.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-apply.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-apply.e2e-test.js +0 -91
- package/dist/src/tests/warp/warp-apply.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-bridge-1.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-bridge-1.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-bridge-1.e2e-test.js +0 -21
- package/dist/src/tests/warp/warp-bridge-1.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-bridge-2.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-bridge-2.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-bridge-2.e2e-test.js +0 -21
- package/dist/src/tests/warp/warp-bridge-2.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-bridge-utils.d.ts +0 -30
- package/dist/src/tests/warp/warp-bridge-utils.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-bridge-utils.js +0 -140
- package/dist/src/tests/warp/warp-bridge-utils.js.map +0 -1
- package/dist/src/tests/warp/warp-check.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-check.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-check.e2e-test.js +0 -286
- package/dist/src/tests/warp/warp-check.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-deploy.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-deploy.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-deploy.e2e-test.js +0 -300
- package/dist/src/tests/warp/warp-deploy.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-extend-basic.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-extend-basic.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-extend-basic.e2e-test.js +0 -172
- package/dist/src/tests/warp/warp-extend-basic.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-extend-config.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-extend-config.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-extend-config.e2e-test.js +0 -115
- package/dist/src/tests/warp/warp-extend-config.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-extend-recovery.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-extend-recovery.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-extend-recovery.e2e-test.js +0 -167
- package/dist/src/tests/warp/warp-extend-recovery.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-init.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-init.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-init.e2e-test.js +0 -102
- package/dist/src/tests/warp/warp-init.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-read.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-read.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-read.e2e-test.js +0 -98
- package/dist/src/tests/warp/warp-read.e2e-test.js.map +0 -1
- package/dist/src/tests/warp/warp-send.e2e-test.d.ts +0 -2
- package/dist/src/tests/warp/warp-send.e2e-test.d.ts.map +0 -1
- package/dist/src/tests/warp/warp-send.e2e-test.js +0 -341
- package/dist/src/tests/warp/warp-send.e2e-test.js.map +0 -1
- package/dist/src/utils/balances.d.ts +0 -3
- package/dist/src/utils/balances.d.ts.map +0 -1
- package/dist/src/utils/balances.js +0 -39
- package/dist/src/utils/balances.js.map +0 -1
- package/dist/src/utils/chains.d.ts +0 -41
- package/dist/src/utils/chains.d.ts.map +0 -1
- package/dist/src/utils/chains.js +0 -128
- package/dist/src/utils/chains.js.map +0 -1
- package/dist/src/utils/cli-options.d.ts +0 -9
- package/dist/src/utils/cli-options.d.ts.map +0 -1
- package/dist/src/utils/cli-options.js +0 -14
- package/dist/src/utils/cli-options.js.map +0 -1
- package/dist/src/utils/env.d.ts +0 -9
- package/dist/src/utils/env.d.ts.map +0 -1
- package/dist/src/utils/env.js +0 -12
- package/dist/src/utils/env.js.map +0 -1
- package/dist/src/utils/files.d.ts +0 -34
- package/dist/src/utils/files.d.ts.map +0 -1
- package/dist/src/utils/files.js +0 -178
- package/dist/src/utils/files.js.map +0 -1
- package/dist/src/utils/input.d.ts +0 -54
- package/dist/src/utils/input.d.ts.map +0 -1
- package/dist/src/utils/input.js +0 -339
- package/dist/src/utils/input.js.map +0 -1
- package/dist/src/utils/keys.d.ts +0 -31
- package/dist/src/utils/keys.d.ts.map +0 -1
- package/dist/src/utils/keys.js +0 -77
- package/dist/src/utils/keys.js.map +0 -1
- package/dist/src/utils/output.d.ts +0 -24
- package/dist/src/utils/output.d.ts.map +0 -1
- package/dist/src/utils/output.js +0 -88
- package/dist/src/utils/output.js.map +0 -1
- package/dist/src/utils/relay.d.ts +0 -6
- package/dist/src/utils/relay.d.ts.map +0 -1
- package/dist/src/utils/relay.js +0 -19
- package/dist/src/utils/relay.js.map +0 -1
- package/dist/src/utils/time.d.ts +0 -2
- package/dist/src/utils/time.d.ts.map +0 -1
- package/dist/src/utils/time.js +0 -12
- package/dist/src/utils/time.js.map +0 -1
- package/dist/src/utils/time.test.d.ts +0 -2
- package/dist/src/utils/time.test.d.ts.map +0 -1
- package/dist/src/utils/time.test.js +0 -9
- package/dist/src/utils/time.test.js.map +0 -1
- package/dist/src/utils/tokens.d.ts +0 -5
- package/dist/src/utils/tokens.d.ts.map +0 -1
- package/dist/src/utils/tokens.js +0 -40
- package/dist/src/utils/tokens.js.map +0 -1
- package/dist/src/utils/version-check.d.ts +0 -2
- package/dist/src/utils/version-check.d.ts.map +0 -1
- package/dist/src/utils/version-check.js +0 -15
- package/dist/src/utils/version-check.js.map +0 -1
- package/dist/src/utils/warp.d.ts +0 -14
- package/dist/src/utils/warp.d.ts.map +0 -1
- package/dist/src/utils/warp.js +0 -24
- package/dist/src/utils/warp.js.map +0 -1
- package/dist/src/validator/address.d.ts +0 -10
- package/dist/src/validator/address.d.ts.map +0 -1
- package/dist/src/validator/address.js +0 -107
- package/dist/src/validator/address.js.map +0 -1
- package/dist/src/validator/preFlightCheck.d.ts +0 -4
- package/dist/src/validator/preFlightCheck.d.ts.map +0 -1
- package/dist/src/validator/preFlightCheck.js +0 -74
- package/dist/src/validator/preFlightCheck.js.map +0 -1
- package/dist/src/validator/utils.d.ts +0 -9
- package/dist/src/validator/utils.d.ts.map +0 -1
- package/dist/src/validator/utils.js +0 -46
- package/dist/src/validator/utils.js.map +0 -1
- package/dist/src/verify/warp.d.ts +0 -7
- package/dist/src/verify/warp.d.ts.map +0 -1
- package/dist/src/verify/warp.js +0 -61
- package/dist/src/verify/warp.js.map +0 -1
- package/dist/src/version.d.ts +0 -2
- package/dist/src/version.d.ts.map +0 -1
- package/dist/src/version.js +0 -2
- package/dist/src/version.js.map +0 -1
package/dist/src/deploy/utils.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { confirm } from '@inquirer/prompts';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { getLocalProvider, } from '@hyperlane-xyz/sdk';
|
|
4
|
-
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
5
|
-
import { parseIsmConfig } from '../config/ism.js';
|
|
6
|
-
import { log, logBlue, logGray, logGreen, logPink, logTable, } from '../logger.js';
|
|
7
|
-
import { nativeBalancesAreSufficient } from '../utils/balances.js';
|
|
8
|
-
import { ENV } from '../utils/env.js';
|
|
9
|
-
import { assertSigner } from '../utils/keys.js';
|
|
10
|
-
import { completeDryRun } from './dry-run.js';
|
|
11
|
-
export async function runPreflightChecksForChains({ context, chains, minGas, chainsToGasCheck, }) {
|
|
12
|
-
log('Running pre-flight checks for chains...');
|
|
13
|
-
const { multiProvider, skipConfirmation } = context;
|
|
14
|
-
if (!chains?.length)
|
|
15
|
-
throw new Error('Empty chain selection');
|
|
16
|
-
for (const chain of chains) {
|
|
17
|
-
const metadata = multiProvider.tryGetChainMetadata(chain);
|
|
18
|
-
if (!metadata)
|
|
19
|
-
throw new Error(`No chain config found for ${chain}`);
|
|
20
|
-
if (metadata.protocol !== ProtocolType.Ethereum)
|
|
21
|
-
throw new Error('Only Ethereum chains are supported for now');
|
|
22
|
-
const signer = multiProvider.getSigner(chain);
|
|
23
|
-
assertSigner(signer);
|
|
24
|
-
logGreen(`✅ ${metadata.displayName ?? chain} signer is valid`);
|
|
25
|
-
}
|
|
26
|
-
logGreen('✅ Chains are valid');
|
|
27
|
-
await nativeBalancesAreSufficient(multiProvider, chainsToGasCheck ?? chains, minGas, skipConfirmation);
|
|
28
|
-
}
|
|
29
|
-
export async function runDeployPlanStep({ context, chain, }) {
|
|
30
|
-
const { chainMetadata: chainMetadataMap, multiProvider, skipConfirmation, } = context;
|
|
31
|
-
const address = await multiProvider.getSigner(chain).getAddress();
|
|
32
|
-
logBlue('\nDeployment plan');
|
|
33
|
-
logGray('===============');
|
|
34
|
-
log(`Transaction signer and owner of new contracts: ${address}`);
|
|
35
|
-
log(`Deploying core contracts to network: ${chain}`);
|
|
36
|
-
const transformedChainMetadata = transformChainMetadataForDisplay(chainMetadataMap[chain]);
|
|
37
|
-
logTable(transformedChainMetadata);
|
|
38
|
-
log(`Note: There are several contracts required for each chain, but contracts in your provided registries will be skipped.`);
|
|
39
|
-
if (skipConfirmation)
|
|
40
|
-
return;
|
|
41
|
-
await confirmExistingMailbox(context, chain);
|
|
42
|
-
const isConfirmed = await confirm({
|
|
43
|
-
message: 'Is this deployment plan correct?',
|
|
44
|
-
});
|
|
45
|
-
if (!isConfirmed)
|
|
46
|
-
throw new Error('Deployment cancelled');
|
|
47
|
-
}
|
|
48
|
-
async function confirmExistingMailbox(context, chain) {
|
|
49
|
-
const addresses = await context.registry.getChainAddresses(chain);
|
|
50
|
-
if (addresses?.mailbox) {
|
|
51
|
-
const isConfirmed = await confirm({
|
|
52
|
-
message: `Mailbox already exists at ${addresses.mailbox}. Are you sure you want to deploy a new mailbox and overwrite existing registry artifacts?`,
|
|
53
|
-
default: false,
|
|
54
|
-
});
|
|
55
|
-
if (!isConfirmed) {
|
|
56
|
-
throw Error('Deployment cancelled');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// from parsed types
|
|
61
|
-
export function isISMConfig(config) {
|
|
62
|
-
return Object.values(config).some((c) => 'type' in c);
|
|
63
|
-
}
|
|
64
|
-
// directly from filepath
|
|
65
|
-
export function isZODISMConfig(filepath) {
|
|
66
|
-
return parseIsmConfig(filepath).success;
|
|
67
|
-
}
|
|
68
|
-
export async function prepareDeploy(context, userAddress, chains) {
|
|
69
|
-
const { multiProvider, isDryRun } = context;
|
|
70
|
-
const initialBalances = {};
|
|
71
|
-
await Promise.all(chains.map(async (chain) => {
|
|
72
|
-
const provider = isDryRun
|
|
73
|
-
? getLocalProvider(ENV.ANVIL_IP_ADDR, ENV.ANVIL_PORT)
|
|
74
|
-
: multiProvider.getProvider(chain);
|
|
75
|
-
const address = userAddress ?? (await multiProvider.getSigner(chain).getAddress());
|
|
76
|
-
const currentBalance = await provider.getBalance(address);
|
|
77
|
-
initialBalances[chain] = currentBalance;
|
|
78
|
-
}));
|
|
79
|
-
return initialBalances;
|
|
80
|
-
}
|
|
81
|
-
export async function completeDeploy(context, command, initialBalances, userAddress, chains) {
|
|
82
|
-
const { multiProvider, isDryRun } = context;
|
|
83
|
-
if (chains.length > 0)
|
|
84
|
-
logPink(`⛽️ Gas Usage Statistics`);
|
|
85
|
-
for (const chain of chains) {
|
|
86
|
-
const provider = isDryRun
|
|
87
|
-
? getLocalProvider(ENV.ANVIL_IP_ADDR, ENV.ANVIL_PORT)
|
|
88
|
-
: multiProvider.getProvider(chain);
|
|
89
|
-
const address = userAddress ?? (await multiProvider.getSigner(chain).getAddress());
|
|
90
|
-
const currentBalance = await provider.getBalance(address);
|
|
91
|
-
const balanceDelta = initialBalances[chain].sub(currentBalance);
|
|
92
|
-
if (isDryRun && balanceDelta.lt(0))
|
|
93
|
-
break;
|
|
94
|
-
logPink(`\t- Gas required for ${command} ${isDryRun ? 'dry-run' : 'deploy'} on ${chain}: ${ethers.utils.formatEther(balanceDelta)} ${multiProvider.getChainMetadata(chain).nativeToken?.symbol ?? 'ETH'}`);
|
|
95
|
-
}
|
|
96
|
-
if (isDryRun)
|
|
97
|
-
await completeDryRun(command);
|
|
98
|
-
}
|
|
99
|
-
function transformChainMetadataForDisplay(chainMetadata) {
|
|
100
|
-
return {
|
|
101
|
-
Name: chainMetadata.name,
|
|
102
|
-
'Display Name': chainMetadata.displayName,
|
|
103
|
-
'Chain ID': chainMetadata.chainId,
|
|
104
|
-
'Domain ID': chainMetadata.domainId,
|
|
105
|
-
Protocol: chainMetadata.protocol,
|
|
106
|
-
'JSON RPC URL': chainMetadata.rpcUrls[0].http,
|
|
107
|
-
'Native Token: Symbol': chainMetadata.nativeToken?.symbol,
|
|
108
|
-
'Native Token: Name': chainMetadata.nativeToken?.name,
|
|
109
|
-
'Native Token: Decimals': chainMetadata.nativeToken?.decimals,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ChainMap, ChainSubmissionStrategy, WarpCoreConfig, WarpRouteDeployConfigMailboxRequired } from '@hyperlane-xyz/sdk';
|
|
2
|
-
import { WriteCommandContext } from '../context/types.js';
|
|
3
|
-
interface DeployParams {
|
|
4
|
-
context: WriteCommandContext;
|
|
5
|
-
warpDeployConfig: WarpRouteDeployConfigMailboxRequired;
|
|
6
|
-
}
|
|
7
|
-
interface WarpApplyParams extends DeployParams {
|
|
8
|
-
warpCoreConfig: WarpCoreConfig;
|
|
9
|
-
strategyUrl?: string;
|
|
10
|
-
receiptsDir: string;
|
|
11
|
-
}
|
|
12
|
-
export declare function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPath, }: {
|
|
13
|
-
context: WriteCommandContext;
|
|
14
|
-
warpRouteDeploymentConfigPath?: string;
|
|
15
|
-
}): Promise<void>;
|
|
16
|
-
export declare function runWarpRouteApply(params: WarpApplyParams): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Extends an existing Warp route to include new chains.
|
|
19
|
-
* This function manages the entire extension workflow:
|
|
20
|
-
* 1. Divides the configuration into existing and new chain segments.
|
|
21
|
-
* 2. Returns the current configuration if no new chains are added.
|
|
22
|
-
* 3. Deploys and sets up new contracts for the additional chains.
|
|
23
|
-
* 4. Refreshes the Warp core configuration with updated token details.
|
|
24
|
-
* 5. Saves the revised artifacts to the registry.
|
|
25
|
-
*/
|
|
26
|
-
export declare function extendWarpRoute(params: WarpApplyParams, apiKeys: ChainMap<string>, warpCoreConfig: WarpCoreConfig): Promise<WarpCoreConfig>;
|
|
27
|
-
/**
|
|
28
|
-
* Retrieves a chain submission strategy from the provided filepath.
|
|
29
|
-
* @param submissionStrategyFilepath a filepath to the submission strategy file
|
|
30
|
-
* @returns a formatted submission strategy
|
|
31
|
-
*/
|
|
32
|
-
export declare function readChainSubmissionStrategy(submissionStrategyFilepath: string): ChainSubmissionStrategy;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=warp.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,QAAQ,EAER,uBAAuB,EA4BvB,cAAc,EAEd,oCAAoC,EAarC,MAAM,oBAAoB,CAAC;AAa5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,UAAU,YAAY;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,oCAAoC,CAAC;CACxD;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAC9B,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,iBA4DA;AA+TD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAoDD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,CAAC,CAoCzB;AAgED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,uBAAuB,CAKzB"}
|
package/dist/src/deploy/warp.js
DELETED
|
@@ -1,517 +0,0 @@
|
|
|
1
|
-
import { confirm } from '@inquirer/prompts';
|
|
2
|
-
import { groupBy } from 'lodash-es';
|
|
3
|
-
import { stringify as yamlStringify } from 'yaml';
|
|
4
|
-
import { ProxyAdmin__factory } from '@hyperlane-xyz/core';
|
|
5
|
-
import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
|
|
6
|
-
import { CCIPContractCache, ChainSubmissionStrategySchema, ContractVerifier, EvmERC20WarpModule, EvmHookModule, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, TxSubmitterType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, expandWarpDeployConfig, extractIsmAndHookFactoryAddresses, getRouterAddressesFromWarpCoreConfig, getTokenConnectionId, hypERC20factories, isCollateralTokenConfig, isTokenMetadata, isXERC20TokenConfig, splitWarpCoreAndExtendedConfigs, } from '@hyperlane-xyz/sdk';
|
|
7
|
-
import { ProtocolType, assert, objMap, promiseObjAll, retryAsync, } from '@hyperlane-xyz/utils';
|
|
8
|
-
import { readWarpRouteDeployConfig } from '../config/warp.js';
|
|
9
|
-
import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
|
|
10
|
-
import { requestAndSaveApiKeys } from '../context/context.js';
|
|
11
|
-
import { log, logBlue, logGray, logGreen, logTable } from '../logger.js';
|
|
12
|
-
import { getSubmitterBuilder } from '../submit/submit.js';
|
|
13
|
-
import { indentYamlOrJson, isFile, readYamlOrJson, runFileSelectionStep, writeYamlOrJson, } from '../utils/files.js';
|
|
14
|
-
import { completeDeploy, prepareDeploy, runPreflightChecksForChains, } from './utils.js';
|
|
15
|
-
export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPath, }) {
|
|
16
|
-
const { skipConfirmation, chainMetadata, registry } = context;
|
|
17
|
-
if (!warpRouteDeploymentConfigPath ||
|
|
18
|
-
!isFile(warpRouteDeploymentConfigPath)) {
|
|
19
|
-
if (skipConfirmation)
|
|
20
|
-
throw new Error('Warp route deployment config required');
|
|
21
|
-
warpRouteDeploymentConfigPath = await runFileSelectionStep('./configs', 'Warp route deployment config', 'warp');
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
log(`Using warp route deployment config at ${warpRouteDeploymentConfigPath}`);
|
|
25
|
-
}
|
|
26
|
-
const warpRouteConfig = await readWarpRouteDeployConfig(warpRouteDeploymentConfigPath, context);
|
|
27
|
-
const chains = Object.keys(warpRouteConfig);
|
|
28
|
-
let apiKeys = {};
|
|
29
|
-
if (!skipConfirmation)
|
|
30
|
-
apiKeys = await requestAndSaveApiKeys(chains, chainMetadata, registry);
|
|
31
|
-
const deploymentParams = {
|
|
32
|
-
context,
|
|
33
|
-
warpDeployConfig: warpRouteConfig,
|
|
34
|
-
};
|
|
35
|
-
await runDeployPlanStep(deploymentParams);
|
|
36
|
-
// Some of the below functions throw if passed non-EVM chains
|
|
37
|
-
const ethereumChains = chains.filter((chain) => chainMetadata[chain].protocol === ProtocolType.Ethereum);
|
|
38
|
-
await runPreflightChecksForChains({
|
|
39
|
-
context,
|
|
40
|
-
chains: ethereumChains,
|
|
41
|
-
minGas: MINIMUM_WARP_DEPLOY_GAS,
|
|
42
|
-
});
|
|
43
|
-
const initialBalances = await prepareDeploy(context, null, ethereumChains);
|
|
44
|
-
const deployedContracts = await executeDeploy(deploymentParams, apiKeys);
|
|
45
|
-
const { warpCoreConfig, addWarpRouteOptions } = await getWarpCoreConfig(deploymentParams, deployedContracts);
|
|
46
|
-
await writeDeploymentArtifacts(warpCoreConfig, context, addWarpRouteOptions);
|
|
47
|
-
await completeDeploy(context, 'warp', initialBalances, null, ethereumChains);
|
|
48
|
-
}
|
|
49
|
-
async function runDeployPlanStep({ context, warpDeployConfig }) {
|
|
50
|
-
const { skipConfirmation } = context;
|
|
51
|
-
displayWarpDeployPlan(warpDeployConfig);
|
|
52
|
-
if (skipConfirmation || context.isDryRun)
|
|
53
|
-
return;
|
|
54
|
-
const isConfirmed = await confirm({
|
|
55
|
-
message: 'Is this deployment plan correct?',
|
|
56
|
-
});
|
|
57
|
-
if (!isConfirmed)
|
|
58
|
-
throw new Error('Deployment cancelled');
|
|
59
|
-
}
|
|
60
|
-
async function executeDeploy(params, apiKeys) {
|
|
61
|
-
logBlue('🚀 All systems ready, captain! Beginning deployment...');
|
|
62
|
-
const { warpDeployConfig, context: { multiProvider, isDryRun, dryRunChain }, } = params;
|
|
63
|
-
const deployer = warpDeployConfig.isNft
|
|
64
|
-
? new HypERC721Deployer(multiProvider)
|
|
65
|
-
: new HypERC20Deployer(multiProvider); // TODO: replace with EvmERC20WarpModule
|
|
66
|
-
const config = isDryRun && dryRunChain
|
|
67
|
-
? { [dryRunChain]: warpDeployConfig[dryRunChain] }
|
|
68
|
-
: warpDeployConfig;
|
|
69
|
-
const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
|
|
70
|
-
const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider, contractVerifier);
|
|
71
|
-
// For each chain in WarpRouteConfig, deploy each Ism Factory, if it's not in the registry
|
|
72
|
-
// Then return a modified config with the ism and/or hook address as a string
|
|
73
|
-
const modifiedConfig = await resolveWarpIsmAndHook(config, params.context, ismFactoryDeployer, contractVerifier);
|
|
74
|
-
const deployedContracts = await deployer.deploy(modifiedConfig);
|
|
75
|
-
logGreen('✅ Warp contract deployments complete');
|
|
76
|
-
return deployedContracts;
|
|
77
|
-
}
|
|
78
|
-
async function writeDeploymentArtifacts(warpCoreConfig, context, addWarpRouteOptions) {
|
|
79
|
-
if (!context.isDryRun) {
|
|
80
|
-
log('Writing deployment artifacts...');
|
|
81
|
-
await context.registry.addWarpRoute(warpCoreConfig, addWarpRouteOptions);
|
|
82
|
-
}
|
|
83
|
-
log(indentYamlOrJson(yamlStringify(warpCoreConfig, null, 2), 4));
|
|
84
|
-
}
|
|
85
|
-
async function resolveWarpIsmAndHook(warpConfig, context, ismFactoryDeployer, contractVerifier) {
|
|
86
|
-
return promiseObjAll(objMap(warpConfig, async (chain, config) => {
|
|
87
|
-
const registryAddresses = await context.registry.getAddresses();
|
|
88
|
-
const ccipContractCache = new CCIPContractCache(registryAddresses);
|
|
89
|
-
const chainAddresses = registryAddresses[chain];
|
|
90
|
-
if (!chainAddresses) {
|
|
91
|
-
throw `Registry factory addresses not found for ${chain}.`;
|
|
92
|
-
}
|
|
93
|
-
config.interchainSecurityModule = await createWarpIsm({
|
|
94
|
-
ccipContractCache,
|
|
95
|
-
chain,
|
|
96
|
-
chainAddresses,
|
|
97
|
-
context,
|
|
98
|
-
contractVerifier,
|
|
99
|
-
ismFactoryDeployer,
|
|
100
|
-
warpConfig: config,
|
|
101
|
-
}); // TODO write test
|
|
102
|
-
config.hook = await createWarpHook({
|
|
103
|
-
ccipContractCache,
|
|
104
|
-
chain,
|
|
105
|
-
chainAddresses,
|
|
106
|
-
context,
|
|
107
|
-
contractVerifier,
|
|
108
|
-
ismFactoryDeployer,
|
|
109
|
-
warpConfig: config,
|
|
110
|
-
});
|
|
111
|
-
return config;
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Deploys the Warp ISM for a given config
|
|
116
|
-
*
|
|
117
|
-
* @returns The deployed ism address
|
|
118
|
-
*/
|
|
119
|
-
async function createWarpIsm({ ccipContractCache, chain, chainAddresses, context, contractVerifier, warpConfig, }) {
|
|
120
|
-
const { interchainSecurityModule } = warpConfig;
|
|
121
|
-
if (!interchainSecurityModule ||
|
|
122
|
-
typeof interchainSecurityModule === 'string') {
|
|
123
|
-
logGray(`Config Ism is ${!interchainSecurityModule ? 'empty' : interchainSecurityModule}, skipping deployment.`);
|
|
124
|
-
return interchainSecurityModule;
|
|
125
|
-
}
|
|
126
|
-
logBlue(`Loading registry factory addresses for ${chain}...`);
|
|
127
|
-
logGray(`Creating ${interchainSecurityModule.type} ISM for token on ${chain} chain...`);
|
|
128
|
-
logGreen(`Finished creating ${interchainSecurityModule.type} ISM for token on ${chain} chain.`);
|
|
129
|
-
const evmIsmModule = await EvmIsmModule.create({
|
|
130
|
-
chain,
|
|
131
|
-
mailbox: chainAddresses.mailbox,
|
|
132
|
-
multiProvider: context.multiProvider,
|
|
133
|
-
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
134
|
-
config: interchainSecurityModule,
|
|
135
|
-
ccipContractCache,
|
|
136
|
-
contractVerifier,
|
|
137
|
-
});
|
|
138
|
-
const { deployedIsm } = evmIsmModule.serialize();
|
|
139
|
-
return deployedIsm;
|
|
140
|
-
}
|
|
141
|
-
async function createWarpHook({ ccipContractCache, chain, chainAddresses, context, contractVerifier, warpConfig, }) {
|
|
142
|
-
const { hook } = warpConfig;
|
|
143
|
-
if (!hook || typeof hook === 'string') {
|
|
144
|
-
logGray(`Config Hook is ${!hook ? 'empty' : hook}, skipping deployment.`);
|
|
145
|
-
return hook;
|
|
146
|
-
}
|
|
147
|
-
logBlue(`Loading registry factory addresses for ${chain}...`);
|
|
148
|
-
logGray(`Creating ${hook.type} Hook for token on ${chain} chain...`);
|
|
149
|
-
// If config.proxyadmin.address exists, then use that. otherwise deploy a new proxyAdmin
|
|
150
|
-
const proxyAdminAddress = warpConfig.proxyAdmin?.address ??
|
|
151
|
-
(await context.multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), [])).address;
|
|
152
|
-
const evmHookModule = await EvmHookModule.create({
|
|
153
|
-
chain,
|
|
154
|
-
multiProvider: context.multiProvider,
|
|
155
|
-
coreAddresses: {
|
|
156
|
-
mailbox: chainAddresses.mailbox,
|
|
157
|
-
proxyAdmin: proxyAdminAddress,
|
|
158
|
-
},
|
|
159
|
-
config: hook,
|
|
160
|
-
ccipContractCache,
|
|
161
|
-
contractVerifier,
|
|
162
|
-
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
163
|
-
});
|
|
164
|
-
logGreen(`Finished creating ${hook.type} Hook for token on ${chain} chain.`);
|
|
165
|
-
const { deployedHook } = evmHookModule.serialize();
|
|
166
|
-
return deployedHook;
|
|
167
|
-
}
|
|
168
|
-
async function getWarpCoreConfig(params, contracts) {
|
|
169
|
-
const warpCoreConfig = { tokens: [] };
|
|
170
|
-
// TODO: replace with warp read
|
|
171
|
-
const tokenMetadata = await HypERC20Deployer.deriveTokenMetadata(params.context.multiProvider, params.warpDeployConfig);
|
|
172
|
-
assert(tokenMetadata && isTokenMetadata(tokenMetadata), 'Missing required token metadata');
|
|
173
|
-
const { decimals, symbol, name } = tokenMetadata;
|
|
174
|
-
assert(decimals, 'Missing decimals on token metadata');
|
|
175
|
-
generateTokenConfigs(warpCoreConfig, params.warpDeployConfig, contracts, symbol, name, decimals);
|
|
176
|
-
fullyConnectTokens(warpCoreConfig);
|
|
177
|
-
return { warpCoreConfig, addWarpRouteOptions: { symbol } };
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Creates token configs.
|
|
181
|
-
*/
|
|
182
|
-
function generateTokenConfigs(warpCoreConfig, warpDeployConfig, contracts, symbol, name, decimals) {
|
|
183
|
-
for (const [chainName, contract] of Object.entries(contracts)) {
|
|
184
|
-
const config = warpDeployConfig[chainName];
|
|
185
|
-
const collateralAddressOrDenom = isCollateralTokenConfig(config) || isXERC20TokenConfig(config)
|
|
186
|
-
? config.token // gets set in the above deriveTokenMetadata()
|
|
187
|
-
: undefined;
|
|
188
|
-
warpCoreConfig.tokens.push({
|
|
189
|
-
chainName,
|
|
190
|
-
standard: TOKEN_TYPE_TO_STANDARD[config.type],
|
|
191
|
-
decimals,
|
|
192
|
-
symbol: config.symbol || symbol,
|
|
193
|
-
name,
|
|
194
|
-
addressOrDenom: contract[warpDeployConfig[chainName].type]
|
|
195
|
-
.address,
|
|
196
|
-
collateralAddressOrDenom,
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Adds connections between tokens.
|
|
202
|
-
*
|
|
203
|
-
* Assumes full interconnectivity between all tokens for now b.c. that's
|
|
204
|
-
* what the deployers do by default.
|
|
205
|
-
*/
|
|
206
|
-
function fullyConnectTokens(warpCoreConfig) {
|
|
207
|
-
for (const token1 of warpCoreConfig.tokens) {
|
|
208
|
-
for (const token2 of warpCoreConfig.tokens) {
|
|
209
|
-
if (token1.chainName === token2.chainName &&
|
|
210
|
-
token1.addressOrDenom === token2.addressOrDenom)
|
|
211
|
-
continue;
|
|
212
|
-
token1.connections ||= [];
|
|
213
|
-
token1.connections.push({
|
|
214
|
-
token: getTokenConnectionId(ProtocolType.Ethereum, token2.chainName, token2.addressOrDenom),
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
export async function runWarpRouteApply(params) {
|
|
220
|
-
const { warpDeployConfig, warpCoreConfig, context } = params;
|
|
221
|
-
const { chainMetadata, skipConfirmation } = context;
|
|
222
|
-
WarpRouteDeployConfigSchema.parse(warpDeployConfig);
|
|
223
|
-
WarpCoreConfigSchema.parse(warpCoreConfig);
|
|
224
|
-
const chains = Object.keys(warpDeployConfig);
|
|
225
|
-
let apiKeys = {};
|
|
226
|
-
if (!skipConfirmation)
|
|
227
|
-
apiKeys = await requestAndSaveApiKeys(chains, chainMetadata, context.registry);
|
|
228
|
-
// Extend the warp route and get the updated configs
|
|
229
|
-
const updatedWarpCoreConfig = await extendWarpRoute(params, apiKeys, warpCoreConfig);
|
|
230
|
-
// Then create and submit update transactions
|
|
231
|
-
const transactions = await updateExistingWarpRoute(params, apiKeys, warpDeployConfig, updatedWarpCoreConfig);
|
|
232
|
-
if (transactions.length == 0)
|
|
233
|
-
return logGreen(`Warp config is the same as target. No updates needed.`);
|
|
234
|
-
await submitWarpApplyTransactions(params, groupBy(transactions, 'chainId'));
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Handles the deployment and configuration of new contracts for extending a Warp route.
|
|
238
|
-
* This function performs several key steps:
|
|
239
|
-
* 1. Derives metadata from existing contracts and applies it to new configurations
|
|
240
|
-
* 2. Deploys new contracts using the derived configurations
|
|
241
|
-
* 3. Merges existing and new router configurations
|
|
242
|
-
* 4. Generates an updated Warp core configuration
|
|
243
|
-
*/
|
|
244
|
-
async function deployWarpExtensionContracts(params, apiKeys, existingConfigs, initialExtendedConfigs, warpCoreConfigByChain) {
|
|
245
|
-
// Deploy new contracts with derived metadata
|
|
246
|
-
const extendedConfigs = await deriveMetadataFromExisting(params.context.multiProvider, existingConfigs, initialExtendedConfigs);
|
|
247
|
-
const newDeployedContracts = await executeDeploy({
|
|
248
|
-
context: params.context,
|
|
249
|
-
warpDeployConfig: extendedConfigs,
|
|
250
|
-
}, apiKeys);
|
|
251
|
-
// Merge existing and new routers
|
|
252
|
-
const mergedRouters = mergeAllRouters(params.context.multiProvider, existingConfigs, newDeployedContracts, warpCoreConfigByChain);
|
|
253
|
-
// Get the updated core config
|
|
254
|
-
const { warpCoreConfig: updatedWarpCoreConfig, addWarpRouteOptions } = await getWarpCoreConfig(params, mergedRouters);
|
|
255
|
-
WarpCoreConfigSchema.parse(updatedWarpCoreConfig);
|
|
256
|
-
return {
|
|
257
|
-
newDeployedContracts,
|
|
258
|
-
updatedWarpCoreConfig,
|
|
259
|
-
addWarpRouteOptions,
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Extends an existing Warp route to include new chains.
|
|
264
|
-
* This function manages the entire extension workflow:
|
|
265
|
-
* 1. Divides the configuration into existing and new chain segments.
|
|
266
|
-
* 2. Returns the current configuration if no new chains are added.
|
|
267
|
-
* 3. Deploys and sets up new contracts for the additional chains.
|
|
268
|
-
* 4. Refreshes the Warp core configuration with updated token details.
|
|
269
|
-
* 5. Saves the revised artifacts to the registry.
|
|
270
|
-
*/
|
|
271
|
-
export async function extendWarpRoute(params, apiKeys, warpCoreConfig) {
|
|
272
|
-
const { context, warpDeployConfig } = params;
|
|
273
|
-
const warpCoreConfigByChain = Object.fromEntries(warpCoreConfig.tokens.map((token) => [token.chainName, token]));
|
|
274
|
-
const warpCoreChains = Object.keys(warpCoreConfigByChain);
|
|
275
|
-
// Split between the existing and additional config
|
|
276
|
-
const [existingConfigs, initialExtendedConfigs] = splitWarpCoreAndExtendedConfigs(warpDeployConfig, warpCoreChains);
|
|
277
|
-
const extendedChains = Object.keys(initialExtendedConfigs);
|
|
278
|
-
if (extendedChains.length === 0) {
|
|
279
|
-
return warpCoreConfig;
|
|
280
|
-
}
|
|
281
|
-
logBlue(`Extending Warp Route to ${extendedChains.join(', ')}`);
|
|
282
|
-
// Deploy new contracts with derived metadata and merge with existing config
|
|
283
|
-
const { updatedWarpCoreConfig, addWarpRouteOptions } = await deployWarpExtensionContracts(params, apiKeys, existingConfigs, initialExtendedConfigs, warpCoreConfigByChain);
|
|
284
|
-
// Write the updated artifacts
|
|
285
|
-
await writeDeploymentArtifacts(updatedWarpCoreConfig, context, addWarpRouteOptions);
|
|
286
|
-
return updatedWarpCoreConfig;
|
|
287
|
-
}
|
|
288
|
-
// Updates Warp routes with new configurations.
|
|
289
|
-
async function updateExistingWarpRoute(params, apiKeys, warpDeployConfig, warpCoreConfig) {
|
|
290
|
-
logBlue('Updating deployed Warp Routes');
|
|
291
|
-
const { multiProvider, registry } = params.context;
|
|
292
|
-
const registryAddresses = (await registry.getAddresses());
|
|
293
|
-
const ccipContractCache = new CCIPContractCache(registryAddresses);
|
|
294
|
-
const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
|
|
295
|
-
const transactions = [];
|
|
296
|
-
// Get all deployed router addresses
|
|
297
|
-
const deployedRoutersAddresses = getRouterAddressesFromWarpCoreConfig(warpCoreConfig);
|
|
298
|
-
const expandedWarpDeployConfig = await expandWarpDeployConfig(multiProvider, warpDeployConfig, deployedRoutersAddresses);
|
|
299
|
-
await promiseObjAll(objMap(expandedWarpDeployConfig, async (chain, config) => {
|
|
300
|
-
await retryAsync(async () => {
|
|
301
|
-
const deployedTokenRoute = deployedRoutersAddresses[chain];
|
|
302
|
-
assert(deployedTokenRoute, `Missing artifacts for ${chain}.`);
|
|
303
|
-
const configWithMailbox = {
|
|
304
|
-
...config,
|
|
305
|
-
mailbox: registryAddresses[chain].mailbox,
|
|
306
|
-
};
|
|
307
|
-
const evmERC20WarpModule = new EvmERC20WarpModule(multiProvider, {
|
|
308
|
-
config: configWithMailbox,
|
|
309
|
-
chain,
|
|
310
|
-
addresses: {
|
|
311
|
-
deployedTokenRoute,
|
|
312
|
-
...extractIsmAndHookFactoryAddresses(registryAddresses[chain]),
|
|
313
|
-
},
|
|
314
|
-
}, ccipContractCache, contractVerifier);
|
|
315
|
-
transactions.push(...(await evmERC20WarpModule.update(configWithMailbox)));
|
|
316
|
-
});
|
|
317
|
-
}));
|
|
318
|
-
return transactions;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Retrieves a chain submission strategy from the provided filepath.
|
|
322
|
-
* @param submissionStrategyFilepath a filepath to the submission strategy file
|
|
323
|
-
* @returns a formatted submission strategy
|
|
324
|
-
*/
|
|
325
|
-
export function readChainSubmissionStrategy(submissionStrategyFilepath) {
|
|
326
|
-
const submissionStrategyFileContent = readYamlOrJson(submissionStrategyFilepath.trim());
|
|
327
|
-
return ChainSubmissionStrategySchema.parse(submissionStrategyFileContent);
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Derives token metadata from existing config and merges it with extended config.
|
|
331
|
-
* @returns The merged Warp route deployment config with token metadata.
|
|
332
|
-
*/
|
|
333
|
-
async function deriveMetadataFromExisting(multiProvider, existingConfigs, extendedConfigs) {
|
|
334
|
-
const existingTokenMetadata = await HypERC20Deployer.deriveTokenMetadata(multiProvider, existingConfigs);
|
|
335
|
-
return objMap(extendedConfigs, (_chain, extendedConfig) => {
|
|
336
|
-
return {
|
|
337
|
-
...existingTokenMetadata,
|
|
338
|
-
...extendedConfig,
|
|
339
|
-
};
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Merges existing router configs with newly deployed router contracts.
|
|
344
|
-
*/
|
|
345
|
-
function mergeAllRouters(multiProvider, existingConfigs, deployedContractsMap, warpCoreConfigByChain) {
|
|
346
|
-
const existingContractAddresses = objMap(existingConfigs, (chain, config) => ({
|
|
347
|
-
[config.type]: warpCoreConfigByChain[chain].addressOrDenom,
|
|
348
|
-
}));
|
|
349
|
-
return {
|
|
350
|
-
...connectContractsMap(attachContractsMap(existingContractAddresses, hypERC20factories), multiProvider),
|
|
351
|
-
...deployedContractsMap,
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
function displayWarpDeployPlan(deployConfig) {
|
|
355
|
-
logBlue('\nWarp Route Deployment Plan');
|
|
356
|
-
logGray('==========================');
|
|
357
|
-
log(`📋 Token Standard: ${deployConfig.isNft ? 'ERC721' : 'ERC20'}`);
|
|
358
|
-
const { transformedDeployConfig, transformedIsmConfigs } = transformDeployConfigForDisplay(deployConfig);
|
|
359
|
-
log('📋 Warp Route Config:');
|
|
360
|
-
logTable(transformedDeployConfig);
|
|
361
|
-
objMap(transformedIsmConfigs, (chain, ismConfigs) => {
|
|
362
|
-
log(`📋 ${chain} ISM Config(s):`);
|
|
363
|
-
ismConfigs.forEach((ismConfig) => {
|
|
364
|
-
logTable(ismConfig);
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
function transformDeployConfigForDisplay(deployConfig) {
|
|
369
|
-
const transformedIsmConfigs = {};
|
|
370
|
-
const transformedDeployConfig = objMap(deployConfig, (chain, config) => {
|
|
371
|
-
if (config.interchainSecurityModule)
|
|
372
|
-
transformedIsmConfigs[chain] = transformIsmConfigForDisplay(config.interchainSecurityModule);
|
|
373
|
-
return {
|
|
374
|
-
'NFT?': config.isNft ?? false,
|
|
375
|
-
Type: config.type,
|
|
376
|
-
Owner: config.owner,
|
|
377
|
-
Mailbox: config.mailbox,
|
|
378
|
-
'ISM Config(s)': config.interchainSecurityModule
|
|
379
|
-
? 'See table(s) below.'
|
|
380
|
-
: 'No ISM config(s) specified.',
|
|
381
|
-
};
|
|
382
|
-
});
|
|
383
|
-
return {
|
|
384
|
-
transformedDeployConfig,
|
|
385
|
-
transformedIsmConfigs,
|
|
386
|
-
};
|
|
387
|
-
}
|
|
388
|
-
function transformIsmConfigForDisplay(ismConfig) {
|
|
389
|
-
const ismConfigs = [];
|
|
390
|
-
switch (ismConfig.type) {
|
|
391
|
-
case IsmType.AGGREGATION:
|
|
392
|
-
ismConfigs.push({
|
|
393
|
-
Type: ismConfig.type,
|
|
394
|
-
Threshold: ismConfig.threshold,
|
|
395
|
-
Modules: 'See table(s) below.',
|
|
396
|
-
});
|
|
397
|
-
ismConfig.modules.forEach((module) => {
|
|
398
|
-
ismConfigs.push(...transformIsmConfigForDisplay(module));
|
|
399
|
-
});
|
|
400
|
-
return ismConfigs;
|
|
401
|
-
case IsmType.ROUTING:
|
|
402
|
-
return [
|
|
403
|
-
{
|
|
404
|
-
Type: ismConfig.type,
|
|
405
|
-
Owner: ismConfig.owner,
|
|
406
|
-
'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
|
|
407
|
-
Domains: 'See warp config for domain specification.',
|
|
408
|
-
},
|
|
409
|
-
];
|
|
410
|
-
case IsmType.FALLBACK_ROUTING:
|
|
411
|
-
return [
|
|
412
|
-
{
|
|
413
|
-
Type: ismConfig.type,
|
|
414
|
-
Owner: ismConfig.owner,
|
|
415
|
-
'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
|
|
416
|
-
Domains: 'See warp config for domain specification.',
|
|
417
|
-
},
|
|
418
|
-
];
|
|
419
|
-
case IsmType.MERKLE_ROOT_MULTISIG:
|
|
420
|
-
return [
|
|
421
|
-
{
|
|
422
|
-
Type: ismConfig.type,
|
|
423
|
-
Validators: ismConfig.validators,
|
|
424
|
-
Threshold: ismConfig.threshold,
|
|
425
|
-
},
|
|
426
|
-
];
|
|
427
|
-
case IsmType.MESSAGE_ID_MULTISIG:
|
|
428
|
-
return [
|
|
429
|
-
{
|
|
430
|
-
Type: ismConfig.type,
|
|
431
|
-
Validators: ismConfig.validators,
|
|
432
|
-
Threshold: ismConfig.threshold,
|
|
433
|
-
},
|
|
434
|
-
];
|
|
435
|
-
case IsmType.OP_STACK:
|
|
436
|
-
return [
|
|
437
|
-
{
|
|
438
|
-
Type: ismConfig.type,
|
|
439
|
-
Origin: ismConfig.origin,
|
|
440
|
-
'Native Bridge': ismConfig.nativeBridge,
|
|
441
|
-
},
|
|
442
|
-
];
|
|
443
|
-
case IsmType.PAUSABLE:
|
|
444
|
-
return [
|
|
445
|
-
{
|
|
446
|
-
Type: ismConfig.type,
|
|
447
|
-
Owner: ismConfig.owner,
|
|
448
|
-
'Paused ?': ismConfig.paused,
|
|
449
|
-
'Owner Overrides': ismConfig.ownerOverrides ?? 'Undefined',
|
|
450
|
-
},
|
|
451
|
-
];
|
|
452
|
-
case IsmType.TRUSTED_RELAYER:
|
|
453
|
-
return [
|
|
454
|
-
{
|
|
455
|
-
Type: ismConfig.type,
|
|
456
|
-
Relayer: ismConfig.relayer,
|
|
457
|
-
},
|
|
458
|
-
];
|
|
459
|
-
default:
|
|
460
|
-
return [ismConfig];
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Submits a set of transactions to the specified chain and outputs transaction receipts
|
|
465
|
-
*/
|
|
466
|
-
async function submitWarpApplyTransactions(params, chainTransactions) {
|
|
467
|
-
// Create mapping of chain ID to chain name for all chains in warpDeployConfig
|
|
468
|
-
const chains = Object.keys(params.warpDeployConfig);
|
|
469
|
-
const chainIdToName = Object.fromEntries(chains.map((chain) => [
|
|
470
|
-
params.context.multiProvider.getChainId(chain),
|
|
471
|
-
chain,
|
|
472
|
-
]));
|
|
473
|
-
await promiseObjAll(objMap(chainTransactions, async (chainId, transactions) => {
|
|
474
|
-
try {
|
|
475
|
-
await retryAsync(async () => {
|
|
476
|
-
const chain = chainIdToName[chainId];
|
|
477
|
-
const submitter = await getWarpApplySubmitter({
|
|
478
|
-
chain,
|
|
479
|
-
context: params.context,
|
|
480
|
-
strategyUrl: params.strategyUrl,
|
|
481
|
-
});
|
|
482
|
-
const transactionReceipts = await submitter.submit(...transactions);
|
|
483
|
-
if (transactionReceipts) {
|
|
484
|
-
const receiptPath = `${params.receiptsDir}/${chain}-${submitter.txSubmitterType}-${Date.now()}-receipts.json`;
|
|
485
|
-
writeYamlOrJson(receiptPath, transactionReceipts);
|
|
486
|
-
logGreen(`Transactions receipts successfully written to ${receiptPath}`);
|
|
487
|
-
}
|
|
488
|
-
}, 5, // attempts
|
|
489
|
-
100);
|
|
490
|
-
}
|
|
491
|
-
catch (e) {
|
|
492
|
-
logBlue(`Error in submitWarpApplyTransactions`, e);
|
|
493
|
-
console.dir(transactions);
|
|
494
|
-
}
|
|
495
|
-
}));
|
|
496
|
-
}
|
|
497
|
-
/**
|
|
498
|
-
* Helper function to get warp apply specific submitter.
|
|
499
|
-
*
|
|
500
|
-
* @returns the warp apply submitter
|
|
501
|
-
*/
|
|
502
|
-
async function getWarpApplySubmitter({ chain, context, strategyUrl, }) {
|
|
503
|
-
const { multiProvider } = context;
|
|
504
|
-
const submissionStrategy = strategyUrl
|
|
505
|
-
? readChainSubmissionStrategy(strategyUrl)[chain]
|
|
506
|
-
: {
|
|
507
|
-
submitter: {
|
|
508
|
-
chain,
|
|
509
|
-
type: TxSubmitterType.JSON_RPC,
|
|
510
|
-
},
|
|
511
|
-
};
|
|
512
|
-
return getSubmitterBuilder({
|
|
513
|
-
submissionStrategy,
|
|
514
|
-
multiProvider,
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
//# sourceMappingURL=warp.js.map
|