@hyperlane-xyz/core 0.5.5 → 1.0.0-beta1
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/contracts/{AbacusConnectionClient.sol → HyperlaneConnectionClient.sol} +71 -58
- package/contracts/InterchainGasPaymaster.sol +20 -13
- package/contracts/Mailbox.sol +244 -44
- package/contracts/PausableReentrancyGuard.sol +69 -0
- package/contracts/Router.sol +49 -52
- package/contracts/isms/MultisigIsm.sol +373 -0
- package/contracts/libs/Message.sol +107 -66
- package/contracts/libs/MultisigIsmMetadata.sol +185 -0
- package/contracts/middleware/InterchainAccountRouter.sol +13 -12
- package/contracts/middleware/InterchainQueryRouter.sol +17 -16
- package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +21 -14
- package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +0 -4
- package/contracts/mock/MockHyperlaneEnvironment.sol +24 -48
- package/contracts/mock/MockInterchainAccountRouter.sol +4 -4
- package/contracts/mock/MockMailbox.sol +79 -0
- package/contracts/test/TestHyperlaneConnectionClient.sol +14 -0
- package/contracts/test/TestIsm.sol +20 -0
- package/contracts/test/TestLiquidityLayerMessageRecipient.sol +1 -1
- package/contracts/test/TestMailbox.sol +34 -4
- package/contracts/test/TestMerkle.sol +9 -4
- package/contracts/test/TestMessage.sol +24 -12
- package/contracts/test/TestMultisigIsm.sol +23 -0
- package/contracts/test/TestRouter.sol +14 -6
- package/contracts/test/TestSendReceiver.sol +22 -16
- package/contracts/test/TestTokenRecipient.sol +1 -1
- package/contracts/upgrade/ProxyAdmin.sol +6 -0
- package/contracts/upgrade/TransparentUpgradeableProxy.sol +6 -0
- package/dist/@openzeppelin/contracts/index.d.ts +4 -0
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts +43 -0
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts.map +1 -0
- package/dist/{contracts/MerkleTreeManager.js → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js} +1 -1
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js.map +1 -0
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
- package/dist/@openzeppelin/{contracts-upgradeable/security → contracts/interfaces/draft-IERC1822.sol}/index.js +0 -0
- package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/interfaces/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
- package/dist/{contracts/middleware/token-bridge → @openzeppelin/contracts/interfaces}/index.js +0 -0
- package/dist/@openzeppelin/contracts/interfaces/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +64 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js +4 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts +64 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts.map +1 -0
- package/dist/{contracts/middleware/liquidity-layer/adapters/PortalAdapter.js → @openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js} +1 -1
- package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
- package/dist/{contracts/middleware/liquidity-layer/interfaces/portal → @openzeppelin/contracts/proxy/ERC1967}/index.js +0 -0
- package/dist/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
- package/dist/{contracts/upgrade/UpgradeBeaconProxy.d.ts → @openzeppelin/contracts/proxy/Proxy.d.ts} +5 -5
- package/dist/@openzeppelin/contracts/proxy/Proxy.d.ts.map +1 -0
- package/dist/{contracts/Inbox.js → @openzeppelin/contracts/proxy/Proxy.js} +1 -1
- package/dist/@openzeppelin/contracts/proxy/Proxy.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +43 -0
- package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts.map +1 -0
- package/dist/{contracts/Outbox.js → @openzeppelin/contracts/proxy/beacon/IBeacon.js} +1 -1
- package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
- package/dist/{contracts/middleware/token-bridge/adapters → @openzeppelin/contracts/proxy/beacon}/index.js +0 -0
- package/dist/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/index.d.ts +8 -0
- package/dist/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
- package/dist/{contracts/middleware/token-bridge/interfaces → @openzeppelin/contracts/proxy}/index.js +0 -0
- package/dist/@openzeppelin/contracts/proxy/index.js.map +1 -0
- package/dist/{contracts/upgrade/UpgradeBeaconController.d.ts → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts} +60 -25
- package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js +4 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts +150 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts.map +1 -0
- package/dist/@openzeppelin/{contracts-upgradeable/security/ReentrancyGuardUpgradeable.js → contracts/proxy/transparent/TransparentUpgradeableProxy.js} +1 -1
- package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js.map +1 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
- package/dist/{contracts/middleware/token-bridge/interfaces/circle → @openzeppelin/contracts/proxy/transparent}/index.js +0 -0
- package/dist/@openzeppelin/contracts/proxy/transparent/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +0 -2
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
- package/dist/contracts/InterchainGasPaymaster.d.ts +15 -15
- package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
- package/dist/contracts/Mailbox.d.ts +237 -27
- package/dist/contracts/Mailbox.d.ts.map +1 -1
- package/dist/{@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts → contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts} +5 -5
- package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts.map +1 -0
- package/dist/contracts/{AbacusConnectionClient.js → PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js} +1 -1
- package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js.map +1 -0
- package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts +2 -0
- package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts.map +1 -0
- package/dist/contracts/{validator-manager → PausableReentrancyGuard.sol}/index.js +0 -0
- package/dist/contracts/PausableReentrancyGuard.sol/index.js.map +1 -0
- package/dist/contracts/Router.d.ts +81 -32
- package/dist/contracts/Router.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +2 -7
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/isms/MultisigIsm.d.ts +63 -24
- package/dist/contracts/isms/MultisigIsm.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts +88 -39
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts +89 -40
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +87 -38
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +81 -32
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +0 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +0 -3
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +25 -33
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +2 -2
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/mock/index.d.ts +0 -3
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/test/TestMailbox.d.ts +250 -32
- package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
- package/dist/contracts/test/TestMessage.d.ts +30 -10
- package/dist/contracts/test/TestMessage.d.ts.map +1 -1
- package/dist/contracts/test/TestMultisigIsm.d.ts +63 -24
- package/dist/contracts/test/TestMultisigIsm.d.ts.map +1 -1
- package/dist/contracts/test/TestRouter.d.ts +93 -44
- package/dist/contracts/test/TestRouter.d.ts.map +1 -1
- package/dist/contracts/test/TestSendReceiver.d.ts +14 -6
- package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
- package/dist/contracts/test/index.d.ts +0 -8
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/contracts/upgrade/index.d.ts +0 -3
- package/dist/contracts/upgrade/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.js +3 -1
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
- package/dist/factories/{interfaces/IMultisigValidatorManager__factory.d.ts → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts} +5 -5
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +31 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
- package/dist/factories/{contracts/middleware/token-bridge → @openzeppelin/contracts/interfaces}/index.js +2 -5
- package/dist/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +48 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +110 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/{contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts → contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts} +5 -5
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js +63 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +3 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js +11 -0
- package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +12 -0
- package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js +26 -0
- package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js.map +1 -0
- package/dist/factories/{contracts/test/MysteryMath__factory.d.ts → @openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts} +6 -10
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +31 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts +5 -0
- package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
- package/dist/factories/{contracts/middleware/token-bridge/interfaces → @openzeppelin/contracts/proxy}/index.js +6 -6
- package/dist/factories/@openzeppelin/contracts/proxy/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +48 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +190 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +73 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +185 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js +11 -0
- package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +0 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +1 -2
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
- package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
- package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js +19 -14
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +29 -13
- package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +327 -10
- package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.d.ts.map +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.js +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.js.map +1 -1
- package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts +19 -0
- package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts.map +1 -0
- package/dist/factories/{@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js → contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js} +5 -5
- package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js.map +1 -0
- package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts +2 -0
- package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts.map +1 -0
- package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js +9 -0
- package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js.map +1 -0
- package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Router__factory.js +83 -26
- package/dist/factories/contracts/Router__factory.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +1 -6
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +2 -12
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.js +62 -25
- package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +95 -38
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +96 -39
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +97 -34
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +88 -31
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +1 -3
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +0 -2
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js +1 -4
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
- package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleBridge__factory.js +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +7 -26
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +5 -5
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.d.ts +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.js +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
- package/dist/factories/contracts/mock/index.d.ts +0 -3
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +1 -7
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -8
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +322 -11
- package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.js +40 -7
- package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js +62 -25
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestRouter__factory.js +101 -34
- package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +12 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +16 -3
- package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/index.d.ts +0 -8
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +1 -17
- package/dist/factories/contracts/test/index.js.map +1 -1
- package/dist/factories/contracts/upgrade/index.d.ts +0 -3
- package/dist/factories/contracts/upgrade/index.d.ts.map +1 -1
- package/dist/factories/contracts/upgrade/index.js +1 -7
- package/dist/factories/contracts/upgrade/index.js.map +1 -1
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +4 -4
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +13 -8
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +6 -6
- package/dist/factories/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient__factory.d.ts +1 -1
- package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient__factory.js +0 -0
- package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
- package/dist/factories/interfaces/{IOutbox__factory.d.ts → ILiquidityLayerRouter__factory.d.ts} +5 -5
- package/dist/factories/interfaces/ILiquidityLayerRouter__factory.d.ts.map +1 -0
- package/dist/factories/{contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js → interfaces/ILiquidityLayerRouter__factory.js} +22 -11
- package/dist/factories/interfaces/ILiquidityLayerRouter__factory.js.map +1 -0
- package/dist/factories/interfaces/IMailbox__factory.d.ts +5 -1
- package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IMailbox__factory.js +81 -3
- package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
- package/dist/factories/interfaces/IMultisigIsm__factory.js +2 -2
- package/dist/factories/interfaces/IMultisigIsm__factory.js.map +1 -1
- package/dist/factories/interfaces/index.d.ts +2 -4
- package/dist/factories/interfaces/index.d.ts.map +1 -1
- package/dist/factories/interfaces/index.js +5 -9
- package/dist/factories/interfaces/index.js.map +1 -1
- package/dist/index.d.ts +20 -60
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -62
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IInterchainAccountRouter.d.ts +2 -2
- package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -1
- package/dist/interfaces/IInterchainGasPaymaster.d.ts +9 -9
- package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
- package/dist/interfaces/IInterchainQueryRouter.d.ts +3 -3
- package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -1
- package/dist/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.d.ts +1 -1
- package/dist/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -0
- package/dist/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.js +0 -0
- package/dist/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -0
- package/dist/interfaces/ILiquidityLayerRouter.d.ts +51 -0
- package/dist/interfaces/ILiquidityLayerRouter.d.ts.map +1 -0
- package/dist/interfaces/ILiquidityLayerRouter.js +4 -0
- package/dist/interfaces/ILiquidityLayerRouter.js.map +1 -0
- package/dist/interfaces/IMailbox.d.ts +58 -10
- package/dist/interfaces/IMailbox.d.ts.map +1 -1
- package/dist/interfaces/IMultisigIsm.d.ts +3 -3
- package/dist/interfaces/IMultisigIsm.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +2 -4
- package/dist/interfaces/index.d.ts.map +1 -1
- package/interfaces/IInterchainAccountRouter.sol +2 -2
- package/interfaces/IInterchainGasPaymaster.sol +5 -4
- package/interfaces/IInterchainQueryRouter.sol +3 -3
- package/interfaces/IInterchainSecurityModule.sol +16 -0
- package/{contracts/middleware/liquidity-layer/interfaces → interfaces}/ILiquidityLayerMessageRecipient.sol +0 -0
- package/interfaces/ILiquidityLayerRouter.sol +15 -0
- package/interfaces/IMailbox.sol +15 -2
- package/interfaces/IMultisigIsm.sol +18 -0
- package/package.json +5 -5
- package/contracts/AbacusConnectionManager.sol +0 -145
- package/contracts/Inbox.sol +0 -148
- package/contracts/MerkleTreeManager.sol +0 -32
- package/contracts/Outbox.sol +0 -191
- package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +0 -215
- package/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol +0 -87
- package/contracts/mock/MockInbox.sol +0 -52
- package/contracts/mock/MockOutbox.sol +0 -30
- package/contracts/mock/MockPortalBridge.sol +0 -89
- package/contracts/test/MysteryMath.sol +0 -21
- package/contracts/test/MysteryMathV1.sol +0 -22
- package/contracts/test/MysteryMathV2.sol +0 -22
- package/contracts/test/TestAbacusConnectionClient.sol +0 -23
- package/contracts/test/TestInbox.sol +0 -54
- package/contracts/test/TestMultisigValidatorManager.sol +0 -26
- package/contracts/test/TestOutbox.sol +0 -46
- package/contracts/test/TestValidatorManager.sol +0 -21
- package/contracts/upgrade/UpgradeBeacon.sol +0 -98
- package/contracts/upgrade/UpgradeBeaconController.sol +0 -48
- package/contracts/upgrade/UpgradeBeaconProxy.sol +0 -176
- package/contracts/validator-manager/InboxValidatorManager.sol +0 -58
- package/contracts/validator-manager/MultisigValidatorManager.sol +0 -271
- package/contracts/validator-manager/OutboxValidatorManager.sol +0 -244
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts.map +0 -1
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js.map +0 -1
- package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts +0 -2
- package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +0 -1
- package/dist/@openzeppelin/contracts-upgradeable/security/index.js.map +0 -1
- package/dist/contracts/AbacusConnectionClient.d.ts +0 -169
- package/dist/contracts/AbacusConnectionClient.d.ts.map +0 -1
- package/dist/contracts/AbacusConnectionClient.js.map +0 -1
- package/dist/contracts/AbacusConnectionManager.d.ts +0 -213
- package/dist/contracts/AbacusConnectionManager.d.ts.map +0 -1
- package/dist/contracts/AbacusConnectionManager.js +0 -4
- package/dist/contracts/AbacusConnectionManager.js.map +0 -1
- package/dist/contracts/Inbox.d.ts +0 -207
- package/dist/contracts/Inbox.d.ts.map +0 -1
- package/dist/contracts/Inbox.js.map +0 -1
- package/dist/contracts/MerkleTreeManager.d.ts +0 -53
- package/dist/contracts/MerkleTreeManager.d.ts.map +0 -1
- package/dist/contracts/MerkleTreeManager.js.map +0 -1
- package/dist/contracts/Outbox.d.ts +0 -331
- package/dist/contracts/Outbox.d.ts.map +0 -1
- package/dist/contracts/Outbox.js.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +0 -378
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +0 -148
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +0 -4
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +0 -2
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +0 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts +0 -291
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js +0 -4
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts +0 -416
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js +0 -4
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/index.d.ts +0 -2
- package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/index.d.ts +0 -6
- package/dist/contracts/middleware/token-bridge/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts +0 -67
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts +0 -51
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts +0 -78
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts +0 -59
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +0 -3
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -5
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
- package/dist/contracts/mock/MockInbox.d.ts +0 -67
- package/dist/contracts/mock/MockInbox.d.ts.map +0 -1
- package/dist/contracts/mock/MockInbox.js +0 -4
- package/dist/contracts/mock/MockInbox.js.map +0 -1
- package/dist/contracts/mock/MockOutbox.d.ts +0 -51
- package/dist/contracts/mock/MockOutbox.d.ts.map +0 -1
- package/dist/contracts/mock/MockOutbox.js +0 -4
- package/dist/contracts/mock/MockOutbox.js.map +0 -1
- package/dist/contracts/mock/MockPortalBridge.d.ts +0 -164
- package/dist/contracts/mock/MockPortalBridge.d.ts.map +0 -1
- package/dist/contracts/mock/MockPortalBridge.js +0 -4
- package/dist/contracts/mock/MockPortalBridge.js.map +0 -1
- package/dist/contracts/test/MysteryMath.d.ts +0 -77
- package/dist/contracts/test/MysteryMath.d.ts.map +0 -1
- package/dist/contracts/test/MysteryMath.js +0 -4
- package/dist/contracts/test/MysteryMath.js.map +0 -1
- package/dist/contracts/test/MysteryMathV1.d.ts +0 -85
- package/dist/contracts/test/MysteryMathV1.d.ts.map +0 -1
- package/dist/contracts/test/MysteryMathV1.js +0 -4
- package/dist/contracts/test/MysteryMathV1.js.map +0 -1
- package/dist/contracts/test/MysteryMathV2.d.ts +0 -85
- package/dist/contracts/test/MysteryMathV2.d.ts.map +0 -1
- package/dist/contracts/test/MysteryMathV2.js +0 -4
- package/dist/contracts/test/MysteryMathV2.js.map +0 -1
- package/dist/contracts/test/TestAbacusConnectionClient.d.ts +0 -209
- package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +0 -1
- package/dist/contracts/test/TestAbacusConnectionClient.js +0 -4
- package/dist/contracts/test/TestAbacusConnectionClient.js.map +0 -1
- package/dist/contracts/test/TestInbox.d.ts +0 -263
- package/dist/contracts/test/TestInbox.d.ts.map +0 -1
- package/dist/contracts/test/TestInbox.js +0 -4
- package/dist/contracts/test/TestInbox.js.map +0 -1
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts +0 -247
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +0 -1
- package/dist/contracts/test/TestMultisigValidatorManager.js +0 -4
- package/dist/contracts/test/TestMultisigValidatorManager.js.map +0 -1
- package/dist/contracts/test/TestOutbox.d.ts +0 -371
- package/dist/contracts/test/TestOutbox.d.ts.map +0 -1
- package/dist/contracts/test/TestOutbox.js +0 -4
- package/dist/contracts/test/TestOutbox.js.map +0 -1
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts +0 -72
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +0 -1
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +0 -4
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +0 -1
- package/dist/contracts/test/TestValidatorManager.d.ts +0 -58
- package/dist/contracts/test/TestValidatorManager.d.ts.map +0 -1
- package/dist/contracts/test/TestValidatorManager.js +0 -4
- package/dist/contracts/test/TestValidatorManager.js.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeacon.d.ts +0 -40
- package/dist/contracts/upgrade/UpgradeBeacon.d.ts.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeacon.js +0 -4
- package/dist/contracts/upgrade/UpgradeBeacon.js.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeaconController.d.ts.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeaconController.js +0 -4
- package/dist/contracts/upgrade/UpgradeBeaconController.js.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts.map +0 -1
- package/dist/contracts/upgrade/UpgradeBeaconProxy.js +0 -4
- package/dist/contracts/upgrade/UpgradeBeaconProxy.js.map +0 -1
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +0 -263
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/InboxValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/InboxValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +0 -239
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/MultisigValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +0 -335
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/OutboxValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/index.d.ts +0 -4
- package/dist/contracts/validator-manager/index.d.ts.map +0 -1
- package/dist/contracts/validator-manager/index.js.map +0 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts.map +0 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js.map +0 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts +0 -2
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +0 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js +0 -9
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js.map +0 -1
- package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts +0 -43
- package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/AbacusConnectionClient__factory.js +0 -161
- package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +0 -1
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +0 -55
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/AbacusConnectionManager__factory.js +0 -276
- package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +0 -1
- package/dist/factories/contracts/Inbox__factory.d.ts +0 -59
- package/dist/factories/contracts/Inbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/Inbox__factory.js +0 -278
- package/dist/factories/contracts/Inbox__factory.js.map +0 -1
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +0 -31
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/MerkleTreeManager__factory.js +0 -67
- package/dist/factories/contracts/MerkleTreeManager__factory.js.map +0 -1
- package/dist/factories/contracts/Outbox__factory.d.ts +0 -59
- package/dist/factories/contracts/Outbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/Outbox__factory.js +0 -415
- package/dist/factories/contracts/Outbox__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +0 -48
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +0 -540
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +0 -56
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +0 -204
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +0 -2
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js +0 -9
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +0 -48
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +0 -380
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +0 -48
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +0 -584
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts +0 -2
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.js +0 -9
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts +0 -4
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts +0 -23
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js +0 -91
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +0 -19
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts +0 -36
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js +0 -104
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +0 -23
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js +0 -61
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +0 -3
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js +0 -11
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -4
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts +0 -31
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockInbox__factory.js +0 -76
- package/dist/factories/contracts/mock/MockInbox__factory.js.map +0 -1
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +0 -45
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockOutbox__factory.js +0 -86
- package/dist/factories/contracts/mock/MockOutbox__factory.js.map +0 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +0 -79
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js +0 -296
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +0 -1
- package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts +0 -41
- package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/MysteryMathV1__factory.js +0 -122
- package/dist/factories/contracts/test/MysteryMathV1__factory.js.map +0 -1
- package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts +0 -41
- package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/MysteryMathV2__factory.js +0 -122
- package/dist/factories/contracts/test/MysteryMathV2__factory.js.map +0 -1
- package/dist/factories/contracts/test/MysteryMath__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/MysteryMath__factory.js +0 -81
- package/dist/factories/contracts/test/MysteryMath__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +0 -48
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +0 -242
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestInbox__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestInbox__factory.js +0 -371
- package/dist/factories/contracts/test/TestInbox__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +0 -349
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestOutbox__factory.js +0 -483
- package/dist/factories/contracts/test/TestOutbox__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts +0 -44
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js +0 -111
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +0 -31
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestValidatorManager__factory.js +0 -79
- package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts +0 -55
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js +0 -130
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts +0 -33
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js +0 -65
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts +0 -48
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts.map +0 -1
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js +0 -74
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +0 -373
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +0 -36
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +0 -286
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +0 -560
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/index.d.ts +0 -4
- package/dist/factories/contracts/validator-manager/index.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/index.js +0 -13
- package/dist/factories/contracts/validator-manager/index.js.map +0 -1
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +0 -23
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +0 -63
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +0 -1
- package/dist/factories/interfaces/IInbox__factory.d.ts +0 -29
- package/dist/factories/interfaces/IInbox__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IInbox__factory.js +0 -90
- package/dist/factories/interfaces/IInbox__factory.js.map +0 -1
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +0 -57
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/interfaces/IOutbox__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IOutbox__factory.js +0 -155
- package/dist/factories/interfaces/IOutbox__factory.js.map +0 -1
- package/dist/interfaces/IAbacusConnectionManager.d.ts +0 -59
- package/dist/interfaces/IAbacusConnectionManager.d.ts.map +0 -1
- package/dist/interfaces/IAbacusConnectionManager.js +0 -4
- package/dist/interfaces/IAbacusConnectionManager.js.map +0 -1
- package/dist/interfaces/IInbox.d.ts +0 -83
- package/dist/interfaces/IInbox.d.ts.map +0 -1
- package/dist/interfaces/IInbox.js +0 -4
- package/dist/interfaces/IInbox.js.map +0 -1
- package/dist/interfaces/IMultisigValidatorManager.d.ts +0 -59
- package/dist/interfaces/IMultisigValidatorManager.d.ts.map +0 -1
- package/dist/interfaces/IMultisigValidatorManager.js +0 -4
- package/dist/interfaces/IMultisigValidatorManager.js.map +0 -1
- package/dist/interfaces/IOutbox.d.ts +0 -148
- package/dist/interfaces/IOutbox.d.ts.map +0 -1
- package/dist/interfaces/IOutbox.js +0 -4
- package/dist/interfaces/IOutbox.js.map +0 -1
- package/interfaces/IAbacusConnectionManager.sol +0 -12
- package/interfaces/IInbox.sol +0 -16
- package/interfaces/IMultisigValidatorManager.sol +0 -11
- package/interfaces/IOutbox.sol +0 -27
package/contracts/Router.sol
CHANGED
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
pragma solidity >=0.6.11;
|
|
3
3
|
|
|
4
4
|
// ============ Internal Imports ============
|
|
5
|
-
import {
|
|
6
|
-
import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
|
|
5
|
+
import {HyperlaneConnectionClient} from "./HyperlaneConnectionClient.sol";
|
|
7
6
|
import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
|
|
8
7
|
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
|
|
9
|
-
import {
|
|
8
|
+
import {IMailbox} from "../interfaces/IMailbox.sol";
|
|
10
9
|
|
|
11
|
-
abstract contract Router is
|
|
10
|
+
abstract contract Router is HyperlaneConnectionClient, IMessageRecipient {
|
|
12
11
|
string constant NO_ROUTER_ENROLLED_REVERT_MESSAGE =
|
|
13
12
|
"No router enrolled for domain. Did you specify the right domain ID?";
|
|
14
13
|
|
|
@@ -41,19 +40,16 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
|
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
// ======== Initializer =========
|
|
44
|
-
function __Router_initialize(address
|
|
45
|
-
|
|
46
|
-
onlyInitializing
|
|
47
|
-
{
|
|
48
|
-
__AbacusConnectionClient_initialize(_abacusConnectionManager);
|
|
43
|
+
function __Router_initialize(address _mailbox) internal onlyInitializing {
|
|
44
|
+
__HyperlaneConnectionClient_initialize(_mailbox);
|
|
49
45
|
}
|
|
50
46
|
|
|
51
47
|
function __Router_initialize(
|
|
52
|
-
address
|
|
48
|
+
address _mailbox,
|
|
53
49
|
address _interchainGasPaymaster
|
|
54
50
|
) internal onlyInitializing {
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
__HyperlaneConnectionClient_initialize(
|
|
52
|
+
_mailbox,
|
|
57
53
|
_interchainGasPaymaster
|
|
58
54
|
);
|
|
59
55
|
}
|
|
@@ -73,6 +69,21 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
|
|
|
73
69
|
_enrollRemoteRouter(_domain, _router);
|
|
74
70
|
}
|
|
75
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @notice Batch version of `enrollRemoteRouter`
|
|
74
|
+
* @param _domains The domaisn of the remote Application Routers
|
|
75
|
+
* @param _routers The addresses of the remote Application Routers
|
|
76
|
+
*/
|
|
77
|
+
function enrollRemoteRouters(
|
|
78
|
+
uint32[] calldata _domains,
|
|
79
|
+
bytes32[] calldata _routers
|
|
80
|
+
) external virtual onlyOwner {
|
|
81
|
+
require(_domains.length == _routers.length, "!length");
|
|
82
|
+
for (uint256 i = 0; i < _domains.length; i += 1) {
|
|
83
|
+
_enrollRemoteRouter(_domains[i], _routers[i]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
76
87
|
/**
|
|
77
88
|
* @notice Handles an incoming message
|
|
78
89
|
* @param _origin The origin domain
|
|
@@ -83,7 +94,7 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
|
|
|
83
94
|
uint32 _origin,
|
|
84
95
|
bytes32 _sender,
|
|
85
96
|
bytes calldata _message
|
|
86
|
-
) external virtual override
|
|
97
|
+
) external virtual override onlyMailbox onlyRemoteRouter(_origin, _sender) {
|
|
87
98
|
// TODO: callbacks on success/failure
|
|
88
99
|
_handle(_origin, _sender, _message);
|
|
89
100
|
}
|
|
@@ -135,60 +146,46 @@ abstract contract Router is AbacusConnectionClient, IMessageRecipient {
|
|
|
135
146
|
}
|
|
136
147
|
|
|
137
148
|
/**
|
|
138
|
-
* @notice Dispatches a message to an enrolled router via the local router's
|
|
139
|
-
* @notice Does not pay interchain gas.
|
|
140
|
-
* @dev Reverts if there is no enrolled router for _destinationDomain.
|
|
141
|
-
* @param _destinationDomain The domain of the chain to which to send the message.
|
|
142
|
-
* @param _msg The message to dispatch.
|
|
143
|
-
*/
|
|
144
|
-
function _dispatch(uint32 _destinationDomain, bytes memory _msg)
|
|
145
|
-
internal
|
|
146
|
-
returns (uint256)
|
|
147
|
-
{
|
|
148
|
-
return _dispatch(_outbox(), _destinationDomain, _msg);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* @notice Dispatches a message to an enrolled router via the local router's Outbox
|
|
149
|
+
* @notice Dispatches a message to an enrolled router via the local router's Mailbox
|
|
153
150
|
* and pays for it to be relayed to the destination.
|
|
154
151
|
* @dev Reverts if there is no enrolled router for _destinationDomain.
|
|
155
152
|
* @param _destinationDomain The domain of the chain to which to send the message.
|
|
156
|
-
* @param
|
|
153
|
+
* @param _messageBody Raw bytes content of message.
|
|
154
|
+
* @param _gasAmount The amount of destination gas for the message that is requested via the InterchainGasPaymaster.
|
|
157
155
|
* @param _gasPayment The amount of native tokens to pay for the message to be relayed.
|
|
156
|
+
* @param _gasPaymentRefundAddress The address to refund any gas overpayment to.
|
|
158
157
|
*/
|
|
159
158
|
function _dispatchWithGas(
|
|
160
159
|
uint32 _destinationDomain,
|
|
161
|
-
bytes memory
|
|
162
|
-
uint256
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
160
|
+
bytes memory _messageBody,
|
|
161
|
+
uint256 _gasAmount,
|
|
162
|
+
uint256 _gasPayment,
|
|
163
|
+
address _gasPaymentRefundAddress
|
|
164
|
+
) internal returns (bytes32 _messageId) {
|
|
165
|
+
_messageId = _dispatch(_destinationDomain, _messageBody);
|
|
166
|
+
// Call the IGP even if the gas payment is zero. This is to support on-chain
|
|
167
|
+
// fee quoting in IGPs, which should always revert if gas payment is insufficient.
|
|
168
|
+
interchainGasPaymaster.payForGas{value: _gasPayment}(
|
|
169
|
+
_messageId,
|
|
170
|
+
_destinationDomain,
|
|
171
|
+
_gasAmount,
|
|
172
|
+
_gasPaymentRefundAddress
|
|
173
|
+
);
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
// ============ Private functions ============
|
|
176
|
-
|
|
177
176
|
/**
|
|
178
|
-
* @notice Dispatches a message to an enrolled router via the provided
|
|
177
|
+
* @notice Dispatches a message to an enrolled router via the provided Mailbox.
|
|
179
178
|
* @dev Does not pay interchain gas.
|
|
180
179
|
* @dev Reverts if there is no enrolled router for _destinationDomain.
|
|
181
|
-
* @param _outbox The outbox contract to dispatch the message through.
|
|
182
180
|
* @param _destinationDomain The domain of the chain to which to send the message.
|
|
183
|
-
* @param
|
|
181
|
+
* @param _messageBody Raw bytes content of message.
|
|
184
182
|
*/
|
|
185
|
-
function _dispatch(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
) private returns (uint256) {
|
|
183
|
+
function _dispatch(uint32 _destinationDomain, bytes memory _messageBody)
|
|
184
|
+
internal
|
|
185
|
+
returns (bytes32)
|
|
186
|
+
{
|
|
190
187
|
// Ensure that destination chain has an enrolled router.
|
|
191
188
|
bytes32 _router = _mustHaveRemoteRouter(_destinationDomain);
|
|
192
|
-
return
|
|
189
|
+
return mailbox.dispatch(_destinationDomain, _router, _messageBody);
|
|
193
190
|
}
|
|
194
191
|
}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ External Imports ============
|
|
5
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
6
|
+
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
7
|
+
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
8
|
+
|
|
9
|
+
// ============ Internal Imports ============
|
|
10
|
+
import {IMultisigIsm} from "../../interfaces/IMultisigIsm.sol";
|
|
11
|
+
import {Message} from "../libs/Message.sol";
|
|
12
|
+
import {MultisigIsmMetadata} from "../libs/MultisigIsmMetadata.sol";
|
|
13
|
+
import {MerkleLib} from "../libs/Merkle.sol";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @title MultisigIsm
|
|
17
|
+
* @notice Manages an ownable set of validators that ECDSA sign checkpoints to
|
|
18
|
+
* reach a quorum.
|
|
19
|
+
*/
|
|
20
|
+
contract MultisigIsm is IMultisigIsm, Ownable {
|
|
21
|
+
// ============ Libraries ============
|
|
22
|
+
|
|
23
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
|
24
|
+
using Message for bytes;
|
|
25
|
+
using MultisigIsmMetadata for bytes;
|
|
26
|
+
using MerkleLib for MerkleLib.Tree;
|
|
27
|
+
|
|
28
|
+
// ============ Mutable Storage ============
|
|
29
|
+
|
|
30
|
+
/// @notice The validator threshold for each remote domain.
|
|
31
|
+
mapping(uint32 => uint8) public threshold;
|
|
32
|
+
|
|
33
|
+
/// @notice The validator set for each remote domain.
|
|
34
|
+
mapping(uint32 => EnumerableSet.AddressSet) private validatorSet;
|
|
35
|
+
|
|
36
|
+
/// @notice A succinct commitment to the validator set and threshold for each remote
|
|
37
|
+
/// domain.
|
|
38
|
+
mapping(uint32 => bytes32) public commitment;
|
|
39
|
+
|
|
40
|
+
// ============ Events ============
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @notice Emitted when a validator is enrolled in a validator set.
|
|
44
|
+
* @param domain The remote domain of the validator set.
|
|
45
|
+
* @param validator The address of the validator.
|
|
46
|
+
* @param validatorCount The number of enrolled validators in the validator set.
|
|
47
|
+
*/
|
|
48
|
+
event ValidatorEnrolled(
|
|
49
|
+
uint32 indexed domain,
|
|
50
|
+
address indexed validator,
|
|
51
|
+
uint256 validatorCount
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @notice Emitted when a validator is unenrolled from a validator set.
|
|
56
|
+
* @param domain The remote domain of the validator set.
|
|
57
|
+
* @param validator The address of the validator.
|
|
58
|
+
* @param validatorCount The number of enrolled validators in the validator set.
|
|
59
|
+
*/
|
|
60
|
+
event ValidatorUnenrolled(
|
|
61
|
+
uint32 indexed domain,
|
|
62
|
+
address indexed validator,
|
|
63
|
+
uint256 validatorCount
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @notice Emitted when the quorum threshold is set.
|
|
68
|
+
* @param domain The remote domain of the validator set.
|
|
69
|
+
* @param threshold The new quorum threshold.
|
|
70
|
+
*/
|
|
71
|
+
event ThresholdSet(uint32 indexed domain, uint8 threshold);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @notice Emitted when the validator set or threshold changes.
|
|
75
|
+
* @param domain The remote domain of the validator set.
|
|
76
|
+
* @param commitment A commitment to the validator set and threshold.
|
|
77
|
+
*/
|
|
78
|
+
event CommitmentUpdated(uint32 domain, bytes32 commitment);
|
|
79
|
+
|
|
80
|
+
// ============ Constructor ============
|
|
81
|
+
|
|
82
|
+
// solhint-disable-next-line no-empty-blocks
|
|
83
|
+
constructor() Ownable() {}
|
|
84
|
+
|
|
85
|
+
// ============ External Functions ============
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @notice Enrolls multiple validators into a validator set.
|
|
89
|
+
* @dev Reverts if `_validator` is already in the validator set.
|
|
90
|
+
* @param _domains The remote domains of the validator sets.
|
|
91
|
+
* @param _validators The validators to add to the validator sets.
|
|
92
|
+
* @dev _validators[i] are the validators to enroll for _domains[i].
|
|
93
|
+
*/
|
|
94
|
+
function enrollValidators(
|
|
95
|
+
uint32[] calldata _domains,
|
|
96
|
+
address[][] calldata _validators
|
|
97
|
+
) external onlyOwner {
|
|
98
|
+
require(_domains.length == _validators.length, "!length");
|
|
99
|
+
for (uint256 i = 0; i < _domains.length; i += 1) {
|
|
100
|
+
address[] calldata _domainValidators = _validators[i];
|
|
101
|
+
for (uint256 j = 0; j < _domainValidators.length; j += 1) {
|
|
102
|
+
_enrollValidator(_domains[i], _domainValidators[j]);
|
|
103
|
+
}
|
|
104
|
+
_updateCommitment(_domains[i]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @notice Enrolls a validator into a validator set.
|
|
110
|
+
* @dev Reverts if `_validator` is already in the validator set.
|
|
111
|
+
* @param _domain The remote domain of the validator set.
|
|
112
|
+
* @param _validator The validator to add to the validator set.
|
|
113
|
+
*/
|
|
114
|
+
function enrollValidator(uint32 _domain, address _validator)
|
|
115
|
+
external
|
|
116
|
+
onlyOwner
|
|
117
|
+
{
|
|
118
|
+
_enrollValidator(_domain, _validator);
|
|
119
|
+
_updateCommitment(_domain);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @notice Unenrolls a validator from a validator set.
|
|
124
|
+
* @dev Reverts if `_validator` is not in the validator set.
|
|
125
|
+
* @param _domain The remote domain of the validator set.
|
|
126
|
+
* @param _validator The validator to remove from the validator set.
|
|
127
|
+
*/
|
|
128
|
+
function unenrollValidator(uint32 _domain, address _validator)
|
|
129
|
+
external
|
|
130
|
+
onlyOwner
|
|
131
|
+
{
|
|
132
|
+
require(validatorSet[_domain].remove(_validator), "!enrolled");
|
|
133
|
+
uint256 _validatorCount = validatorCount(_domain);
|
|
134
|
+
require(
|
|
135
|
+
_validatorCount >= threshold[_domain],
|
|
136
|
+
"violates quorum threshold"
|
|
137
|
+
);
|
|
138
|
+
_updateCommitment(_domain);
|
|
139
|
+
emit ValidatorUnenrolled(_domain, _validator, _validatorCount);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @notice Sets the quorum threshold for multiple domains.
|
|
144
|
+
* @param _domains The remote domains of the validator sets.
|
|
145
|
+
* @param _thresholds The new quorum thresholds.
|
|
146
|
+
*/
|
|
147
|
+
function setThresholds(
|
|
148
|
+
uint32[] calldata _domains,
|
|
149
|
+
uint8[] calldata _thresholds
|
|
150
|
+
) external onlyOwner {
|
|
151
|
+
require(_domains.length == _thresholds.length, "!length");
|
|
152
|
+
for (uint256 i = 0; i < _domains.length; i += 1) {
|
|
153
|
+
setThreshold(_domains[i], _thresholds[i]);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @notice Returns whether an address is enrolled in a validator set.
|
|
159
|
+
* @param _domain The remote domain of the validator set.
|
|
160
|
+
* @param _address The address to test for set membership.
|
|
161
|
+
* @return True if the address is enrolled, false otherwise.
|
|
162
|
+
*/
|
|
163
|
+
function isEnrolled(uint32 _domain, address _address)
|
|
164
|
+
external
|
|
165
|
+
view
|
|
166
|
+
returns (bool)
|
|
167
|
+
{
|
|
168
|
+
EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
|
|
169
|
+
return _validatorSet.contains(_address);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// ============ Public Functions ============
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* @notice Sets the quorum threshold.
|
|
176
|
+
* @param _domain The remote domain of the validator set.
|
|
177
|
+
* @param _threshold The new quorum threshold.
|
|
178
|
+
*/
|
|
179
|
+
function setThreshold(uint32 _domain, uint8 _threshold) public onlyOwner {
|
|
180
|
+
require(
|
|
181
|
+
_threshold > 0 && _threshold <= validatorCount(_domain),
|
|
182
|
+
"!range"
|
|
183
|
+
);
|
|
184
|
+
threshold[_domain] = _threshold;
|
|
185
|
+
emit ThresholdSet(_domain, _threshold);
|
|
186
|
+
|
|
187
|
+
_updateCommitment(_domain);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @notice Verifies that a quorum of the origin domain's validators signed
|
|
192
|
+
* a checkpoint, and verifies the merkle proof of `_message` against that
|
|
193
|
+
* checkpoint.
|
|
194
|
+
* @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
|
|
195
|
+
* @param _message Formatted Hyperlane message (see Message.sol).
|
|
196
|
+
*/
|
|
197
|
+
function verify(bytes calldata _metadata, bytes calldata _message)
|
|
198
|
+
public
|
|
199
|
+
view
|
|
200
|
+
returns (bool)
|
|
201
|
+
{
|
|
202
|
+
require(_verifyMerkleProof(_metadata, _message), "!merkle");
|
|
203
|
+
require(_verifyValidatorSignatures(_metadata, _message), "!sigs");
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* @notice Gets the current validator set
|
|
209
|
+
* @param _domain The remote domain of the validator set.
|
|
210
|
+
* @return The addresses of the validator set.
|
|
211
|
+
*/
|
|
212
|
+
function validators(uint32 _domain) public view returns (address[] memory) {
|
|
213
|
+
EnumerableSet.AddressSet storage _validatorSet = validatorSet[_domain];
|
|
214
|
+
uint256 _validatorCount = _validatorSet.length();
|
|
215
|
+
address[] memory _validators = new address[](_validatorCount);
|
|
216
|
+
for (uint256 i = 0; i < _validatorCount; i++) {
|
|
217
|
+
_validators[i] = _validatorSet.at(i);
|
|
218
|
+
}
|
|
219
|
+
return _validators;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* @notice Returns the number of validators enrolled in the validator set.
|
|
224
|
+
* @param _domain The remote domain of the validator set.
|
|
225
|
+
* @return The number of validators enrolled in the validator set.
|
|
226
|
+
*/
|
|
227
|
+
function validatorCount(uint32 _domain) public view returns (uint256) {
|
|
228
|
+
return validatorSet[_domain].length();
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// ============ Internal Functions ============
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* @notice Enrolls a validator into a validator set.
|
|
235
|
+
* @dev Reverts if `_validator` is already in the validator set.
|
|
236
|
+
* @param _domain The remote domain of the validator set.
|
|
237
|
+
* @param _validator The validator to add to the validator set.
|
|
238
|
+
*/
|
|
239
|
+
function _enrollValidator(uint32 _domain, address _validator) internal {
|
|
240
|
+
require(_validator != address(0), "zero address");
|
|
241
|
+
require(validatorSet[_domain].add(_validator), "already enrolled");
|
|
242
|
+
emit ValidatorEnrolled(_domain, _validator, validatorCount(_domain));
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* @notice Updates the commitment to the validator set for `_domain`.
|
|
247
|
+
* @param _domain The remote domain of the validator set.
|
|
248
|
+
* @return The commitment to the validator set for `_domain`.
|
|
249
|
+
*/
|
|
250
|
+
function _updateCommitment(uint32 _domain) internal returns (bytes32) {
|
|
251
|
+
address[] memory _validators = validators(_domain);
|
|
252
|
+
uint8 _threshold = threshold[_domain];
|
|
253
|
+
bytes32 _commitment = keccak256(
|
|
254
|
+
abi.encodePacked(_threshold, _validators)
|
|
255
|
+
);
|
|
256
|
+
commitment[_domain] = _commitment;
|
|
257
|
+
emit CommitmentUpdated(_domain, _commitment);
|
|
258
|
+
return _commitment;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @notice Verifies the merkle proof of `_message` against the provided
|
|
263
|
+
* checkpoint.
|
|
264
|
+
* @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
|
|
265
|
+
* @param _message Formatted Hyperlane message (see Message.sol).
|
|
266
|
+
*/
|
|
267
|
+
function _verifyMerkleProof(
|
|
268
|
+
bytes calldata _metadata,
|
|
269
|
+
bytes calldata _message
|
|
270
|
+
) internal pure returns (bool) {
|
|
271
|
+
// calculate the expected root based on the proof
|
|
272
|
+
bytes32 _calculatedRoot = MerkleLib.branchRoot(
|
|
273
|
+
_message.id(),
|
|
274
|
+
_metadata.proof(),
|
|
275
|
+
_message.nonce()
|
|
276
|
+
);
|
|
277
|
+
return _calculatedRoot == _metadata.root();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* @notice Verifies that a quorum of the origin domain's validators signed
|
|
282
|
+
* the provided checkpoint.
|
|
283
|
+
* @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
|
|
284
|
+
* @param _message Formatted Hyperlane message (see Message.sol).
|
|
285
|
+
*/
|
|
286
|
+
function _verifyValidatorSignatures(
|
|
287
|
+
bytes calldata _metadata,
|
|
288
|
+
bytes calldata _message
|
|
289
|
+
) internal view returns (bool) {
|
|
290
|
+
uint8 _threshold = _metadata.threshold();
|
|
291
|
+
bytes32 _digest;
|
|
292
|
+
{
|
|
293
|
+
uint32 _origin = _message.origin();
|
|
294
|
+
|
|
295
|
+
bytes32 _commitment = keccak256(
|
|
296
|
+
abi.encodePacked(_threshold, _metadata.validators())
|
|
297
|
+
);
|
|
298
|
+
// Ensures the validator set encoded in the metadata matches
|
|
299
|
+
// what we've stored on chain.
|
|
300
|
+
// NB: An empty validator set in `_metadata` will result in a
|
|
301
|
+
// non-zero computed commitment, and this check will fail
|
|
302
|
+
// as the commitment in storage will be zero.
|
|
303
|
+
require(_commitment == commitment[_origin], "!commitment");
|
|
304
|
+
_digest = _getCheckpointDigest(_metadata, _origin);
|
|
305
|
+
}
|
|
306
|
+
uint256 _validatorCount = _metadata.validatorCount();
|
|
307
|
+
uint256 _validatorIndex = 0;
|
|
308
|
+
// Assumes that signatures are ordered by validator
|
|
309
|
+
for (uint256 i = 0; i < _threshold; ++i) {
|
|
310
|
+
address _signer = ECDSA.recover(_digest, _metadata.signatureAt(i));
|
|
311
|
+
// Loop through remaining validators until we find a match
|
|
312
|
+
for (
|
|
313
|
+
;
|
|
314
|
+
_validatorIndex < _validatorCount &&
|
|
315
|
+
_signer != _metadata.validatorAt(_validatorIndex);
|
|
316
|
+
++_validatorIndex
|
|
317
|
+
) {}
|
|
318
|
+
// Fail if we never found a match
|
|
319
|
+
require(_validatorIndex < _validatorCount, "!threshold");
|
|
320
|
+
++_validatorIndex;
|
|
321
|
+
}
|
|
322
|
+
return true;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* @notice Returns the domain hash that validators are expected to use
|
|
327
|
+
* when signing checkpoints.
|
|
328
|
+
* @param _origin The origin domain of the checkpoint.
|
|
329
|
+
* @param _originMailbox The address of the origin mailbox as bytes32.
|
|
330
|
+
* @return The domain hash.
|
|
331
|
+
*/
|
|
332
|
+
function _getDomainHash(uint32 _origin, bytes32 _originMailbox)
|
|
333
|
+
internal
|
|
334
|
+
pure
|
|
335
|
+
returns (bytes32)
|
|
336
|
+
{
|
|
337
|
+
// Including the origin mailbox address in the signature allows the slashing
|
|
338
|
+
// protocol to enroll multiple mailboxes. Otherwise, a valid signature for
|
|
339
|
+
// mailbox A would be indistinguishable from a fraudulent signature for mailbox
|
|
340
|
+
// B.
|
|
341
|
+
// The slashing protocol should slash if validators sign attestations for
|
|
342
|
+
// anything other than a whitelisted mailbox.
|
|
343
|
+
return
|
|
344
|
+
keccak256(abi.encodePacked(_origin, _originMailbox, "HYPERLANE"));
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* @notice Returns the digest validators are expected to sign when signing checkpoints.
|
|
349
|
+
* @param _metadata ABI encoded module metadata (see MultisigIsmMetadata.sol)
|
|
350
|
+
* @param _origin The origin domain of the checkpoint.
|
|
351
|
+
* @return The digest of the checkpoint.
|
|
352
|
+
*/
|
|
353
|
+
function _getCheckpointDigest(bytes calldata _metadata, uint32 _origin)
|
|
354
|
+
internal
|
|
355
|
+
pure
|
|
356
|
+
returns (bytes32)
|
|
357
|
+
{
|
|
358
|
+
bytes32 _domainHash = _getDomainHash(
|
|
359
|
+
_origin,
|
|
360
|
+
_metadata.originMailbox()
|
|
361
|
+
);
|
|
362
|
+
return
|
|
363
|
+
ECDSA.toEthSignedMessageHash(
|
|
364
|
+
keccak256(
|
|
365
|
+
abi.encodePacked(
|
|
366
|
+
_domainHash,
|
|
367
|
+
_metadata.root(),
|
|
368
|
+
_metadata.index()
|
|
369
|
+
)
|
|
370
|
+
)
|
|
371
|
+
);
|
|
372
|
+
}
|
|
373
|
+
}
|