@hyperlane-xyz/core 0.5.4-3 → 0.5.6
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/{HyperlaneConnectionClient.sol → AbacusConnectionClient.sol} +56 -70
- package/contracts/AbacusConnectionManager.sol +145 -0
- package/contracts/Inbox.sol +148 -0
- package/contracts/InterchainGasPaymaster.sol +11 -9
- package/contracts/Mailbox.sol +44 -179
- package/contracts/MerkleTreeManager.sol +32 -0
- package/contracts/Outbox.sol +191 -0
- package/contracts/Router.sol +45 -36
- package/contracts/libs/Message.sol +66 -107
- package/contracts/middleware/InterchainAccountRouter.sol +15 -6
- package/contracts/middleware/InterchainQueryRouter.sol +28 -9
- package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +3 -2
- package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +2 -1
- package/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol +215 -0
- package/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol +87 -0
- package/contracts/mock/MockHyperlaneEnvironment.sol +47 -10
- package/contracts/mock/MockInbox.sol +52 -0
- package/contracts/mock/MockInterchainAccountRouter.sol +18 -4
- package/contracts/mock/MockOutbox.sol +30 -0
- package/contracts/mock/MockPortalBridge.sol +89 -0
- package/contracts/test/TestAbacusConnectionClient.sol +23 -0
- package/contracts/test/TestInbox.sol +54 -0
- package/contracts/test/TestMailbox.sol +4 -34
- package/contracts/test/TestMerkle.sol +4 -9
- package/contracts/test/TestMessage.sol +12 -24
- package/contracts/test/TestMultisigValidatorManager.sol +26 -0
- package/contracts/test/TestOutbox.sol +46 -0
- package/contracts/test/TestSendReceiver.sol +15 -6
- package/contracts/test/TestValidatorManager.sol +21 -0
- package/contracts/validator-manager/InboxValidatorManager.sol +58 -0
- package/contracts/validator-manager/MultisigValidatorManager.sol +271 -0
- package/contracts/validator-manager/OutboxValidatorManager.sol +244 -0
- package/dist/contracts/{OwnableSpecifiesISM.d.ts → AbacusConnectionClient.d.ts} +65 -30
- package/dist/contracts/AbacusConnectionClient.d.ts.map +1 -0
- package/dist/contracts/AbacusConnectionClient.js +4 -0
- package/dist/contracts/AbacusConnectionClient.js.map +1 -0
- package/dist/contracts/AbacusConnectionManager.d.ts +213 -0
- package/dist/contracts/AbacusConnectionManager.d.ts.map +1 -0
- package/dist/contracts/AbacusConnectionManager.js +4 -0
- package/dist/contracts/AbacusConnectionManager.js.map +1 -0
- package/dist/contracts/Inbox.d.ts +207 -0
- package/dist/contracts/Inbox.d.ts.map +1 -0
- package/dist/contracts/{OwnableSpecifiesISM.js → Inbox.js} +1 -1
- package/dist/contracts/Inbox.js.map +1 -0
- package/dist/contracts/InterchainGasPaymaster.d.ts +13 -11
- package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
- package/dist/contracts/Mailbox.d.ts +28 -151
- package/dist/contracts/Mailbox.d.ts.map +1 -1
- package/dist/contracts/MerkleTreeManager.d.ts +53 -0
- package/dist/contracts/MerkleTreeManager.d.ts.map +1 -0
- package/dist/contracts/MerkleTreeManager.js +4 -0
- package/dist/contracts/MerkleTreeManager.js.map +1 -0
- package/dist/contracts/Outbox.d.ts +331 -0
- package/dist/contracts/Outbox.d.ts.map +1 -0
- package/dist/contracts/Outbox.js +4 -0
- package/dist/contracts/Outbox.js.map +1 -0
- package/dist/contracts/Router.d.ts +32 -81
- package/dist/contracts/Router.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +7 -3
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts +56 -89
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts +55 -88
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/V2CompatibilityMiddleware.d.ts +290 -0
- package/dist/contracts/middleware/V2CompatibilityMiddleware.d.ts.map +1 -0
- package/dist/contracts/middleware/V2CompatibilityMiddleware.js +4 -0
- package/dist/contracts/middleware/V2CompatibilityMiddleware.js.map +1 -0
- package/dist/contracts/middleware/V2CompatibilityMiddlewareRouter.d.ts +290 -0
- package/dist/contracts/middleware/V2CompatibilityMiddlewareRouter.d.ts.map +1 -0
- package/dist/contracts/middleware/V2CompatibilityMiddlewareRouter.js +4 -0
- package/dist/contracts/middleware/V2CompatibilityMiddlewareRouter.js.map +1 -0
- package/dist/contracts/middleware/V2CompatibilityRouter.d.ts +306 -0
- package/dist/contracts/middleware/V2CompatibilityRouter.d.ts.map +1 -0
- package/dist/contracts/middleware/V2CompatibilityRouter.js +4 -0
- package/dist/contracts/middleware/V2CompatibilityRouter.js.map +1 -0
- package/dist/contracts/middleware/index.d.ts +1 -0
- package/dist/contracts/middleware/index.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +37 -86
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +32 -81
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +378 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +2 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +148 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js +3 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts +291 -0
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js +4 -0
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts +416 -0
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js +4 -0
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/adapters/index.d.ts +2 -0
- package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/adapters/index.js +3 -0
- package/dist/contracts/middleware/token-bridge/adapters/index.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/index.d.ts +6 -0
- package/dist/contracts/middleware/token-bridge/index.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/index.js +4 -0
- package/dist/contracts/middleware/token-bridge/index.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts +67 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +4 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts +51 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +4 -0
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts +78 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js +4 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts +59 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js +4 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +3 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js +3 -0
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +5 -0
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +1 -0
- package/dist/contracts/middleware/token-bridge/interfaces/index.js +4 -0
- package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +1 -0
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +33 -9
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
- package/dist/contracts/mock/MockInbox.d.ts +67 -0
- package/dist/contracts/mock/MockInbox.d.ts.map +1 -0
- package/dist/contracts/mock/MockInbox.js +4 -0
- package/dist/contracts/mock/MockInbox.js.map +1 -0
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +24 -8
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/mock/MockOutbox.d.ts +51 -0
- package/dist/contracts/mock/MockOutbox.d.ts.map +1 -0
- package/dist/contracts/mock/MockOutbox.js +4 -0
- package/dist/contracts/mock/MockOutbox.js.map +1 -0
- package/dist/contracts/mock/MockPortalBridge.d.ts +164 -0
- package/dist/contracts/mock/MockPortalBridge.d.ts.map +1 -0
- package/dist/contracts/mock/MockPortalBridge.js +4 -0
- package/dist/contracts/mock/MockPortalBridge.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +3 -1
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/test/TestAbacusConnectionClient.d.ts +209 -0
- package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +1 -0
- package/dist/contracts/test/TestAbacusConnectionClient.js +4 -0
- package/dist/contracts/test/TestAbacusConnectionClient.js.map +1 -0
- package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts +5 -5
- package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +1 -1
- package/dist/contracts/test/TestInbox.d.ts +263 -0
- package/dist/contracts/test/TestInbox.d.ts.map +1 -0
- package/dist/contracts/test/TestInbox.js +4 -0
- package/dist/contracts/test/TestInbox.js.map +1 -0
- package/dist/contracts/test/TestMailbox.d.ts +33 -164
- package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
- package/dist/contracts/test/TestMessage.d.ts +10 -30
- package/dist/contracts/test/TestMessage.d.ts.map +1 -1
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts +247 -0
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +1 -0
- package/dist/contracts/test/TestMultisigValidatorManager.js +4 -0
- package/dist/contracts/test/TestMultisigValidatorManager.js.map +1 -0
- package/dist/contracts/test/TestOutbox.d.ts +371 -0
- package/dist/contracts/test/TestOutbox.d.ts.map +1 -0
- package/dist/contracts/test/TestOutbox.js +4 -0
- package/dist/contracts/test/TestOutbox.js.map +1 -0
- package/dist/contracts/test/TestRouter.d.ts +32 -81
- package/dist/contracts/test/TestRouter.d.ts.map +1 -1
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts +72 -0
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +1 -0
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +4 -0
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +1 -0
- package/dist/contracts/test/TestValidatorManager.d.ts +58 -0
- package/dist/contracts/test/TestValidatorManager.d.ts.map +1 -0
- package/dist/contracts/test/TestValidatorManager.js +4 -0
- package/dist/contracts/test/TestValidatorManager.js.map +1 -0
- package/dist/contracts/test/index.d.ts +5 -3
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +263 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +239 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +335 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/index.d.ts +4 -0
- package/dist/contracts/validator-manager/index.d.ts.map +1 -0
- package/dist/contracts/validator-manager/index.js +3 -0
- package/dist/contracts/validator-manager/index.js.map +1 -0
- package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts +43 -0
- package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/AbacusConnectionClient__factory.js +161 -0
- package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +1 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +55 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.js +276 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +1 -0
- package/dist/factories/contracts/Inbox__factory.d.ts +59 -0
- package/dist/factories/contracts/Inbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/Inbox__factory.js +278 -0
- package/dist/factories/contracts/Inbox__factory.js.map +1 -0
- 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 +18 -7
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +13 -29
- package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +11 -239
- package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +31 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.js +67 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.js.map +1 -0
- package/dist/factories/contracts/Outbox__factory.d.ts +59 -0
- package/dist/factories/contracts/Outbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/Outbox__factory.js +415 -0
- package/dist/factories/contracts/Outbox__factory.js.map +1 -0
- package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Router__factory.js +26 -83
- package/dist/factories/contracts/Router__factory.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +6 -2
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +12 -4
- package/dist/factories/contracts/index.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 +58 -86
- 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 +68 -91
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/V2CompatibilityMiddlewareRouter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddlewareRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddlewareRouter__factory.js +371 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddlewareRouter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddleware__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddleware__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddleware__factory.js +371 -0
- package/dist/factories/contracts/middleware/V2CompatibilityMiddleware__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.js +389 -0
- package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/index.d.ts +1 -0
- package/dist/factories/contracts/middleware/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/index.js +3 -1
- package/dist/factories/contracts/middleware/index.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 +31 -88
- 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 +31 -88
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +540 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +3 -1
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js +2 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +56 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +204 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js +9 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +380 -0
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +584 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts +2 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.js +9 -0
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts +4 -0
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/index.js +34 -0
- package/dist/factories/contracts/middleware/token-bridge/index.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts +23 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js +91 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +19 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js +51 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts +36 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js +104 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +23 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js +61 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts +3 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js +11 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +4 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js +35 -0
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +1 -0
- 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 +60 -3
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts +31 -0
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockInbox__factory.js +76 -0
- package/dist/factories/contracts/mock/MockInbox__factory.js.map +1 -0
- 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 +33 -4
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +45 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.js +86 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +79 -0
- package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js +296 -0
- package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +3 -1
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +7 -3
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +48 -0
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +242 -0
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +1 -0
- 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 +2 -2
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestInbox__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestInbox__factory.js +371 -0
- package/dist/factories/contracts/test/TestInbox__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +8 -1
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +13 -235
- 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 +7 -40
- package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +349 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestOutbox__factory.js +483 -0
- package/dist/factories/contracts/test/TestOutbox__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuerySender__factory.js +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 +31 -88
- package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +2 -2
- package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts +44 -0
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js +111 -0
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +31 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.js +79 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/index.d.ts +5 -3
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +11 -7
- package/dist/factories/contracts/test/index.js.map +1 -1
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +373 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +36 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +286 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +560 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/index.d.ts +4 -0
- package/dist/factories/contracts/validator-manager/index.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/index.js +13 -0
- package/dist/factories/contracts/validator-manager/index.js.map +1 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +23 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +63 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +1 -0
- package/dist/factories/interfaces/IInbox__factory.d.ts +29 -0
- package/dist/factories/interfaces/IInbox__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInbox__factory.js +90 -0
- package/dist/factories/interfaces/IInbox__factory.js.map +1 -0
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +31 -2
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +8 -3
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +38 -4
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/interfaces/IMailbox__factory.d.ts +1 -5
- package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IMailbox__factory.js +3 -81
- package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +19 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +57 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/interfaces/IOutbox__factory.d.ts +23 -0
- package/dist/factories/interfaces/IOutbox__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IOutbox__factory.js +155 -0
- package/dist/factories/interfaces/IOutbox__factory.js.map +1 -0
- package/dist/factories/interfaces/index.d.ts +4 -2
- package/dist/factories/interfaces/index.d.ts.map +1 -1
- package/dist/factories/interfaces/index.js +9 -27
- package/dist/factories/interfaces/index.js.map +1 -1
- package/dist/index.d.ts +46 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -20
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IAbacusConnectionManager.d.ts +59 -0
- package/dist/interfaces/IAbacusConnectionManager.d.ts.map +1 -0
- package/dist/interfaces/IAbacusConnectionManager.js +4 -0
- package/dist/interfaces/IAbacusConnectionManager.js.map +1 -0
- package/dist/interfaces/IInbox.d.ts +83 -0
- package/dist/interfaces/IInbox.d.ts.map +1 -0
- package/dist/interfaces/IInbox.js +4 -0
- package/dist/interfaces/IInbox.js.map +1 -0
- package/dist/interfaces/IInterchainAccountRouter.d.ts +24 -8
- package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -1
- package/dist/interfaces/IInterchainGasPaymaster.d.ts +7 -7
- package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
- package/dist/interfaces/IInterchainQueryRouter.d.ts +19 -3
- package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -1
- package/dist/interfaces/IMailbox.d.ts +10 -58
- package/dist/interfaces/IMailbox.d.ts.map +1 -1
- package/dist/interfaces/IMultisigValidatorManager.d.ts +59 -0
- package/dist/interfaces/IMultisigValidatorManager.d.ts.map +1 -0
- package/dist/interfaces/IMultisigValidatorManager.js +4 -0
- package/dist/interfaces/IMultisigValidatorManager.js.map +1 -0
- package/dist/interfaces/IOutbox.d.ts +148 -0
- package/dist/interfaces/IOutbox.d.ts.map +1 -0
- package/dist/interfaces/IOutbox.js +4 -0
- package/dist/interfaces/IOutbox.js.map +1 -0
- package/dist/interfaces/index.d.ts +4 -3
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +0 -1
- package/dist/interfaces/index.js.map +1 -1
- package/interfaces/IAbacusConnectionManager.sol +12 -0
- package/interfaces/IInbox.sol +16 -0
- package/interfaces/IInterchainAccountRouter.sol +7 -1
- package/interfaces/IInterchainGasPaymaster.sol +5 -3
- package/interfaces/IInterchainQueryRouter.sol +9 -2
- package/interfaces/IMailbox.sol +2 -15
- package/interfaces/IMultisigValidatorManager.sol +11 -0
- package/interfaces/IOutbox.sol +27 -0
- package/package.json +3 -4
- package/contracts/isms/MultisigIsm.sol +0 -340
- package/contracts/libs/MultisigIsmMetadata.sol +0 -187
- package/contracts/mock/MockMailbox.sol +0 -79
- package/contracts/test/TestHyperlaneConnectionClient.sol +0 -14
- package/contracts/test/TestIsm.sol +0 -20
- package/contracts/test/TestMultisigIsm.sol +0 -23
- package/dist/contracts/OwnableSpecifiesISM.d.ts.map +0 -1
- package/dist/contracts/OwnableSpecifiesISM.js.map +0 -1
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts +0 -55
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts.map +0 -1
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.js +0 -145
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.js.map +0 -1
- package/interfaces/IInterchainSecurityModule.sol +0 -16
- package/interfaces/IMultisigIsm.sol +0 -18
|
@@ -3,35 +3,30 @@ pragma solidity >=0.6.11;
|
|
|
3
3
|
|
|
4
4
|
// ============ Internal Imports ============
|
|
5
5
|
import {IInterchainGasPaymaster} from "../interfaces/IInterchainGasPaymaster.sol";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import {IOutbox} from "../interfaces/IOutbox.sol";
|
|
7
|
+
import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
|
|
8
8
|
|
|
9
9
|
// ============ External Imports ============
|
|
10
10
|
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
11
|
-
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
12
11
|
|
|
13
|
-
abstract contract
|
|
14
|
-
OwnableUpgradeable,
|
|
15
|
-
ISpecifiesInterchainSecurityModule
|
|
16
|
-
{
|
|
12
|
+
abstract contract AbacusConnectionClient is OwnableUpgradeable {
|
|
17
13
|
// ============ Mutable Storage ============
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
IAbacusConnectionManager public abacusConnectionManager;
|
|
20
16
|
// Interchain Gas Paymaster contract. The relayer associated with this contract
|
|
21
17
|
// must be willing to relay messages dispatched from the current Outbox contract,
|
|
22
18
|
// otherwise payments made to the paymaster will not result in relayed messages.
|
|
23
19
|
IInterchainGasPaymaster public interchainGasPaymaster;
|
|
24
20
|
|
|
25
|
-
IInterchainSecurityModule public interchainSecurityModule;
|
|
26
|
-
|
|
27
21
|
uint256[48] private __GAP; // gap for upgrade safety
|
|
28
22
|
|
|
29
23
|
// ============ Events ============
|
|
24
|
+
|
|
30
25
|
/**
|
|
31
|
-
* @notice Emitted when a new
|
|
32
|
-
* @param
|
|
26
|
+
* @notice Emitted when a new abacusConnectionManager is set.
|
|
27
|
+
* @param abacusConnectionManager The address of the abacusConnectionManager contract
|
|
33
28
|
*/
|
|
34
|
-
event
|
|
29
|
+
event AbacusConnectionManagerSet(address indexed abacusConnectionManager);
|
|
35
30
|
|
|
36
31
|
/**
|
|
37
32
|
* @notice Emitted when a new Interchain Gas Paymaster is set.
|
|
@@ -39,65 +34,45 @@ abstract contract HyperlaneConnectionClient is
|
|
|
39
34
|
*/
|
|
40
35
|
event InterchainGasPaymasterSet(address indexed interchainGasPaymaster);
|
|
41
36
|
|
|
42
|
-
event InterchainSecurityModuleSet(address indexed module);
|
|
43
|
-
|
|
44
37
|
// ============ Modifiers ============
|
|
45
38
|
|
|
46
39
|
/**
|
|
47
|
-
* @notice Only accept messages from an
|
|
40
|
+
* @notice Only accept messages from an Abacus Inbox contract
|
|
48
41
|
*/
|
|
49
|
-
modifier
|
|
50
|
-
require(msg.sender
|
|
51
|
-
_;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @notice Only accept addresses that at least have contract code
|
|
56
|
-
*/
|
|
57
|
-
modifier onlyContract(address _contract) {
|
|
58
|
-
// TODO: fix tests that provide zero address
|
|
59
|
-
// require(Address.isContract(_contract), "!contract");
|
|
42
|
+
modifier onlyInbox() {
|
|
43
|
+
require(_isInbox(msg.sender), "!inbox");
|
|
60
44
|
_;
|
|
61
45
|
}
|
|
62
46
|
|
|
63
47
|
// ======== Initializer =========
|
|
64
48
|
|
|
65
|
-
function
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
_setMailbox(_mailbox);
|
|
49
|
+
function __AbacusConnectionClient_initialize(
|
|
50
|
+
address _abacusConnectionManager
|
|
51
|
+
) internal onlyInitializing {
|
|
52
|
+
_setAbacusConnectionManager(_abacusConnectionManager);
|
|
70
53
|
__Ownable_init();
|
|
71
54
|
}
|
|
72
55
|
|
|
73
|
-
function
|
|
74
|
-
address
|
|
56
|
+
function __AbacusConnectionClient_initialize(
|
|
57
|
+
address _abacusConnectionManager,
|
|
75
58
|
address _interchainGasPaymaster
|
|
76
59
|
) internal onlyInitializing {
|
|
77
60
|
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function __HyperlaneConnectionClient_initialize(
|
|
82
|
-
address _mailbox,
|
|
83
|
-
address _interchainGasPaymaster,
|
|
84
|
-
address _interchainSecurityModule
|
|
85
|
-
) internal onlyInitializing {
|
|
86
|
-
_setInterchainSecurityModule(_interchainSecurityModule);
|
|
87
|
-
__HyperlaneConnectionClient_initialize(
|
|
88
|
-
_mailbox,
|
|
89
|
-
_interchainGasPaymaster
|
|
90
|
-
);
|
|
61
|
+
__AbacusConnectionClient_initialize(_abacusConnectionManager);
|
|
91
62
|
}
|
|
92
63
|
|
|
93
64
|
// ============ External functions ============
|
|
94
65
|
|
|
95
66
|
/**
|
|
96
|
-
* @notice Sets the address of the application's
|
|
97
|
-
* @param
|
|
67
|
+
* @notice Sets the address of the application's AbacusConnectionManager.
|
|
68
|
+
* @param _abacusConnectionManager The address of the AbacusConnectionManager contract.
|
|
98
69
|
*/
|
|
99
|
-
function
|
|
100
|
-
|
|
70
|
+
function setAbacusConnectionManager(address _abacusConnectionManager)
|
|
71
|
+
external
|
|
72
|
+
virtual
|
|
73
|
+
onlyOwner
|
|
74
|
+
{
|
|
75
|
+
_setAbacusConnectionManager(_abacusConnectionManager);
|
|
101
76
|
}
|
|
102
77
|
|
|
103
78
|
/**
|
|
@@ -112,14 +87,6 @@ abstract contract HyperlaneConnectionClient is
|
|
|
112
87
|
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
113
88
|
}
|
|
114
89
|
|
|
115
|
-
function setInterchainSecurityModule(address _module)
|
|
116
|
-
external
|
|
117
|
-
virtual
|
|
118
|
-
onlyOwner
|
|
119
|
-
{
|
|
120
|
-
_setInterchainSecurityModule(_module);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
90
|
// ============ Internal functions ============
|
|
124
91
|
|
|
125
92
|
/**
|
|
@@ -128,7 +95,6 @@ abstract contract HyperlaneConnectionClient is
|
|
|
128
95
|
*/
|
|
129
96
|
function _setInterchainGasPaymaster(address _interchainGasPaymaster)
|
|
130
97
|
internal
|
|
131
|
-
onlyContract(_interchainGasPaymaster)
|
|
132
98
|
{
|
|
133
99
|
interchainGasPaymaster = IInterchainGasPaymaster(
|
|
134
100
|
_interchainGasPaymaster
|
|
@@ -138,18 +104,38 @@ abstract contract HyperlaneConnectionClient is
|
|
|
138
104
|
|
|
139
105
|
/**
|
|
140
106
|
* @notice Modify the contract the Application uses to validate Inbox contracts
|
|
141
|
-
* @param
|
|
107
|
+
* @param _abacusConnectionManager The address of the abacusConnectionManager contract
|
|
142
108
|
*/
|
|
143
|
-
function
|
|
144
|
-
mailbox = IMailbox(_mailbox);
|
|
145
|
-
emit MailboxSet(_mailbox);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function _setInterchainSecurityModule(address _module)
|
|
109
|
+
function _setAbacusConnectionManager(address _abacusConnectionManager)
|
|
149
110
|
internal
|
|
150
|
-
onlyContract(_module)
|
|
151
111
|
{
|
|
152
|
-
|
|
153
|
-
|
|
112
|
+
abacusConnectionManager = IAbacusConnectionManager(
|
|
113
|
+
_abacusConnectionManager
|
|
114
|
+
);
|
|
115
|
+
emit AbacusConnectionManagerSet(_abacusConnectionManager);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @notice Get the local Outbox contract from the abacusConnectionManager
|
|
120
|
+
* @return The local Outbox contract
|
|
121
|
+
*/
|
|
122
|
+
function _outbox() internal view returns (IOutbox) {
|
|
123
|
+
return abacusConnectionManager.outbox();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @notice Determine whether _potentialInbox is an enrolled Inbox from the abacusConnectionManager
|
|
128
|
+
* @return True if _potentialInbox is an enrolled Inbox
|
|
129
|
+
*/
|
|
130
|
+
function _isInbox(address _potentialInbox) internal view returns (bool) {
|
|
131
|
+
return abacusConnectionManager.isInbox(_potentialInbox);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @notice Get the local domain from the abacusConnectionManager
|
|
136
|
+
* @return The local domain
|
|
137
|
+
*/
|
|
138
|
+
function _localDomain() internal view virtual returns (uint32) {
|
|
139
|
+
return abacusConnectionManager.localDomain();
|
|
154
140
|
}
|
|
155
141
|
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
pragma abicoder v2;
|
|
4
|
+
|
|
5
|
+
// ============ Internal Imports ============
|
|
6
|
+
import {IOutbox} from "../interfaces/IOutbox.sol";
|
|
7
|
+
import {IAbacusConnectionManager} from "../interfaces/IAbacusConnectionManager.sol";
|
|
8
|
+
|
|
9
|
+
// ============ External Imports ============
|
|
10
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
11
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
12
|
+
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @title AbacusConnectionManager
|
|
16
|
+
* @author Celo Labs Inc.
|
|
17
|
+
* @notice Manages a registry of local Inbox contracts for remote Outbox
|
|
18
|
+
* domains.
|
|
19
|
+
*/
|
|
20
|
+
contract AbacusConnectionManager is IAbacusConnectionManager, Ownable {
|
|
21
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
|
22
|
+
|
|
23
|
+
// ============ Public Storage ============
|
|
24
|
+
|
|
25
|
+
// Outbox contract
|
|
26
|
+
IOutbox public override outbox;
|
|
27
|
+
// local Inbox address => remote Outbox domain
|
|
28
|
+
mapping(address => uint32) public inboxToDomain;
|
|
29
|
+
// remote Outbox domain => local Inbox addresses
|
|
30
|
+
mapping(uint32 => EnumerableSet.AddressSet) domainToInboxes;
|
|
31
|
+
|
|
32
|
+
// ============ Events ============
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice Emitted when a new Outbox is set.
|
|
36
|
+
* @param outbox the address of the Outbox
|
|
37
|
+
*/
|
|
38
|
+
event OutboxSet(address indexed outbox);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @notice Emitted when a new Inbox is enrolled / added
|
|
42
|
+
* @param domain the remote domain of the Outbox contract for the Inbox
|
|
43
|
+
* @param inbox the address of the Inbox
|
|
44
|
+
*/
|
|
45
|
+
event InboxEnrolled(uint32 indexed domain, address inbox);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @notice Emitted when a new Inbox is un-enrolled / removed
|
|
49
|
+
* @param domain the remote domain of the Outbox contract for the Inbox
|
|
50
|
+
* @param inbox the address of the Inbox
|
|
51
|
+
*/
|
|
52
|
+
event InboxUnenrolled(uint32 indexed domain, address inbox);
|
|
53
|
+
|
|
54
|
+
// ============ Constructor ============
|
|
55
|
+
|
|
56
|
+
// solhint-disable-next-line no-empty-blocks
|
|
57
|
+
constructor() Ownable() {}
|
|
58
|
+
|
|
59
|
+
// ============ External Functions ============
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @notice Sets the address of the local Outbox contract.
|
|
63
|
+
* @param _outbox The address of the new local Outbox contract.
|
|
64
|
+
*/
|
|
65
|
+
function setOutbox(address _outbox) external onlyOwner {
|
|
66
|
+
require(Address.isContract(_outbox), "outbox !contract");
|
|
67
|
+
outbox = IOutbox(_outbox);
|
|
68
|
+
emit OutboxSet(_outbox);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @notice Allow Owner to enroll Inbox contract
|
|
73
|
+
* @param _domain the remote domain of the Outbox contract for the Inbox
|
|
74
|
+
* @param _inbox the address of the Inbox
|
|
75
|
+
*/
|
|
76
|
+
function enrollInbox(uint32 _domain, address _inbox) external onlyOwner {
|
|
77
|
+
require(Address.isContract(_inbox), "inbox !contract");
|
|
78
|
+
require(!isInbox(_inbox), "already inbox");
|
|
79
|
+
// add inbox and domain to two-way mapping
|
|
80
|
+
inboxToDomain[_inbox] = _domain;
|
|
81
|
+
domainToInboxes[_domain].add(_inbox);
|
|
82
|
+
emit InboxEnrolled(_domain, _inbox);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @notice Allow Owner to un-enroll Inbox contract
|
|
87
|
+
* @param _inbox the address of the Inbox
|
|
88
|
+
*/
|
|
89
|
+
function unenrollInbox(address _inbox) external onlyOwner {
|
|
90
|
+
_unenrollInbox(_inbox);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @notice Query local domain from Outbox
|
|
95
|
+
* @return local domain
|
|
96
|
+
*/
|
|
97
|
+
function localDomain() external view override returns (uint32) {
|
|
98
|
+
return outbox.localDomain();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @notice Returns the Inbox addresses for a given remote domain
|
|
103
|
+
* @return inboxes An array of addresses of the Inboxes
|
|
104
|
+
*/
|
|
105
|
+
function getInboxes(uint32 remoteDomain)
|
|
106
|
+
external
|
|
107
|
+
view
|
|
108
|
+
returns (address[] memory)
|
|
109
|
+
{
|
|
110
|
+
EnumerableSet.AddressSet storage _inboxes = domainToInboxes[
|
|
111
|
+
remoteDomain
|
|
112
|
+
];
|
|
113
|
+
uint256 length = _inboxes.length();
|
|
114
|
+
address[] memory ret = new address[](length);
|
|
115
|
+
for (uint256 i = 0; i < length; i += 1) {
|
|
116
|
+
ret[i] = _inboxes.at(i);
|
|
117
|
+
}
|
|
118
|
+
return ret;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// ============ Public Functions ============
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @notice Check whether _inbox is enrolled
|
|
125
|
+
* @param _inbox the inbox to check for enrollment
|
|
126
|
+
* @return TRUE iff _inbox is enrolled
|
|
127
|
+
*/
|
|
128
|
+
function isInbox(address _inbox) public view override returns (bool) {
|
|
129
|
+
return inboxToDomain[_inbox] != 0;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// ============ Internal Functions ============
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @notice Remove the inbox from the two-way mappings
|
|
136
|
+
* @param _inbox inbox to un-enroll
|
|
137
|
+
*/
|
|
138
|
+
function _unenrollInbox(address _inbox) internal {
|
|
139
|
+
uint32 _currentDomain = inboxToDomain[_inbox];
|
|
140
|
+
require(domainToInboxes[_currentDomain].remove(_inbox), "not enrolled");
|
|
141
|
+
domainToInboxes[_currentDomain].remove(_inbox);
|
|
142
|
+
inboxToDomain[_inbox] = 0;
|
|
143
|
+
emit InboxUnenrolled(_currentDomain, _inbox);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ Internal Imports ============
|
|
5
|
+
import {Versioned} from "./upgrade/Versioned.sol";
|
|
6
|
+
import {Mailbox} from "./Mailbox.sol";
|
|
7
|
+
import {MerkleLib} from "./libs/Merkle.sol";
|
|
8
|
+
import {Message} from "./libs/Message.sol";
|
|
9
|
+
import {TypeCasts} from "./libs/TypeCasts.sol";
|
|
10
|
+
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
|
|
11
|
+
import {IInbox} from "../interfaces/IInbox.sol";
|
|
12
|
+
|
|
13
|
+
// ============ External Imports ============
|
|
14
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @title Inbox
|
|
18
|
+
* @author Celo Labs Inc.
|
|
19
|
+
* @notice Track root updates on Outbox, prove and dispatch messages to end
|
|
20
|
+
* recipients.
|
|
21
|
+
*/
|
|
22
|
+
contract Inbox is IInbox, ReentrancyGuardUpgradeable, Versioned, Mailbox {
|
|
23
|
+
// ============ Libraries ============
|
|
24
|
+
|
|
25
|
+
using MerkleLib for MerkleLib.Tree;
|
|
26
|
+
using Message for bytes;
|
|
27
|
+
using TypeCasts for bytes32;
|
|
28
|
+
|
|
29
|
+
// ============ Enums ============
|
|
30
|
+
|
|
31
|
+
// Status of Message:
|
|
32
|
+
// 0 - None - message has not been processed
|
|
33
|
+
// 1 - Processed - message has been dispatched to recipient
|
|
34
|
+
enum MessageStatus {
|
|
35
|
+
None,
|
|
36
|
+
Processed
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ============ Public Storage ============
|
|
40
|
+
|
|
41
|
+
// Domain of outbox chain
|
|
42
|
+
uint32 public override remoteDomain;
|
|
43
|
+
// Mapping of message leaves to MessageStatus
|
|
44
|
+
mapping(bytes32 => MessageStatus) public messages;
|
|
45
|
+
|
|
46
|
+
// ============ Upgrade Gap ============
|
|
47
|
+
|
|
48
|
+
// gap for upgrade safety
|
|
49
|
+
uint256[48] private __GAP;
|
|
50
|
+
|
|
51
|
+
// ============ Events ============
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @notice Emitted when message is processed
|
|
55
|
+
* @dev This event allows watchers to observe the merkle proof they need
|
|
56
|
+
* to prove fraud on the Outbox.
|
|
57
|
+
* @param messageHash Hash of message that was processed.
|
|
58
|
+
*/
|
|
59
|
+
event Process(bytes32 indexed messageHash);
|
|
60
|
+
|
|
61
|
+
// ============ Constructor ============
|
|
62
|
+
|
|
63
|
+
// solhint-disable-next-line no-empty-blocks
|
|
64
|
+
constructor(uint32 _localDomain) Mailbox(_localDomain) {}
|
|
65
|
+
|
|
66
|
+
// ============ Initializer ============
|
|
67
|
+
|
|
68
|
+
function initialize(uint32 _remoteDomain, address _validatorManager)
|
|
69
|
+
external
|
|
70
|
+
initializer
|
|
71
|
+
{
|
|
72
|
+
__ReentrancyGuard_init();
|
|
73
|
+
__Mailbox_initialize(_validatorManager);
|
|
74
|
+
remoteDomain = _remoteDomain;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// ============ External Functions ============
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @notice Attempts to process the provided formatted `message`. Performs
|
|
81
|
+
* verification against root of the proof
|
|
82
|
+
* @dev Called by the validator manager, which is responsible for verifying a
|
|
83
|
+
* quorum of validator signatures on the checkpoint.
|
|
84
|
+
* @dev Reverts if verification of the message fails.
|
|
85
|
+
* @param _root The merkle root of the checkpoint used to prove message inclusion.
|
|
86
|
+
* @param _index The index of the checkpoint used to prove message inclusion.
|
|
87
|
+
* @param _message Formatted message (refer to Mailbox.sol Message library)
|
|
88
|
+
* @param _proof Merkle proof of inclusion for message's leaf
|
|
89
|
+
* @param _leafIndex Index of leaf in outbox's merkle tree
|
|
90
|
+
*/
|
|
91
|
+
function process(
|
|
92
|
+
bytes32 _root,
|
|
93
|
+
uint256 _index,
|
|
94
|
+
bytes calldata _message,
|
|
95
|
+
bytes32[32] calldata _proof,
|
|
96
|
+
uint256 _leafIndex
|
|
97
|
+
) external override nonReentrant onlyValidatorManager {
|
|
98
|
+
require(_index >= _leafIndex, "!index");
|
|
99
|
+
bytes32 _messageHash = _message.leaf(_leafIndex);
|
|
100
|
+
// ensure that message has not been processed
|
|
101
|
+
require(
|
|
102
|
+
messages[_messageHash] == MessageStatus.None,
|
|
103
|
+
"!MessageStatus.None"
|
|
104
|
+
);
|
|
105
|
+
// calculate the expected root based on the proof
|
|
106
|
+
bytes32 _calculatedRoot = MerkleLib.branchRoot(
|
|
107
|
+
_messageHash,
|
|
108
|
+
_proof,
|
|
109
|
+
_leafIndex
|
|
110
|
+
);
|
|
111
|
+
// verify the merkle proof
|
|
112
|
+
require(_calculatedRoot == _root, "!proof");
|
|
113
|
+
_process(_message, _messageHash);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ============ Internal Functions ============
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @notice Marks a message as processed and calls handle on the recipient
|
|
120
|
+
* @dev Internal function that can be called by contracts like TestInbox
|
|
121
|
+
* @param _message Formatted message (refer to Mailbox.sol Message library)
|
|
122
|
+
* @param _messageHash keccak256 hash of the message
|
|
123
|
+
*/
|
|
124
|
+
function _process(bytes calldata _message, bytes32 _messageHash) internal {
|
|
125
|
+
(
|
|
126
|
+
uint32 origin,
|
|
127
|
+
bytes32 sender,
|
|
128
|
+
uint32 destination,
|
|
129
|
+
bytes32 recipient,
|
|
130
|
+
bytes calldata body
|
|
131
|
+
) = _message.destructure();
|
|
132
|
+
|
|
133
|
+
// ensure message came from the correct domain
|
|
134
|
+
require(origin == remoteDomain, "!origin");
|
|
135
|
+
// ensure message was meant for this domain
|
|
136
|
+
require(destination == localDomain, "!destination");
|
|
137
|
+
|
|
138
|
+
// update message status as processed
|
|
139
|
+
messages[_messageHash] = MessageStatus.Processed;
|
|
140
|
+
|
|
141
|
+
IMessageRecipient(recipient.bytes32ToAddress()).handle(
|
|
142
|
+
origin,
|
|
143
|
+
sender,
|
|
144
|
+
body
|
|
145
|
+
);
|
|
146
|
+
emit Process(_messageHash);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -16,10 +16,11 @@ contract InterchainGasPaymaster is IInterchainGasPaymaster, OwnableUpgradeable {
|
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @notice Emitted when a payment is made for a message's gas costs.
|
|
19
|
-
* @param
|
|
19
|
+
* @param outbox The address of the Outbox contract.
|
|
20
|
+
* @param leafIndex The index of the message in the Outbox merkle tree.
|
|
20
21
|
* @param amount The amount of native tokens paid.
|
|
21
22
|
*/
|
|
22
|
-
event GasPayment(
|
|
23
|
+
event GasPayment(address indexed outbox, uint256 leafIndex, uint256 amount);
|
|
23
24
|
|
|
24
25
|
// ============ Constructor ============
|
|
25
26
|
|
|
@@ -37,20 +38,21 @@ contract InterchainGasPaymaster is IInterchainGasPaymaster, OwnableUpgradeable {
|
|
|
37
38
|
/**
|
|
38
39
|
* @notice Deposits msg.value as a payment for the relaying of a message
|
|
39
40
|
* to its destination chain.
|
|
40
|
-
* @param
|
|
41
|
+
* @param _outbox The address of the Outbox contract.
|
|
42
|
+
* @param _leafIndex The index of the message in the Outbox merkle tree.
|
|
41
43
|
* @param _destinationDomain The domain of the message's destination chain.
|
|
42
44
|
*/
|
|
43
|
-
function payGasFor(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{
|
|
45
|
+
function payGasFor(
|
|
46
|
+
address _outbox,
|
|
47
|
+
uint256 _leafIndex,
|
|
48
|
+
uint32 _destinationDomain
|
|
49
|
+
) external payable override {
|
|
48
50
|
// Silence compiler warning. The NatSpec @param requires the parameter to be named.
|
|
49
51
|
// While not used at the moment, future versions of the paymaster may conditionally
|
|
50
52
|
// forward payments depending on the destination domain.
|
|
51
53
|
_destinationDomain;
|
|
52
54
|
|
|
53
|
-
emit GasPayment(
|
|
55
|
+
emit GasPayment(_outbox, _leafIndex, msg.value);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/**
|