@recoillink/sdk 0.0.0-stage → 45.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +193 -0
- package/README.md +30 -2
- package/dist/app/HyperlaneApp.d.ts +13 -0
- package/dist/app/HyperlaneApp.d.ts.map +1 -0
- package/dist/app/HyperlaneApp.js +22 -0
- package/dist/app/HyperlaneApp.js.map +1 -0
- package/dist/app/MultiProtocolApp.d.ts +93 -0
- package/dist/app/MultiProtocolApp.d.ts.map +1 -0
- package/dist/app/MultiProtocolApp.js +144 -0
- package/dist/app/MultiProtocolApp.js.map +1 -0
- package/dist/app/MultiProtocolApp.test.d.ts +2 -0
- package/dist/app/MultiProtocolApp.test.d.ts.map +1 -0
- package/dist/app/MultiProtocolApp.test.js +28 -0
- package/dist/app/MultiProtocolApp.test.js.map +1 -0
- package/dist/aws/s3.d.ts +22 -0
- package/dist/aws/s3.d.ts.map +1 -0
- package/dist/aws/s3.js +69 -0
- package/dist/aws/s3.js.map +1 -0
- package/dist/aws/validator.d.ts +22 -0
- package/dist/aws/validator.d.ts.map +1 -0
- package/dist/aws/validator.js +99 -0
- package/dist/aws/validator.js.map +1 -0
- package/dist/block-explorer/etherscan.d.ts +142 -0
- package/dist/block-explorer/etherscan.d.ts.map +1 -0
- package/dist/block-explorer/etherscan.js +307 -0
- package/dist/block-explorer/etherscan.js.map +1 -0
- package/dist/block-explorer/etherscan.test.d.ts +2 -0
- package/dist/block-explorer/etherscan.test.d.ts.map +1 -0
- package/dist/block-explorer/etherscan.test.js +359 -0
- package/dist/block-explorer/etherscan.test.js.map +1 -0
- package/dist/block-explorer/testFixtures.d.ts +8 -0
- package/dist/block-explorer/testFixtures.d.ts.map +1 -0
- package/dist/block-explorer/testFixtures.js +18 -0
- package/dist/block-explorer/testFixtures.js.map +1 -0
- package/dist/block-explorer/utils.d.ts +11 -0
- package/dist/block-explorer/utils.d.ts.map +1 -0
- package/dist/block-explorer/utils.js +32 -0
- package/dist/block-explorer/utils.js.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts +18 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js +122 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js.map +1 -0
- package/dist/ccip/consts.d.ts +24 -0
- package/dist/ccip/consts.d.ts.map +1 -0
- package/dist/ccip/consts.js +491 -0
- package/dist/ccip/consts.js.map +1 -0
- package/dist/ccip/utils.d.ts +46 -0
- package/dist/ccip/utils.d.ts.map +1 -0
- package/dist/ccip/utils.js +95 -0
- package/dist/ccip/utils.js.map +1 -0
- package/dist/consts/bytecode.d.ts +14 -0
- package/dist/consts/bytecode.d.ts.map +1 -0
- package/dist/consts/bytecode.js +15 -0
- package/dist/consts/bytecode.js.map +1 -0
- package/dist/consts/concurrency.d.ts +2 -0
- package/dist/consts/concurrency.d.ts.map +1 -0
- package/dist/consts/concurrency.js +2 -0
- package/dist/consts/concurrency.js.map +1 -0
- package/dist/consts/igp.d.ts +12 -0
- package/dist/consts/igp.d.ts.map +1 -0
- package/dist/consts/igp.js +40 -0
- package/dist/consts/igp.js.map +1 -0
- package/dist/consts/mailbox.d.ts +2 -0
- package/dist/consts/mailbox.d.ts.map +1 -0
- package/dist/consts/mailbox.js +3 -0
- package/dist/consts/mailbox.js.map +1 -0
- package/dist/consts/multisigIsm.d.ts +5 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -0
- package/dist/consts/multisigIsm.js +847 -0
- package/dist/consts/multisigIsm.js.map +1 -0
- package/dist/consts/multisigIsm.test.d.ts +2 -0
- package/dist/consts/multisigIsm.test.d.ts.map +1 -0
- package/dist/consts/multisigIsm.test.js +40 -0
- package/dist/consts/multisigIsm.test.js.map +1 -0
- package/dist/consts/multisigIsmVerifyCosts.d.ts +210 -0
- package/dist/consts/multisigIsmVerifyCosts.d.ts.map +1 -0
- package/dist/consts/multisigIsmVerifyCosts.js +210 -0
- package/dist/consts/multisigIsmVerifyCosts.js.map +1 -0
- package/dist/consts/numbers.d.ts +2 -0
- package/dist/consts/numbers.d.ts.map +1 -0
- package/dist/consts/numbers.js +3 -0
- package/dist/consts/numbers.js.map +1 -0
- package/dist/consts/recoilLinkFees.d.ts +6 -0
- package/dist/consts/recoilLinkFees.d.ts.map +1 -0
- package/dist/consts/recoilLinkFees.js +17 -0
- package/dist/consts/recoilLinkFees.js.map +1 -0
- package/dist/consts/registry.d.ts +2 -0
- package/dist/consts/registry.d.ts.map +1 -0
- package/dist/consts/registry.js +5 -0
- package/dist/consts/registry.js.map +1 -0
- package/dist/consts/sealevel.d.ts +7 -0
- package/dist/consts/sealevel.d.ts.map +1 -0
- package/dist/consts/sealevel.js +8 -0
- package/dist/consts/sealevel.js.map +1 -0
- package/dist/consts/testChains.d.ts +30 -0
- package/dist/consts/testChains.d.ts.map +1 -0
- package/dist/consts/testChains.js +244 -0
- package/dist/consts/testChains.js.map +1 -0
- package/dist/contracts/contracts.d.ts +40 -0
- package/dist/contracts/contracts.d.ts.map +1 -0
- package/dist/contracts/contracts.hardhat-test.d.ts +2 -0
- package/dist/contracts/contracts.hardhat-test.d.ts.map +1 -0
- package/dist/contracts/contracts.hardhat-test.js +34 -0
- package/dist/contracts/contracts.hardhat-test.js.map +1 -0
- package/dist/contracts/contracts.js +201 -0
- package/dist/contracts/contracts.js.map +1 -0
- package/dist/contracts/contracts.test.d.ts +2 -0
- package/dist/contracts/contracts.test.d.ts.map +1 -0
- package/dist/contracts/contracts.test.js +88 -0
- package/dist/contracts/contracts.test.js.map +1 -0
- package/dist/contracts/types.d.ts +18 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +2 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/core/AbstractHyperlaneModule.d.ts +18 -0
- package/dist/core/AbstractHyperlaneModule.d.ts.map +1 -0
- package/dist/core/AbstractHyperlaneModule.js +10 -0
- package/dist/core/AbstractHyperlaneModule.js.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.d.ts +2 -0
- package/dist/core/CoreDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.js +234 -0
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -0
- package/dist/core/EvmCoreModule.d.ts +119 -0
- package/dist/core/EvmCoreModule.d.ts.map +1 -0
- package/dist/core/EvmCoreModule.hardhat-test.d.ts +2 -0
- package/dist/core/EvmCoreModule.hardhat-test.d.ts.map +1 -0
- package/dist/core/EvmCoreModule.hardhat-test.js +364 -0
- package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -0
- package/dist/core/EvmCoreModule.js +339 -0
- package/dist/core/EvmCoreModule.js.map +1 -0
- package/dist/core/EvmCoreReader.d.ts +38 -0
- package/dist/core/EvmCoreReader.d.ts.map +1 -0
- package/dist/core/EvmCoreReader.js +92 -0
- package/dist/core/EvmCoreReader.js.map +1 -0
- package/dist/core/EvmIcaModule.d.ts +43 -0
- package/dist/core/EvmIcaModule.d.ts.map +1 -0
- package/dist/core/EvmIcaModule.hardhat-test.d.ts +2 -0
- package/dist/core/EvmIcaModule.hardhat-test.d.ts.map +1 -0
- package/dist/core/EvmIcaModule.hardhat-test.js +211 -0
- package/dist/core/EvmIcaModule.hardhat-test.js.map +1 -0
- package/dist/core/EvmIcaModule.js +143 -0
- package/dist/core/EvmIcaModule.js.map +1 -0
- package/dist/core/HyperlaneCore.d.ts +78 -0
- package/dist/core/HyperlaneCore.d.ts.map +1 -0
- package/dist/core/HyperlaneCore.js +296 -0
- package/dist/core/HyperlaneCore.js.map +1 -0
- package/dist/core/HyperlaneCore.test.d.ts +2 -0
- package/dist/core/HyperlaneCore.test.d.ts.map +1 -0
- package/dist/core/HyperlaneCore.test.js +12 -0
- package/dist/core/HyperlaneCore.test.js.map +1 -0
- package/dist/core/HyperlaneCoreChecker.d.ts +18 -0
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -0
- package/dist/core/HyperlaneCoreChecker.js +171 -0
- package/dist/core/HyperlaneCoreChecker.js.map +1 -0
- package/dist/core/HyperlaneCoreDeployer.d.ts +36 -0
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -0
- package/dist/core/HyperlaneCoreDeployer.js +162 -0
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -0
- package/dist/core/MultiProtocolCore.d.ts +21 -0
- package/dist/core/MultiProtocolCore.d.ts.map +1 -0
- package/dist/core/MultiProtocolCore.js +49 -0
- package/dist/core/MultiProtocolCore.js.map +1 -0
- package/dist/core/MultiProtocolCore.test.d.ts +2 -0
- package/dist/core/MultiProtocolCore.test.d.ts.map +1 -0
- package/dist/core/MultiProtocolCore.test.js +27 -0
- package/dist/core/MultiProtocolCore.test.js.map +1 -0
- package/dist/core/TestCoreApp.d.ts +17 -0
- package/dist/core/TestCoreApp.d.ts.map +1 -0
- package/dist/core/TestCoreApp.js +49 -0
- package/dist/core/TestCoreApp.js.map +1 -0
- package/dist/core/TestCoreDeployer.d.ts +10 -0
- package/dist/core/TestCoreDeployer.d.ts.map +1 -0
- package/dist/core/TestCoreDeployer.js +13 -0
- package/dist/core/TestCoreDeployer.js.map +1 -0
- package/dist/core/TestRecipientDeployer.d.ts +22 -0
- package/dist/core/TestRecipientDeployer.d.ts.map +1 -0
- package/dist/core/TestRecipientDeployer.js +30 -0
- package/dist/core/TestRecipientDeployer.js.map +1 -0
- package/dist/core/adapters/AleoCoreAdapter.d.ts +23 -0
- package/dist/core/adapters/AleoCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/AleoCoreAdapter.js +72 -0
- package/dist/core/adapters/AleoCoreAdapter.js.map +1 -0
- package/dist/core/adapters/CosmNativeCoreAdapter.d.ts +23 -0
- package/dist/core/adapters/CosmNativeCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/CosmNativeCoreAdapter.js +65 -0
- package/dist/core/adapters/CosmNativeCoreAdapter.js.map +1 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +40 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.js +145 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.test.d.ts +2 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.test.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js +31 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.test.js.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts +27 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.js +92 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.js.map +1 -0
- package/dist/core/adapters/EvmCoreAdapter.d.ts +25 -0
- package/dist/core/adapters/EvmCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/EvmCoreAdapter.js +44 -0
- package/dist/core/adapters/EvmCoreAdapter.js.map +1 -0
- package/dist/core/adapters/RadixCoreAdapter.d.ts +23 -0
- package/dist/core/adapters/RadixCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/RadixCoreAdapter.js +58 -0
- package/dist/core/adapters/RadixCoreAdapter.js.map +1 -0
- package/dist/core/adapters/SealevelCoreAdapter.d.ts +56 -0
- package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/SealevelCoreAdapter.js +191 -0
- package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -0
- package/dist/core/adapters/SealevelCoreAdapter.test.d.ts +2 -0
- package/dist/core/adapters/SealevelCoreAdapter.test.d.ts.map +1 -0
- package/dist/core/adapters/SealevelCoreAdapter.test.js +33 -0
- package/dist/core/adapters/SealevelCoreAdapter.test.js.map +1 -0
- package/dist/core/adapters/StarknetCoreAdapter.d.ts +23 -0
- package/dist/core/adapters/StarknetCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/StarknetCoreAdapter.js +70 -0
- package/dist/core/adapters/StarknetCoreAdapter.js.map +1 -0
- package/dist/core/adapters/types.d.ts +19 -0
- package/dist/core/adapters/types.d.ts.map +1 -0
- package/dist/core/adapters/types.js +2 -0
- package/dist/core/adapters/types.js.map +1 -0
- package/dist/core/contracts.d.ts +15 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +13 -0
- package/dist/core/contracts.js.map +1 -0
- package/dist/core/events.d.ts +4 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts +3 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts.map +1 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +56 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -0
- package/dist/core/types.d.ts +173 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +118 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/types.test.d.ts +2 -0
- package/dist/core/types.test.d.ts.map +1 -0
- package/dist/core/types.test.js +205 -0
- package/dist/core/types.test.js.map +1 -0
- package/dist/cw-types/Cw20Base.types.d.ts +198 -0
- package/dist/cw-types/Cw20Base.types.d.ts.map +1 -0
- package/dist/cw-types/Cw20Base.types.js +7 -0
- package/dist/cw-types/Cw20Base.types.js.map +1 -0
- package/dist/cw-types/HookAggregate.types.d.ts +79 -0
- package/dist/cw-types/HookAggregate.types.d.ts.map +1 -0
- package/dist/cw-types/HookAggregate.types.js +7 -0
- package/dist/cw-types/HookAggregate.types.js.map +1 -0
- package/dist/cw-types/HookMerkle.types.d.ts +163 -0
- package/dist/cw-types/HookMerkle.types.d.ts.map +1 -0
- package/dist/cw-types/HookMerkle.types.js +7 -0
- package/dist/cw-types/HookMerkle.types.js.map +1 -0
- package/dist/cw-types/HookPausable.types.d.ts +82 -0
- package/dist/cw-types/HookPausable.types.d.ts.map +1 -0
- package/dist/cw-types/HookPausable.types.js +7 -0
- package/dist/cw-types/HookPausable.types.js.map +1 -0
- package/dist/cw-types/HookRouting.types.d.ts +109 -0
- package/dist/cw-types/HookRouting.types.d.ts.map +1 -0
- package/dist/cw-types/HookRouting.types.js +7 -0
- package/dist/cw-types/HookRouting.types.js.map +1 -0
- package/dist/cw-types/HookRoutingCustom.types.d.ts +149 -0
- package/dist/cw-types/HookRoutingCustom.types.d.ts.map +1 -0
- package/dist/cw-types/HookRoutingCustom.types.js +7 -0
- package/dist/cw-types/HookRoutingCustom.types.js.map +1 -0
- package/dist/cw-types/HookRoutingFallback.types.d.ts +113 -0
- package/dist/cw-types/HookRoutingFallback.types.d.ts.map +1 -0
- package/dist/cw-types/HookRoutingFallback.types.js +7 -0
- package/dist/cw-types/HookRoutingFallback.types.js.map +1 -0
- package/dist/cw-types/Igp.types.d.ts +184 -0
- package/dist/cw-types/Igp.types.d.ts.map +1 -0
- package/dist/cw-types/Igp.types.js +7 -0
- package/dist/cw-types/Igp.types.js.map +1 -0
- package/dist/cw-types/IgpOracle.types.d.ts +61 -0
- package/dist/cw-types/IgpOracle.types.d.ts.map +1 -0
- package/dist/cw-types/IgpOracle.types.js +7 -0
- package/dist/cw-types/IgpOracle.types.js.map +1 -0
- package/dist/cw-types/IsmAggregate.types.d.ts +76 -0
- package/dist/cw-types/IsmAggregate.types.d.ts.map +1 -0
- package/dist/cw-types/IsmAggregate.types.js +7 -0
- package/dist/cw-types/IsmAggregate.types.js.map +1 -0
- package/dist/cw-types/IsmMultisig.types.d.ts +102 -0
- package/dist/cw-types/IsmMultisig.types.d.ts.map +1 -0
- package/dist/cw-types/IsmMultisig.types.js +7 -0
- package/dist/cw-types/IsmMultisig.types.js.map +1 -0
- package/dist/cw-types/IsmRouting.types.d.ts +81 -0
- package/dist/cw-types/IsmRouting.types.d.ts.map +1 -0
- package/dist/cw-types/IsmRouting.types.js +7 -0
- package/dist/cw-types/IsmRouting.types.js.map +1 -0
- package/dist/cw-types/Mailbox.types.d.ts +131 -0
- package/dist/cw-types/Mailbox.types.d.ts.map +1 -0
- package/dist/cw-types/Mailbox.types.js +7 -0
- package/dist/cw-types/Mailbox.types.js.map +1 -0
- package/dist/cw-types/ValidatorAnnounce.types.d.ts +31 -0
- package/dist/cw-types/ValidatorAnnounce.types.d.ts.map +1 -0
- package/dist/cw-types/ValidatorAnnounce.types.js +7 -0
- package/dist/cw-types/ValidatorAnnounce.types.js.map +1 -0
- package/dist/cw-types/WarpCw20.types.d.ts +217 -0
- package/dist/cw-types/WarpCw20.types.d.ts.map +1 -0
- package/dist/cw-types/WarpCw20.types.js +7 -0
- package/dist/cw-types/WarpCw20.types.js.map +1 -0
- package/dist/cw-types/WarpNative.types.d.ts +197 -0
- package/dist/cw-types/WarpNative.types.d.ts.map +1 -0
- package/dist/cw-types/WarpNative.types.js +7 -0
- package/dist/cw-types/WarpNative.types.js.map +1 -0
- package/dist/deploy/HyperlaneAppChecker.d.ts +32 -0
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -0
- package/dist/deploy/HyperlaneAppChecker.js +220 -0
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -0
- package/dist/deploy/HyperlaneDeployer.d.ts +83 -0
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -0
- package/dist/deploy/HyperlaneDeployer.js +434 -0
- package/dist/deploy/HyperlaneDeployer.js.map +1 -0
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +11 -0
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -0
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +48 -0
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -0
- package/dist/deploy/contracts.d.ts +16 -0
- package/dist/deploy/contracts.d.ts.map +1 -0
- package/dist/deploy/contracts.js +25 -0
- package/dist/deploy/contracts.js.map +1 -0
- package/dist/deploy/proxy.d.ts +52 -0
- package/dist/deploy/proxy.d.ts.map +1 -0
- package/dist/deploy/proxy.js +153 -0
- package/dist/deploy/proxy.js.map +1 -0
- package/dist/deploy/proxy.test.d.ts +2 -0
- package/dist/deploy/proxy.test.d.ts.map +1 -0
- package/dist/deploy/proxy.test.js +168 -0
- package/dist/deploy/proxy.test.js.map +1 -0
- package/dist/deploy/proxyFactoryUtils.d.ts +7 -0
- package/dist/deploy/proxyFactoryUtils.d.ts.map +1 -0
- package/dist/deploy/proxyFactoryUtils.js +12 -0
- package/dist/deploy/proxyFactoryUtils.js.map +1 -0
- package/dist/deploy/types.d.ts +69 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/types.js +22 -0
- package/dist/deploy/types.js.map +1 -0
- package/dist/deploy/utils.d.ts +15 -0
- package/dist/deploy/utils.d.ts.map +1 -0
- package/dist/deploy/utils.js +28 -0
- package/dist/deploy/utils.js.map +1 -0
- package/dist/deploy/verify/BaseContractVerifier.d.ts +23 -0
- package/dist/deploy/verify/BaseContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/BaseContractVerifier.js +128 -0
- package/dist/deploy/verify/BaseContractVerifier.js.map +1 -0
- package/dist/deploy/verify/ContractVerifier.d.ts +30 -0
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/ContractVerifier.js +125 -0
- package/dist/deploy/verify/ContractVerifier.js.map +1 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +15 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js +45 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -0
- package/dist/deploy/verify/ZKSyncContractVerifier.d.ts +50 -0
- package/dist/deploy/verify/ZKSyncContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/ZKSyncContractVerifier.js +99 -0
- package/dist/deploy/verify/ZKSyncContractVerifier.js.map +1 -0
- package/dist/deploy/verify/types.d.ts +47 -0
- package/dist/deploy/verify/types.d.ts.map +1 -0
- package/dist/deploy/verify/types.js +7 -0
- package/dist/deploy/verify/types.js.map +1 -0
- package/dist/deploy/verify/utils.d.ts +81 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -0
- package/dist/deploy/verify/utils.js +208 -0
- package/dist/deploy/verify/utils.js.map +1 -0
- package/dist/deploy/verify/utils.test.d.ts +2 -0
- package/dist/deploy/verify/utils.test.d.ts.map +1 -0
- package/dist/deploy/verify/utils.test.js +49 -0
- package/dist/deploy/verify/utils.test.js.map +1 -0
- package/dist/deploy/warp.d.ts +150 -0
- package/dist/deploy/warp.d.ts.map +1 -0
- package/dist/deploy/warp.js +1280 -0
- package/dist/deploy/warp.js.map +1 -0
- package/dist/deploy/warp.test.d.ts +2 -0
- package/dist/deploy/warp.test.d.ts.map +1 -0
- package/dist/deploy/warp.test.js +419 -0
- package/dist/deploy/warp.test.js.map +1 -0
- package/dist/deploy/warpHybridPlan.d.ts +104 -0
- package/dist/deploy/warpHybridPlan.d.ts.map +1 -0
- package/dist/deploy/warpHybridPlan.js +178 -0
- package/dist/deploy/warpHybridPlan.js.map +1 -0
- package/dist/deploy/warpHybridPlan.test.d.ts +2 -0
- package/dist/deploy/warpHybridPlan.test.d.ts.map +1 -0
- package/dist/deploy/warpHybridPlan.test.js +141 -0
- package/dist/deploy/warpHybridPlan.test.js.map +1 -0
- package/dist/fee/EvmTokenFeeDeployer.d.ts +20 -0
- package/dist/fee/EvmTokenFeeDeployer.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.d.ts +2 -0
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js +353 -0
- package/dist/fee/EvmTokenFeeDeployer.hardhat-test.js.map +1 -0
- package/dist/fee/EvmTokenFeeDeployer.js +143 -0
- package/dist/fee/EvmTokenFeeDeployer.js.map +1 -0
- package/dist/fee/EvmTokenFeeModule.d.ts +63 -0
- package/dist/fee/EvmTokenFeeModule.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeModule.hardhat-test.d.ts +2 -0
- package/dist/fee/EvmTokenFeeModule.hardhat-test.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeModule.hardhat-test.js +942 -0
- package/dist/fee/EvmTokenFeeModule.hardhat-test.js.map +1 -0
- package/dist/fee/EvmTokenFeeModule.js +583 -0
- package/dist/fee/EvmTokenFeeModule.js.map +1 -0
- package/dist/fee/EvmTokenFeeReader.d.ts +38 -0
- package/dist/fee/EvmTokenFeeReader.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeReader.hardhat-test.d.ts +4 -0
- package/dist/fee/EvmTokenFeeReader.hardhat-test.d.ts.map +1 -0
- package/dist/fee/EvmTokenFeeReader.hardhat-test.js +371 -0
- package/dist/fee/EvmTokenFeeReader.hardhat-test.js.map +1 -0
- package/dist/fee/EvmTokenFeeReader.js +200 -0
- package/dist/fee/EvmTokenFeeReader.js.map +1 -0
- package/dist/fee/contracts.d.ts +11 -0
- package/dist/fee/contracts.d.ts.map +1 -0
- package/dist/fee/contracts.js +11 -0
- package/dist/fee/contracts.js.map +1 -0
- package/dist/fee/crossCollateralUtils.d.ts +8 -0
- package/dist/fee/crossCollateralUtils.d.ts.map +1 -0
- package/dist/fee/crossCollateralUtils.js +49 -0
- package/dist/fee/crossCollateralUtils.js.map +1 -0
- package/dist/fee/feeConfigMapping.d.ts +9 -0
- package/dist/fee/feeConfigMapping.d.ts.map +1 -0
- package/dist/fee/feeConfigMapping.js +87 -0
- package/dist/fee/feeConfigMapping.js.map +1 -0
- package/dist/fee/feeConfigMapping.test.d.ts +2 -0
- package/dist/fee/feeConfigMapping.test.d.ts.map +1 -0
- package/dist/fee/feeConfigMapping.test.js +204 -0
- package/dist/fee/feeConfigMapping.test.js.map +1 -0
- package/dist/fee/types.d.ts +295 -0
- package/dist/fee/types.d.ts.map +1 -0
- package/dist/fee/types.js +238 -0
- package/dist/fee/types.js.map +1 -0
- package/dist/fee/types.test.d.ts +2 -0
- package/dist/fee/types.test.d.ts.map +1 -0
- package/dist/fee/types.test.js +204 -0
- package/dist/fee/types.test.js.map +1 -0
- package/dist/fee/utils.d.ts +9 -0
- package/dist/fee/utils.d.ts.map +1 -0
- package/dist/fee/utils.js +9 -0
- package/dist/fee/utils.js.map +1 -0
- package/dist/fee/utils.test.d.ts +2 -0
- package/dist/fee/utils.test.d.ts.map +1 -0
- package/dist/fee/utils.test.js +54 -0
- package/dist/fee/utils.test.js.map +1 -0
- package/dist/fork/types.d.ts +354 -0
- package/dist/fork/types.d.ts.map +1 -0
- package/dist/fork/types.js +142 -0
- package/dist/fork/types.js.map +1 -0
- package/dist/gas/HyperlaneIgp.d.ts +53 -0
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgp.js +64 -0
- package/dist/gas/HyperlaneIgp.js.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts +13 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.js +162 -0
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts +32 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.js +248 -0
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -0
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts +93 -0
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -0
- package/dist/gas/adapters/SealevelIgpAdapter.js +294 -0
- package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -0
- package/dist/gas/adapters/SealevelIgpAdapter.test.d.ts +2 -0
- package/dist/gas/adapters/SealevelIgpAdapter.test.d.ts.map +1 -0
- package/dist/gas/adapters/SealevelIgpAdapter.test.js +189 -0
- package/dist/gas/adapters/SealevelIgpAdapter.test.js.map +1 -0
- package/dist/gas/adapters/serialization.d.ts +180 -0
- package/dist/gas/adapters/serialization.d.ts.map +1 -0
- package/dist/gas/adapters/serialization.js +409 -0
- package/dist/gas/adapters/serialization.js.map +1 -0
- package/dist/gas/adapters/serialization.test.d.ts +2 -0
- package/dist/gas/adapters/serialization.test.d.ts.map +1 -0
- package/dist/gas/adapters/serialization.test.js +87 -0
- package/dist/gas/adapters/serialization.test.js.map +1 -0
- package/dist/gas/contracts.d.ts +8 -0
- package/dist/gas/contracts.d.ts.map +1 -0
- package/dist/gas/contracts.js +7 -0
- package/dist/gas/contracts.js.map +1 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.d.ts +2 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.d.ts.map +1 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +82 -0
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -0
- package/dist/gas/oracle/types.d.ts +42 -0
- package/dist/gas/oracle/types.d.ts.map +1 -0
- package/dist/gas/oracle/types.js +45 -0
- package/dist/gas/oracle/types.js.map +1 -0
- package/dist/gas/token-prices.d.ts +58 -0
- package/dist/gas/token-prices.d.ts.map +1 -0
- package/dist/gas/token-prices.js +199 -0
- package/dist/gas/token-prices.js.map +1 -0
- package/dist/gas/token-prices.test.d.ts +2 -0
- package/dist/gas/token-prices.test.d.ts.map +1 -0
- package/dist/gas/token-prices.test.js +96 -0
- package/dist/gas/token-prices.test.js.map +1 -0
- package/dist/gas/types.d.ts +50 -0
- package/dist/gas/types.d.ts.map +1 -0
- package/dist/gas/types.js +26 -0
- package/dist/gas/types.js.map +1 -0
- package/dist/gas/utils.d.ts +34 -0
- package/dist/gas/utils.d.ts.map +1 -0
- package/dist/gas/utils.js +246 -0
- package/dist/gas/utils.js.map +1 -0
- package/dist/gas/utils.test.d.ts +2 -0
- package/dist/gas/utils.test.d.ts.map +1 -0
- package/dist/gas/utils.test.js +132 -0
- package/dist/gas/utils.test.js.map +1 -0
- package/dist/gcp/storage.d.ts +28 -0
- package/dist/gcp/storage.d.ts.map +1 -0
- package/dist/gcp/storage.js +88 -0
- package/dist/gcp/storage.js.map +1 -0
- package/dist/gcp/validator.d.ts +22 -0
- package/dist/gcp/validator.d.ts.map +1 -0
- package/dist/gcp/validator.js +107 -0
- package/dist/gcp/validator.js.map +1 -0
- package/dist/hook/EvmHookModule.d.ts +161 -0
- package/dist/hook/EvmHookModule.d.ts.map +1 -0
- package/dist/hook/EvmHookModule.hardhat-test.d.ts +2 -0
- package/dist/hook/EvmHookModule.hardhat-test.d.ts.map +1 -0
- package/dist/hook/EvmHookModule.hardhat-test.js +1004 -0
- package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -0
- package/dist/hook/EvmHookModule.js +932 -0
- package/dist/hook/EvmHookModule.js.map +1 -0
- package/dist/hook/EvmHookReader.d.ts +81 -0
- package/dist/hook/EvmHookReader.d.ts.map +1 -0
- package/dist/hook/EvmHookReader.js +630 -0
- package/dist/hook/EvmHookReader.js.map +1 -0
- package/dist/hook/EvmHookReader.test.d.ts +2 -0
- package/dist/hook/EvmHookReader.test.d.ts.map +1 -0
- package/dist/hook/EvmHookReader.test.js +647 -0
- package/dist/hook/EvmHookReader.test.js.map +1 -0
- package/dist/hook/HyperlaneHookDeployer.d.ts +70 -0
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -0
- package/dist/hook/HyperlaneHookDeployer.hardhat-test.d.ts +2 -0
- package/dist/hook/HyperlaneHookDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/hook/HyperlaneHookDeployer.hardhat-test.js +322 -0
- package/dist/hook/HyperlaneHookDeployer.hardhat-test.js.map +1 -0
- package/dist/hook/HyperlaneHookDeployer.js +538 -0
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -0
- package/dist/hook/contracts.d.ts +20 -0
- package/dist/hook/contracts.d.ts.map +1 -0
- package/dist/hook/contracts.js +18 -0
- package/dist/hook/contracts.js.map +1 -0
- package/dist/hook/types.d.ts +262 -0
- package/dist/hook/types.d.ts.map +1 -0
- package/dist/hook/types.js +341 -0
- package/dist/hook/types.js.map +1 -0
- package/dist/hook/types.test.d.ts +2 -0
- package/dist/hook/types.test.d.ts.map +1 -0
- package/dist/hook/types.test.js +227 -0
- package/dist/hook/types.test.js.map +1 -0
- package/dist/hook/updates.d.ts +33 -0
- package/dist/hook/updates.d.ts.map +1 -0
- package/dist/hook/updates.js +35 -0
- package/dist/hook/updates.js.map +1 -0
- package/dist/hook/utils.d.ts +58 -0
- package/dist/hook/utils.d.ts.map +1 -0
- package/dist/hook/utils.hardhat-test.d.ts +2 -0
- package/dist/hook/utils.hardhat-test.d.ts.map +1 -0
- package/dist/hook/utils.hardhat-test.js +119 -0
- package/dist/hook/utils.hardhat-test.js.map +1 -0
- package/dist/hook/utils.js +157 -0
- package/dist/hook/utils.js.map +1 -0
- package/dist/ica/EvmIcaReader.d.ts +7 -0
- package/dist/ica/EvmIcaReader.d.ts.map +1 -0
- package/dist/ica/EvmIcaReader.hardhat-test.d.ts +2 -0
- package/dist/ica/EvmIcaReader.hardhat-test.d.ts.map +1 -0
- package/dist/ica/EvmIcaReader.hardhat-test.js +39 -0
- package/dist/ica/EvmIcaReader.hardhat-test.js.map +1 -0
- package/dist/ica/EvmIcaReader.js +32 -0
- package/dist/ica/EvmIcaReader.js.map +1 -0
- package/dist/ica/types.d.ts +88 -0
- package/dist/ica/types.d.ts.map +1 -0
- package/dist/ica/types.js +36 -0
- package/dist/ica/types.js.map +1 -0
- package/dist/index.d.ts +215 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +199 -0
- package/dist/index.js.map +1 -0
- package/dist/ism/EvmIsmModule.d.ts +106 -0
- package/dist/ism/EvmIsmModule.d.ts.map +1 -0
- package/dist/ism/EvmIsmModule.hardhat-test.d.ts +2 -0
- package/dist/ism/EvmIsmModule.hardhat-test.d.ts.map +1 -0
- package/dist/ism/EvmIsmModule.hardhat-test.js +1279 -0
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -0
- package/dist/ism/EvmIsmModule.js +709 -0
- package/dist/ism/EvmIsmModule.js.map +1 -0
- package/dist/ism/EvmIsmModule.test.d.ts +2 -0
- package/dist/ism/EvmIsmModule.test.d.ts.map +1 -0
- package/dist/ism/EvmIsmModule.test.js +309 -0
- package/dist/ism/EvmIsmModule.test.js.map +1 -0
- package/dist/ism/EvmIsmReader.d.ts +55 -0
- package/dist/ism/EvmIsmReader.d.ts.map +1 -0
- package/dist/ism/EvmIsmReader.js +555 -0
- package/dist/ism/EvmIsmReader.js.map +1 -0
- package/dist/ism/EvmIsmReader.test.d.ts +2 -0
- package/dist/ism/EvmIsmReader.test.d.ts.map +1 -0
- package/dist/ism/EvmIsmReader.test.js +931 -0
- package/dist/ism/EvmIsmReader.test.js.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.d.ts +129 -0
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.d.ts +2 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.d.ts.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +1228 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.js +867 -0
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.test.d.ts +2 -0
- package/dist/ism/HyperlaneIsmFactory.test.d.ts.map +1 -0
- package/dist/ism/HyperlaneIsmFactory.test.js +98 -0
- package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +24 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js +74 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -0
- package/dist/ism/adapters/SealevelMultisigAdapter.d.ts +59 -0
- package/dist/ism/adapters/SealevelMultisigAdapter.d.ts.map +1 -0
- package/dist/ism/adapters/SealevelMultisigAdapter.js +133 -0
- package/dist/ism/adapters/SealevelMultisigAdapter.js.map +1 -0
- package/dist/ism/blacklist.d.ts +62 -0
- package/dist/ism/blacklist.d.ts.map +1 -0
- package/dist/ism/blacklist.js +98 -0
- package/dist/ism/blacklist.js.map +1 -0
- package/dist/ism/delayedFlow.d.ts +31 -0
- package/dist/ism/delayedFlow.d.ts.map +1 -0
- package/dist/ism/delayedFlow.js +33 -0
- package/dist/ism/delayedFlow.js.map +1 -0
- package/dist/ism/multisig.d.ts +6 -0
- package/dist/ism/multisig.d.ts.map +1 -0
- package/dist/ism/multisig.js +25 -0
- package/dist/ism/multisig.js.map +1 -0
- package/dist/ism/serialization.d.ts +74 -0
- package/dist/ism/serialization.d.ts.map +1 -0
- package/dist/ism/serialization.js +177 -0
- package/dist/ism/serialization.js.map +1 -0
- package/dist/ism/types.d.ts +384 -0
- package/dist/ism/types.d.ts.map +1 -0
- package/dist/ism/types.js +876 -0
- package/dist/ism/types.js.map +1 -0
- package/dist/ism/types.test.d.ts +2 -0
- package/dist/ism/types.test.d.ts.map +1 -0
- package/dist/ism/types.test.js +1269 -0
- package/dist/ism/types.test.js.map +1 -0
- package/dist/ism/utils.d.ts +44 -0
- package/dist/ism/utils.d.ts.map +1 -0
- package/dist/ism/utils.js +603 -0
- package/dist/ism/utils.js.map +1 -0
- package/dist/ism/utils.test.d.ts +2 -0
- package/dist/ism/utils.test.d.ts.map +1 -0
- package/dist/ism/utils.test.js +144 -0
- package/dist/ism/utils.test.js.map +1 -0
- package/dist/mailbox/serialization.d.ts +41 -0
- package/dist/mailbox/serialization.d.ts.map +1 -0
- package/dist/mailbox/serialization.js +104 -0
- package/dist/mailbox/serialization.js.map +1 -0
- package/dist/metadata/ChainMetadataManager.d.ts +233 -0
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataManager.js +424 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -0
- package/dist/metadata/ChainMetadataManager.test.d.ts +2 -0
- package/dist/metadata/ChainMetadataManager.test.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataManager.test.js +233 -0
- package/dist/metadata/ChainMetadataManager.test.js.map +1 -0
- package/dist/metadata/ChainMetadataResolver.d.ts +14 -0
- package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataResolver.js +57 -0
- package/dist/metadata/ChainMetadataResolver.js.map +1 -0
- package/dist/metadata/ChainMetadataResolver.test.d.ts +2 -0
- package/dist/metadata/ChainMetadataResolver.test.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataResolver.test.js +87 -0
- package/dist/metadata/ChainMetadataResolver.test.js.map +1 -0
- package/dist/metadata/agentConfig.d.ts +1529 -0
- package/dist/metadata/agentConfig.d.ts.map +1 -0
- package/dist/metadata/agentConfig.js +750 -0
- package/dist/metadata/agentConfig.js.map +1 -0
- package/dist/metadata/agentConfig.test.d.ts +2 -0
- package/dist/metadata/agentConfig.test.d.ts.map +1 -0
- package/dist/metadata/agentConfig.test.js +457 -0
- package/dist/metadata/agentConfig.test.js.map +1 -0
- package/dist/metadata/blockExplorer.d.ts +11 -0
- package/dist/metadata/blockExplorer.d.ts.map +1 -0
- package/dist/metadata/blockExplorer.js +123 -0
- package/dist/metadata/blockExplorer.js.map +1 -0
- package/dist/metadata/blockExplorer.test.d.ts +2 -0
- package/dist/metadata/blockExplorer.test.d.ts.map +1 -0
- package/dist/metadata/blockExplorer.test.js +326 -0
- package/dist/metadata/blockExplorer.test.js.map +1 -0
- package/dist/metadata/chainIdUtils.d.ts +8 -0
- package/dist/metadata/chainIdUtils.d.ts.map +1 -0
- package/dist/metadata/chainIdUtils.js +33 -0
- package/dist/metadata/chainIdUtils.js.map +1 -0
- package/dist/metadata/chainIdUtils.test.d.ts +2 -0
- package/dist/metadata/chainIdUtils.test.d.ts.map +1 -0
- package/dist/metadata/chainIdUtils.test.js +45 -0
- package/dist/metadata/chainIdUtils.test.js.map +1 -0
- package/dist/metadata/chainMetadata.test.d.ts +2 -0
- package/dist/metadata/chainMetadata.test.d.ts.map +1 -0
- package/dist/metadata/chainMetadata.test.js +130 -0
- package/dist/metadata/chainMetadata.test.js.map +1 -0
- package/dist/metadata/chainMetadataConversion.d.ts +11 -0
- package/dist/metadata/chainMetadataConversion.d.ts.map +1 -0
- package/dist/metadata/chainMetadataConversion.js +119 -0
- package/dist/metadata/chainMetadataConversion.js.map +1 -0
- package/dist/metadata/chainMetadataTypes.d.ts +338 -0
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -0
- package/dist/metadata/chainMetadataTypes.js +373 -0
- package/dist/metadata/chainMetadataTypes.js.map +1 -0
- package/dist/metadata/customZodTypes.d.ts +44 -0
- package/dist/metadata/customZodTypes.d.ts.map +1 -0
- package/dist/metadata/customZodTypes.js +65 -0
- package/dist/metadata/customZodTypes.js.map +1 -0
- package/dist/metadata/deploymentArtifacts.d.ts +10 -0
- package/dist/metadata/deploymentArtifacts.d.ts.map +1 -0
- package/dist/metadata/deploymentArtifacts.js +10 -0
- package/dist/metadata/deploymentArtifacts.js.map +1 -0
- package/dist/metadata/forwardCompatibleEnum.test.d.ts +2 -0
- package/dist/metadata/forwardCompatibleEnum.test.d.ts.map +1 -0
- package/dist/metadata/forwardCompatibleEnum.test.js +299 -0
- package/dist/metadata/forwardCompatibleEnum.test.js.map +1 -0
- package/dist/metadata/matchingList.d.ts +25 -0
- package/dist/metadata/matchingList.d.ts.map +1 -0
- package/dist/metadata/matchingList.js +22 -0
- package/dist/metadata/matchingList.js.map +1 -0
- package/dist/metadata/warpRouteConfig.d.ts +83 -0
- package/dist/metadata/warpRouteConfig.d.ts.map +1 -0
- package/dist/metadata/warpRouteConfig.js +22 -0
- package/dist/metadata/warpRouteConfig.js.map +1 -0
- package/dist/middleware/account/InterchainAccount.d.ts +47 -0
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccount.js +324 -0
- package/dist/middleware/account/InterchainAccount.js.map +1 -0
- package/dist/middleware/account/InterchainAccount.test.d.ts +2 -0
- package/dist/middleware/account/InterchainAccount.test.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccount.test.js +733 -0
- package/dist/middleware/account/InterchainAccount.test.js.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts +7 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.js +4 -0
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.js +68 -0
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts +2 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.js +240 -0
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -0
- package/dist/middleware/account/contracts.d.ts +6 -0
- package/dist/middleware/account/contracts.d.ts.map +1 -0
- package/dist/middleware/account/contracts.js +5 -0
- package/dist/middleware/account/contracts.js.map +1 -0
- package/dist/middleware/account/icaCalls.d.ts +78 -0
- package/dist/middleware/account/icaCalls.d.ts.map +1 -0
- package/dist/middleware/account/icaCalls.js +75 -0
- package/dist/middleware/account/icaCalls.js.map +1 -0
- package/dist/middleware/account/types.d.ts +40 -0
- package/dist/middleware/account/types.d.ts.map +1 -0
- package/dist/middleware/account/types.js +25 -0
- package/dist/middleware/account/types.js.map +1 -0
- package/dist/middleware/query/InterchainQuery.d.ts +10 -0
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQuery.js +13 -0
- package/dist/middleware/query/InterchainQuery.js.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts +7 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.js +4 -0
- package/dist/middleware/query/InterchainQueryChecker.js.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +17 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.js +35 -0
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -0
- package/dist/middleware/query/contracts.d.ts +8 -0
- package/dist/middleware/query/contracts.d.ts.map +1 -0
- package/dist/middleware/query/contracts.js +7 -0
- package/dist/middleware/query/contracts.js.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts +2 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.js +70 -0
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -0
- package/dist/predicate/PredicateApiClient.d.ts +35 -0
- package/dist/predicate/PredicateApiClient.d.ts.map +1 -0
- package/dist/predicate/PredicateApiClient.js +66 -0
- package/dist/predicate/PredicateApiClient.js.map +1 -0
- package/dist/predicate/PredicateApiClient.test.d.ts +2 -0
- package/dist/predicate/PredicateApiClient.test.d.ts.map +1 -0
- package/dist/predicate/PredicateApiClient.test.js +108 -0
- package/dist/predicate/PredicateApiClient.test.js.map +1 -0
- package/dist/predicate/PredicateDeployer.d.ts +56 -0
- package/dist/predicate/PredicateDeployer.d.ts.map +1 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.d.ts +2 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.js +209 -0
- package/dist/predicate/PredicateDeployer.hardhat-test.js.map +1 -0
- package/dist/predicate/PredicateDeployer.js +218 -0
- package/dist/predicate/PredicateDeployer.js.map +1 -0
- package/dist/providers/MinimalProviderRegistry.d.ts +41 -0
- package/dist/providers/MinimalProviderRegistry.d.ts.map +1 -0
- package/dist/providers/MinimalProviderRegistry.js +122 -0
- package/dist/providers/MinimalProviderRegistry.js.map +1 -0
- package/dist/providers/MultiProtocolProvider.d.ts +23 -0
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -0
- package/dist/providers/MultiProtocolProvider.js +64 -0
- package/dist/providers/MultiProtocolProvider.js.map +1 -0
- package/dist/providers/MultiProtocolProvider.test.d.ts +2 -0
- package/dist/providers/MultiProtocolProvider.test.d.ts.map +1 -0
- package/dist/providers/MultiProtocolProvider.test.js +126 -0
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +196 -0
- package/dist/providers/MultiProvider.d.ts.map +1 -0
- package/dist/providers/MultiProvider.js +553 -0
- package/dist/providers/MultiProvider.js.map +1 -0
- package/dist/providers/MultiProvider.test.d.ts +2 -0
- package/dist/providers/MultiProvider.test.d.ts.map +1 -0
- package/dist/providers/MultiProvider.test.js +357 -0
- package/dist/providers/MultiProvider.test.js.map +1 -0
- package/dist/providers/MultiProviderAdapter.d.ts +61 -0
- package/dist/providers/MultiProviderAdapter.d.ts.map +1 -0
- package/dist/providers/MultiProviderAdapter.js +164 -0
- package/dist/providers/MultiProviderAdapter.js.map +1 -0
- package/dist/providers/ProviderType.d.ts +319 -0
- package/dist/providers/ProviderType.d.ts.map +1 -0
- package/dist/providers/ProviderType.js +27 -0
- package/dist/providers/ProviderType.js.map +1 -0
- package/dist/providers/SeismicSigner.d.ts +78 -0
- package/dist/providers/SeismicSigner.d.ts.map +1 -0
- package/dist/providers/SeismicSigner.js +265 -0
- package/dist/providers/SeismicSigner.js.map +1 -0
- package/dist/providers/SeismicSigner.test.d.ts +2 -0
- package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
- package/dist/providers/SeismicSigner.test.js +561 -0
- package/dist/providers/SeismicSigner.test.js.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts +25 -0
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js +139 -0
- package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts +61 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +248 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.test.d.ts +2 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.test.js +516 -0
- package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.test.js.map +1 -0
- package/dist/providers/SmartProvider/ProviderMethods.d.ts +24 -0
- package/dist/providers/SmartProvider/ProviderMethods.d.ts.map +1 -0
- package/dist/providers/SmartProvider/ProviderMethods.js +32 -0
- package/dist/providers/SmartProvider/ProviderMethods.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.d.ts +58 -0
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
- package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +173 -0
- package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.js +560 -0
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.rawRead.test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.rawRead.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.rawRead.test.js +90 -0
- package/dist/providers/SmartProvider/SmartProvider.rawRead.test.js.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts +2 -0
- package/dist/providers/SmartProvider/SmartProvider.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/SmartProvider.test.js +1119 -0
- package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -0
- package/dist/providers/SmartProvider/jsonRpcError.d.ts +13 -0
- package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
- package/dist/providers/SmartProvider/jsonRpcError.js +86 -0
- package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
- package/dist/providers/SmartProvider/jsonRpcError.test.d.ts +2 -0
- package/dist/providers/SmartProvider/jsonRpcError.test.d.ts.map +1 -0
- package/dist/providers/SmartProvider/jsonRpcError.test.js +46 -0
- package/dist/providers/SmartProvider/jsonRpcError.test.js.map +1 -0
- package/dist/providers/SmartProvider/logFilters.d.ts +10 -0
- package/dist/providers/SmartProvider/logFilters.d.ts.map +1 -0
- package/dist/providers/SmartProvider/logFilters.js +31 -0
- package/dist/providers/SmartProvider/logFilters.js.map +1 -0
- package/dist/providers/SmartProvider/types.d.ts +50 -0
- package/dist/providers/SmartProvider/types.d.ts.map +1 -0
- package/dist/providers/SmartProvider/types.js +7 -0
- package/dist/providers/SmartProvider/types.js.map +1 -0
- package/dist/providers/builders/aleo.browser.d.ts +13 -0
- package/dist/providers/builders/aleo.browser.d.ts.map +1 -0
- package/dist/providers/builders/aleo.browser.js +54 -0
- package/dist/providers/builders/aleo.browser.js.map +1 -0
- package/dist/providers/builders/aleo.d.ts +4 -0
- package/dist/providers/builders/aleo.d.ts.map +1 -0
- package/dist/providers/builders/aleo.js +7 -0
- package/dist/providers/builders/aleo.js.map +1 -0
- package/dist/providers/builders/aleo.test.d.ts +2 -0
- package/dist/providers/builders/aleo.test.d.ts.map +1 -0
- package/dist/providers/builders/aleo.test.js +99 -0
- package/dist/providers/builders/aleo.test.js.map +1 -0
- package/dist/providers/builders/cosmos.d.ts +6 -0
- package/dist/providers/builders/cosmos.d.ts.map +1 -0
- package/dist/providers/builders/cosmos.js +30 -0
- package/dist/providers/builders/cosmos.js.map +1 -0
- package/dist/providers/builders/ethersV5.d.ts +7 -0
- package/dist/providers/builders/ethersV5.d.ts.map +1 -0
- package/dist/providers/builders/ethersV5.js +38 -0
- package/dist/providers/builders/ethersV5.js.map +1 -0
- package/dist/providers/builders/ethersV5.test.d.ts +2 -0
- package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
- package/dist/providers/builders/ethersV5.test.js +77 -0
- package/dist/providers/builders/ethersV5.test.js.map +1 -0
- package/dist/providers/builders/radix.browser.d.ts +19 -0
- package/dist/providers/builders/radix.browser.d.ts.map +1 -0
- package/dist/providers/builders/radix.browser.js +47 -0
- package/dist/providers/builders/radix.browser.js.map +1 -0
- package/dist/providers/builders/radix.d.ts +4 -0
- package/dist/providers/builders/radix.d.ts.map +1 -0
- package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
- package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
- package/dist/providers/builders/radix.gateway.test.js +39 -0
- package/dist/providers/builders/radix.gateway.test.js.map +1 -0
- package/dist/providers/builders/radix.js +17 -0
- package/dist/providers/builders/radix.js.map +1 -0
- package/dist/providers/builders/radix.test.d.ts +2 -0
- package/dist/providers/builders/radix.test.d.ts.map +1 -0
- package/dist/providers/builders/radix.test.js +82 -0
- package/dist/providers/builders/radix.test.js.map +1 -0
- package/dist/providers/builders/solana.d.ts +4 -0
- package/dist/providers/builders/solana.d.ts.map +1 -0
- package/dist/providers/builders/solana.js +12 -0
- package/dist/providers/builders/solana.js.map +1 -0
- package/dist/providers/builders/starknet.d.ts +4 -0
- package/dist/providers/builders/starknet.d.ts.map +1 -0
- package/dist/providers/builders/starknet.js +20 -0
- package/dist/providers/builders/starknet.js.map +1 -0
- package/dist/providers/builders/tron.d.ts +10 -0
- package/dist/providers/builders/tron.d.ts.map +1 -0
- package/dist/providers/builders/tron.js +21 -0
- package/dist/providers/builders/tron.js.map +1 -0
- package/dist/providers/builders/types.d.ts +6 -0
- package/dist/providers/builders/types.d.ts.map +1 -0
- package/dist/providers/builders/types.js +2 -0
- package/dist/providers/builders/types.js.map +1 -0
- package/dist/providers/builders/viem.d.ts +4 -0
- package/dist/providers/builders/viem.d.ts.map +1 -0
- package/dist/providers/builders/viem.js +25 -0
- package/dist/providers/builders/viem.js.map +1 -0
- package/dist/providers/builders/zksync.d.ts +7 -0
- package/dist/providers/builders/zksync.d.ts.map +1 -0
- package/dist/providers/builders/zksync.js +14 -0
- package/dist/providers/builders/zksync.js.map +1 -0
- package/dist/providers/defaultProviderBuilderMaps.d.ts +7 -0
- package/dist/providers/defaultProviderBuilderMaps.d.ts.map +1 -0
- package/dist/providers/defaultProviderBuilderMaps.js +36 -0
- package/dist/providers/defaultProviderBuilderMaps.js.map +1 -0
- package/dist/providers/explorerHealthTest.d.ts +4 -0
- package/dist/providers/explorerHealthTest.d.ts.map +1 -0
- package/dist/providers/explorerHealthTest.js +53 -0
- package/dist/providers/explorerHealthTest.js.map +1 -0
- package/dist/providers/providerBuilders.d.ts +12 -0
- package/dist/providers/providerBuilders.d.ts.map +1 -0
- package/dist/providers/providerBuilders.js +11 -0
- package/dist/providers/providerBuilders.js.map +1 -0
- package/dist/providers/rpcHealthTest.d.ts +11 -0
- package/dist/providers/rpcHealthTest.d.ts.map +1 -0
- package/dist/providers/rpcHealthTest.js +104 -0
- package/dist/providers/rpcHealthTest.js.map +1 -0
- package/dist/providers/runtime/evm.d.ts +3 -0
- package/dist/providers/runtime/evm.d.ts.map +1 -0
- package/dist/providers/runtime/evm.js +11 -0
- package/dist/providers/runtime/evm.js.map +1 -0
- package/dist/providers/runtime/evmLike.d.ts +3 -0
- package/dist/providers/runtime/evmLike.d.ts.map +1 -0
- package/dist/providers/runtime/evmLike.js +7 -0
- package/dist/providers/runtime/evmLike.js.map +1 -0
- package/dist/providers/runtime/evmLike.test.d.ts +2 -0
- package/dist/providers/runtime/evmLike.test.d.ts.map +1 -0
- package/dist/providers/runtime/evmLike.test.js +22 -0
- package/dist/providers/runtime/evmLike.test.js.map +1 -0
- package/dist/providers/runtime/tron.d.ts +3 -0
- package/dist/providers/runtime/tron.d.ts.map +1 -0
- package/dist/providers/runtime/tron.js +6 -0
- package/dist/providers/runtime/tron.js.map +1 -0
- package/dist/providers/transactionFeeEstimators.d.ts +79 -0
- package/dist/providers/transactionFeeEstimators.d.ts.map +1 -0
- package/dist/providers/transactionFeeEstimators.js +317 -0
- package/dist/providers/transactionFeeEstimators.js.map +1 -0
- package/dist/providers/transactionFeeEstimators.test.d.ts +2 -0
- package/dist/providers/transactionFeeEstimators.test.d.ts.map +1 -0
- package/dist/providers/transactionFeeEstimators.test.js +394 -0
- package/dist/providers/transactionFeeEstimators.test.js.map +1 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts +25 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.js +113 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.js.map +1 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js +122 -0
- package/dist/providers/transactions/submitter/IcaTxSubmitter.test.js.map +1 -0
- package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts +19 -0
- package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/TxSubmitterInterface.js +2 -0
- package/dist/providers/transactions/submitter/TxSubmitterInterface.js.map +1 -0
- package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts +9 -0
- package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/TxSubmitterTypes.js +10 -0
- package/dist/providers/transactions/submitter/TxSubmitterTypes.js.map +1 -0
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts +39 -0
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js +48 -0
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js.map +1 -0
- package/dist/providers/transactions/submitter/builder/types.d.ts +69 -0
- package/dist/providers/transactions/submitter/builder/types.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/builder/types.js +94 -0
- package/dist/providers/transactions/submitter/builder/types.js.map +1 -0
- package/dist/providers/transactions/submitter/builder/types.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/builder/types.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/builder/types.test.js +314 -0
- package/dist/providers/transactions/submitter/builder/types.test.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts +33 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.js +43 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts +31 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js +90 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.test.js +145 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.test.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts +15 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js +26 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts +29 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js +68 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.js +125 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TimelockSubmitter.d.ts +22 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TimelockSubmitter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TimelockSubmitter.js +85 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TimelockSubmitter.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TxSubmitterInterface.d.ts +10 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TxSubmitterInterface.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TxSubmitterInterface.js +2 -0
- package/dist/providers/transactions/submitter/ethersV5/EV5TxSubmitterInterface.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts +104 -0
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/types.js +72 -0
- package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/types.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/ethersV5/types.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/ethersV5/types.test.js +57 -0
- package/dist/providers/transactions/submitter/ethersV5/types.test.js.map +1 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts +31 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.js +97 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts +2 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js +38 -0
- package/dist/providers/transactions/submitter/submitterBuilderGetter.test.js.map +1 -0
- package/dist/providers/transactions/submitter/types.d.ts +37 -0
- package/dist/providers/transactions/submitter/types.d.ts.map +1 -0
- package/dist/providers/transactions/submitter/types.js +3 -0
- package/dist/providers/transactions/submitter/types.js.map +1 -0
- package/dist/providers/transactions/types.d.ts +9 -0
- package/dist/providers/transactions/types.d.ts.map +1 -0
- package/dist/providers/transactions/types.js +9 -0
- package/dist/providers/transactions/types.js.map +1 -0
- package/dist/providers/transactions/types.test.d.ts +2 -0
- package/dist/providers/transactions/types.test.d.ts.map +1 -0
- package/dist/providers/transactions/types.test.js +37 -0
- package/dist/providers/transactions/types.test.js.map +1 -0
- package/dist/quote/Eip712Signable.d.ts +25 -0
- package/dist/quote/Eip712Signable.d.ts.map +1 -0
- package/dist/quote/Eip712Signable.js +27 -0
- package/dist/quote/Eip712Signable.js.map +1 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.d.ts +15 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.d.ts.map +1 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.js +24 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.js.map +1 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.test.d.ts +2 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.test.d.ts.map +1 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.test.js +23 -0
- package/dist/quote/EvmPrivateKeyQuoteSigner.test.js.map +1 -0
- package/dist/quote/EvmQuoteArtifactManager.d.ts +20 -0
- package/dist/quote/EvmQuoteArtifactManager.d.ts.map +1 -0
- package/dist/quote/EvmQuoteArtifactManager.js +32 -0
- package/dist/quote/EvmQuoteArtifactManager.js.map +1 -0
- package/dist/quote/EvmQuoteReader.d.ts +24 -0
- package/dist/quote/EvmQuoteReader.d.ts.map +1 -0
- package/dist/quote/EvmQuoteReader.hardhat-test.d.ts +2 -0
- package/dist/quote/EvmQuoteReader.hardhat-test.d.ts.map +1 -0
- package/dist/quote/EvmQuoteReader.hardhat-test.js +157 -0
- package/dist/quote/EvmQuoteReader.hardhat-test.js.map +1 -0
- package/dist/quote/EvmQuoteReader.js +91 -0
- package/dist/quote/EvmQuoteReader.js.map +1 -0
- package/dist/quote/EvmQuoteWriter.d.ts +16 -0
- package/dist/quote/EvmQuoteWriter.d.ts.map +1 -0
- package/dist/quote/EvmQuoteWriter.hardhat-test.d.ts +2 -0
- package/dist/quote/EvmQuoteWriter.hardhat-test.d.ts.map +1 -0
- package/dist/quote/EvmQuoteWriter.hardhat-test.js +238 -0
- package/dist/quote/EvmQuoteWriter.hardhat-test.js.map +1 -0
- package/dist/quote/EvmQuoteWriter.js +55 -0
- package/dist/quote/EvmQuoteWriter.js.map +1 -0
- package/dist/quote/WarpSignedQuoteEip712.d.ts +22 -0
- package/dist/quote/WarpSignedQuoteEip712.d.ts.map +1 -0
- package/dist/quote/WarpSignedQuoteEip712.js +48 -0
- package/dist/quote/WarpSignedQuoteEip712.js.map +1 -0
- package/dist/quoted-calls/EvmQuotedTransferProvider.d.ts +63 -0
- package/dist/quoted-calls/EvmQuotedTransferProvider.d.ts.map +1 -0
- package/dist/quoted-calls/EvmQuotedTransferProvider.js +207 -0
- package/dist/quoted-calls/EvmQuotedTransferProvider.js.map +1 -0
- package/dist/quoted-calls/QuotedTransferProvider.d.ts +50 -0
- package/dist/quoted-calls/QuotedTransferProvider.d.ts.map +1 -0
- package/dist/quoted-calls/QuotedTransferProvider.js +2 -0
- package/dist/quoted-calls/QuotedTransferProvider.js.map +1 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.d.ts +89 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.d.ts.map +1 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.js +472 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.js.map +1 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.test.d.ts +2 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.test.d.ts.map +1 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.test.js +502 -0
- package/dist/quoted-calls/SealevelQuotedTransferProvider.test.js.map +1 -0
- package/dist/quoted-calls/assertHex.d.ts +6 -0
- package/dist/quoted-calls/assertHex.d.ts.map +1 -0
- package/dist/quoted-calls/assertHex.js +13 -0
- package/dist/quoted-calls/assertHex.js.map +1 -0
- package/dist/quoted-calls/builder.d.ts +52 -0
- package/dist/quoted-calls/builder.d.ts.map +1 -0
- package/dist/quoted-calls/builder.js +161 -0
- package/dist/quoted-calls/builder.js.map +1 -0
- package/dist/quoted-calls/builder.test.d.ts +2 -0
- package/dist/quoted-calls/builder.test.d.ts.map +1 -0
- package/dist/quoted-calls/builder.test.js +193 -0
- package/dist/quoted-calls/builder.test.js.map +1 -0
- package/dist/quoted-calls/client.d.ts +69 -0
- package/dist/quoted-calls/client.d.ts.map +1 -0
- package/dist/quoted-calls/client.js +205 -0
- package/dist/quoted-calls/client.js.map +1 -0
- package/dist/quoted-calls/client.v2.test.d.ts +2 -0
- package/dist/quoted-calls/client.v2.test.d.ts.map +1 -0
- package/dist/quoted-calls/client.v2.test.js +346 -0
- package/dist/quoted-calls/client.v2.test.js.map +1 -0
- package/dist/quoted-calls/codec.d.ts +94 -0
- package/dist/quoted-calls/codec.d.ts.map +1 -0
- package/dist/quoted-calls/codec.js +223 -0
- package/dist/quoted-calls/codec.js.map +1 -0
- package/dist/quoted-calls/codec.test.d.ts +2 -0
- package/dist/quoted-calls/codec.test.d.ts.map +1 -0
- package/dist/quoted-calls/codec.test.js +307 -0
- package/dist/quoted-calls/codec.test.js.map +1 -0
- package/dist/quoted-calls/composeSealevelTx.d.ts +26 -0
- package/dist/quoted-calls/composeSealevelTx.d.ts.map +1 -0
- package/dist/quoted-calls/composeSealevelTx.js +45 -0
- package/dist/quoted-calls/composeSealevelTx.js.map +1 -0
- package/dist/quoted-calls/svmDecoder.d.ts +51 -0
- package/dist/quoted-calls/svmDecoder.d.ts.map +1 -0
- package/dist/quoted-calls/svmDecoder.js +26 -0
- package/dist/quoted-calls/svmDecoder.js.map +1 -0
- package/dist/quoted-calls/svmDecoder.test.d.ts +2 -0
- package/dist/quoted-calls/svmDecoder.test.d.ts.map +1 -0
- package/dist/quoted-calls/svmDecoder.test.js +56 -0
- package/dist/quoted-calls/svmDecoder.test.js.map +1 -0
- package/dist/quoted-calls/types.d.ts +176 -0
- package/dist/quoted-calls/types.d.ts.map +1 -0
- package/dist/quoted-calls/types.js +56 -0
- package/dist/quoted-calls/types.js.map +1 -0
- package/dist/router/EvmRouterReader.d.ts +18 -0
- package/dist/router/EvmRouterReader.d.ts.map +1 -0
- package/dist/router/EvmRouterReader.js +60 -0
- package/dist/router/EvmRouterReader.js.map +1 -0
- package/dist/router/GasRouterDeployer.d.ts +11 -0
- package/dist/router/GasRouterDeployer.d.ts.map +1 -0
- package/dist/router/GasRouterDeployer.js +25 -0
- package/dist/router/GasRouterDeployer.js.map +1 -0
- package/dist/router/HyperlaneRouterChecker.d.ts +19 -0
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -0
- package/dist/router/HyperlaneRouterChecker.js +157 -0
- package/dist/router/HyperlaneRouterChecker.js.map +1 -0
- package/dist/router/HyperlaneRouterDeployer.d.ts +18 -0
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -0
- package/dist/router/HyperlaneRouterDeployer.js +88 -0
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -0
- package/dist/router/MultiProtocolRouterApps.d.ts +20 -0
- package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -0
- package/dist/router/MultiProtocolRouterApps.js +43 -0
- package/dist/router/MultiProtocolRouterApps.js.map +1 -0
- package/dist/router/MultiProtocolRouterApps.test.d.ts +2 -0
- package/dist/router/MultiProtocolRouterApps.test.d.ts.map +1 -0
- package/dist/router/MultiProtocolRouterApps.test.js +22 -0
- package/dist/router/MultiProtocolRouterApps.test.js.map +1 -0
- package/dist/router/ProxiedRouterChecker.d.ts +12 -0
- package/dist/router/ProxiedRouterChecker.d.ts.map +1 -0
- package/dist/router/ProxiedRouterChecker.js +34 -0
- package/dist/router/ProxiedRouterChecker.js.map +1 -0
- package/dist/router/ProxiedRouterDeployer.d.ts +35 -0
- package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -0
- package/dist/router/ProxiedRouterDeployer.js +58 -0
- package/dist/router/ProxiedRouterDeployer.js.map +1 -0
- package/dist/router/RouterApps.d.ts +22 -0
- package/dist/router/RouterApps.d.ts.map +1 -0
- package/dist/router/RouterApps.js +39 -0
- package/dist/router/RouterApps.js.map +1 -0
- package/dist/router/adapters/EvmRouterAdapter.d.ts +30 -0
- package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -0
- package/dist/router/adapters/EvmRouterAdapter.js +46 -0
- package/dist/router/adapters/EvmRouterAdapter.js.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.d.ts +35 -0
- package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.js +56 -0
- package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -0
- package/dist/router/adapters/types.d.ts +17 -0
- package/dist/router/adapters/types.d.ts.map +1 -0
- package/dist/router/adapters/types.js +2 -0
- package/dist/router/adapters/types.js.map +1 -0
- package/dist/router/types.d.ts +139 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +62 -0
- package/dist/router/types.js.map +1 -0
- package/dist/router/types.test.d.ts +2 -0
- package/dist/router/types.test.d.ts.map +1 -0
- package/dist/router/types.test.js +108 -0
- package/dist/router/types.test.js.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.d.ts +91 -0
- package/dist/rpc/evm/EvmEventLogsReader.d.ts.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.d.ts +2 -0
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.d.ts.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +640 -0
- package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.js +246 -0
- package/dist/rpc/evm/EvmEventLogsReader.js.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.test.d.ts +2 -0
- package/dist/rpc/evm/EvmEventLogsReader.test.d.ts.map +1 -0
- package/dist/rpc/evm/EvmEventLogsReader.test.js +139 -0
- package/dist/rpc/evm/EvmEventLogsReader.test.js.map +1 -0
- package/dist/rpc/evm/types.d.ts +11 -0
- package/dist/rpc/evm/types.d.ts.map +1 -0
- package/dist/rpc/evm/types.js +2 -0
- package/dist/rpc/evm/types.js.map +1 -0
- package/dist/rpc/evm/utils.d.ts +75 -0
- package/dist/rpc/evm/utils.d.ts.map +1 -0
- package/dist/rpc/evm/utils.hardhat-test.d.ts +2 -0
- package/dist/rpc/evm/utils.hardhat-test.d.ts.map +1 -0
- package/dist/rpc/evm/utils.hardhat-test.js +457 -0
- package/dist/rpc/evm/utils.hardhat-test.js.map +1 -0
- package/dist/rpc/evm/utils.js +338 -0
- package/dist/rpc/evm/utils.js.map +1 -0
- package/dist/rpc/evm/utils.test.d.ts +2 -0
- package/dist/rpc/evm/utils.test.d.ts.map +1 -0
- package/dist/rpc/evm/utils.test.js +636 -0
- package/dist/rpc/evm/utils.test.js.map +1 -0
- package/dist/signers/cosmos/cosmjs.d.ts +17 -0
- package/dist/signers/cosmos/cosmjs.d.ts.map +1 -0
- package/dist/signers/cosmos/cosmjs.js +39 -0
- package/dist/signers/cosmos/cosmjs.js.map +1 -0
- package/dist/signers/evm/ethersv5.d.ts +14 -0
- package/dist/signers/evm/ethersv5.d.ts.map +1 -0
- package/dist/signers/evm/ethersv5.js +36 -0
- package/dist/signers/evm/ethersv5.js.map +1 -0
- package/dist/signers/evm/turnkey.d.ts +91 -0
- package/dist/signers/evm/turnkey.d.ts.map +1 -0
- package/dist/signers/evm/turnkey.js +269 -0
- package/dist/signers/evm/turnkey.js.map +1 -0
- package/dist/signers/evm/turnkey.test.d.ts +2 -0
- package/dist/signers/evm/turnkey.test.d.ts.map +1 -0
- package/dist/signers/evm/turnkey.test.js +240 -0
- package/dist/signers/evm/turnkey.test.js.map +1 -0
- package/dist/signers/radix/radix-toolkit.d.ts +16 -0
- package/dist/signers/radix/radix-toolkit.d.ts.map +1 -0
- package/dist/signers/radix/radix-toolkit.js +34 -0
- package/dist/signers/radix/radix-toolkit.js.map +1 -0
- package/dist/signers/signers.d.ts +17 -0
- package/dist/signers/signers.d.ts.map +1 -0
- package/dist/signers/signers.js +26 -0
- package/dist/signers/signers.js.map +1 -0
- package/dist/signers/starknet/starknetjs.d.ts +14 -0
- package/dist/signers/starknet/starknetjs.d.ts.map +1 -0
- package/dist/signers/starknet/starknetjs.js +38 -0
- package/dist/signers/starknet/starknetjs.js.map +1 -0
- package/dist/signers/svm/solana-web3js.d.ts +89 -0
- package/dist/signers/svm/solana-web3js.d.ts.map +1 -0
- package/dist/signers/svm/solana-web3js.js +247 -0
- package/dist/signers/svm/solana-web3js.js.map +1 -0
- package/dist/signers/svm/solana-web3js.test.d.ts +2 -0
- package/dist/signers/svm/solana-web3js.test.d.ts.map +1 -0
- package/dist/signers/svm/solana-web3js.test.js +61 -0
- package/dist/signers/svm/solana-web3js.test.js.map +1 -0
- package/dist/signers/svm/turnkey.d.ts +49 -0
- package/dist/signers/svm/turnkey.d.ts.map +1 -0
- package/dist/signers/svm/turnkey.js +80 -0
- package/dist/signers/svm/turnkey.js.map +1 -0
- package/dist/signers/turnkeyClient.d.ts +72 -0
- package/dist/signers/turnkeyClient.d.ts.map +1 -0
- package/dist/signers/turnkeyClient.js +121 -0
- package/dist/signers/turnkeyClient.js.map +1 -0
- package/dist/signers/types.d.ts +8 -0
- package/dist/signers/types.d.ts.map +1 -0
- package/dist/signers/types.js +2 -0
- package/dist/signers/types.js.map +1 -0
- package/dist/test/contractDouble.d.ts +8 -0
- package/dist/test/contractDouble.d.ts.map +1 -0
- package/dist/test/contractDouble.js +12 -0
- package/dist/test/contractDouble.js.map +1 -0
- package/dist/test/contractStubs.d.ts +8 -0
- package/dist/test/contractStubs.d.ts.map +1 -0
- package/dist/test/contractStubs.js +15 -0
- package/dist/test/contractStubs.js.map +1 -0
- package/dist/test/errors.d.ts +34 -0
- package/dist/test/errors.d.ts.map +1 -0
- package/dist/test/errors.js +46 -0
- package/dist/test/errors.js.map +1 -0
- package/dist/test/fixtures/warp-route-replay/record.d.ts +2 -0
- package/dist/test/fixtures/warp-route-replay/record.d.ts.map +1 -0
- package/dist/test/fixtures/warp-route-replay/record.js +32 -0
- package/dist/test/fixtures/warp-route-replay/record.js.map +1 -0
- package/dist/test/multiProviderStubs.d.ts +9 -0
- package/dist/test/multiProviderStubs.d.ts.map +1 -0
- package/dist/test/multiProviderStubs.js +31 -0
- package/dist/test/multiProviderStubs.js.map +1 -0
- package/dist/test/replayRpc.d.ts +82 -0
- package/dist/test/replayRpc.d.ts.map +1 -0
- package/dist/test/replayRpc.js +331 -0
- package/dist/test/replayRpc.js.map +1 -0
- package/dist/test/replayScenarios.d.ts +19 -0
- package/dist/test/replayScenarios.d.ts.map +1 -0
- package/dist/test/replayScenarios.js +89 -0
- package/dist/test/replayScenarios.js.map +1 -0
- package/dist/test/testUtils.d.ts +32 -0
- package/dist/test/testUtils.d.ts.map +1 -0
- package/dist/test/testUtils.js +408 -0
- package/dist/test/testUtils.js.map +1 -0
- package/dist/test/testUtils.test.d.ts +2 -0
- package/dist/test/testUtils.test.d.ts.map +1 -0
- package/dist/test/testUtils.test.js +28 -0
- package/dist/test/testUtils.test.js.map +1 -0
- package/dist/timelock/evm/EvmTimelockDeployer.d.ts +12 -0
- package/dist/timelock/evm/EvmTimelockDeployer.d.ts.map +1 -0
- package/dist/timelock/evm/EvmTimelockDeployer.hardhat-test.d.ts +2 -0
- package/dist/timelock/evm/EvmTimelockDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/timelock/evm/EvmTimelockDeployer.hardhat-test.js +210 -0
- package/dist/timelock/evm/EvmTimelockDeployer.hardhat-test.js.map +1 -0
- package/dist/timelock/evm/EvmTimelockDeployer.js +68 -0
- package/dist/timelock/evm/EvmTimelockDeployer.js.map +1 -0
- package/dist/timelock/evm/EvmTimelockReader.d.ts +32 -0
- package/dist/timelock/evm/EvmTimelockReader.d.ts.map +1 -0
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.d.ts +2 -0
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.d.ts.map +1 -0
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +889 -0
- package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -0
- package/dist/timelock/evm/EvmTimelockReader.js +171 -0
- package/dist/timelock/evm/EvmTimelockReader.js.map +1 -0
- package/dist/timelock/evm/constants.d.ts +6 -0
- package/dist/timelock/evm/constants.d.ts.map +1 -0
- package/dist/timelock/evm/constants.js +7 -0
- package/dist/timelock/evm/constants.js.map +1 -0
- package/dist/timelock/evm/contracts.d.ts +6 -0
- package/dist/timelock/evm/contracts.d.ts.map +1 -0
- package/dist/timelock/evm/contracts.js +5 -0
- package/dist/timelock/evm/contracts.js.map +1 -0
- package/dist/timelock/evm/errors.d.ts +2 -0
- package/dist/timelock/evm/errors.d.ts.map +1 -0
- package/dist/timelock/evm/errors.js +19 -0
- package/dist/timelock/evm/errors.js.map +1 -0
- package/dist/timelock/evm/errors.test.d.ts +2 -0
- package/dist/timelock/evm/errors.test.d.ts.map +1 -0
- package/dist/timelock/evm/errors.test.js +33 -0
- package/dist/timelock/evm/errors.test.js.map +1 -0
- package/dist/timelock/evm/utils.d.ts +4 -0
- package/dist/timelock/evm/utils.d.ts.map +1 -0
- package/dist/timelock/evm/utils.js +11 -0
- package/dist/timelock/evm/utils.js.map +1 -0
- package/dist/timelock/types.d.ts +29 -0
- package/dist/timelock/types.d.ts.map +1 -0
- package/dist/timelock/types.js +11 -0
- package/dist/timelock/types.js.map +1 -0
- package/dist/token/EvmWarpModule.d.ts +301 -0
- package/dist/token/EvmWarpModule.d.ts.map +1 -0
- package/dist/token/EvmWarpModule.hardhat-test.d.ts +2 -0
- package/dist/token/EvmWarpModule.hardhat-test.d.ts.map +1 -0
- package/dist/token/EvmWarpModule.hardhat-test.js +3143 -0
- package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -0
- package/dist/token/EvmWarpModule.js +1800 -0
- package/dist/token/EvmWarpModule.js.map +1 -0
- package/dist/token/EvmWarpModule.test.d.ts +2 -0
- package/dist/token/EvmWarpModule.test.d.ts.map +1 -0
- package/dist/token/EvmWarpModule.test.js +471 -0
- package/dist/token/EvmWarpModule.test.js.map +1 -0
- package/dist/token/EvmWarpRouteReader.d.ts +135 -0
- package/dist/token/EvmWarpRouteReader.d.ts.map +1 -0
- package/dist/token/EvmWarpRouteReader.hardhat-test.d.ts +2 -0
- package/dist/token/EvmWarpRouteReader.hardhat-test.d.ts.map +1 -0
- package/dist/token/EvmWarpRouteReader.hardhat-test.js +1357 -0
- package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -0
- package/dist/token/EvmWarpRouteReader.js +1292 -0
- package/dist/token/EvmWarpRouteReader.js.map +1 -0
- package/dist/token/EvmWarpRouteReader.replay.test.d.ts +2 -0
- package/dist/token/EvmWarpRouteReader.replay.test.d.ts.map +1 -0
- package/dist/token/EvmWarpRouteReader.replay.test.js +392 -0
- package/dist/token/EvmWarpRouteReader.replay.test.js.map +1 -0
- package/dist/token/EvmWarpRouteReader.test.d.ts +2 -0
- package/dist/token/EvmWarpRouteReader.test.d.ts.map +1 -0
- package/dist/token/EvmWarpRouteReader.test.js +783 -0
- package/dist/token/EvmWarpRouteReader.test.js.map +1 -0
- package/dist/token/EvmXERC20Module.d.ts +105 -0
- package/dist/token/EvmXERC20Module.d.ts.map +1 -0
- package/dist/token/EvmXERC20Module.js +277 -0
- package/dist/token/EvmXERC20Module.js.map +1 -0
- package/dist/token/EvmXERC20Module.test.d.ts +2 -0
- package/dist/token/EvmXERC20Module.test.d.ts.map +1 -0
- package/dist/token/EvmXERC20Module.test.js +464 -0
- package/dist/token/EvmXERC20Module.test.js.map +1 -0
- package/dist/token/EvmXERC20Reader.d.ts +58 -0
- package/dist/token/EvmXERC20Reader.d.ts.map +1 -0
- package/dist/token/EvmXERC20Reader.js +122 -0
- package/dist/token/EvmXERC20Reader.js.map +1 -0
- package/dist/token/EvmXERC20Reader.test.d.ts +2 -0
- package/dist/token/EvmXERC20Reader.test.d.ts.map +1 -0
- package/dist/token/EvmXERC20Reader.test.js +333 -0
- package/dist/token/EvmXERC20Reader.test.js.map +1 -0
- package/dist/token/IToken.d.ts +21 -0
- package/dist/token/IToken.d.ts.map +1 -0
- package/dist/token/IToken.js +2 -0
- package/dist/token/IToken.js.map +1 -0
- package/dist/token/ITokenMetadata.d.ts +90 -0
- package/dist/token/ITokenMetadata.d.ts.map +1 -0
- package/dist/token/ITokenMetadata.js +53 -0
- package/dist/token/ITokenMetadata.js.map +1 -0
- package/dist/token/Token.d.ts +47 -0
- package/dist/token/Token.d.ts.map +1 -0
- package/dist/token/Token.js +231 -0
- package/dist/token/Token.js.map +1 -0
- package/dist/token/Token.test.d.ts +2 -0
- package/dist/token/Token.test.d.ts.map +1 -0
- package/dist/token/Token.test.js +579 -0
- package/dist/token/Token.test.js.map +1 -0
- package/dist/token/TokenAmount.d.ts +12 -0
- package/dist/token/TokenAmount.d.ts.map +1 -0
- package/dist/token/TokenAmount.js +22 -0
- package/dist/token/TokenAmount.js.map +1 -0
- package/dist/token/TokenAmount.test.d.ts +2 -0
- package/dist/token/TokenAmount.test.d.ts.map +1 -0
- package/dist/token/TokenAmount.test.js +38 -0
- package/dist/token/TokenAmount.test.js.map +1 -0
- package/dist/token/TokenConnection.d.ts +55 -0
- package/dist/token/TokenConnection.d.ts.map +1 -0
- package/dist/token/TokenConnection.js +44 -0
- package/dist/token/TokenConnection.js.map +1 -0
- package/dist/token/TokenConnection.test.d.ts +2 -0
- package/dist/token/TokenConnection.test.d.ts.map +1 -0
- package/dist/token/TokenConnection.test.js +17 -0
- package/dist/token/TokenConnection.test.js.map +1 -0
- package/dist/token/TokenMetadata.d.ts +43 -0
- package/dist/token/TokenMetadata.d.ts.map +1 -0
- package/dist/token/TokenMetadata.js +121 -0
- package/dist/token/TokenMetadata.js.map +1 -0
- package/dist/token/TokenMetadataMap.d.ts +15 -0
- package/dist/token/TokenMetadataMap.d.ts.map +1 -0
- package/dist/token/TokenMetadataMap.js +56 -0
- package/dist/token/TokenMetadataMap.js.map +1 -0
- package/dist/token/TokenStandard.d.ts +108 -0
- package/dist/token/TokenStandard.d.ts.map +1 -0
- package/dist/token/TokenStandard.js +470 -0
- package/dist/token/TokenStandard.js.map +1 -0
- package/dist/token/adapters/AleoTokenAdapter.d.ts +60 -0
- package/dist/token/adapters/AleoTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/AleoTokenAdapter.js +190 -0
- package/dist/token/adapters/AleoTokenAdapter.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +114 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.js +332 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts +14 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js +283 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -0
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts +54 -0
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/CosmosModuleTokenAdapter.js +189 -0
- package/dist/token/adapters/CosmosModuleTokenAdapter.js.map +1 -0
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +74 -0
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/CosmosTokenAdapter.js +192 -0
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +39 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.js +85 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.test.d.ts +2 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.test.js +155 -0
- package/dist/token/adapters/EvmCrossCollateralAdapter.test.js.map +1 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts +2 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.js +96 -0
- package/dist/token/adapters/EvmHypSyntheticAdapter.test.js.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.d.ts +303 -0
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.js +899 -0
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.seismic.test.d.ts +2 -0
- package/dist/token/adapters/EvmTokenAdapter.seismic.test.d.ts.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.seismic.test.js +125 -0
- package/dist/token/adapters/EvmTokenAdapter.seismic.test.js.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.test.d.ts +2 -0
- package/dist/token/adapters/EvmTokenAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/EvmTokenAdapter.test.js +73 -0
- package/dist/token/adapters/EvmTokenAdapter.test.js.map +1 -0
- package/dist/token/adapters/ITokenAdapter.d.ts +129 -0
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/ITokenAdapter.js +15 -0
- package/dist/token/adapters/ITokenAdapter.js.map +1 -0
- package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts +22 -0
- package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/M0PortalLiteTokenAdapter.js +90 -0
- package/dist/token/adapters/M0PortalLiteTokenAdapter.js.map +1 -0
- package/dist/token/adapters/M0PortalTokenAdapter.d.ts +22 -0
- package/dist/token/adapters/M0PortalTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/M0PortalTokenAdapter.js +95 -0
- package/dist/token/adapters/M0PortalTokenAdapter.js.map +1 -0
- package/dist/token/adapters/M0PortalTokenAdapter.test.d.ts +2 -0
- package/dist/token/adapters/M0PortalTokenAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/M0PortalTokenAdapter.test.js +94 -0
- package/dist/token/adapters/M0PortalTokenAdapter.test.js.map +1 -0
- package/dist/token/adapters/RadixTokenAdapter.d.ts +55 -0
- package/dist/token/adapters/RadixTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/RadixTokenAdapter.js +190 -0
- package/dist/token/adapters/RadixTokenAdapter.js.map +1 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.d.ts +64 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.d.ts.map +1 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.js +474 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.js.map +1 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.test.d.ts +2 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.test.js +138 -0
- package/dist/token/adapters/SealevelCrossCollateralAdapter.test.js.map +1 -0
- package/dist/token/adapters/SealevelHypTokenAdapter.test.d.ts +2 -0
- package/dist/token/adapters/SealevelHypTokenAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/SealevelHypTokenAdapter.test.js +136 -0
- package/dist/token/adapters/SealevelHypTokenAdapter.test.js.map +1 -0
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +288 -0
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/SealevelTokenAdapter.js +1019 -0
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -0
- package/dist/token/adapters/StarknetTokenAdapter.d.ts +107 -0
- package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/StarknetTokenAdapter.js +273 -0
- package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -0
- package/dist/token/adapters/aleoHyp.d.ts +7 -0
- package/dist/token/adapters/aleoHyp.d.ts.map +1 -0
- package/dist/token/adapters/aleoHyp.js +26 -0
- package/dist/token/adapters/aleoHyp.js.map +1 -0
- package/dist/token/adapters/cosmosHyp.d.ts +7 -0
- package/dist/token/adapters/cosmosHyp.d.ts.map +1 -0
- package/dist/token/adapters/cosmosHyp.js +40 -0
- package/dist/token/adapters/cosmosHyp.js.map +1 -0
- package/dist/token/adapters/evmHyp.d.ts +7 -0
- package/dist/token/adapters/evmHyp.d.ts.map +1 -0
- package/dist/token/adapters/evmHyp.js +21 -0
- package/dist/token/adapters/evmHyp.js.map +1 -0
- package/dist/token/adapters/evmLikeHyp.d.ts +20 -0
- package/dist/token/adapters/evmLikeHyp.d.ts.map +1 -0
- package/dist/token/adapters/evmLikeHyp.js +67 -0
- package/dist/token/adapters/evmLikeHyp.js.map +1 -0
- package/dist/token/adapters/hypTokenAdapterUtils.d.ts +15 -0
- package/dist/token/adapters/hypTokenAdapterUtils.d.ts.map +1 -0
- package/dist/token/adapters/hypTokenAdapterUtils.js +9 -0
- package/dist/token/adapters/hypTokenAdapterUtils.js.map +1 -0
- package/dist/token/adapters/radixHyp.d.ts +7 -0
- package/dist/token/adapters/radixHyp.d.ts.map +1 -0
- package/dist/token/adapters/radixHyp.js +22 -0
- package/dist/token/adapters/radixHyp.js.map +1 -0
- package/dist/token/adapters/sealevelFee.d.ts +206 -0
- package/dist/token/adapters/sealevelFee.d.ts.map +1 -0
- package/dist/token/adapters/sealevelFee.js +515 -0
- package/dist/token/adapters/sealevelFee.js.map +1 -0
- package/dist/token/adapters/sealevelFee.test.d.ts +2 -0
- package/dist/token/adapters/sealevelFee.test.d.ts.map +1 -0
- package/dist/token/adapters/sealevelFee.test.js +246 -0
- package/dist/token/adapters/sealevelFee.test.js.map +1 -0
- package/dist/token/adapters/sealevelHyp.d.ts +8 -0
- package/dist/token/adapters/sealevelHyp.d.ts.map +1 -0
- package/dist/token/adapters/sealevelHyp.js +52 -0
- package/dist/token/adapters/sealevelHyp.js.map +1 -0
- package/dist/token/adapters/serialization.d.ts +234 -0
- package/dist/token/adapters/serialization.d.ts.map +1 -0
- package/dist/token/adapters/serialization.js +580 -0
- package/dist/token/adapters/serialization.js.map +1 -0
- package/dist/token/adapters/serialization.test.d.ts +2 -0
- package/dist/token/adapters/serialization.test.d.ts.map +1 -0
- package/dist/token/adapters/serialization.test.js +55 -0
- package/dist/token/adapters/serialization.test.js.map +1 -0
- package/dist/token/adapters/starknetHyp.d.ts +7 -0
- package/dist/token/adapters/starknetHyp.d.ts.map +1 -0
- package/dist/token/adapters/starknetHyp.js +35 -0
- package/dist/token/adapters/starknetHyp.js.map +1 -0
- package/dist/token/adapters/tronHyp.d.ts +7 -0
- package/dist/token/adapters/tronHyp.d.ts.map +1 -0
- package/dist/token/adapters/tronHyp.js +21 -0
- package/dist/token/adapters/tronHyp.js.map +1 -0
- package/dist/token/adapters/utils.d.ts +7 -0
- package/dist/token/adapters/utils.d.ts.map +1 -0
- package/dist/token/adapters/utils.js +4 -0
- package/dist/token/adapters/utils.js.map +1 -0
- package/dist/token/cctp.d.ts +10 -0
- package/dist/token/cctp.d.ts.map +1 -0
- package/dist/token/cctp.js +13 -0
- package/dist/token/cctp.js.map +1 -0
- package/dist/token/cctp.test.d.ts +2 -0
- package/dist/token/cctp.test.d.ts.map +1 -0
- package/dist/token/cctp.test.js +48 -0
- package/dist/token/cctp.test.js.map +1 -0
- package/dist/token/config.d.ts +61 -0
- package/dist/token/config.d.ts.map +1 -0
- package/dist/token/config.js +79 -0
- package/dist/token/config.js.map +1 -0
- package/dist/token/configUtils.d.ts +106 -0
- package/dist/token/configUtils.d.ts.map +1 -0
- package/dist/token/configUtils.js +735 -0
- package/dist/token/configUtils.js.map +1 -0
- package/dist/token/configUtils.test.d.ts +2 -0
- package/dist/token/configUtils.test.d.ts.map +1 -0
- package/dist/token/configUtils.test.js +1313 -0
- package/dist/token/configUtils.test.js.map +1 -0
- package/dist/token/contracts.d.ts +64 -0
- package/dist/token/contracts.d.ts.map +1 -0
- package/dist/token/contracts.js +68 -0
- package/dist/token/contracts.js.map +1 -0
- package/dist/token/deploy.d.ts +56 -0
- package/dist/token/deploy.d.ts.map +1 -0
- package/dist/token/deploy.hardhat-test.d.ts +2 -0
- package/dist/token/deploy.hardhat-test.d.ts.map +1 -0
- package/dist/token/deploy.hardhat-test.js +1397 -0
- package/dist/token/deploy.hardhat-test.js.map +1 -0
- package/dist/token/deploy.js +698 -0
- package/dist/token/deploy.js.map +1 -0
- package/dist/token/nativeTokenMetadata.d.ts +4 -0
- package/dist/token/nativeTokenMetadata.d.ts.map +1 -0
- package/dist/token/nativeTokenMetadata.js +50 -0
- package/dist/token/nativeTokenMetadata.js.map +1 -0
- package/dist/token/sealevel/metadata.d.ts +33 -0
- package/dist/token/sealevel/metadata.d.ts.map +1 -0
- package/dist/token/sealevel/metadata.js +90 -0
- package/dist/token/sealevel/metadata.js.map +1 -0
- package/dist/token/tokenMetadataUtils.d.ts +7 -0
- package/dist/token/tokenMetadataUtils.d.ts.map +1 -0
- package/dist/token/tokenMetadataUtils.js +109 -0
- package/dist/token/tokenMetadataUtils.js.map +1 -0
- package/dist/token/types.d.ts +9384 -0
- package/dist/token/types.d.ts.map +1 -0
- package/dist/token/types.js +613 -0
- package/dist/token/types.js.map +1 -0
- package/dist/token/types.test.d.ts +2 -0
- package/dist/token/types.test.d.ts.map +1 -0
- package/dist/token/types.test.js +529 -0
- package/dist/token/types.test.js.map +1 -0
- package/dist/token/warpCheck.d.ts +75 -0
- package/dist/token/warpCheck.d.ts.map +1 -0
- package/dist/token/warpCheck.js +1003 -0
- package/dist/token/warpCheck.js.map +1 -0
- package/dist/token/warpCheck.test.d.ts +2 -0
- package/dist/token/warpCheck.test.d.ts.map +1 -0
- package/dist/token/warpCheck.test.js +947 -0
- package/dist/token/warpCheck.test.js.map +1 -0
- package/dist/token/xerc20-abi.d.ts +58 -0
- package/dist/token/xerc20-abi.d.ts.map +1 -0
- package/dist/token/xerc20-abi.js +77 -0
- package/dist/token/xerc20-abi.js.map +1 -0
- package/dist/token/xerc20-limits.d.ts +63 -0
- package/dist/token/xerc20-limits.d.ts.map +1 -0
- package/dist/token/xerc20-limits.js +80 -0
- package/dist/token/xerc20-limits.js.map +1 -0
- package/dist/token/xerc20.d.ts +93 -0
- package/dist/token/xerc20.d.ts.map +1 -0
- package/dist/token/xerc20.js +355 -0
- package/dist/token/xerc20.js.map +1 -0
- package/dist/token/xerc20.test.d.ts +2 -0
- package/dist/token/xerc20.test.d.ts.map +1 -0
- package/dist/token/xerc20.test.js +728 -0
- package/dist/token/xerc20.test.js.map +1 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/HyperlaneReader.d.ts +17 -0
- package/dist/utils/HyperlaneReader.d.ts.map +1 -0
- package/dist/utils/HyperlaneReader.js +22 -0
- package/dist/utils/HyperlaneReader.js.map +1 -0
- package/dist/utils/MultiGeneric.d.ts +26 -0
- package/dist/utils/MultiGeneric.d.ts.map +1 -0
- package/dist/utils/MultiGeneric.js +55 -0
- package/dist/utils/MultiGeneric.js.map +1 -0
- package/dist/utils/contract.d.ts +60 -0
- package/dist/utils/contract.d.ts.map +1 -0
- package/dist/utils/contract.js +231 -0
- package/dist/utils/contract.js.map +1 -0
- package/dist/utils/contract.test.d.ts +2 -0
- package/dist/utils/contract.test.d.ts.map +1 -0
- package/dist/utils/contract.test.js +551 -0
- package/dist/utils/contract.test.js.map +1 -0
- package/dist/utils/contract.transport.test.d.ts +2 -0
- package/dist/utils/contract.transport.test.d.ts.map +1 -0
- package/dist/utils/contract.transport.test.js +145 -0
- package/dist/utils/contract.transport.test.js.map +1 -0
- package/dist/utils/cosmos.d.ts +391 -0
- package/dist/utils/cosmos.d.ts.map +1 -0
- package/dist/utils/cosmos.js +424 -0
- package/dist/utils/cosmos.js.map +1 -0
- package/dist/utils/decimals.d.ts +53 -0
- package/dist/utils/decimals.d.ts.map +1 -0
- package/dist/utils/decimals.js +131 -0
- package/dist/utils/decimals.js.map +1 -0
- package/dist/utils/decimals.test.d.ts +2 -0
- package/dist/utils/decimals.test.d.ts.map +1 -0
- package/dist/utils/decimals.test.js +526 -0
- package/dist/utils/decimals.test.js.map +1 -0
- package/dist/utils/filter.d.ts +3 -0
- package/dist/utils/filter.d.ts.map +1 -0
- package/dist/utils/filter.js +9 -0
- package/dist/utils/filter.js.map +1 -0
- package/dist/utils/fork.d.ts +55 -0
- package/dist/utils/fork.d.ts.map +1 -0
- package/dist/utils/fork.js +119 -0
- package/dist/utils/fork.js.map +1 -0
- package/dist/utils/gas.d.ts +30 -0
- package/dist/utils/gas.d.ts.map +1 -0
- package/dist/utils/gas.js +35 -0
- package/dist/utils/gas.js.map +1 -0
- package/dist/utils/gnosisSafe.d.ts +21 -0
- package/dist/utils/gnosisSafe.d.ts.map +1 -0
- package/dist/utils/gnosisSafe.js +193 -0
- package/dist/utils/gnosisSafe.js.map +1 -0
- package/dist/utils/gnosisSafe.test.d.ts +2 -0
- package/dist/utils/gnosisSafe.test.d.ts.map +1 -0
- package/dist/utils/gnosisSafe.test.js +78 -0
- package/dist/utils/gnosisSafe.test.js.map +1 -0
- package/dist/utils/ism.d.ts +193 -0
- package/dist/utils/ism.d.ts.map +1 -0
- package/dist/utils/ism.js +611 -0
- package/dist/utils/ism.js.map +1 -0
- package/dist/utils/ism.test.d.ts +2 -0
- package/dist/utils/ism.test.d.ts.map +1 -0
- package/dist/utils/ism.test.js +445 -0
- package/dist/utils/ism.test.js.map +1 -0
- package/dist/utils/logUtils.d.ts +4 -0
- package/dist/utils/logUtils.d.ts.map +1 -0
- package/dist/utils/logUtils.js +13 -0
- package/dist/utils/logUtils.js.map +1 -0
- package/dist/utils/numbers.d.ts +11 -0
- package/dist/utils/numbers.d.ts.map +1 -0
- package/dist/utils/numbers.js +36 -0
- package/dist/utils/numbers.js.map +1 -0
- package/dist/utils/numbers.test.d.ts +2 -0
- package/dist/utils/numbers.test.d.ts.map +1 -0
- package/dist/utils/numbers.test.js +80 -0
- package/dist/utils/numbers.test.js.map +1 -0
- package/dist/utils/provider.d.ts +6 -0
- package/dist/utils/provider.d.ts.map +1 -0
- package/dist/utils/provider.js +36 -0
- package/dist/utils/provider.js.map +1 -0
- package/dist/utils/schemas.d.ts +4 -0
- package/dist/utils/schemas.d.ts.map +1 -0
- package/dist/utils/schemas.js +15 -0
- package/dist/utils/schemas.js.map +1 -0
- package/dist/utils/schemas.test.d.ts +2 -0
- package/dist/utils/schemas.test.d.ts.map +1 -0
- package/dist/utils/schemas.test.js +33 -0
- package/dist/utils/schemas.test.js.map +1 -0
- package/dist/utils/sealevelSerialization.d.ts +50 -0
- package/dist/utils/sealevelSerialization.d.ts.map +1 -0
- package/dist/utils/sealevelSerialization.js +85 -0
- package/dist/utils/sealevelSerialization.js.map +1 -0
- package/dist/utils/starknet.d.ts +35 -0
- package/dist/utils/starknet.d.ts.map +1 -0
- package/dist/utils/starknet.js +89 -0
- package/dist/utils/starknet.js.map +1 -0
- package/dist/utils/transactions.d.ts +12 -0
- package/dist/utils/transactions.d.ts.map +1 -0
- package/dist/utils/transactions.js +17 -0
- package/dist/utils/transactions.js.map +1 -0
- package/dist/utils/validator.d.ts +5 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +18 -0
- package/dist/utils/validator.js.map +1 -0
- package/dist/utils/zksync.d.ts +8 -0
- package/dist/utils/zksync.d.ts.map +1 -0
- package/dist/utils/zksync.js +24 -0
- package/dist/utils/zksync.js.map +1 -0
- package/dist/warp/WarpCore.d.ts +286 -0
- package/dist/warp/WarpCore.d.ts.map +1 -0
- package/dist/warp/WarpCore.js +1144 -0
- package/dist/warp/WarpCore.js.map +1 -0
- package/dist/warp/WarpCore.test.d.ts +2 -0
- package/dist/warp/WarpCore.test.d.ts.map +1 -0
- package/dist/warp/WarpCore.test.js +1823 -0
- package/dist/warp/WarpCore.test.js.map +1 -0
- package/dist/warp/read.d.ts +19 -0
- package/dist/warp/read.d.ts.map +1 -0
- package/dist/warp/read.js +34 -0
- package/dist/warp/read.js.map +1 -0
- package/dist/warp/read.test.d.ts +2 -0
- package/dist/warp/read.test.d.ts.map +1 -0
- package/dist/warp/read.test.js +56 -0
- package/dist/warp/read.test.js.map +1 -0
- package/dist/warp/resolveDestinationToken.d.ts +23 -0
- package/dist/warp/resolveDestinationToken.d.ts.map +1 -0
- package/dist/warp/resolveDestinationToken.js +31 -0
- package/dist/warp/resolveDestinationToken.js.map +1 -0
- package/dist/warp/types.d.ts +122 -0
- package/dist/warp/types.d.ts.map +1 -0
- package/dist/warp/types.js +52 -0
- package/dist/warp/types.js.map +1 -0
- package/dist/warp/types.test.d.ts +2 -0
- package/dist/warp/types.test.d.ts.map +1 -0
- package/dist/warp/types.test.js +81 -0
- package/dist/warp/types.test.js.map +1 -0
- package/dist/zksync/ZKSyncDeployer.d.ts +59 -0
- package/dist/zksync/ZKSyncDeployer.d.ts.map +1 -0
- package/dist/zksync/ZKSyncDeployer.js +132 -0
- package/dist/zksync/ZKSyncDeployer.js.map +1 -0
- package/package.json +259 -3
|
@@ -0,0 +1,1280 @@
|
|
|
1
|
+
import { DelayedFlowRouterHookIsm__factory, MailboxClient__factory, Mailbox__factory, ProxyAdmin__factory, } from '@recoillink/core';
|
|
2
|
+
import { buildArtifact as coreBuildArtifact } from '@recoillink/core/buildArtifact.js';
|
|
3
|
+
import { createHookWriter, createWarpTokenWriter, validateIsmConfig, } from '@recoillink/deploy-sdk';
|
|
4
|
+
import { ProtocolType } from '@recoillink/provider-sdk';
|
|
5
|
+
import { ArtifactState } from '@recoillink/provider-sdk/artifact';
|
|
6
|
+
import { hookConfigToArtifact, } from '@recoillink/provider-sdk/hook';
|
|
7
|
+
import { DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY, TokenType as ProviderTokenType, warpConfigToArtifact, } from '@recoillink/provider-sdk/warp';
|
|
8
|
+
import { addressToBytes32, assert, eqAddress, isEVMLike, isNullish, isObjEmpty, isZeroishAddress, mapAllSettled, mustGet, objFilter, objKeys, objMap, promiseObjAll, rootLogger, } from '@recoillink/utils';
|
|
9
|
+
import { ExplorerLicenseType } from '../block-explorer/etherscan.js';
|
|
10
|
+
import { CCIPContractCache } from '../ccip/utils.js';
|
|
11
|
+
import { tokenFeeInputToFeeConfig } from '../fee/feeConfigMapping.js';
|
|
12
|
+
import { EvmHookModule } from '../hook/EvmHookModule.js';
|
|
13
|
+
import { hookTreeContainsRateLimited, mapHybridHookNodes, } from '../hook/utils.js';
|
|
14
|
+
import { EvmIsmModule } from '../ism/EvmIsmModule.js';
|
|
15
|
+
import { EvmIsmReader } from '../ism/EvmIsmReader.js';
|
|
16
|
+
import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
|
|
17
|
+
import { IsmType, } from '../ism/types.js';
|
|
18
|
+
import { altVmChainLookup } from '../metadata/ChainMetadataManager.js';
|
|
19
|
+
import { resolveRouterMapConfig, } from '../router/types.js';
|
|
20
|
+
import { EvmWarpModule } from '../token/EvmWarpModule.js';
|
|
21
|
+
import { deriveCctpDomains } from '../token/cctp.js';
|
|
22
|
+
import { MAX_GAS_OVERHEAD, TokenType, gasOverhead } from '../token/config.js';
|
|
23
|
+
import { hypERC20factories } from '../token/contracts.js';
|
|
24
|
+
import { HypERC20Deployer, HypERC721Deployer } from '../token/deploy.js';
|
|
25
|
+
import { assertTimelockConfigHasNoProxyAdminOwnerOverride, WarpRouteDeployConfigMailboxRequiredSchema, } from '../token/types.js';
|
|
26
|
+
import { throwIfNotMissingSelector } from '../utils/contract.js';
|
|
27
|
+
import { canonicalizeRemoteIsms, collectHybridIsmNodes, extractIsmAndHookFactoryAddresses, ismTreeContainsRateLimited, mapHybridIsmNodes, resolveDelayedFlowRemoteIsms, setRateLimitedIsmRecipient, } from '../utils/ism.js';
|
|
28
|
+
import { HyperlaneProxyFactoryDeployer } from './HyperlaneProxyFactoryDeployer.js';
|
|
29
|
+
import { hybridLeafDeployConfig, planWarpRouteHybrids, resolveHybridTrees, } from './warpHybridPlan.js';
|
|
30
|
+
import { ContractVerifier } from './verify/ContractVerifier.js';
|
|
31
|
+
const SUPPORTED_ALTVM_TOKEN_TYPES = new Set([
|
|
32
|
+
TokenType.synthetic,
|
|
33
|
+
TokenType.collateral,
|
|
34
|
+
TokenType.native,
|
|
35
|
+
TokenType.crossCollateral,
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Builds a `FeeReadContext` directly from a warp deploy config, bypassing
|
|
39
|
+
* `validateWarpConfigForAltVM` + `warpConfigToArtifact` +
|
|
40
|
+
* `buildFeeReadContextFromWarpArtifactConfig`. The read flow only needs the
|
|
41
|
+
* per-domain router set, not the full `ProviderWarpConfig` conversion, so
|
|
42
|
+
* this works for any token type (including EVM-only `xerc20`,
|
|
43
|
+
* `fastCollateral`, etc.) that the AltVM validator would reject.
|
|
44
|
+
*
|
|
45
|
+
* Mirrors `buildFeeReadContextFromWarpArtifactConfig` (provider-sdk) — same
|
|
46
|
+
* `DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY` injection so CC default-router
|
|
47
|
+
* quotes remain visible to the reader.
|
|
48
|
+
*/
|
|
49
|
+
export function buildFeeReadContextFromWarpDeployConfig(config, chainLookup) {
|
|
50
|
+
const knownRoutersPerDomain = {};
|
|
51
|
+
for (const [chainNameOrId, router] of Object.entries(config.remoteRouters ?? {})) {
|
|
52
|
+
const domain = chainLookup.getDomainId(chainNameOrId);
|
|
53
|
+
if (isNullish(domain))
|
|
54
|
+
continue;
|
|
55
|
+
const existing = knownRoutersPerDomain[domain] ?? new Set();
|
|
56
|
+
knownRoutersPerDomain[domain] = new Set([
|
|
57
|
+
...existing,
|
|
58
|
+
addressToBytes32(router.address),
|
|
59
|
+
DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY,
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
if (config.type === TokenType.crossCollateral &&
|
|
63
|
+
config.crossCollateralRouters) {
|
|
64
|
+
for (const [chainNameOrId, routers] of Object.entries(config.crossCollateralRouters)) {
|
|
65
|
+
const domain = chainLookup.getDomainId(chainNameOrId);
|
|
66
|
+
if (isNullish(domain))
|
|
67
|
+
continue;
|
|
68
|
+
const existing = knownRoutersPerDomain[domain] ?? new Set();
|
|
69
|
+
knownRoutersPerDomain[domain] = new Set([
|
|
70
|
+
...existing,
|
|
71
|
+
...routers.map((r) => addressToBytes32(r)),
|
|
72
|
+
DEFAULT_CROSS_COLLATERAL_FEE_ROUTER_KEY,
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return { knownRoutersPerDomain };
|
|
77
|
+
}
|
|
78
|
+
export function validateWarpConfigForAltVM(config, chain, protocol) {
|
|
79
|
+
if (!SUPPORTED_ALTVM_TOKEN_TYPES.has(config.type)) {
|
|
80
|
+
const supportedTypes = Array.from(SUPPORTED_ALTVM_TOKEN_TYPES).join(', ');
|
|
81
|
+
throw new Error(`Unsupported token type '${config.type}' for Alt-VM chain '${chain}'.\n` +
|
|
82
|
+
`Supported token types: ${supportedTypes}.`);
|
|
83
|
+
}
|
|
84
|
+
assert(!config.timelock, `Timelock config is not supported on Alt-VM chain '${chain}'.`);
|
|
85
|
+
if (config.interchainSecurityModule) {
|
|
86
|
+
validateIsmConfig(config.interchainSecurityModule, chain, 'warp config', protocol);
|
|
87
|
+
}
|
|
88
|
+
let scale;
|
|
89
|
+
if (typeof config.scale === 'number') {
|
|
90
|
+
scale = config.scale;
|
|
91
|
+
}
|
|
92
|
+
else if (!isNullish(config.scale)) {
|
|
93
|
+
assert(Number(config.scale.denominator) !== 0, 'scale denominator must be non-zero');
|
|
94
|
+
scale = Number(config.scale.numerator) / Number(config.scale.denominator);
|
|
95
|
+
}
|
|
96
|
+
const baseConfig = {
|
|
97
|
+
owner: config.owner,
|
|
98
|
+
mailbox: config.mailbox,
|
|
99
|
+
interchainSecurityModule: config.interchainSecurityModule,
|
|
100
|
+
hook: config.hook,
|
|
101
|
+
remoteRouters: config.remoteRouters,
|
|
102
|
+
destinationGas: config.destinationGas,
|
|
103
|
+
scale,
|
|
104
|
+
contractVersion: config.contractVersion,
|
|
105
|
+
fee: config.tokenFee
|
|
106
|
+
? tokenFeeInputToFeeConfig(config.tokenFee)
|
|
107
|
+
: undefined,
|
|
108
|
+
};
|
|
109
|
+
switch (config.type) {
|
|
110
|
+
case TokenType.collateral: {
|
|
111
|
+
if (!config.token) {
|
|
112
|
+
throw new Error(`Collateral token config for chain '${chain}' must specify 'token' address`);
|
|
113
|
+
}
|
|
114
|
+
const result = {
|
|
115
|
+
...baseConfig,
|
|
116
|
+
type: ProviderTokenType.collateral,
|
|
117
|
+
token: config.token,
|
|
118
|
+
};
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
case TokenType.synthetic: {
|
|
122
|
+
const result = {
|
|
123
|
+
...baseConfig,
|
|
124
|
+
type: ProviderTokenType.synthetic,
|
|
125
|
+
name: config.name,
|
|
126
|
+
symbol: config.symbol,
|
|
127
|
+
decimals: config.decimals,
|
|
128
|
+
metadataUri: config.metadataUri,
|
|
129
|
+
token: config.token,
|
|
130
|
+
};
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
case TokenType.crossCollateral: {
|
|
134
|
+
if (!config.token) {
|
|
135
|
+
throw new Error(`Cross-collateral token config for chain '${chain}' must specify 'token' address`);
|
|
136
|
+
}
|
|
137
|
+
const result = {
|
|
138
|
+
...baseConfig,
|
|
139
|
+
type: ProviderTokenType.crossCollateral,
|
|
140
|
+
token: config.token,
|
|
141
|
+
crossCollateralRouters: config.crossCollateralRouters,
|
|
142
|
+
};
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
case TokenType.native: {
|
|
146
|
+
const result = {
|
|
147
|
+
...baseConfig,
|
|
148
|
+
type: ProviderTokenType.native,
|
|
149
|
+
};
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
default:
|
|
153
|
+
throw new Error(`Unhandled token type '${config.type}' for Alt-VM chain '${chain}'.`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function assertWarpConfigTimelocksSupportedByProtocols({ multiProvider, warpDeployConfig, }) {
|
|
157
|
+
for (const [chain, config] of Object.entries(warpDeployConfig)) {
|
|
158
|
+
assertTimelockConfigHasNoProxyAdminOwnerOverride(config, chain);
|
|
159
|
+
const protocol = multiProvider.tryGetProtocol(chain);
|
|
160
|
+
assert(!config.timelock || (protocol && isEVMLike(protocol)), `Timelock config is not supported on Alt-VM chain '${chain}'.`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Subclass that injects rate-limited hook deployment between configureClients and
|
|
164
|
+
// transferOwnership so that setHook() is called while the deployer signer still owns the token.
|
|
165
|
+
class RateLimitedHookERC20Deployer extends HypERC20Deployer {
|
|
166
|
+
preTransferFn;
|
|
167
|
+
constructor(multiProvider, ismFactory, contractVerifier, preTransferFn) {
|
|
168
|
+
super(multiProvider, ismFactory, contractVerifier);
|
|
169
|
+
this.preTransferFn = preTransferFn;
|
|
170
|
+
}
|
|
171
|
+
async beforeTransferOwnership(contractsMap) {
|
|
172
|
+
await this.preTransferFn(objMap(contractsMap, (_, contracts) => getRouter(contracts).address));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Deploys a WHOLE warp route: its routers, plus the ISM and hook trees they
|
|
177
|
+
* install.
|
|
178
|
+
*
|
|
179
|
+
* Everything decidable from the config is decided before any gas is spent —
|
|
180
|
+
* the full `IsmConfigSchema`/`HookConfigSchema` refinement over both trees, the
|
|
181
|
+
* hybrid hook/ISM pairing (planWarpRouteHybrids), and the route-scoped
|
|
182
|
+
* delayed-flow invariants. The route-scoped ones read the config's chain set as
|
|
183
|
+
* "the route", so they belong to this entry point alone: shrinking the config
|
|
184
|
+
* does not narrow them, it enlarges what counts as outside the route. Use
|
|
185
|
+
* `executeWarpRouteExtensionDeploy` for the chains an extension adds.
|
|
186
|
+
*/
|
|
187
|
+
export async function executeWarpDeploy(warpDeployConfig, multiProvider, altVmSigners, registryAddresses, apiKeys) {
|
|
188
|
+
assertWarpConfigTimelocksSupportedByProtocols({
|
|
189
|
+
multiProvider,
|
|
190
|
+
warpDeployConfig,
|
|
191
|
+
});
|
|
192
|
+
WarpRouteDeployConfigMailboxRequiredSchema.parse(warpDeployConfig);
|
|
193
|
+
const args = {
|
|
194
|
+
warpDeployConfig,
|
|
195
|
+
multiProvider,
|
|
196
|
+
altVmSigners,
|
|
197
|
+
registryAddresses,
|
|
198
|
+
apiKeys,
|
|
199
|
+
};
|
|
200
|
+
const hybridPlan = planWarpRouteHybrids({ multiProvider, warpDeployConfig });
|
|
201
|
+
assertDelayedFlowRouteCoverage({ multiProvider, warpDeployConfig });
|
|
202
|
+
await assertDelayedFlowMailboxNonces(multiProvider, warpDeployConfig);
|
|
203
|
+
return deployWarpRouteChains(args, hybridPlan);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Deploys the chains an extension adds to an EXISTING route.
|
|
207
|
+
*
|
|
208
|
+
* Same engine as `executeWarpDeploy`, minus the invariants that measure the
|
|
209
|
+
* route by the config's own chain set — the caller holds the full route config
|
|
210
|
+
* and has already checked those (runWarpRouteApply). Everything per chain still
|
|
211
|
+
* runs here, so an extension cannot deploy a chain whose composition can never
|
|
212
|
+
* work.
|
|
213
|
+
*
|
|
214
|
+
* A separate entry point rather than a flag: which validation applies is a
|
|
215
|
+
* property of what the caller is deploying, not something to infer from the
|
|
216
|
+
* shape of the config it happens to pass.
|
|
217
|
+
*/
|
|
218
|
+
export async function executeWarpRouteExtensionDeploy(warpDeployConfig, multiProvider, altVmSigners, registryAddresses, apiKeys) {
|
|
219
|
+
assertWarpConfigTimelocksSupportedByProtocols({
|
|
220
|
+
multiProvider,
|
|
221
|
+
warpDeployConfig,
|
|
222
|
+
});
|
|
223
|
+
WarpRouteDeployConfigMailboxRequiredSchema.parse(warpDeployConfig);
|
|
224
|
+
const args = {
|
|
225
|
+
warpDeployConfig,
|
|
226
|
+
multiProvider,
|
|
227
|
+
altVmSigners,
|
|
228
|
+
registryAddresses,
|
|
229
|
+
apiKeys,
|
|
230
|
+
};
|
|
231
|
+
const hybridPlan = planWarpRouteHybrids({ multiProvider, warpDeployConfig });
|
|
232
|
+
assertDelayedFlowLegCoverage(warpDeployConfig);
|
|
233
|
+
await assertDelayedFlowMailboxNonces(multiProvider, warpDeployConfig);
|
|
234
|
+
return deployWarpRouteChains(args, hybridPlan);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The staged deploy engine shared by both entry points. Called only after the
|
|
238
|
+
* whole config has been parsed and validated, so nothing here re-decides
|
|
239
|
+
* whether the route is deployable — it just deploys it in an order that never
|
|
240
|
+
* leaves an unsafe route reachable:
|
|
241
|
+
*
|
|
242
|
+
* 1. routers are deployed BARE on every chain that installs a hybrid: the
|
|
243
|
+
* hybrid constructors read the live router's `token()` / `mailbox()`, so the
|
|
244
|
+
* router has to exist first, and it must not be usable in the meantime;
|
|
245
|
+
* 2. the hybrid leaf is deployed exactly once per chain and bound to that
|
|
246
|
+
* router;
|
|
247
|
+
* 3. DELAYED_FLOW_ROUTER counterparts are enrolled once every chain's instance
|
|
248
|
+
* address is known, while the deployer still owns the fresh instances;
|
|
249
|
+
* 4. the leaf address replaces the hybrid node in BOTH trees, and the remaining
|
|
250
|
+
* parents are deployed through the ordinary modules;
|
|
251
|
+
* 5. hooks are installed route-wide, then read back, and only then are the ISMs
|
|
252
|
+
* installed — a router whose hybrid ISM is live before its hook is one that
|
|
253
|
+
* rejects every delivery, because nothing sent the preverification.
|
|
254
|
+
*
|
|
255
|
+
* Router enrollment and ownership transfer happen after this returns
|
|
256
|
+
* (enrollCrossChainRouters), so no transfer can be dispatched through a
|
|
257
|
+
* half-wired router.
|
|
258
|
+
*/
|
|
259
|
+
async function deployWarpRouteChains({ warpDeployConfig, multiProvider, altVmSigners, registryAddresses, apiKeys, }, hybridPlan) {
|
|
260
|
+
const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
|
|
261
|
+
const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider, contractVerifier);
|
|
262
|
+
// RATE_LIMITED ISM trees are deployed after the router exists: the
|
|
263
|
+
// constructor takes the token as `recipient`. Unlike the hybrids they are
|
|
264
|
+
// only an ISM, so TokenDeployer wires them itself, before it hands ownership
|
|
265
|
+
// over.
|
|
266
|
+
const rateLimitedIsmSnapshot = {};
|
|
267
|
+
for (const [chain, config] of Object.entries(warpDeployConfig)) {
|
|
268
|
+
// Hybrid chains deploy the whole resolved parent tree in the staged pass;
|
|
269
|
+
// passing the same tree to TokenDeployer would deploy it a second time.
|
|
270
|
+
if (hybridPlan[chain])
|
|
271
|
+
continue;
|
|
272
|
+
if (typeof config.interchainSecurityModule !== 'object')
|
|
273
|
+
continue;
|
|
274
|
+
const ism = config.interchainSecurityModule;
|
|
275
|
+
if (!ismTreeContainsRateLimited(ism))
|
|
276
|
+
continue;
|
|
277
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
278
|
+
assert(protocol === ProtocolType.Ethereum || protocol === ProtocolType.Tron, `${IsmType.RATE_LIMITED} is only supported on Ethereum and Tron chains, but chain ${chain} has protocol ${protocol}`);
|
|
279
|
+
rateLimitedIsmSnapshot[chain] = ism;
|
|
280
|
+
}
|
|
281
|
+
// Hooks containing RATE_LIMITED need the token router address as sender, so they are deferred
|
|
282
|
+
// until after token deployment. resolveWarpIsmAndHook populates this map (EVM/Tron only) and
|
|
283
|
+
// returns undefined for those hooks, causing them to be set later via setHook().
|
|
284
|
+
const rateLimitedHookSnapshots = {};
|
|
285
|
+
// For each chain in WarpRouteConfig, deploy each Ism Factory, if it's not in the registry
|
|
286
|
+
// Then return a modified config with the ism and/or hook address as a string.
|
|
287
|
+
// Chains that install a hybrid get NEITHER surface here: their router is
|
|
288
|
+
// deployed bare and wired in the staged pass below.
|
|
289
|
+
const modifiedConfig = await resolveWarpIsmAndHook(warpDeployConfig, multiProvider, altVmSigners, registryAddresses, ismFactoryDeployer, contractVerifier, rateLimitedHookSnapshots, hybridPlan);
|
|
290
|
+
// Initialize with unsupported chains so that they are enrolled
|
|
291
|
+
let deployedContracts = objMap(objFilter(warpDeployConfig, (_chain, config) => !!config.foreignDeployment), (chain, config) => {
|
|
292
|
+
assert(config.foreignDeployment, `Expected foreignDeployment field to be defined on ${chain} after filtering`);
|
|
293
|
+
return config.foreignDeployment;
|
|
294
|
+
});
|
|
295
|
+
// get unique list of protocols
|
|
296
|
+
const protocols = Array.from(new Set(Object.keys(modifiedConfig).map((chainName) => multiProvider.getProtocol(chainName))));
|
|
297
|
+
for (const protocol of protocols) {
|
|
298
|
+
const protocolSpecificConfig = objFilter(modifiedConfig, (chainName, config) => multiProvider.getProtocol(chainName) === protocol &&
|
|
299
|
+
!config.foreignDeployment);
|
|
300
|
+
if (isObjEmpty(protocolSpecificConfig)) {
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
switch (protocol) {
|
|
304
|
+
case ProtocolType.Tron:
|
|
305
|
+
case ProtocolType.Ethereum: {
|
|
306
|
+
const ismFactory = HyperlaneIsmFactory.fromAddressesMap(registryAddresses, multiProvider, undefined, contractVerifier);
|
|
307
|
+
assert(!warpDeployConfig.isNft || isObjEmpty(rateLimitedHookSnapshots), 'RATE_LIMITED hooks are not supported for NFT warp routes (HypERC721Deployer has no beforeTransferOwnership override)');
|
|
308
|
+
const deployer = warpDeployConfig.isNft
|
|
309
|
+
? new HypERC721Deployer(multiProvider)
|
|
310
|
+
: isObjEmpty(rateLimitedHookSnapshots)
|
|
311
|
+
? new HypERC20Deployer(multiProvider, ismFactory, contractVerifier) // TODO: replace with EvmERC20WarpModule
|
|
312
|
+
: new RateLimitedHookERC20Deployer(multiProvider, ismFactory, contractVerifier,
|
|
313
|
+
// Called BEFORE transferOwnership — deployer signer still owns the token here.
|
|
314
|
+
async (deployedTokens) => {
|
|
315
|
+
const chainSnapshots = objFilter(rateLimitedHookSnapshots, (chain, _v) => chain in deployedTokens);
|
|
316
|
+
if (isObjEmpty(chainSnapshots))
|
|
317
|
+
return;
|
|
318
|
+
// The deployed address is deliberately NOT written back into
|
|
319
|
+
// warpDeployConfig: the caller persists that object to the
|
|
320
|
+
// registry, which stores declarative config, not the runtime
|
|
321
|
+
// addresses of this run.
|
|
322
|
+
await deployAndWireRateLimitedHooks(chainSnapshots, deployedTokens, multiProvider, contractVerifier);
|
|
323
|
+
});
|
|
324
|
+
const chainSet = new Set(Object.keys(protocolSpecificConfig));
|
|
325
|
+
const deferredForBatch = objFilter(rateLimitedIsmSnapshot, (_chain, _ismConfig) => chainSet.has(_chain));
|
|
326
|
+
// Deploy as the deployer signer (intermediate owner), mirroring the
|
|
327
|
+
// AltVM branch below. Cross-chain router enrollment runs after deploy
|
|
328
|
+
// in enrollCrossChainRouters, submitted by the deployer key, and hands
|
|
329
|
+
// ownership to the configured owner. If deploy set the configured owner
|
|
330
|
+
// up front, the deployer could no longer sign those post-deploy
|
|
331
|
+
// enrollment txs. Only the top-level router owner is overridden; ISM and
|
|
332
|
+
// hook owners come from their own config sub-trees and are unaffected.
|
|
333
|
+
const intermediateOwnerConfig = await promiseObjAll(objMap(protocolSpecificConfig, async (chain, config) => ({
|
|
334
|
+
...config,
|
|
335
|
+
// ALRBs have no post-deploy router enrollment. Preserve their
|
|
336
|
+
// configured owner here so TokenDeployer can deploy with the
|
|
337
|
+
// signer as the constructor owner and then perform the final
|
|
338
|
+
// ownership transfer before returning.
|
|
339
|
+
owner: config.type === TokenType.atomicLocalRebalancing
|
|
340
|
+
? config.owner
|
|
341
|
+
: await multiProvider.getSigner(chain).getAddress(),
|
|
342
|
+
})));
|
|
343
|
+
const deferRouterEnrollment = Object.keys(protocolSpecificConfig).some((chain) => chain in hybridPlan);
|
|
344
|
+
const evmContracts = warpDeployConfig.isNft
|
|
345
|
+
? await deployer.deploy(intermediateOwnerConfig)
|
|
346
|
+
: await deployer.deploy(intermediateOwnerConfig, deferredForBatch, {
|
|
347
|
+
deferRouterEnrollment,
|
|
348
|
+
});
|
|
349
|
+
deployedContracts = {
|
|
350
|
+
...deployedContracts,
|
|
351
|
+
...objMap(evmContracts, (_, contracts) => getRouter(contracts).address),
|
|
352
|
+
};
|
|
353
|
+
break;
|
|
354
|
+
}
|
|
355
|
+
default: {
|
|
356
|
+
const chainLookup = altVmChainLookup(multiProvider);
|
|
357
|
+
const deployResults = {};
|
|
358
|
+
for (const chain of objKeys(protocolSpecificConfig)) {
|
|
359
|
+
const config = mustGet(protocolSpecificConfig, chain);
|
|
360
|
+
const signer = mustGet(altVmSigners, chain);
|
|
361
|
+
const chainMetadata = chainLookup.getChainMetadata(chain);
|
|
362
|
+
const writer = createWarpTokenWriter(chainMetadata, chainLookup, signer);
|
|
363
|
+
// Deploy as the signer (intermediate owner), mirroring the EVM
|
|
364
|
+
// deployer (see TokenDeployer.deploy). Cross-chain router enrollment
|
|
365
|
+
// runs after deploy in enrollCrossChainRouters, submitted by the
|
|
366
|
+
// deployer key; it also hands ownership to the configured owner. If
|
|
367
|
+
// create() set the configured owner up front, the deployer could no
|
|
368
|
+
// longer sign those post-deploy enrollment txs.
|
|
369
|
+
const intermediateOwnerConfig = {
|
|
370
|
+
...config,
|
|
371
|
+
owner: signer.getSignerAddress(),
|
|
372
|
+
};
|
|
373
|
+
const artifact = warpConfigToArtifact(validateWarpConfigForAltVM(intermediateOwnerConfig, chain, chainMetadata.protocol), chainLookup);
|
|
374
|
+
const [deployed] = await writer.create(artifact);
|
|
375
|
+
deployResults[chain] = deployed.deployed.address;
|
|
376
|
+
}
|
|
377
|
+
deployedContracts = {
|
|
378
|
+
...deployedContracts,
|
|
379
|
+
...deployResults,
|
|
380
|
+
};
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
await wireHybridHookIsms({
|
|
386
|
+
hybridPlan,
|
|
387
|
+
multiProvider,
|
|
388
|
+
registryAddresses,
|
|
389
|
+
contractVerifier,
|
|
390
|
+
warpDeployConfig,
|
|
391
|
+
deployedContracts,
|
|
392
|
+
});
|
|
393
|
+
return deployedContracts;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Stages 2 to 5 of the deploy: turn bare routers into fully wired hybrid legs.
|
|
397
|
+
*
|
|
398
|
+
* Split out of the protocol loop above because every stage is a route-wide
|
|
399
|
+
* barrier — stage N must have completed on EVERY chain before stage N+1 starts
|
|
400
|
+
* on ANY of them. Enrollment needs all instance addresses; the hook install
|
|
401
|
+
* needs every counterpart enrolled; the ISM install needs every hook live.
|
|
402
|
+
*/
|
|
403
|
+
async function wireHybridHookIsms({ hybridPlan, multiProvider, registryAddresses, contractVerifier, warpDeployConfig, deployedContracts, }) {
|
|
404
|
+
if (isObjEmpty(hybridPlan))
|
|
405
|
+
return;
|
|
406
|
+
const ismFactory = HyperlaneIsmFactory.fromAddressesMap(registryAddresses, multiProvider, undefined, contractVerifier);
|
|
407
|
+
// Stage 2 — one instance per chain, bound to the router deployed above.
|
|
408
|
+
// deployInternal rather than deploy: the leaf on its own is exactly the shape
|
|
409
|
+
// IsmConfigSchema rejects (a hybrid outside its mandatory aggregation), and
|
|
410
|
+
// the composition it would re-check was already validated over the whole tree
|
|
411
|
+
// by planWarpRouteHybrids.
|
|
412
|
+
const hybridAddresses = await promiseObjAll(objMap(hybridPlan, async (chain, entry) => {
|
|
413
|
+
const router = mustGet(deployedContracts, chain);
|
|
414
|
+
const chainAddresses = mustGet(registryAddresses, chain);
|
|
415
|
+
const leaf = hybridLeafDeployConfig({
|
|
416
|
+
entry,
|
|
417
|
+
warpRouter: router,
|
|
418
|
+
deployerAddress: await multiProvider.getSigner(chain).getAddress(),
|
|
419
|
+
});
|
|
420
|
+
rootLogger.info(`Deploying ${leaf.type} on ${chain} for router ${router}`);
|
|
421
|
+
const deployed = await ismFactory.deployInternal({
|
|
422
|
+
destination: chain,
|
|
423
|
+
config: leaf,
|
|
424
|
+
mailbox: chainAddresses.mailbox,
|
|
425
|
+
});
|
|
426
|
+
return deployed.address;
|
|
427
|
+
}));
|
|
428
|
+
// Stage 3 — pair the DELAYED_FLOW_ROUTER instances with each other while the
|
|
429
|
+
// deployer still owns them. Ownership moves to the configured owner in the
|
|
430
|
+
// route's final pass (enrollCrossChainRouters), which is also what re-runs
|
|
431
|
+
// this reconciliation for a route that was only partly enrolled.
|
|
432
|
+
await enrollDelayedFlowInstances({
|
|
433
|
+
hybridPlan,
|
|
434
|
+
multiProvider,
|
|
435
|
+
hybridAddresses,
|
|
436
|
+
});
|
|
437
|
+
// Stage 4 — substitute the shared address into both trees and deploy whatever
|
|
438
|
+
// parents remain through the ordinary modules.
|
|
439
|
+
const wiring = await promiseObjAll(objMap(hybridPlan, async (chain, entry) => {
|
|
440
|
+
const hybrid = mustGet(hybridAddresses, chain);
|
|
441
|
+
const router = mustGet(deployedContracts, chain);
|
|
442
|
+
const chainAddresses = mustGet(registryAddresses, chain);
|
|
443
|
+
const resolved = resolveHybridTrees(entry, hybrid);
|
|
444
|
+
const resolvedIsm = setRateLimitedIsmRecipient(resolved.ism, router, mustGet(warpDeployConfig, chain).owner);
|
|
445
|
+
const ccipContractCache = new CCIPContractCache(registryAddresses);
|
|
446
|
+
const proxyFactoryFactories = extractIsmAndHookFactoryAddresses(chainAddresses);
|
|
447
|
+
const ism = typeof resolvedIsm === 'string'
|
|
448
|
+
? resolvedIsm
|
|
449
|
+
: await deployIsmTree({
|
|
450
|
+
chain,
|
|
451
|
+
multiProvider,
|
|
452
|
+
chainAddresses,
|
|
453
|
+
config: resolvedIsm,
|
|
454
|
+
ccipContractCache,
|
|
455
|
+
contractVerifier,
|
|
456
|
+
proxyFactoryFactories,
|
|
457
|
+
});
|
|
458
|
+
const hook = typeof resolved.hook === 'string'
|
|
459
|
+
? resolved.hook
|
|
460
|
+
: await deployHookTree({
|
|
461
|
+
chain,
|
|
462
|
+
multiProvider,
|
|
463
|
+
chainAddresses,
|
|
464
|
+
config: resolved.hook,
|
|
465
|
+
ccipContractCache,
|
|
466
|
+
contractVerifier,
|
|
467
|
+
proxyFactoryFactories,
|
|
468
|
+
proxyAdminAddress: mustGet(warpDeployConfig, chain).proxyAdmin
|
|
469
|
+
?.address,
|
|
470
|
+
});
|
|
471
|
+
return { router, hybrid, ism, hook };
|
|
472
|
+
}));
|
|
473
|
+
// Stage 5 — hooks route-wide, barrier, then ISMs route-wide.
|
|
474
|
+
await installHybridSurfaces({ multiProvider, wiring });
|
|
475
|
+
}
|
|
476
|
+
async function deployIsmTree({ chain, multiProvider, chainAddresses, config, ccipContractCache, contractVerifier, proxyFactoryFactories, }) {
|
|
477
|
+
const module = await EvmIsmModule.create({
|
|
478
|
+
chain,
|
|
479
|
+
mailbox: chainAddresses.mailbox,
|
|
480
|
+
multiProvider,
|
|
481
|
+
proxyFactoryFactories,
|
|
482
|
+
config,
|
|
483
|
+
ccipContractCache,
|
|
484
|
+
contractVerifier,
|
|
485
|
+
});
|
|
486
|
+
const { deployedIsm } = module.serialize();
|
|
487
|
+
assert(deployedIsm, `Failed to deploy the ISM tree on ${chain}`);
|
|
488
|
+
return deployedIsm;
|
|
489
|
+
}
|
|
490
|
+
async function deployHookTree({ chain, multiProvider, chainAddresses, config, ccipContractCache, contractVerifier, proxyFactoryFactories, proxyAdminAddress, }) {
|
|
491
|
+
const resolvedProxyAdmin = proxyAdminAddress ??
|
|
492
|
+
(await multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), []))
|
|
493
|
+
.address;
|
|
494
|
+
const module = await EvmHookModule.create({
|
|
495
|
+
chain,
|
|
496
|
+
multiProvider,
|
|
497
|
+
coreAddresses: {
|
|
498
|
+
mailbox: chainAddresses.mailbox,
|
|
499
|
+
proxyAdmin: resolvedProxyAdmin,
|
|
500
|
+
},
|
|
501
|
+
config,
|
|
502
|
+
ccipContractCache,
|
|
503
|
+
contractVerifier,
|
|
504
|
+
proxyFactoryFactories,
|
|
505
|
+
});
|
|
506
|
+
const { deployedHook } = module.serialize();
|
|
507
|
+
assert(deployedHook, `Failed to deploy the hook tree on ${chain}`);
|
|
508
|
+
return deployedHook;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Enrolls every DELAYED_FLOW_ROUTER instance of the route with every other one.
|
|
512
|
+
*
|
|
513
|
+
* Runs once all instance addresses exist and while the deployer still owns them
|
|
514
|
+
* (`hybridLeafDeployConfig` keeps DFR ownership with the deployer for exactly
|
|
515
|
+
* this reason), so a fresh route needs no owner-gated batch. Route-derived
|
|
516
|
+
* peers override configured entries for the same chains; configured external
|
|
517
|
+
* peers remain available for unusual topologies.
|
|
518
|
+
*/
|
|
519
|
+
async function enrollDelayedFlowInstances({ hybridPlan, multiProvider, hybridAddresses, }) {
|
|
520
|
+
const delayedChains = Object.keys(hybridPlan).filter((chain) => hybridPlan[chain].node.type === IsmType.DELAYED_FLOW_ROUTER);
|
|
521
|
+
if (delayedChains.length === 0)
|
|
522
|
+
return;
|
|
523
|
+
await Promise.all(delayedChains.map(async (chain) => {
|
|
524
|
+
const node = hybridPlan[chain].node;
|
|
525
|
+
assert(node.type === IsmType.DELAYED_FLOW_ROUTER, `Unreachable: ${chain} was filtered as a delayed-flow chain`);
|
|
526
|
+
const ismAddress = mustGet(hybridAddresses, chain);
|
|
527
|
+
const derived = Object.fromEntries(delayedChains
|
|
528
|
+
.filter((otherChain) => otherChain !== chain)
|
|
529
|
+
.map((otherChain) => [
|
|
530
|
+
otherChain,
|
|
531
|
+
addressToBytes32(mustGet(hybridAddresses, otherChain)),
|
|
532
|
+
]));
|
|
533
|
+
const remoteIsms = resolveDelayedFlowRemoteIsms(node.remoteIsms, derived, `${IsmType.DELAYED_FLOW_ROUTER} ${ismAddress} on ${chain}`, multiProvider);
|
|
534
|
+
if (!remoteIsms || isObjEmpty(remoteIsms))
|
|
535
|
+
return;
|
|
536
|
+
const domains = [];
|
|
537
|
+
const routers = [];
|
|
538
|
+
for (const [remoteChain, router] of Object.entries(remoteIsms)) {
|
|
539
|
+
domains.push(multiProvider.getDomainId(remoteChain));
|
|
540
|
+
routers.push(router);
|
|
541
|
+
}
|
|
542
|
+
rootLogger.info(`Enrolling ${domains.length} counterpart(s) on ${IsmType.DELAYED_FLOW_ROUTER} ${ismAddress} (${chain})`);
|
|
543
|
+
const instance = DelayedFlowRouterHookIsm__factory.connect(ismAddress, multiProvider.getSigner(chain));
|
|
544
|
+
await multiProvider.handleTx(chain, instance.enrollRemoteRouters(domains, routers, multiProvider.getTransactionOverrides(chain)));
|
|
545
|
+
}));
|
|
546
|
+
}
|
|
547
|
+
/** Installs hooks route-wide before installing the corresponding ISMs. */
|
|
548
|
+
async function installHybridSurfaces({ multiProvider, wiring, }) {
|
|
549
|
+
await promiseObjAll(objMap(wiring, async (chain, { router, hook }) => {
|
|
550
|
+
rootLogger.info(`Installing hook ${hook} on router ${router} (${chain})`);
|
|
551
|
+
await multiProvider.sendTransaction(chain, {
|
|
552
|
+
to: router,
|
|
553
|
+
data: MailboxClient__factory.createInterface().encodeFunctionData('setHook', [hook]),
|
|
554
|
+
});
|
|
555
|
+
}));
|
|
556
|
+
await promiseObjAll(objMap(wiring, async (chain, { router, ism }) => {
|
|
557
|
+
rootLogger.info(`Installing ISM ${ism} on router ${router} (${chain})`);
|
|
558
|
+
await multiProvider.sendTransaction(chain, {
|
|
559
|
+
to: router,
|
|
560
|
+
data: MailboxClient__factory.createInterface().encodeFunctionData('setInterchainSecurityModule', [ism]),
|
|
561
|
+
});
|
|
562
|
+
}));
|
|
563
|
+
}
|
|
564
|
+
async function deployAndWireRateLimitedHooks(snapshots, deployedTokens, multiProvider, contractVerifier) {
|
|
565
|
+
return promiseObjAll(objMap(snapshots, async (chain, { hookConfig, chainAddresses, ccipContractCache, proxyAdminAddress }) => {
|
|
566
|
+
const tokenAddress = mustGet(deployedTokens, chain);
|
|
567
|
+
assert(chainAddresses, `No registry addresses for ${chain}`);
|
|
568
|
+
const resolvedProxyAdminAddress = proxyAdminAddress ??
|
|
569
|
+
(await multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), [])).address;
|
|
570
|
+
const evmHookModule = await EvmHookModule.create({
|
|
571
|
+
chain,
|
|
572
|
+
multiProvider,
|
|
573
|
+
coreAddresses: {
|
|
574
|
+
mailbox: chainAddresses.mailbox,
|
|
575
|
+
proxyAdmin: resolvedProxyAdminAddress,
|
|
576
|
+
rateLimitedSender: tokenAddress,
|
|
577
|
+
},
|
|
578
|
+
config: hookConfig,
|
|
579
|
+
ccipContractCache,
|
|
580
|
+
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
581
|
+
contractVerifier,
|
|
582
|
+
});
|
|
583
|
+
const { deployedHook } = evmHookModule.serialize();
|
|
584
|
+
assert(deployedHook, `Failed to get deployed hook address for ${chain}`);
|
|
585
|
+
rootLogger.info(`Wiring RateLimitedHook ${deployedHook} to token ${tokenAddress} on ${chain}`);
|
|
586
|
+
const txOverrides = multiProvider.getTransactionOverrides(chain);
|
|
587
|
+
const signer = multiProvider.getSigner(chain);
|
|
588
|
+
const token = MailboxClient__factory.connect(tokenAddress, signer);
|
|
589
|
+
await multiProvider.handleTx(chain, token.setHook(deployedHook, txOverrides));
|
|
590
|
+
return deployedHook;
|
|
591
|
+
}));
|
|
592
|
+
}
|
|
593
|
+
async function resolveWarpIsmAndHook(warpConfig, multiProvider, altVmSigners, registryAddresses, ismFactoryDeployer, contractVerifier, rateLimitedHookSnapshots, hybridPlan) {
|
|
594
|
+
return promiseObjAll(objMap(warpConfig, async (chain, config) => {
|
|
595
|
+
const ccipContractCache = new CCIPContractCache(registryAddresses);
|
|
596
|
+
const chainAddresses = registryAddresses[chain];
|
|
597
|
+
if (!chainAddresses) {
|
|
598
|
+
throw new Error(`Registry factory addresses not found for ${chain}.`);
|
|
599
|
+
}
|
|
600
|
+
// A chain whose composition includes a hybrid deploys its router BARE.
|
|
601
|
+
// Both surfaces reference one instance whose constructor reads the live
|
|
602
|
+
// router, so neither tree can be built yet — and leaving the router
|
|
603
|
+
// without an ISM or hook until both are ready is what keeps a
|
|
604
|
+
// half-wired route from being usable.
|
|
605
|
+
if (hybridPlan[chain]) {
|
|
606
|
+
rootLogger.info(`Deploying ${chain} router bare: its ${hybridPlan[chain].node.type} is wired after the router exists`);
|
|
607
|
+
return {
|
|
608
|
+
...config,
|
|
609
|
+
interchainSecurityModule: undefined,
|
|
610
|
+
hook: undefined,
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
614
|
+
const ism = protocol === ProtocolType.Ethereum || protocol === ProtocolType.Tron
|
|
615
|
+
? await createWarpIsm({
|
|
616
|
+
ccipContractCache,
|
|
617
|
+
chain,
|
|
618
|
+
chainAddresses,
|
|
619
|
+
multiProvider,
|
|
620
|
+
contractVerifier,
|
|
621
|
+
warpConfig: config,
|
|
622
|
+
})
|
|
623
|
+
: config.interchainSecurityModule;
|
|
624
|
+
const hook = await createWarpHook({
|
|
625
|
+
ccipContractCache,
|
|
626
|
+
chain,
|
|
627
|
+
chainAddresses,
|
|
628
|
+
multiProvider,
|
|
629
|
+
altVmSigners,
|
|
630
|
+
contractVerifier,
|
|
631
|
+
ismFactoryDeployer,
|
|
632
|
+
warpConfig: config,
|
|
633
|
+
rateLimitedHookSnapshots,
|
|
634
|
+
});
|
|
635
|
+
// Spread instead of mutating config in place — the caller holds a reference
|
|
636
|
+
// to warpDeployConfig[chain] and uses it for registry persistence; mutating
|
|
637
|
+
// would wipe the RATE_LIMITED stanza from the persisted YAML.
|
|
638
|
+
return {
|
|
639
|
+
...config,
|
|
640
|
+
interchainSecurityModule: ism,
|
|
641
|
+
hook,
|
|
642
|
+
};
|
|
643
|
+
}));
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Deploys the Warp ISM for a given config
|
|
647
|
+
*
|
|
648
|
+
* @returns The deployed ism address
|
|
649
|
+
*/
|
|
650
|
+
async function createWarpIsm({ ccipContractCache, chain, chainAddresses, multiProvider, contractVerifier, warpConfig, }) {
|
|
651
|
+
const { interchainSecurityModule } = warpConfig;
|
|
652
|
+
if (!interchainSecurityModule ||
|
|
653
|
+
typeof interchainSecurityModule === 'string') {
|
|
654
|
+
rootLogger.info(`Config Ism is ${!interchainSecurityModule ? 'empty' : interchainSecurityModule}, skipping deployment.`);
|
|
655
|
+
return interchainSecurityModule;
|
|
656
|
+
}
|
|
657
|
+
// A RATE_LIMITED ISM has a chicken-and-egg problem: its constructor requires
|
|
658
|
+
// the token address as `recipient`, but ISMs are deployed here — before the
|
|
659
|
+
// token exists. Skip any tree containing one; TokenDeployer.setRateLimitedIsms
|
|
660
|
+
// deploys it after the router and wires it with setInterchainSecurityModule()
|
|
661
|
+
// while the deployer still owns the router. (Hybrid hook/ISM trees never
|
|
662
|
+
// reach this function — resolveWarpIsmAndHook returns their chains bare.)
|
|
663
|
+
if (ismTreeContainsRateLimited(interchainSecurityModule)) {
|
|
664
|
+
rootLogger.info(`Skipping ISM deployment for ${chain} (contains a ${IsmType.RATE_LIMITED} ISM), will deploy after token.`);
|
|
665
|
+
return undefined;
|
|
666
|
+
}
|
|
667
|
+
rootLogger.info(`Loading registry factory addresses for ${chain}...`);
|
|
668
|
+
rootLogger.info(`Creating ${interchainSecurityModule.type} ISM for token on ${chain} chain...`);
|
|
669
|
+
rootLogger.info(`Finished creating ${interchainSecurityModule.type} ISM for token on ${chain} chain.`);
|
|
670
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
671
|
+
assert(protocol === ProtocolType.Ethereum || protocol === ProtocolType.Tron, `Expected an Ethereum or Tron chain, got ${protocol} for ${chain}`);
|
|
672
|
+
const evmIsmModule = await EvmIsmModule.create({
|
|
673
|
+
chain,
|
|
674
|
+
mailbox: chainAddresses.mailbox,
|
|
675
|
+
multiProvider,
|
|
676
|
+
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
677
|
+
config: interchainSecurityModule,
|
|
678
|
+
ccipContractCache,
|
|
679
|
+
contractVerifier,
|
|
680
|
+
});
|
|
681
|
+
const { deployedIsm } = evmIsmModule.serialize();
|
|
682
|
+
return deployedIsm;
|
|
683
|
+
}
|
|
684
|
+
async function createWarpHook({ ccipContractCache, chain, chainAddresses, multiProvider, altVmSigners, contractVerifier, warpConfig, rateLimitedHookSnapshots, }) {
|
|
685
|
+
const { hook } = warpConfig;
|
|
686
|
+
if (!hook || typeof hook === 'string') {
|
|
687
|
+
rootLogger.info(`Config Hook is ${!hook ? 'empty' : hook}, skipping deployment.`);
|
|
688
|
+
return hook;
|
|
689
|
+
}
|
|
690
|
+
// RATE_LIMITED hooks need the token router address as sender — defer until post-token deploy.
|
|
691
|
+
// Only EVM/Tron support EvmHookModule; foreignDeployment and non-EVM chains cannot wire the hook.
|
|
692
|
+
if (hookTreeContainsRateLimited(hook)) {
|
|
693
|
+
assert(!warpConfig.foreignDeployment, `RATE_LIMITED hook configured on ${chain} but it is a foreignDeployment — hook cannot be wired post-deploy`);
|
|
694
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
695
|
+
assert(protocol === ProtocolType.Ethereum || protocol === ProtocolType.Tron, `RATE_LIMITED hook is only supported on EVM/Tron chains; ${chain} uses protocol ${protocol}`);
|
|
696
|
+
rootLogger.info(`RATE_LIMITED hook on ${chain} — deferring deployment until after token deployment`);
|
|
697
|
+
rateLimitedHookSnapshots[chain] = {
|
|
698
|
+
hookConfig: hook,
|
|
699
|
+
chainAddresses,
|
|
700
|
+
ccipContractCache,
|
|
701
|
+
proxyAdminAddress: warpConfig.proxyAdmin?.address,
|
|
702
|
+
};
|
|
703
|
+
return undefined;
|
|
704
|
+
}
|
|
705
|
+
rootLogger.info(`Loading registry factory addresses for ${chain}...`);
|
|
706
|
+
rootLogger.info(`Creating ${hook.type} Hook for token on ${chain} chain...`);
|
|
707
|
+
const protocolType = multiProvider.getProtocol(chain);
|
|
708
|
+
switch (protocolType) {
|
|
709
|
+
case ProtocolType.Tron:
|
|
710
|
+
case ProtocolType.Ethereum: {
|
|
711
|
+
rootLogger.info(`Loading registry factory addresses for ${chain}...`);
|
|
712
|
+
rootLogger.info(`Creating ${hook.type} Hook for token on ${chain} chain...`);
|
|
713
|
+
// If config.proxyadmin.address exists, then use that. otherwise deploy a new proxyAdmin
|
|
714
|
+
const proxyAdminAddress = warpConfig.proxyAdmin?.address ??
|
|
715
|
+
(await multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), []))
|
|
716
|
+
.address;
|
|
717
|
+
const evmHookModule = await EvmHookModule.create({
|
|
718
|
+
chain,
|
|
719
|
+
multiProvider: multiProvider,
|
|
720
|
+
coreAddresses: {
|
|
721
|
+
mailbox: chainAddresses.mailbox,
|
|
722
|
+
proxyAdmin: proxyAdminAddress,
|
|
723
|
+
},
|
|
724
|
+
config: hook,
|
|
725
|
+
ccipContractCache,
|
|
726
|
+
contractVerifier,
|
|
727
|
+
proxyFactoryFactories: extractIsmAndHookFactoryAddresses(chainAddresses),
|
|
728
|
+
});
|
|
729
|
+
rootLogger.info(`Finished creating ${hook.type} Hook for token on ${chain} chain.`);
|
|
730
|
+
const { deployedHook } = evmHookModule.serialize();
|
|
731
|
+
return deployedHook;
|
|
732
|
+
}
|
|
733
|
+
default: {
|
|
734
|
+
const signer = mustGet(altVmSigners, chain);
|
|
735
|
+
const chainLookup = altVmChainLookup(multiProvider);
|
|
736
|
+
const metadata = multiProvider.getChainMetadata(chain);
|
|
737
|
+
// Deploy new hook using artifact writer with mailbox context
|
|
738
|
+
const writer = createHookWriter(metadata, chainLookup, signer, {
|
|
739
|
+
mailbox: chainAddresses.mailbox,
|
|
740
|
+
});
|
|
741
|
+
const artifact = hookConfigToArtifact(hook, chainLookup);
|
|
742
|
+
const [deployed] = await writer.create(artifact);
|
|
743
|
+
return deployed.deployed.address;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* The DELAYED_FLOW_ROUTER nodes a chain's warp config installs.
|
|
749
|
+
*
|
|
750
|
+
* An ISM configured as a bare address cannot be inspected, so it reads as "no
|
|
751
|
+
* instance"; assertDelayedFlowLegCoverage turns that into an explicit error
|
|
752
|
+
* instead of a silent pass.
|
|
753
|
+
*/
|
|
754
|
+
function delayedFlowIsmNodes(config) {
|
|
755
|
+
if (typeof config.interchainSecurityModule !== 'object')
|
|
756
|
+
return [];
|
|
757
|
+
return collectHybridIsmNodes(config.interchainSecurityModule).filter((node) => node.type === IsmType.DELAYED_FLOW_ROUTER);
|
|
758
|
+
}
|
|
759
|
+
/** True when a chain's warp config installs a DELAYED_FLOW_ROUTER instance. */
|
|
760
|
+
function configInstallsDelayedFlowIsm(config) {
|
|
761
|
+
return delayedFlowIsmNodes(config).length > 0;
|
|
762
|
+
}
|
|
763
|
+
/** The chains of a config whose ISM tree installs a DELAYED_FLOW_ROUTER. */
|
|
764
|
+
function delayedFlowChains(warpDeployConfig) {
|
|
765
|
+
return Object.keys(warpDeployConfig).filter((chain) => configInstallsDelayedFlowIsm(warpDeployConfig[chain]));
|
|
766
|
+
}
|
|
767
|
+
/** Domain id of every chain the route deploys, asserted resolvable. */
|
|
768
|
+
function resolveRouteDomains(multiProvider, warpDeployConfig) {
|
|
769
|
+
const routeDomains = new Map();
|
|
770
|
+
for (const chain of Object.keys(warpDeployConfig)) {
|
|
771
|
+
const domain = multiProvider.tryGetDomainId(chain);
|
|
772
|
+
assert(domain !== null, `No chain metadata for ${chain}, which this ${IsmType.DELAYED_FLOW_ROUTER} route deploys — add it to the registry`);
|
|
773
|
+
routeDomains.set(chain, domain);
|
|
774
|
+
}
|
|
775
|
+
return routeDomains;
|
|
776
|
+
}
|
|
777
|
+
/**
|
|
778
|
+
* The domains a chain's DELAYED_FLOW_ROUTER nodes enroll through `remoteIsms`.
|
|
779
|
+
*
|
|
780
|
+
* Resolved through the same canonicalization the deploy, update and check
|
|
781
|
+
* paths use (canonicalizeRemoteIsms), so this preflight accepts exactly the
|
|
782
|
+
* keys they accept: a key it cannot resolve, or two keys naming one chain,
|
|
783
|
+
* throw here — before any contract is deployed — instead of passing the
|
|
784
|
+
* preflight and failing mid-deploy.
|
|
785
|
+
*/
|
|
786
|
+
function configuredRemoteIsmDomains(multiProvider, chain, config) {
|
|
787
|
+
const domains = new Set();
|
|
788
|
+
for (const node of delayedFlowIsmNodes(config)) {
|
|
789
|
+
const canonical = canonicalizeRemoteIsms(node.remoteIsms ?? {}, multiProvider, `${IsmType.DELAYED_FLOW_ROUTER} on ${chain}`);
|
|
790
|
+
for (const chainName of Object.keys(canonical)) {
|
|
791
|
+
domains.add(multiProvider.getDomainId(chainName));
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
return domains;
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Rejects a `remoteRouters` entry naming a chain outside the deploy config
|
|
798
|
+
* unless the chain's DelayedFlowRouterHookIsm enrolls it through `remoteIsms`.
|
|
799
|
+
*
|
|
800
|
+
* `remoteRouters` legs are as connected as the deployed ones:
|
|
801
|
+
* `TimelockRouter.postDispatch` dispatches the preverification to the
|
|
802
|
+
* transfer's destination domain, and `Router._mustHaveRemoteRouter` reverts
|
|
803
|
+
* when the instance has no counterpart enrolled there. The automatic pairing
|
|
804
|
+
* only covers the chains of the deploy config (deriveDelayedFlowEnrollmentTargets),
|
|
805
|
+
* so an out-of-config leg strands transfers exactly like an uncovered one.
|
|
806
|
+
*
|
|
807
|
+
* `remoteIsms` is the escape hatch for pairings the route cannot derive. The
|
|
808
|
+
* route-derived peers are merged into it separately.
|
|
809
|
+
*/
|
|
810
|
+
function assertDelayedFlowRemoteRouterCoverage(multiProvider, warpDeployConfig, routeDomains) {
|
|
811
|
+
const deployedDomains = new Set(routeDomains.values());
|
|
812
|
+
for (const [chain, config] of Object.entries(warpDeployConfig)) {
|
|
813
|
+
const enrolledDomains = configuredRemoteIsmDomains(multiProvider, chain, config);
|
|
814
|
+
for (const key of Object.keys(config.remoteRouters ?? {})) {
|
|
815
|
+
// Resolved through the registry for BOTH key forms (chain name and
|
|
816
|
+
// domain id): the only remedy this check can suggest for an unenrolled
|
|
817
|
+
// domain is listing it under 'remoteIsms', and canonicalizeRemoteIsms
|
|
818
|
+
// rejects a key it cannot resolve to a registered chain. Taking a
|
|
819
|
+
// numeric key at face value here would send the operator round in a
|
|
820
|
+
// circle between the two checks.
|
|
821
|
+
const domain = multiProvider.tryGetDomainId(key);
|
|
822
|
+
assert(domain !== null, `No chain metadata for ${key}, which ${chain} names in 'remoteRouters' — this route's ${IsmType.DELAYED_FLOW_ROUTER} legs are resolved through the registry, so add the chain to it or remove the entry`);
|
|
823
|
+
const remoteName = multiProvider.getChainName(domain);
|
|
824
|
+
assert(deployedDomains.has(domain) || enrolledDomains.has(domain), `${chain} names ${remoteName} (domain ${domain}) in 'remoteRouters', but that chain is not part of this route and ${chain}'s ${IsmType.DELAYED_FLOW_ROUTER} does not enroll it. Transfers to it dispatch a preverification through that instance, which reverts because no counterpart is enrolled for the domain. Add ${remoteName} to the route, drop it from 'remoteRouters', or list its ${IsmType.DELAYED_FLOW_ROUTER} instance under 'remoteIsms' on ${chain}.`);
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
/**
|
|
829
|
+
* Rejects a config that carries a DelayedFlowRouterHookIsm on only some of its
|
|
830
|
+
* legs, before any on-chain work happens.
|
|
831
|
+
*
|
|
832
|
+
* The instances are peers: `TimelockRouter.postDispatch` dispatches a
|
|
833
|
+
* preverification message to the transfer's destination domain, and
|
|
834
|
+
* `Router._mustHaveRemoteRouter` reverts when that domain has no counterpart
|
|
835
|
+
* enrolled. So a DFR origin paired with a plain destination reverts at
|
|
836
|
+
* quote/dispatch time, and a plain origin paired with a DFR destination never
|
|
837
|
+
* sends the preverification the destination waits for — the transfer is
|
|
838
|
+
* stranded either way. A foreignDeployment leg is rejected outright: its
|
|
839
|
+
* instance is outside this deployment's control, so it can never be enrolled.
|
|
840
|
+
*
|
|
841
|
+
* Safe on any subset of a route: dropping a chain drops it from both sides of
|
|
842
|
+
* every comparison here, so a topology accepted as a whole is still accepted
|
|
843
|
+
* chain by chain. The checks whose verdict depends on WHICH chains the config
|
|
844
|
+
* contains live in assertDelayedFlowRouteCoverage.
|
|
845
|
+
*
|
|
846
|
+
* Checked against the config rather than mid-apply on purpose: an extension
|
|
847
|
+
* applies chain by chain, so a mid-apply check would fire on a route that is
|
|
848
|
+
* merely part-deployed.
|
|
849
|
+
*/
|
|
850
|
+
function assertDelayedFlowLegCoverage(warpDeployConfig) {
|
|
851
|
+
const chains = Object.keys(warpDeployConfig);
|
|
852
|
+
const covered = delayedFlowChains(warpDeployConfig);
|
|
853
|
+
if (covered.length === 0)
|
|
854
|
+
return;
|
|
855
|
+
const foreignDeployments = chains.filter((chain) => !!warpDeployConfig[chain].foreignDeployment);
|
|
856
|
+
assert(foreignDeployments.length === 0, `${IsmType.DELAYED_FLOW_ROUTER} is configured on ${covered.join(', ')}, but ${foreignDeployments.join(', ')} is a foreignDeployment whose instance cannot be deployed or enrolled by this route. Every leg of a delayed-flow route must be deployed by it.`);
|
|
857
|
+
const uncovered = chains.filter((chain) => !configInstallsDelayedFlowIsm(warpDeployConfig[chain]));
|
|
858
|
+
assert(uncovered.length === 0, `${IsmType.DELAYED_FLOW_ROUTER} is configured on ${covered.join(', ')} but not on ${uncovered.join(', ')}. Transfers between a delayed-flow leg and a plain leg revert on both sides, so every chain of the route must configure one (an ISM given as an address cannot be inspected — declare it inline).`);
|
|
859
|
+
}
|
|
860
|
+
/**
|
|
861
|
+
* Whole-route coverage: every leg carries an instance
|
|
862
|
+
* (assertDelayedFlowLegCoverage), and a `remoteRouters` entry naming a chain
|
|
863
|
+
* outside the route has to enroll that counterpart explicitly
|
|
864
|
+
* (assertDelayedFlowRemoteRouterCoverage).
|
|
865
|
+
*
|
|
866
|
+
* Correct only against the FULL route config. Shrinking the config enlarges
|
|
867
|
+
* what counts as outside the route, so running this on a subset — the single
|
|
868
|
+
* chain `warp apply` deploys per extension, say — rejects `remoteRouters`
|
|
869
|
+
* entries naming the very legs that chain is joining.
|
|
870
|
+
*/
|
|
871
|
+
export function assertDelayedFlowRouteCoverage({ multiProvider, warpDeployConfig, }) {
|
|
872
|
+
assertDelayedFlowLegCoverage(warpDeployConfig);
|
|
873
|
+
if (delayedFlowChains(warpDeployConfig).length === 0)
|
|
874
|
+
return;
|
|
875
|
+
const routeDomains = resolveRouteDomains(multiProvider, warpDeployConfig);
|
|
876
|
+
assertDelayedFlowRemoteRouterCoverage(multiProvider, warpDeployConfig, routeDomains);
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* Rejects a delayed-flow leg whose mailbox has never dispatched a message.
|
|
880
|
+
*
|
|
881
|
+
* DelayedFlowRouterHookIsm initialises `lastCreditedNonce` to 0 and rejects
|
|
882
|
+
* `nonce <= lastCreditedNonce`, so a dispatch carrying mailbox nonce 0 can
|
|
883
|
+
* never be credited: the first transfer out of a brand-new mailbox reverts
|
|
884
|
+
* inside postDispatch and the route strands it. Deploying onto such a chain is
|
|
885
|
+
* rejected instead of producing a route whose first transfer is guaranteed to
|
|
886
|
+
* fail. Per chain, so it holds on any subset of a route.
|
|
887
|
+
*/
|
|
888
|
+
async function assertDelayedFlowMailboxNonces(multiProvider, warpDeployConfig) {
|
|
889
|
+
const mailboxNonces = await Promise.all(delayedFlowChains(warpDeployConfig).map(async (chain) => {
|
|
890
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
891
|
+
assert(protocol === ProtocolType.Ethereum || protocol === ProtocolType.Tron, `${IsmType.DELAYED_FLOW_ROUTER} is configured on ${chain}, whose protocol is ${protocol} — the contract only exists on Ethereum and Tron chains`);
|
|
892
|
+
const { mailbox } = warpDeployConfig[chain];
|
|
893
|
+
assert(mailbox, `Missing mailbox address for ${chain}`);
|
|
894
|
+
const nonce = await Mailbox__factory.connect(mailbox, multiProvider.getProvider(chain)).nonce();
|
|
895
|
+
return { chain, mailbox, nonce };
|
|
896
|
+
}));
|
|
897
|
+
for (const { chain, mailbox, nonce } of mailboxNonces) {
|
|
898
|
+
assert(nonce > 0, `Mailbox ${mailbox} on ${chain} has never dispatched a message, and ${IsmType.DELAYED_FLOW_ROUTER} cannot credit a dispatch carrying mailbox nonce 0 (its lastCreditedNonce starts at 0 and it rejects nonce <= lastCreditedNonce), so the route's first transfer out of ${chain} would revert. Dispatch any other message through that mailbox first.`);
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* The full delayed-flow preconditions for a whole route, checked before any
|
|
903
|
+
* on-chain work: assertDelayedFlowRouteCoverage — which adds the route-scoped
|
|
904
|
+
* external `remoteRouters` check to the leg coverage above — and the
|
|
905
|
+
* mailbox nonce guard.
|
|
906
|
+
*
|
|
907
|
+
* Call this with every chain of the route. The CLI entry points do
|
|
908
|
+
* (runWarpRouteDeploy, runWarpRouteApply); executeWarpDeploy cannot, because
|
|
909
|
+
* an extension reaches it one chain at a time.
|
|
910
|
+
*/
|
|
911
|
+
export async function assertDelayedFlowRoutePreconditions({ multiProvider, warpDeployConfig, }) {
|
|
912
|
+
assertDelayedFlowRouteCoverage({ multiProvider, warpDeployConfig });
|
|
913
|
+
await assertDelayedFlowMailboxNonces(multiProvider, warpDeployConfig);
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* The hybrid hook/ISM instance nested inside an ISM tree deployed on chain, or
|
|
917
|
+
* undefined when the tree holds none.
|
|
918
|
+
*
|
|
919
|
+
* The ISM surface is where the instance is always reachable: the hook surface
|
|
920
|
+
* may install an aggregation the instance merely sits inside, whereas the ISM
|
|
921
|
+
* tree is what the schema constrains and what `EvmIsmReader` walks, and derived
|
|
922
|
+
* nodes carry their address.
|
|
923
|
+
*/
|
|
924
|
+
async function readHybridIsmInTree(multiProvider, chain, ismTreeAddress) {
|
|
925
|
+
if (isZeroishAddress(ismTreeAddress))
|
|
926
|
+
return undefined;
|
|
927
|
+
const derived = await new EvmIsmReader(multiProvider, chain).deriveIsmConfig(ismTreeAddress);
|
|
928
|
+
const nodes = collectHybridIsmNodes(derived);
|
|
929
|
+
if (nodes.length === 0)
|
|
930
|
+
return undefined;
|
|
931
|
+
assert(nodes.length === 1, `Expected at most one hybrid hook/ISM instance in the ISM tree at ${ismTreeAddress} on ${chain}, found ${nodes.length}`);
|
|
932
|
+
const node = nodes[0];
|
|
933
|
+
assert('address' in node && typeof node.address === 'string', `Derived hybrid hook/ISM node on ${chain} is missing its address`);
|
|
934
|
+
return node.address;
|
|
935
|
+
}
|
|
936
|
+
/**
|
|
937
|
+
* Resolves the shared hybrid instance behind each chain's ISM tree.
|
|
938
|
+
*
|
|
939
|
+
* Callers pass whichever tree is authoritative for them: the address a run has
|
|
940
|
+
* just deployed but not yet installed, or the tree already on the router.
|
|
941
|
+
* Nothing here guesses between the two — a caller that knows both states knows
|
|
942
|
+
* which one it means.
|
|
943
|
+
*/
|
|
944
|
+
export async function resolveHybridIsmAddresses(multiProvider, ismTreeAddresses) {
|
|
945
|
+
const resolved = {};
|
|
946
|
+
await Promise.all(Object.entries(ismTreeAddresses).map(async ([chain, treeAddress]) => {
|
|
947
|
+
const hybrid = await readHybridIsmInTree(multiProvider, chain, treeAddress);
|
|
948
|
+
if (hybrid)
|
|
949
|
+
resolved[chain] = hybrid;
|
|
950
|
+
}));
|
|
951
|
+
return resolved;
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* Resolves the hybrid instance installed on each router, by reading the ISM the
|
|
955
|
+
* router currently points at. Used by callers holding only routers, such as
|
|
956
|
+
* `warp apply` on chains it is not re-deploying.
|
|
957
|
+
*/
|
|
958
|
+
export async function readInstalledHybridIsmAddresses(multiProvider, routers) {
|
|
959
|
+
const ismTrees = {};
|
|
960
|
+
await Promise.all(Object.entries(routers).map(async ([chain, router]) => {
|
|
961
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
962
|
+
if (protocol !== ProtocolType.Ethereum &&
|
|
963
|
+
protocol !== ProtocolType.Tron) {
|
|
964
|
+
return;
|
|
965
|
+
}
|
|
966
|
+
ismTrees[chain] = await MailboxClient__factory.connect(router, multiProvider.getProvider(chain)).interchainSecurityModule();
|
|
967
|
+
}));
|
|
968
|
+
return resolveHybridIsmAddresses(multiProvider, ismTrees);
|
|
969
|
+
}
|
|
970
|
+
/**
|
|
971
|
+
* Pairs the route's DelayedFlowRouterHookIsm instances so each one's enrollment
|
|
972
|
+
* transactions can name every other one.
|
|
973
|
+
*
|
|
974
|
+
* `hybridIsmAddresses` is supplied by the caller (resolveHybridIsmAddresses /
|
|
975
|
+
* readInstalledHybridIsmAddresses) rather than re-derived here: which tree is
|
|
976
|
+
* authoritative differs per caller, and a chain whose instance the caller could
|
|
977
|
+
* not resolve is skipped rather than silently paired against a stale one. The
|
|
978
|
+
* config node is carried through as `userNode` so configured external
|
|
979
|
+
* `remoteIsms` are merged with the route-derived pairing.
|
|
980
|
+
*/
|
|
981
|
+
export async function deriveDelayedFlowEnrollmentTargets(multiProvider,
|
|
982
|
+
// Mailbox-independent: the pairing is read from the instances themselves, so
|
|
983
|
+
// callers that only hold a registry deploy config can use it too.
|
|
984
|
+
warpDeployConfig, deployedContracts, hybridIsmAddresses) {
|
|
985
|
+
const resolvedHybridAddresses = hybridIsmAddresses ??
|
|
986
|
+
(await readInstalledHybridIsmAddresses(multiProvider, deployedContracts));
|
|
987
|
+
const targets = {};
|
|
988
|
+
for (const [chain, config] of Object.entries(warpDeployConfig)) {
|
|
989
|
+
if (config.foreignDeployment)
|
|
990
|
+
continue;
|
|
991
|
+
if (typeof config.interchainSecurityModule !== 'object')
|
|
992
|
+
continue;
|
|
993
|
+
const protocol = multiProvider.getProtocol(chain);
|
|
994
|
+
if (protocol !== ProtocolType.Ethereum && protocol !== ProtocolType.Tron) {
|
|
995
|
+
continue;
|
|
996
|
+
}
|
|
997
|
+
const delayedNodes = collectHybridIsmNodes(config.interchainSecurityModule).filter((node) => node.type === IsmType.DELAYED_FLOW_ROUTER);
|
|
998
|
+
if (delayedNodes.length === 0)
|
|
999
|
+
continue;
|
|
1000
|
+
assert(delayedNodes.length === 1, `Expected exactly one DELAYED_FLOW_ROUTER node in the ISM tree on ${chain}, found ${delayedNodes.length}`);
|
|
1001
|
+
const tokenAddress = deployedContracts[chain];
|
|
1002
|
+
assert(tokenAddress, `No deployed token found for ${chain}`);
|
|
1003
|
+
const provider = multiProvider.getProvider(chain);
|
|
1004
|
+
const ismAddress = resolvedHybridAddresses[chain];
|
|
1005
|
+
assert(ismAddress, `${chain} declares a ${IsmType.DELAYED_FLOW_ROUTER} but no instance was resolved for it — the instance must be deployed and reachable through the router's ISM tree before its remote counterparts can be enrolled`);
|
|
1006
|
+
const instance = DelayedFlowRouterHookIsm__factory.connect(ismAddress, provider);
|
|
1007
|
+
// maxDelay() is what identifies the contract: NetFlowRateLimitedHookIsm
|
|
1008
|
+
// exposes warpRouter() too, so probing that alone would return a NetFlow
|
|
1009
|
+
// instance as a DELAYED_FLOW_ROUTER enrollment target and pair the wrong
|
|
1010
|
+
// contract. Only DelayedFlowRouterHookIsm declares maxDelay (a uint48
|
|
1011
|
+
// immutable), the same discriminator EvmIsmReader and EvmHookReader use,
|
|
1012
|
+
// and it returns a value, so a contract missing the selector reverts
|
|
1013
|
+
// instead of decoding empty returndata as a match.
|
|
1014
|
+
//
|
|
1015
|
+
// The router's current hook is only a DelayedFlowRouterHookIsm once the
|
|
1016
|
+
// hybrid has been wired; on an older route it can be another hook or the
|
|
1017
|
+
// zero address, and these getters would then revert inside the provider
|
|
1018
|
+
// with a raw call exception instead of reaching the asserts below.
|
|
1019
|
+
let onChainMaxDelay;
|
|
1020
|
+
try {
|
|
1021
|
+
onChainMaxDelay = await instance.maxDelay();
|
|
1022
|
+
}
|
|
1023
|
+
catch (error) {
|
|
1024
|
+
throwIfNotMissingSelector(error);
|
|
1025
|
+
}
|
|
1026
|
+
assert(onChainMaxDelay !== undefined, `Contract ${ismAddress} on ${chain} does not expose maxDelay(), so it is not a DelayedFlowRouterHookIsm — resolve the instance from the ISM tree the router actually installs`);
|
|
1027
|
+
let onChainWarpRouter;
|
|
1028
|
+
try {
|
|
1029
|
+
onChainWarpRouter = await instance.warpRouter();
|
|
1030
|
+
}
|
|
1031
|
+
catch (error) {
|
|
1032
|
+
throwIfNotMissingSelector(error);
|
|
1033
|
+
}
|
|
1034
|
+
assert(onChainWarpRouter !== undefined, `Contract ${ismAddress} on ${chain} does not expose warpRouter(), so it is not the token's DelayedFlowRouterHookIsm — resolve the instance from the ISM tree the router actually installs`);
|
|
1035
|
+
assert(eqAddress(onChainWarpRouter, tokenAddress), `Contract ${ismAddress} on ${chain} is not the token's DelayedFlowRouterHookIsm (warpRouter mismatch)`);
|
|
1036
|
+
targets[chain] = { ismAddress, userNode: delayedNodes[0] };
|
|
1037
|
+
}
|
|
1038
|
+
return targets;
|
|
1039
|
+
}
|
|
1040
|
+
/**
|
|
1041
|
+
* Builds the enrollment transactions for one chain's
|
|
1042
|
+
* DelayedFlowRouterHookIsm: enrolls every other chain's instance as a remote
|
|
1043
|
+
* counterpart, plus configured peers outside the route, and
|
|
1044
|
+
* optionally transfers ownership to the configured owner LAST (the enrollment
|
|
1045
|
+
* calls are owner-gated). Converges to zero transactions once the on-chain
|
|
1046
|
+
* state already matches.
|
|
1047
|
+
*
|
|
1048
|
+
* Shared by the deploy flow (deployer-owned instances) and `warp apply`
|
|
1049
|
+
* (instances that may be owned by a Safe/ICA — the returned transactions carry
|
|
1050
|
+
* no signing assumptions and ride whichever submitter the caller uses).
|
|
1051
|
+
*/
|
|
1052
|
+
export async function buildDelayedFlowEnrollmentTxs({ chain, multiProvider, registryAddresses, warpRouter, target, allTargets, reconcileOwnership = true, }) {
|
|
1053
|
+
const { ismAddress, userNode } = target;
|
|
1054
|
+
const derivedRemoteIsms = Object.fromEntries(Object.entries(allTargets)
|
|
1055
|
+
.filter(([otherChain]) => otherChain !== chain)
|
|
1056
|
+
.map(([otherChain, otherTarget]) => [
|
|
1057
|
+
otherChain,
|
|
1058
|
+
addressToBytes32(otherTarget.ismAddress).toLowerCase(),
|
|
1059
|
+
]));
|
|
1060
|
+
// Same resolution expandWarpDeployConfig applies to the expected config, so
|
|
1061
|
+
// `warp check` compares exactly the enrollment installed here.
|
|
1062
|
+
const remoteIsms = resolveDelayedFlowRemoteIsms(userNode.remoteIsms, derivedRemoteIsms, `DelayedFlowRouterHookIsm ${ismAddress} on ${chain}`, multiProvider);
|
|
1063
|
+
const delayedFlowIsmModule = new EvmIsmModule(multiProvider, {
|
|
1064
|
+
chain,
|
|
1065
|
+
config: userNode,
|
|
1066
|
+
addresses: {
|
|
1067
|
+
...extractIsmAndHookFactoryAddresses(registryAddresses[chain]),
|
|
1068
|
+
mailbox: registryAddresses[chain].mailbox,
|
|
1069
|
+
deployedIsm: ismAddress,
|
|
1070
|
+
},
|
|
1071
|
+
});
|
|
1072
|
+
const current = await delayedFlowIsmModule.read();
|
|
1073
|
+
assert(typeof current === 'object' && current.type === IsmType.DELAYED_FLOW_ROUTER, `Expected ${ismAddress} on ${chain} to be a ${IsmType.DELAYED_FLOW_ROUTER}`);
|
|
1074
|
+
// Single-instance reconciliation: the tree's composition was validated when
|
|
1075
|
+
// it was deployed. Warp apply preserves ownership here because its existing
|
|
1076
|
+
// ownership phase handles the shared instance alongside the router.
|
|
1077
|
+
return delayedFlowIsmModule.updateDeployedInstance({
|
|
1078
|
+
type: IsmType.DELAYED_FLOW_ROUTER,
|
|
1079
|
+
warpRouter,
|
|
1080
|
+
thresholdBps: userNode.thresholdBps,
|
|
1081
|
+
maxDelay: userNode.maxDelay,
|
|
1082
|
+
duration: userNode.duration,
|
|
1083
|
+
owner: reconcileOwnership ? userNode.owner : current.owner,
|
|
1084
|
+
remoteIsms,
|
|
1085
|
+
});
|
|
1086
|
+
}
|
|
1087
|
+
export async function enrollCrossChainRouters({ multiProvider, altVmSigners, registryAddresses, warpDeployConfig, }, deployedContracts) {
|
|
1088
|
+
rootLogger.info(`Start enrolling cross chain routers`);
|
|
1089
|
+
assertWarpConfigTimelocksSupportedByProtocols({
|
|
1090
|
+
multiProvider,
|
|
1091
|
+
warpDeployConfig,
|
|
1092
|
+
});
|
|
1093
|
+
// Resolve every delayed-flow counterpart before building per-chain batches.
|
|
1094
|
+
// Initial deployment already enrolled these pairs; this final pass repairs
|
|
1095
|
+
// any drift while the deployer still owns the instances.
|
|
1096
|
+
const hasDelayedFlow = Object.values(warpDeployConfig).some((config) => typeof config.interchainSecurityModule === 'object' &&
|
|
1097
|
+
config.interchainSecurityModule !== null &&
|
|
1098
|
+
collectHybridIsmNodes(config.interchainSecurityModule).some((node) => node.type === IsmType.DELAYED_FLOW_ROUTER));
|
|
1099
|
+
const delayedFlowTargets = hasDelayedFlow
|
|
1100
|
+
? await deriveDelayedFlowEnrollmentTargets(multiProvider, warpDeployConfig, deployedContracts, await readInstalledHybridIsmAddresses(multiProvider, deployedContracts))
|
|
1101
|
+
: {};
|
|
1102
|
+
const resolvedConfigMap = objMap(warpDeployConfig, (_, config) => ({
|
|
1103
|
+
gas: gasOverhead(config.type),
|
|
1104
|
+
...config,
|
|
1105
|
+
}));
|
|
1106
|
+
const cctpDomains = await deriveCctpDomains(multiProvider, resolvedConfigMap);
|
|
1107
|
+
const supportedChains = Object.keys(objFilter(resolvedConfigMap, (_, config) => !config.foreignDeployment &&
|
|
1108
|
+
config.type !== TokenType.collateralDepositAddress &&
|
|
1109
|
+
// Bare same-chain ITokenBridge adapter: not a cross-chain router, has no
|
|
1110
|
+
// on-chain warp config to derive, so it is never enrolled (like deposit-address).
|
|
1111
|
+
config.type !== TokenType.atomicLocalRebalancing));
|
|
1112
|
+
// Process all chains in parallel since they are independent
|
|
1113
|
+
const { fulfilled, rejected } = await mapAllSettled(supportedChains, async (currentChain) => {
|
|
1114
|
+
const protocol = multiProvider.getProtocol(currentChain);
|
|
1115
|
+
// Start with user-specified remote routers (for chains not in the deployment)
|
|
1116
|
+
const userRemoteRouters = objMap(resolveRouterMapConfig(multiProvider, resolvedConfigMap[currentChain].remoteRouters ?? {}), (_, value) => ({ address: addressToBytes32(value.address) }));
|
|
1117
|
+
// Merge: deployed routers take precedence over user-specified
|
|
1118
|
+
const remoteRouters = {
|
|
1119
|
+
...userRemoteRouters,
|
|
1120
|
+
...Object.fromEntries(Object.entries(deployedContracts)
|
|
1121
|
+
.filter(([chain]) => chain !== currentChain &&
|
|
1122
|
+
resolvedConfigMap[chain].type !==
|
|
1123
|
+
TokenType.atomicLocalRebalancing)
|
|
1124
|
+
.map(([chain, address]) => [
|
|
1125
|
+
multiProvider.getDomainId(chain).toString(),
|
|
1126
|
+
{
|
|
1127
|
+
address: addressToBytes32(address),
|
|
1128
|
+
},
|
|
1129
|
+
])),
|
|
1130
|
+
};
|
|
1131
|
+
// Start with user-specified destination gas
|
|
1132
|
+
const userDestinationGas = resolveRouterMapConfig(multiProvider, resolvedConfigMap[currentChain].destinationGas ?? {});
|
|
1133
|
+
// Default to MAX_GAS_OVERHEAD for user-specified remote routers without explicit destinationGas
|
|
1134
|
+
const defaultGasForUserRouters = objMap(userRemoteRouters, (domainId) => userDestinationGas[domainId] ?? MAX_GAS_OVERHEAD.toString());
|
|
1135
|
+
// Merge: deployed chain gas takes precedence over defaults and user-specified
|
|
1136
|
+
const destinationGas = {
|
|
1137
|
+
...defaultGasForUserRouters,
|
|
1138
|
+
...Object.fromEntries(Object.entries(deployedContracts)
|
|
1139
|
+
.filter(([chain]) => chain !== currentChain &&
|
|
1140
|
+
resolvedConfigMap[chain].type !==
|
|
1141
|
+
TokenType.atomicLocalRebalancing)
|
|
1142
|
+
.map(([chain, _address]) => [
|
|
1143
|
+
multiProvider.getDomainId(chain).toString(),
|
|
1144
|
+
resolvedConfigMap[chain].gas.toString(),
|
|
1145
|
+
])),
|
|
1146
|
+
};
|
|
1147
|
+
for (const domainId of Object.keys(remoteRouters)) {
|
|
1148
|
+
rootLogger.debug(`Creating enroll remote router transactions with remote domain id ${domainId} and address ${remoteRouters[domainId]} on chain ${currentChain}`);
|
|
1149
|
+
}
|
|
1150
|
+
let transactions = [];
|
|
1151
|
+
switch (protocol) {
|
|
1152
|
+
case ProtocolType.Tron:
|
|
1153
|
+
case ProtocolType.Ethereum: {
|
|
1154
|
+
const { domainRoutingIsmFactory, incrementalDomainRoutingIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticAggregationIsmFactory, staticAggregationHookFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = registryAddresses[currentChain];
|
|
1155
|
+
const evmWarpModule = new EvmWarpModule(multiProvider, {
|
|
1156
|
+
chain: currentChain,
|
|
1157
|
+
config: resolvedConfigMap[currentChain],
|
|
1158
|
+
addresses: {
|
|
1159
|
+
deployedTokenRoute: deployedContracts[currentChain],
|
|
1160
|
+
domainRoutingIsmFactory,
|
|
1161
|
+
incrementalDomainRoutingIsmFactory,
|
|
1162
|
+
staticMerkleRootMultisigIsmFactory,
|
|
1163
|
+
staticMessageIdMultisigIsmFactory,
|
|
1164
|
+
staticAggregationIsmFactory,
|
|
1165
|
+
staticAggregationHookFactory,
|
|
1166
|
+
staticMerkleRootWeightedMultisigIsmFactory,
|
|
1167
|
+
staticMessageIdWeightedMultisigIsmFactory,
|
|
1168
|
+
},
|
|
1169
|
+
});
|
|
1170
|
+
const actualConfig = await evmWarpModule.read();
|
|
1171
|
+
const targetOwner = resolvedConfigMap[currentChain].owner;
|
|
1172
|
+
const expectedConfig = {
|
|
1173
|
+
...actualConfig,
|
|
1174
|
+
owner: targetOwner,
|
|
1175
|
+
// Deployment leaves the router and its shared hybrid instance with
|
|
1176
|
+
// the deployer until this final pass. Describe their common target
|
|
1177
|
+
// owner on both config surfaces so EvmWarpModule can transfer them
|
|
1178
|
+
// together after enrollment.
|
|
1179
|
+
interchainSecurityModule: typeof actualConfig.interchainSecurityModule === 'object' &&
|
|
1180
|
+
actualConfig.interchainSecurityModule
|
|
1181
|
+
? mapHybridIsmNodes(actualConfig.interchainSecurityModule, (node) => ({ ...node, owner: targetOwner }))
|
|
1182
|
+
: actualConfig.interchainSecurityModule,
|
|
1183
|
+
hook: typeof actualConfig.hook === 'object' && actualConfig.hook
|
|
1184
|
+
? mapHybridHookNodes(actualConfig.hook, (node) => ({
|
|
1185
|
+
...node,
|
|
1186
|
+
owner: targetOwner,
|
|
1187
|
+
}))
|
|
1188
|
+
: actualConfig.hook,
|
|
1189
|
+
// Deploy set the ProxyAdmin owner to the intermediate deployer owner
|
|
1190
|
+
// so post-deploy enrollment could be self-signed. actualConfig reads
|
|
1191
|
+
// that live (deployer) owner, so carry the configured owner through
|
|
1192
|
+
// here — otherwise the deferred update sees no change and the
|
|
1193
|
+
// deployer keeps upgrade authority over the proxy.
|
|
1194
|
+
proxyAdmin: actualConfig.proxyAdmin && {
|
|
1195
|
+
address: actualConfig.proxyAdmin.address,
|
|
1196
|
+
owner: resolvedConfigMap[currentChain].proxyAdmin?.owner ??
|
|
1197
|
+
resolvedConfigMap[currentChain].owner,
|
|
1198
|
+
},
|
|
1199
|
+
remoteRouters,
|
|
1200
|
+
destinationGas,
|
|
1201
|
+
// For cross-protocol routes (EVM+SVM/Cosmos), the EVM deployer
|
|
1202
|
+
// never enrolls non-EVM remote routers, so TokenRouter.domains()=[]
|
|
1203
|
+
// at this point. The reader derives RoutingFee.feeContracts from
|
|
1204
|
+
// enrolled domains, returning {} which fails
|
|
1205
|
+
// RoutingFeeInputConfigSchema validation. Use the deploy config's
|
|
1206
|
+
// tokenFee (non-empty feeContracts) so validation passes.
|
|
1207
|
+
// EvmTokenFeeModule.update() reads actual on-chain state via
|
|
1208
|
+
// routingDestinations and confirms no change is needed.
|
|
1209
|
+
...(resolvedConfigMap[currentChain].tokenFee && {
|
|
1210
|
+
tokenFee: resolvedConfigMap[currentChain].tokenFee,
|
|
1211
|
+
}),
|
|
1212
|
+
};
|
|
1213
|
+
const { txs, feeTxs, ownershipTxs } = await evmWarpModule.updateSplit(expectedConfig, {
|
|
1214
|
+
routingDestinations: Object.keys(remoteRouters).map((domain) => parseInt(domain, 10)),
|
|
1215
|
+
}, cctpDomains);
|
|
1216
|
+
transactions = [...txs, ...feeTxs];
|
|
1217
|
+
const delayedFlowTarget = delayedFlowTargets[currentChain];
|
|
1218
|
+
if (delayedFlowTarget) {
|
|
1219
|
+
transactions.push(...(await buildDelayedFlowEnrollmentTxs({
|
|
1220
|
+
chain: currentChain,
|
|
1221
|
+
multiProvider,
|
|
1222
|
+
registryAddresses,
|
|
1223
|
+
warpRouter: deployedContracts[currentChain],
|
|
1224
|
+
target: delayedFlowTarget,
|
|
1225
|
+
allTargets: delayedFlowTargets,
|
|
1226
|
+
reconcileOwnership: false,
|
|
1227
|
+
})));
|
|
1228
|
+
}
|
|
1229
|
+
// The router, ProxyAdmin, and shared hybrid move together only after
|
|
1230
|
+
// router and delayed-flow enrollment have converged.
|
|
1231
|
+
transactions.push(...ownershipTxs);
|
|
1232
|
+
break;
|
|
1233
|
+
}
|
|
1234
|
+
default: {
|
|
1235
|
+
const signer = mustGet(altVmSigners, currentChain);
|
|
1236
|
+
const chainLookup = altVmChainLookup(multiProvider);
|
|
1237
|
+
const chainMetadata = chainLookup.getChainMetadata(currentChain);
|
|
1238
|
+
const writer = createWarpTokenWriter(chainMetadata, chainLookup, signer);
|
|
1239
|
+
const expectedConfig = {
|
|
1240
|
+
...resolvedConfigMap[currentChain],
|
|
1241
|
+
remoteRouters,
|
|
1242
|
+
destinationGas,
|
|
1243
|
+
};
|
|
1244
|
+
const artifact = warpConfigToArtifact(validateWarpConfigForAltVM(expectedConfig, currentChain, chainMetadata.protocol), chainLookup);
|
|
1245
|
+
const deployedArtifact = {
|
|
1246
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
1247
|
+
config: artifact.config,
|
|
1248
|
+
deployed: { address: deployedContracts[currentChain] },
|
|
1249
|
+
};
|
|
1250
|
+
transactions = await writer.update(deployedArtifact);
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
rootLogger.debug(`Created enroll router update transactions for chain ${currentChain}`);
|
|
1254
|
+
return { chain: currentChain, transactions };
|
|
1255
|
+
}, (chain) => chain);
|
|
1256
|
+
// Process settled results and collect transactions
|
|
1257
|
+
const updateTransactions = {};
|
|
1258
|
+
const errors = [];
|
|
1259
|
+
for (const [, result] of fulfilled) {
|
|
1260
|
+
if (result.transactions.length) {
|
|
1261
|
+
updateTransactions[result.chain] = result.transactions;
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
for (const [chain, error] of rejected) {
|
|
1265
|
+
rootLogger.error(`Failed to create enroll router transactions for chain ${chain}: ${error.message}`);
|
|
1266
|
+
errors.push(`${chain}: ${error.message}`);
|
|
1267
|
+
}
|
|
1268
|
+
if (errors.length > 0) {
|
|
1269
|
+
throw new Error(`Failed to create router enrollment transactions for ${errors.length} chain(s): ${errors.join('; ')}`);
|
|
1270
|
+
}
|
|
1271
|
+
return updateTransactions;
|
|
1272
|
+
}
|
|
1273
|
+
function getRouter(contracts) {
|
|
1274
|
+
for (const key of objKeys(hypERC20factories)) {
|
|
1275
|
+
if (contracts[key])
|
|
1276
|
+
return contracts[key];
|
|
1277
|
+
}
|
|
1278
|
+
throw new Error('No matching contract found.');
|
|
1279
|
+
}
|
|
1280
|
+
//# sourceMappingURL=warp.js.map
|