@hyperlane-xyz/core 0.5.4-2 → 0.5.5
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 -69
- 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 -0
- 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/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 -0
- 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 -0
- 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 -0
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +12 -1
- 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/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 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +7 -1
- 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.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 -0
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +11 -1
- 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 -0
- package/dist/factories/interfaces/index.d.ts.map +1 -1
- package/dist/factories/interfaces/index.js +9 -1
- package/dist/factories/interfaces/index.js.map +1 -1
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -2
- 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 -0
- package/dist/interfaces/index.d.ts.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
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.13;
|
|
3
3
|
|
|
4
|
-
import "./
|
|
4
|
+
import "./MockOutbox.sol";
|
|
5
|
+
import "./MockInbox.sol";
|
|
6
|
+
import "../AbacusConnectionManager.sol";
|
|
5
7
|
import "../middleware/InterchainQueryRouter.sol";
|
|
6
8
|
|
|
7
9
|
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
@@ -10,30 +12,57 @@ contract MockHyperlaneEnvironment {
|
|
|
10
12
|
uint32 originDomain;
|
|
11
13
|
uint32 destinationDomain;
|
|
12
14
|
|
|
13
|
-
mapping(uint32 =>
|
|
15
|
+
mapping(uint32 => MockOutbox) public outboxes;
|
|
16
|
+
mapping(uint32 => MockInbox) public inboxes;
|
|
17
|
+
mapping(uint32 => AbacusConnectionManager) public connectionManagers;
|
|
14
18
|
mapping(uint32 => InterchainQueryRouter) public queryRouters;
|
|
15
19
|
|
|
16
20
|
constructor(uint32 _originDomain, uint32 _destinationDomain) {
|
|
17
21
|
originDomain = _originDomain;
|
|
18
22
|
destinationDomain = _destinationDomain;
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
MockInbox originInbox = new MockInbox();
|
|
25
|
+
MockOutbox originOutbox = new MockOutbox(
|
|
26
|
+
_originDomain,
|
|
27
|
+
address(originInbox)
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
MockInbox destinationInbox = new MockInbox();
|
|
31
|
+
MockOutbox destinationOutbox = new MockOutbox(
|
|
32
|
+
_destinationDomain,
|
|
33
|
+
address(destinationInbox)
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
outboxes[_originDomain] = originOutbox;
|
|
37
|
+
outboxes[_destinationDomain] = destinationOutbox;
|
|
38
|
+
inboxes[_originDomain] = destinationInbox;
|
|
39
|
+
inboxes[_destinationDomain] = originInbox;
|
|
22
40
|
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
AbacusConnectionManager originManager = new AbacusConnectionManager();
|
|
42
|
+
AbacusConnectionManager destinationManager = new AbacusConnectionManager();
|
|
43
|
+
|
|
44
|
+
originManager.setOutbox(address(originOutbox));
|
|
45
|
+
destinationManager.enrollInbox(
|
|
46
|
+
_destinationDomain,
|
|
47
|
+
address(originInbox)
|
|
48
|
+
);
|
|
49
|
+
destinationManager.setOutbox(address(destinationOutbox));
|
|
50
|
+
originManager.enrollInbox(_originDomain, address(destinationInbox));
|
|
51
|
+
|
|
52
|
+
connectionManagers[_originDomain] = originManager;
|
|
53
|
+
connectionManagers[_destinationDomain] = destinationManager;
|
|
25
54
|
|
|
26
55
|
InterchainQueryRouter originQueryRouter = new InterchainQueryRouter();
|
|
27
56
|
InterchainQueryRouter destinationQueryRouter = new InterchainQueryRouter();
|
|
28
57
|
|
|
29
58
|
originQueryRouter.initialize(
|
|
30
59
|
address(this),
|
|
31
|
-
address(
|
|
60
|
+
address(originManager),
|
|
32
61
|
address(0)
|
|
33
62
|
);
|
|
34
63
|
destinationQueryRouter.initialize(
|
|
35
64
|
address(this),
|
|
36
|
-
address(
|
|
65
|
+
address(destinationManager),
|
|
37
66
|
address(0)
|
|
38
67
|
);
|
|
39
68
|
|
|
@@ -50,11 +79,19 @@ contract MockHyperlaneEnvironment {
|
|
|
50
79
|
queryRouters[_destinationDomain] = destinationQueryRouter;
|
|
51
80
|
}
|
|
52
81
|
|
|
82
|
+
function connectionManager(uint32 _domain)
|
|
83
|
+
public
|
|
84
|
+
view
|
|
85
|
+
returns (AbacusConnectionManager)
|
|
86
|
+
{
|
|
87
|
+
return connectionManagers[_domain];
|
|
88
|
+
}
|
|
89
|
+
|
|
53
90
|
function processNextPendingMessage() public {
|
|
54
|
-
|
|
91
|
+
inboxes[destinationDomain].processNextPendingMessage();
|
|
55
92
|
}
|
|
56
93
|
|
|
57
94
|
function processNextPendingMessageFromDestination() public {
|
|
58
|
-
|
|
95
|
+
inboxes[originDomain].processNextPendingMessage();
|
|
59
96
|
}
|
|
60
97
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
5
|
+
import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
|
|
6
|
+
|
|
7
|
+
contract MockInbox {
|
|
8
|
+
using TypeCasts for bytes32;
|
|
9
|
+
|
|
10
|
+
struct PendingMessage {
|
|
11
|
+
uint32 originDomain;
|
|
12
|
+
bytes32 sender;
|
|
13
|
+
bytes32 recipient;
|
|
14
|
+
bytes messageBody;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
mapping(uint256 => PendingMessage) pendingMessages;
|
|
18
|
+
uint256 totalMessages = 0;
|
|
19
|
+
uint256 messageProcessed = 0;
|
|
20
|
+
|
|
21
|
+
function addPendingMessage(
|
|
22
|
+
uint32 _originDomain,
|
|
23
|
+
bytes32 _sender,
|
|
24
|
+
bytes32 _recipient,
|
|
25
|
+
bytes memory _messageBody
|
|
26
|
+
) external {
|
|
27
|
+
pendingMessages[totalMessages] = PendingMessage(
|
|
28
|
+
_originDomain,
|
|
29
|
+
_sender,
|
|
30
|
+
_recipient,
|
|
31
|
+
_messageBody
|
|
32
|
+
);
|
|
33
|
+
totalMessages += 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function processNextPendingMessage() public {
|
|
37
|
+
PendingMessage memory pendingMessage = pendingMessages[
|
|
38
|
+
messageProcessed
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
address recipient = pendingMessage.recipient.bytes32ToAddress();
|
|
42
|
+
|
|
43
|
+
IMessageRecipient(recipient).handle(
|
|
44
|
+
// This is completely arbitrary and consumers should not rely
|
|
45
|
+
// on domain handling in the mock mailbox contracts.
|
|
46
|
+
pendingMessage.originDomain,
|
|
47
|
+
pendingMessage.sender,
|
|
48
|
+
pendingMessage.messageBody
|
|
49
|
+
);
|
|
50
|
+
messageProcessed += 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -38,17 +38,31 @@ contract MockInterchainAccountRouter is IInterchainAccountRouter {
|
|
|
38
38
|
originDomain = _originDomain;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
function dispatch(uint32, Call[] calldata calls)
|
|
42
|
-
|
|
43
|
-
returns (
|
|
41
|
+
function dispatch(uint32 _destinationDomain, Call[] calldata calls)
|
|
42
|
+
public
|
|
43
|
+
returns (uint256)
|
|
44
44
|
{
|
|
45
|
+
return _dispatch(_destinationDomain, calls);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function dispatch(
|
|
49
|
+
uint32 _destinationDomain,
|
|
50
|
+
address target,
|
|
51
|
+
bytes calldata data
|
|
52
|
+
) external returns (uint256) {
|
|
53
|
+
Call[] memory calls = new Call[](1);
|
|
54
|
+
calls[0] = Call({to: target, data: data});
|
|
55
|
+
return _dispatch(_destinationDomain, calls);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _dispatch(uint32, Call[] memory calls) internal returns (uint256) {
|
|
45
59
|
pendingCalls[totalCalls] = PendingCall(
|
|
46
60
|
originDomain,
|
|
47
61
|
msg.sender,
|
|
48
62
|
abi.encode(calls)
|
|
49
63
|
);
|
|
50
64
|
totalCalls += 1;
|
|
51
|
-
return
|
|
65
|
+
return totalCalls;
|
|
52
66
|
}
|
|
53
67
|
|
|
54
68
|
function getInterchainAccount(uint32 _origin, address _sender)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {MockInbox} from "./MockInbox.sol";
|
|
5
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
6
|
+
|
|
7
|
+
contract MockOutbox {
|
|
8
|
+
MockInbox inbox;
|
|
9
|
+
uint32 domain;
|
|
10
|
+
using TypeCasts for address;
|
|
11
|
+
|
|
12
|
+
constructor(uint32 _domain, address _inbox) {
|
|
13
|
+
domain = _domain;
|
|
14
|
+
inbox = MockInbox(_inbox);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function dispatch(
|
|
18
|
+
uint32,
|
|
19
|
+
bytes32 _recipientAddress,
|
|
20
|
+
bytes calldata _messageBody
|
|
21
|
+
) external returns (uint256) {
|
|
22
|
+
inbox.addPendingMessage(
|
|
23
|
+
domain,
|
|
24
|
+
msg.sender.addressToBytes32(),
|
|
25
|
+
_recipientAddress,
|
|
26
|
+
_messageBody
|
|
27
|
+
);
|
|
28
|
+
return 1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {IPortalTokenBridge} from "../middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol";
|
|
5
|
+
import {MockToken} from "./MockToken.sol";
|
|
6
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
7
|
+
|
|
8
|
+
contract MockPortalBridge is IPortalTokenBridge {
|
|
9
|
+
uint256 nextNonce = 0;
|
|
10
|
+
MockToken token;
|
|
11
|
+
|
|
12
|
+
constructor(MockToken _token) {
|
|
13
|
+
token = _token;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function transferTokensWithPayload(
|
|
17
|
+
address,
|
|
18
|
+
uint256 amount,
|
|
19
|
+
uint16,
|
|
20
|
+
bytes32,
|
|
21
|
+
uint32,
|
|
22
|
+
bytes memory
|
|
23
|
+
) external payable returns (uint64 sequence) {
|
|
24
|
+
nextNonce = nextNonce + 1;
|
|
25
|
+
token.transferFrom(msg.sender, address(this), amount);
|
|
26
|
+
token.burn(amount);
|
|
27
|
+
return uint64(nextNonce);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function wrappedAsset(uint16, bytes32) external view returns (address) {
|
|
31
|
+
return address(token);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function isWrappedAsset(address) external pure returns (bool) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function completeTransferWithPayload(bytes memory encodedVm)
|
|
39
|
+
external
|
|
40
|
+
returns (bytes memory)
|
|
41
|
+
{
|
|
42
|
+
(uint32 _originDomain, uint224 _nonce, uint256 _amount) = abi.decode(
|
|
43
|
+
encodedVm,
|
|
44
|
+
(uint32, uint224, uint256)
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
token.mint(msg.sender, _amount);
|
|
48
|
+
// Format it so that parseTransferWithPayload returns the desired payload
|
|
49
|
+
return
|
|
50
|
+
abi.encode(
|
|
51
|
+
TypeCasts.addressToBytes32(address(token)),
|
|
52
|
+
adapterData(_originDomain, _nonce, address(token))
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function parseTransferWithPayload(bytes memory encoded)
|
|
57
|
+
external
|
|
58
|
+
pure
|
|
59
|
+
returns (TransferWithPayload memory transfer)
|
|
60
|
+
{
|
|
61
|
+
(bytes32 tokenAddress, bytes memory payload) = abi.decode(
|
|
62
|
+
encoded,
|
|
63
|
+
(bytes32, bytes)
|
|
64
|
+
);
|
|
65
|
+
transfer.payload = payload;
|
|
66
|
+
transfer.tokenAddress = tokenAddress;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function adapterData(
|
|
70
|
+
uint32 _originDomain,
|
|
71
|
+
uint224 _nonce,
|
|
72
|
+
address _token
|
|
73
|
+
) public pure returns (bytes memory) {
|
|
74
|
+
return
|
|
75
|
+
abi.encode(
|
|
76
|
+
_originDomain,
|
|
77
|
+
_nonce,
|
|
78
|
+
TypeCasts.addressToBytes32(_token)
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function mockPortalVaa(
|
|
83
|
+
uint32 _originDomain,
|
|
84
|
+
uint224 _nonce,
|
|
85
|
+
uint256 _amount
|
|
86
|
+
) public pure returns (bytes memory) {
|
|
87
|
+
return abi.encode(_originDomain, _nonce, _amount);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.6.11;
|
|
3
|
+
import {IOutbox} from "../../interfaces/IOutbox.sol";
|
|
4
|
+
|
|
5
|
+
import "../AbacusConnectionClient.sol";
|
|
6
|
+
|
|
7
|
+
contract TestAbacusConnectionClient is AbacusConnectionClient {
|
|
8
|
+
function initialize(address _abacusConnectionManager) external initializer {
|
|
9
|
+
__AbacusConnectionClient_initialize(_abacusConnectionManager);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function outbox() external view returns (IOutbox) {
|
|
13
|
+
return _outbox();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function isInbox(address _potentialInbox) external view returns (bool) {
|
|
17
|
+
return _isInbox(_potentialInbox);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function localDomain() external view returns (uint32) {
|
|
21
|
+
return _localDomain();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../Inbox.sol";
|
|
5
|
+
|
|
6
|
+
contract TestInbox is Inbox {
|
|
7
|
+
using Message for bytes32;
|
|
8
|
+
using TypeCasts for bytes32;
|
|
9
|
+
|
|
10
|
+
constructor(uint32 _localDomain) Inbox(_localDomain) {} // solhint-disable-line no-empty-blocks
|
|
11
|
+
|
|
12
|
+
function testBranchRoot(
|
|
13
|
+
bytes32 leaf,
|
|
14
|
+
bytes32[32] calldata proof,
|
|
15
|
+
uint256 index
|
|
16
|
+
) external pure returns (bytes32) {
|
|
17
|
+
return MerkleLib.branchRoot(leaf, proof, index);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function testProcess(bytes calldata _message, uint256 leafIndex) external {
|
|
21
|
+
bytes32 _messageHash = keccak256(abi.encodePacked(_message, leafIndex));
|
|
22
|
+
_process(_message, _messageHash);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function testHandle(
|
|
26
|
+
uint32 origin,
|
|
27
|
+
bytes32 sender,
|
|
28
|
+
bytes32 recipient,
|
|
29
|
+
bytes calldata body
|
|
30
|
+
) external {
|
|
31
|
+
IMessageRecipient(recipient.bytes32ToAddress()).handle(
|
|
32
|
+
origin,
|
|
33
|
+
sender,
|
|
34
|
+
body
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function setMessageStatus(bytes32 _leaf, MessageStatus status) external {
|
|
39
|
+
messages[_leaf] = status;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getRevertMsg(bytes calldata _res)
|
|
43
|
+
internal
|
|
44
|
+
pure
|
|
45
|
+
returns (string memory)
|
|
46
|
+
{
|
|
47
|
+
// If the _res length is less than 68, then the transaction failed
|
|
48
|
+
// silently (without a revert message)
|
|
49
|
+
if (_res.length < 68) return "Transaction reverted silently";
|
|
50
|
+
|
|
51
|
+
// Remove the selector (first 4 bytes) and decode revert string
|
|
52
|
+
return abi.decode(_res[4:], (string));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
6
|
-
import {MerkleLib} from "../libs/Merkle.sol";
|
|
7
|
-
import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
|
|
4
|
+
import "../Mailbox.sol";
|
|
8
5
|
|
|
9
6
|
contract TestMailbox is Mailbox {
|
|
10
|
-
|
|
7
|
+
constructor(uint32 _localDomain) Mailbox(_localDomain) {}
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function proof() external view returns (bytes32[32] memory) {
|
|
15
|
-
bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
|
|
16
|
-
uint256 _index = tree.count - 1;
|
|
17
|
-
bytes32[32] memory _proof;
|
|
18
|
-
|
|
19
|
-
for (uint256 i = 0; i < 32; i++) {
|
|
20
|
-
uint256 _ithBit = (_index >> i) & 0x01;
|
|
21
|
-
if (_ithBit == 1) {
|
|
22
|
-
_proof[i] = tree.branch[i];
|
|
23
|
-
} else {
|
|
24
|
-
_proof[i] = _zeroes[i];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return _proof;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function testHandle(
|
|
31
|
-
uint32 _origin,
|
|
32
|
-
bytes32 _sender,
|
|
33
|
-
bytes32 _recipient,
|
|
34
|
-
bytes calldata _body
|
|
35
|
-
) external {
|
|
36
|
-
IMessageRecipient(_recipient.bytes32ToAddress()).handle(
|
|
37
|
-
_origin,
|
|
38
|
-
_sender,
|
|
39
|
-
_body
|
|
40
|
-
);
|
|
9
|
+
function initialize(address _validatorManager) external initializer {
|
|
10
|
+
__Mailbox_initialize(_validatorManager);
|
|
41
11
|
}
|
|
42
12
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
|
-
import {MerkleLib} from "../libs/Merkle.sol";
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
using MerkleLib for MerkleLib.Tree;
|
|
4
|
+
import "../MerkleTreeManager.sol";
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
contract TestMerkle is MerkleTreeManager {
|
|
7
|
+
using MerkleLib for MerkleLib.Tree;
|
|
9
8
|
|
|
10
9
|
// solhint-disable-next-line no-empty-blocks
|
|
11
|
-
constructor() {}
|
|
10
|
+
constructor() MerkleTreeManager() {}
|
|
12
11
|
|
|
13
12
|
function insert(bytes32 _node) external {
|
|
14
13
|
tree.insert(_node);
|
|
@@ -28,8 +27,4 @@ contract TestMerkle {
|
|
|
28
27
|
function count() public view returns (uint256) {
|
|
29
28
|
return tree.count;
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
function root() public view returns (bytes32) {
|
|
33
|
-
return tree.root();
|
|
34
|
-
}
|
|
35
30
|
}
|
|
@@ -6,28 +6,12 @@ import {Message} from "../libs/Message.sol";
|
|
|
6
6
|
contract TestMessage {
|
|
7
7
|
using Message for bytes;
|
|
8
8
|
|
|
9
|
-
function version(bytes calldata _message)
|
|
10
|
-
external
|
|
11
|
-
pure
|
|
12
|
-
returns (uint32 _version)
|
|
13
|
-
{
|
|
14
|
-
return _message.version();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function nonce(bytes calldata _message)
|
|
18
|
-
external
|
|
19
|
-
pure
|
|
20
|
-
returns (uint256 _nonce)
|
|
21
|
-
{
|
|
22
|
-
return _message.nonce();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
9
|
function body(bytes calldata _message)
|
|
26
10
|
external
|
|
27
11
|
pure
|
|
28
12
|
returns (bytes calldata _body)
|
|
29
13
|
{
|
|
30
|
-
|
|
14
|
+
(, , , , _body) = _message.destructure();
|
|
31
15
|
}
|
|
32
16
|
|
|
33
17
|
function origin(bytes calldata _message)
|
|
@@ -35,7 +19,7 @@ contract TestMessage {
|
|
|
35
19
|
pure
|
|
36
20
|
returns (uint32 _origin)
|
|
37
21
|
{
|
|
38
|
-
|
|
22
|
+
(_origin, , , , ) = _message.destructure();
|
|
39
23
|
}
|
|
40
24
|
|
|
41
25
|
function sender(bytes calldata _message)
|
|
@@ -43,7 +27,7 @@ contract TestMessage {
|
|
|
43
27
|
pure
|
|
44
28
|
returns (bytes32 _sender)
|
|
45
29
|
{
|
|
46
|
-
|
|
30
|
+
(, _sender, , , ) = _message.destructure();
|
|
47
31
|
}
|
|
48
32
|
|
|
49
33
|
function destination(bytes calldata _message)
|
|
@@ -51,7 +35,7 @@ contract TestMessage {
|
|
|
51
35
|
pure
|
|
52
36
|
returns (uint32 _destination)
|
|
53
37
|
{
|
|
54
|
-
|
|
38
|
+
(, , _destination, , ) = _message.destructure();
|
|
55
39
|
}
|
|
56
40
|
|
|
57
41
|
function recipient(bytes calldata _message)
|
|
@@ -59,7 +43,7 @@ contract TestMessage {
|
|
|
59
43
|
pure
|
|
60
44
|
returns (bytes32 _recipient)
|
|
61
45
|
{
|
|
62
|
-
|
|
46
|
+
(, , , _recipient, ) = _message.destructure();
|
|
63
47
|
}
|
|
64
48
|
|
|
65
49
|
function recipientAddress(bytes calldata _message)
|
|
@@ -67,10 +51,14 @@ contract TestMessage {
|
|
|
67
51
|
pure
|
|
68
52
|
returns (address _recipient)
|
|
69
53
|
{
|
|
70
|
-
|
|
54
|
+
(, , , _recipient, ) = _message.destructureAddresses();
|
|
71
55
|
}
|
|
72
56
|
|
|
73
|
-
function
|
|
74
|
-
|
|
57
|
+
function leaf(bytes calldata _message, uint256 _leafIndex)
|
|
58
|
+
external
|
|
59
|
+
pure
|
|
60
|
+
returns (bytes32)
|
|
61
|
+
{
|
|
62
|
+
return _message.leaf(_leafIndex);
|
|
75
63
|
}
|
|
76
64
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {MultisigValidatorManager} from "../validator-manager/MultisigValidatorManager.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This contract exists to test MultisigValidatorManager.sol, which is abstract
|
|
8
|
+
* and cannot be deployed directly.
|
|
9
|
+
*/
|
|
10
|
+
contract TestMultisigValidatorManager is MultisigValidatorManager {
|
|
11
|
+
// solhint-disable-next-line no-empty-blocks
|
|
12
|
+
constructor(
|
|
13
|
+
uint32 _domain,
|
|
14
|
+
address[] memory _validators,
|
|
15
|
+
uint256 _threshold
|
|
16
|
+
) MultisigValidatorManager(_domain, _validators, _threshold) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @notice Hash of domain concatenated with "ABACUS".
|
|
20
|
+
* @dev This is a public getter of _domainHash to test with.
|
|
21
|
+
* @param _domain The domain to hash.
|
|
22
|
+
*/
|
|
23
|
+
function getDomainHash(uint32 _domain) external pure returns (bytes32) {
|
|
24
|
+
return _domainHash(_domain);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ Internal Imports ============
|
|
5
|
+
import "../Outbox.sol";
|
|
6
|
+
import {MerkleLib} from "../libs/Merkle.sol";
|
|
7
|
+
|
|
8
|
+
contract TestOutbox is Outbox {
|
|
9
|
+
constructor(uint32 _localDomain) Outbox(_localDomain) {} // solhint-disable-line no-empty-blocks
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @notice Set the validator manager
|
|
13
|
+
* @param _validatorManager Address of the validator manager
|
|
14
|
+
*/
|
|
15
|
+
function testSetValidatorManager(address _validatorManager) external {
|
|
16
|
+
validatorManager = _validatorManager;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function proof() external view returns (bytes32[32] memory) {
|
|
20
|
+
bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
|
|
21
|
+
uint256 _index = tree.count - 1;
|
|
22
|
+
bytes32[32] memory _proof;
|
|
23
|
+
|
|
24
|
+
for (uint256 i = 0; i < 32; i++) {
|
|
25
|
+
uint256 _ithBit = (_index >> i) & 0x01;
|
|
26
|
+
if (_ithBit == 1) {
|
|
27
|
+
_proof[i] = tree.branch[i];
|
|
28
|
+
} else {
|
|
29
|
+
_proof[i] = _zeroes[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return _proof;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function branch() external view returns (bytes32[32] memory) {
|
|
36
|
+
return tree.branch;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function branchRoot(
|
|
40
|
+
bytes32 _item,
|
|
41
|
+
bytes32[32] memory _branch,
|
|
42
|
+
uint256 _index
|
|
43
|
+
) external pure returns (bytes32) {
|
|
44
|
+
return MerkleLib.branchRoot(_item, _branch, _index);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -5,7 +5,7 @@ import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
|
5
5
|
|
|
6
6
|
import {IInterchainGasPaymaster} from "../../interfaces/IInterchainGasPaymaster.sol";
|
|
7
7
|
import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
|
|
8
|
-
import {
|
|
8
|
+
import {IOutbox} from "../../interfaces/IOutbox.sol";
|
|
9
9
|
|
|
10
10
|
contract TestSendReceiver is IMessageRecipient {
|
|
11
11
|
using TypeCasts for address;
|
|
@@ -13,12 +13,12 @@ contract TestSendReceiver is IMessageRecipient {
|
|
|
13
13
|
event Handled(bytes32 blockHash);
|
|
14
14
|
|
|
15
15
|
function dispatchToSelf(
|
|
16
|
-
|
|
16
|
+
IOutbox _outbox,
|
|
17
17
|
IInterchainGasPaymaster _paymaster,
|
|
18
18
|
uint32 _destinationDomain,
|
|
19
19
|
bytes calldata _messageBody
|
|
20
20
|
) external payable {
|
|
21
|
-
|
|
21
|
+
uint256 _leafIndex = _outbox.dispatch(
|
|
22
22
|
_destinationDomain,
|
|
23
23
|
address(this).addressToBytes32(),
|
|
24
24
|
_messageBody
|
|
@@ -28,14 +28,23 @@ contract TestSendReceiver is IMessageRecipient {
|
|
|
28
28
|
if (_blockHashNum % 5 == 0) {
|
|
29
29
|
// Pay in two separate calls, resulting in 2 distinct events
|
|
30
30
|
uint256 _half = _value / 2;
|
|
31
|
-
_paymaster.payGasFor{value: _half}(
|
|
31
|
+
_paymaster.payGasFor{value: _half}(
|
|
32
|
+
address(_outbox),
|
|
33
|
+
_leafIndex,
|
|
34
|
+
_destinationDomain
|
|
35
|
+
);
|
|
32
36
|
_paymaster.payGasFor{value: _value - _half}(
|
|
33
|
-
|
|
37
|
+
address(_outbox),
|
|
38
|
+
_leafIndex,
|
|
34
39
|
_destinationDomain
|
|
35
40
|
);
|
|
36
41
|
} else {
|
|
37
42
|
// Pay the entire msg.value in one call
|
|
38
|
-
_paymaster.payGasFor{value: _value}(
|
|
43
|
+
_paymaster.payGasFor{value: _value}(
|
|
44
|
+
address(_outbox),
|
|
45
|
+
_leafIndex,
|
|
46
|
+
_destinationDomain
|
|
47
|
+
);
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
50
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IInbox} from "../../interfaces/IInbox.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Intended for testing Inbox.sol, which requires its validator manager
|
|
8
|
+
* to be a contract.
|
|
9
|
+
*/
|
|
10
|
+
contract TestValidatorManager {
|
|
11
|
+
function process(
|
|
12
|
+
IInbox _inbox,
|
|
13
|
+
bytes32 _root,
|
|
14
|
+
uint256 _index,
|
|
15
|
+
bytes calldata _message,
|
|
16
|
+
bytes32[32] calldata _proof,
|
|
17
|
+
uint256 _leafIndex
|
|
18
|
+
) external {
|
|
19
|
+
_inbox.process(_root, _index, _message, _proof, _leafIndex);
|
|
20
|
+
}
|
|
21
|
+
}
|