@hyperlane-xyz/core 0.5.3 → 0.5.4-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/Call.sol +7 -0
- package/contracts/{AbacusConnectionClient.sol → HyperlaneConnectionClient.sol} +69 -56
- package/contracts/InterchainGasPaymaster.sol +9 -11
- package/contracts/Mailbox.sol +179 -44
- package/contracts/OwnableMulticall.sol +1 -5
- package/contracts/Router.sol +21 -45
- package/contracts/isms/MultisigIsm.sol +340 -0
- package/contracts/libs/Message.sol +107 -66
- package/contracts/libs/MultisigIsmMetadata.sol +187 -0
- package/contracts/middleware/InterchainAccountRouter.sol +9 -6
- package/contracts/middleware/InterchainQueryRouter.sol +15 -9
- package/contracts/middleware/{token-bridge/TokenBridgeRouter.sol → liquidity-layer/LiquidityLayerRouter.sol} +16 -17
- package/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.sol +14 -16
- package/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter.sol → liquidity-layer/interfaces/ILiquidityLayerAdapter.sol} +1 -1
- package/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient.sol → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.sol} +1 -1
- package/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.sol +0 -0
- package/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.sol +0 -0
- package/contracts/mock/MockCircleBridge.sol +38 -0
- package/contracts/mock/MockCircleMessageTransmitter.sol +43 -0
- package/contracts/mock/MockHyperlaneEnvironment.sol +60 -0
- package/contracts/mock/MockInterchainAccountRouter.sol +98 -0
- package/contracts/mock/MockMailbox.sol +79 -0
- package/contracts/test/TestHyperlaneConnectionClient.sol +14 -0
- package/contracts/test/TestIsm.sol +20 -0
- package/contracts/test/{TestTokenBridgeMessageRecipient.sol → TestLiquidityLayerMessageRecipient.sol} +2 -2
- package/contracts/test/TestMailbox.sol +34 -4
- package/contracts/test/TestMerkle.sol +9 -4
- package/contracts/test/TestMessage.sol +24 -12
- package/contracts/test/TestMultisigIsm.sol +23 -0
- package/contracts/test/TestQuerySender.sol +72 -0
- package/contracts/test/TestSendReceiver.sol +6 -15
- package/contracts/test/TestTokenRecipient.sol +2 -2
- package/dist/contracts/{AbacusConnectionClient.d.ts → HyperlaneConnectionClient.d.ts} +69 -36
- package/dist/contracts/HyperlaneConnectionClient.d.ts.map +1 -0
- package/dist/contracts/HyperlaneConnectionClient.js +4 -0
- package/dist/contracts/HyperlaneConnectionClient.js.map +1 -0
- package/dist/contracts/InterchainGasPaymaster.d.ts +11 -13
- package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
- package/dist/contracts/Mailbox.d.ts +151 -28
- package/dist/contracts/Mailbox.d.ts.map +1 -1
- package/dist/contracts/OwnableSpecifiesISM.d.ts +134 -0
- package/dist/contracts/OwnableSpecifiesISM.d.ts.map +1 -0
- package/dist/contracts/{middleware/token-bridge/TokenBridgeRouter.js → OwnableSpecifiesISM.js} +1 -1
- package/dist/contracts/OwnableSpecifiesISM.js.map +1 -0
- package/dist/contracts/Router.d.ts +65 -32
- package/dist/contracts/Router.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +3 -7
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/isms/MultisigIsm.d.ts +235 -0
- package/dist/contracts/isms/MultisigIsm.d.ts.map +1 -0
- package/dist/contracts/{Inbox.js → isms/MultisigIsm.js} +1 -1
- package/dist/contracts/isms/MultisigIsm.js.map +1 -0
- package/dist/contracts/isms/index.d.ts +2 -0
- package/dist/contracts/isms/index.d.ts.map +1 -0
- package/dist/contracts/{middleware/token-bridge/adapters → isms}/index.js +0 -0
- package/dist/contracts/isms/index.js.map +1 -0
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts +71 -38
- package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts +72 -39
- package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
- package/dist/contracts/middleware/index.d.ts +2 -2
- package/dist/contracts/middleware/index.d.ts.map +1 -1
- package/dist/contracts/middleware/{token-bridge/TokenBridgeRouter.d.ts → liquidity-layer/LiquidityLayerRouter.d.ts} +103 -70
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -0
- package/dist/contracts/{MerkleTreeManager.js → middleware/liquidity-layer/LiquidityLayerRouter.js} +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.d.ts +78 -45
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.d.ts +0 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge/interfaces/circle → liquidity-layer/adapters}/index.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/index.d.ts +1 -1
- package/dist/contracts/middleware/liquidity-layer/index.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/index.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/index.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter.d.ts → liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts} +4 -4
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts.map +1 -0
- package/dist/contracts/{AbacusConnectionClient.js → middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js} +1 -1
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts} +4 -4
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.d.ts +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.d.ts +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.d.ts +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
- package/dist/contracts/{validator-manager → middleware/liquidity-layer/interfaces/circle}/index.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +5 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -0
- package/dist/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/index.js +0 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -0
- package/dist/contracts/mock/MockCircleBridge.d.ts +86 -0
- package/dist/contracts/mock/MockCircleBridge.d.ts.map +1 -0
- package/dist/contracts/mock/MockCircleBridge.js +4 -0
- package/dist/contracts/mock/MockCircleBridge.js.map +1 -0
- package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts +77 -0
- package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts.map +1 -0
- package/dist/contracts/mock/MockCircleMessageTransmitter.js +4 -0
- package/dist/contracts/mock/MockCircleMessageTransmitter.js.map +1 -0
- package/dist/contracts/mock/{MockInbox.d.ts → MockHyperlaneEnvironment.d.ts} +33 -17
- package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -0
- package/dist/contracts/{AbacusConnectionManager.js → mock/MockHyperlaneEnvironment.js} +1 -1
- package/dist/contracts/mock/MockHyperlaneEnvironment.js.map +1 -0
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +124 -0
- package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -0
- package/dist/contracts/mock/MockInterchainAccountRouter.js +4 -0
- package/dist/contracts/mock/MockInterchainAccountRouter.js.map +1 -0
- package/dist/contracts/mock/MockMailbox.d.ts +185 -0
- package/dist/contracts/mock/MockMailbox.d.ts.map +1 -0
- package/dist/contracts/mock/MockMailbox.js +4 -0
- package/dist/contracts/mock/MockMailbox.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +5 -3
- package/dist/contracts/mock/index.d.ts.map +1 -1
- package/dist/contracts/test/{TestAbacusConnectionClient.d.ts → TestHyperlaneConnectionClient.d.ts} +69 -52
- package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +1 -0
- package/dist/contracts/test/TestHyperlaneConnectionClient.js +4 -0
- package/dist/contracts/test/TestHyperlaneConnectionClient.js.map +1 -0
- package/dist/contracts/test/TestIsm.d.ts +67 -0
- package/dist/contracts/test/TestIsm.d.ts.map +1 -0
- package/dist/contracts/{Outbox.js → test/TestIsm.js} +1 -1
- package/dist/contracts/test/TestIsm.js.map +1 -0
- package/dist/contracts/test/{TestTokenBridgeMessageRecipient.d.ts → TestLiquidityLayerMessageRecipient.d.ts} +4 -4
- package/dist/contracts/test/TestLiquidityLayerMessageRecipient.d.ts.map +1 -0
- package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js +4 -0
- package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js.map +1 -0
- package/dist/contracts/test/TestMailbox.d.ts +164 -33
- package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
- package/dist/contracts/test/TestMessage.d.ts +30 -10
- package/dist/contracts/test/TestMessage.d.ts.map +1 -1
- package/dist/contracts/test/TestMultisigIsm.d.ts +251 -0
- package/dist/contracts/test/TestMultisigIsm.d.ts.map +1 -0
- package/dist/contracts/test/TestMultisigIsm.js +4 -0
- package/dist/contracts/test/TestMultisigIsm.js.map +1 -0
- package/dist/contracts/test/TestQuerySender.d.ts +215 -0
- package/dist/contracts/test/TestQuerySender.d.ts.map +1 -0
- package/dist/contracts/test/TestQuerySender.js +4 -0
- package/dist/contracts/test/TestQuerySender.js.map +1 -0
- package/dist/contracts/test/TestRouter.d.ts +65 -32
- package/dist/contracts/test/TestRouter.d.ts.map +1 -1
- package/dist/contracts/test/index.d.ts +5 -6
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/{AbacusConnectionClient__factory.d.ts → HyperlaneConnectionClient__factory.d.ts} +5 -5
- package/dist/factories/contracts/HyperlaneConnectionClient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/{AbacusConnectionClient__factory.js → HyperlaneConnectionClient__factory.js} +61 -22
- package/dist/factories/contracts/HyperlaneConnectionClient__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 +7 -18
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.d.ts +29 -13
- package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Mailbox__factory.js +239 -11
- package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
- package/dist/factories/contracts/OwnableMulticall__factory.js +1 -1
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts +55 -0
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.d.ts.map +1 -0
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.js +145 -0
- package/dist/factories/contracts/OwnableSpecifiesISM__factory.js.map +1 -0
- package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
- package/dist/factories/contracts/Router__factory.js +65 -26
- package/dist/factories/contracts/Router__factory.js.map +1 -1
- package/dist/factories/contracts/index.d.ts +2 -6
- package/dist/factories/contracts/index.d.ts.map +1 -1
- package/dist/factories/contracts/index.js +4 -12
- package/dist/factories/contracts/index.js.map +1 -1
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +55 -0
- package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/isms/MultisigIsm__factory.js +363 -0
- package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/isms/index.d.ts +2 -0
- package/dist/factories/contracts/isms/index.d.ts.map +1 -0
- package/dist/factories/contracts/isms/index.js +9 -0
- package/dist/factories/contracts/isms/index.js.map +1 -0
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -12
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +78 -33
- package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -12
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +81 -30
- package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
- package/dist/factories/contracts/middleware/index.d.ts +1 -1
- package/dist/factories/contracts/middleware/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/index.js +2 -2
- package/dist/factories/contracts/middleware/index.js.map +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +419 -0
- package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +48 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +623 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.d.ts +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/adapters/index.js +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/index.d.ts +4 -0
- package/dist/factories/contracts/middleware/liquidity-layer/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/index.js +3 -3
- package/dist/factories/contracts/middleware/liquidity-layer/index.js.map +1 -0
- package/dist/factories/{interfaces/IAbacusConnectionManager__factory.d.ts → contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts} +5 -5
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge/interfaces/ITokenBridgeAdapter__factory.js → liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js} +5 -5
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts +19 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js → liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js} +5 -5
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge__factory.js +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +1 -1
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleMessageTransmitter__factory.js +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.d.ts +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/index.js +0 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +4 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/index.js +5 -5
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -0
- package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +59 -0
- package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockCircleBridge__factory.js +151 -0
- package/dist/factories/contracts/mock/MockCircleBridge__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +45 -0
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +142 -0
- package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +45 -0
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +109 -0
- package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +69 -0
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +181 -0
- package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +45 -0
- package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockMailbox__factory.js +252 -0
- package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +5 -3
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +11 -7
- package/dist/factories/contracts/mock/index.js.map +1 -1
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +55 -0
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +249 -0
- package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestIsm__factory.d.ts +35 -0
- package/dist/factories/contracts/test/TestIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestIsm__factory.js +91 -0
- package/dist/factories/contracts/test/TestIsm__factory.js.map +1 -0
- package/dist/factories/contracts/test/{TestTokenBridgeMessageRecipient__factory.d.ts → TestLiquidityLayerMessageRecipient__factory.d.ts} +11 -11
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/{TestTokenBridgeMessageRecipient__factory.js → TestLiquidityLayerMessageRecipient__factory.js} +7 -7
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -8
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMailbox__factory.js +235 -13
- package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestMessage__factory.js +40 -7
- package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +48 -0
- package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js +406 -0
- package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +55 -0
- package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestQuerySender__factory.js +253 -0
- package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
- package/dist/factories/contracts/test/TestQuery__factory.js.map +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 +70 -31
- 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/TestTokenRecipient__factory.d.ts +1 -1
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
- package/dist/factories/contracts/test/index.d.ts +5 -6
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +11 -13
- package/dist/factories/contracts/test/index.js.map +1 -1
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts +33 -0
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +78 -0
- package/dist/factories/interfaces/IInterchainAccountRouter__factory.js.map +1 -0
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +3 -8
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts +33 -0
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +100 -0
- package/dist/factories/interfaces/IInterchainQueryRouter__factory.js.map +1 -0
- package/dist/factories/{contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts → interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts} +5 -5
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js +42 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js.map +1 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts +19 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js +31 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js.map +1 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts +3 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js +11 -0
- package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js.map +1 -0
- package/dist/factories/interfaces/IMailbox__factory.d.ts +5 -1
- package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
- package/dist/factories/interfaces/IMailbox__factory.js +81 -3
- package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
- package/dist/factories/interfaces/{IOutbox__factory.d.ts → IMultisigIsm__factory.d.ts} +5 -5
- package/dist/factories/interfaces/IMultisigIsm__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/{IInbox__factory.js → IMultisigIsm__factory.js} +55 -41
- package/dist/factories/interfaces/IMultisigIsm__factory.js.map +1 -0
- package/dist/factories/interfaces/index.d.ts +4 -4
- package/dist/factories/interfaces/index.d.ts.map +1 -1
- package/dist/factories/interfaces/index.js +31 -9
- package/dist/factories/interfaces/index.js.map +1 -1
- package/dist/index.d.ts +46 -54
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -53
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IInterchainAccountRouter.d.ts +67 -0
- package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -0
- package/dist/interfaces/IInterchainAccountRouter.js +4 -0
- package/dist/interfaces/IInterchainAccountRouter.js.map +1 -0
- package/dist/interfaces/IInterchainGasPaymaster.d.ts +7 -7
- package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
- package/dist/interfaces/IInterchainQueryRouter.d.ts +75 -0
- package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -0
- package/dist/interfaces/IInterchainQueryRouter.js +4 -0
- package/dist/interfaces/IInterchainQueryRouter.js.map +1 -0
- package/dist/{contracts/mock/MockOutbox.d.ts → interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts} +14 -14
- package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts.map +1 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js +4 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js.map +1 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts +43 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts.map +1 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js +4 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js.map +1 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts +3 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +1 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/index.js +3 -0
- package/dist/interfaces/IInterchainSecurityModule.sol/index.js.map +1 -0
- package/dist/interfaces/IMailbox.d.ts +58 -10
- package/dist/interfaces/IMailbox.d.ts.map +1 -1
- package/dist/interfaces/IMultisigIsm.d.ts +75 -0
- package/dist/interfaces/IMultisigIsm.d.ts.map +1 -0
- package/dist/interfaces/IMultisigIsm.js +4 -0
- package/dist/interfaces/IMultisigIsm.js.map +1 -0
- package/dist/interfaces/index.d.ts +5 -4
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -1
- package/interfaces/IInterchainAccountRouter.sol +15 -0
- package/interfaces/IInterchainGasPaymaster.sol +3 -5
- package/interfaces/IInterchainQueryRouter.sol +18 -0
- package/interfaces/IInterchainSecurityModule.sol +16 -0
- package/interfaces/IMailbox.sol +15 -2
- package/interfaces/IMultisigIsm.sol +18 -0
- package/package.json +4 -3
- package/contracts/AbacusConnectionManager.sol +0 -145
- package/contracts/Inbox.sol +0 -148
- package/contracts/MerkleTreeManager.sol +0 -32
- package/contracts/Outbox.sol +0 -191
- package/contracts/mock/MockInbox.sol +0 -52
- package/contracts/mock/MockOutbox.sol +0 -30
- package/contracts/mock/MockTokenBridgeAdapter.sol +0 -46
- package/contracts/test/TestAbacusConnectionClient.sol +0 -23
- package/contracts/test/TestInbox.sol +0 -54
- package/contracts/test/TestMultisigValidatorManager.sol +0 -26
- package/contracts/test/TestOutbox.sol +0 -46
- package/contracts/test/TestValidatorManager.sol +0 -21
- package/contracts/validator-manager/InboxValidatorManager.sol +0 -58
- package/contracts/validator-manager/MultisigValidatorManager.sol +0 -271
- package/contracts/validator-manager/OutboxValidatorManager.sol +0 -244
- package/dist/contracts/AbacusConnectionClient.d.ts.map +0 -1
- package/dist/contracts/AbacusConnectionClient.js.map +0 -1
- package/dist/contracts/AbacusConnectionManager.d.ts +0 -213
- package/dist/contracts/AbacusConnectionManager.d.ts.map +0 -1
- package/dist/contracts/AbacusConnectionManager.js.map +0 -1
- package/dist/contracts/Inbox.d.ts +0 -207
- package/dist/contracts/Inbox.d.ts.map +0 -1
- package/dist/contracts/Inbox.js.map +0 -1
- package/dist/contracts/MerkleTreeManager.d.ts +0 -53
- package/dist/contracts/MerkleTreeManager.d.ts.map +0 -1
- package/dist/contracts/MerkleTreeManager.js.map +0 -1
- package/dist/contracts/Outbox.d.ts +0 -331
- package/dist/contracts/Outbox.d.ts.map +0 -1
- package/dist/contracts/Outbox.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/TokenBridgeRouter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js +0 -4
- package/dist/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -5
- package/dist/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
- package/dist/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
- package/dist/contracts/mock/MockInbox.d.ts.map +0 -1
- package/dist/contracts/mock/MockInbox.js +0 -4
- package/dist/contracts/mock/MockInbox.js.map +0 -1
- package/dist/contracts/mock/MockOutbox.d.ts.map +0 -1
- package/dist/contracts/mock/MockOutbox.js +0 -4
- package/dist/contracts/mock/MockOutbox.js.map +0 -1
- package/dist/contracts/mock/MockTokenBridgeAdapter.d.ts +0 -99
- package/dist/contracts/mock/MockTokenBridgeAdapter.d.ts.map +0 -1
- package/dist/contracts/mock/MockTokenBridgeAdapter.js +0 -4
- package/dist/contracts/mock/MockTokenBridgeAdapter.js.map +0 -1
- package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +0 -1
- package/dist/contracts/test/TestAbacusConnectionClient.js +0 -4
- package/dist/contracts/test/TestAbacusConnectionClient.js.map +0 -1
- package/dist/contracts/test/TestInbox.d.ts +0 -263
- package/dist/contracts/test/TestInbox.d.ts.map +0 -1
- package/dist/contracts/test/TestInbox.js +0 -4
- package/dist/contracts/test/TestInbox.js.map +0 -1
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts +0 -247
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +0 -1
- package/dist/contracts/test/TestMultisigValidatorManager.js +0 -4
- package/dist/contracts/test/TestMultisigValidatorManager.js.map +0 -1
- package/dist/contracts/test/TestOutbox.d.ts +0 -371
- package/dist/contracts/test/TestOutbox.d.ts.map +0 -1
- package/dist/contracts/test/TestOutbox.js +0 -4
- package/dist/contracts/test/TestOutbox.js.map +0 -1
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.d.ts.map +0 -1
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js +0 -4
- package/dist/contracts/test/TestTokenBridgeMessageRecipient.js.map +0 -1
- package/dist/contracts/test/TestValidatorManager.d.ts +0 -58
- package/dist/contracts/test/TestValidatorManager.d.ts.map +0 -1
- package/dist/contracts/test/TestValidatorManager.js +0 -4
- package/dist/contracts/test/TestValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +0 -263
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/InboxValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/InboxValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +0 -239
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/MultisigValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +0 -335
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +0 -1
- package/dist/contracts/validator-manager/OutboxValidatorManager.js +0 -4
- package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +0 -1
- package/dist/contracts/validator-manager/index.d.ts +0 -4
- package/dist/contracts/validator-manager/index.d.ts.map +0 -1
- package/dist/contracts/validator-manager/index.js.map +0 -1
- package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +0 -1
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +0 -55
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/AbacusConnectionManager__factory.js +0 -276
- package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +0 -1
- package/dist/factories/contracts/Inbox__factory.d.ts +0 -59
- package/dist/factories/contracts/Inbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/Inbox__factory.js +0 -278
- package/dist/factories/contracts/Inbox__factory.js.map +0 -1
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +0 -31
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/MerkleTreeManager__factory.js +0 -67
- package/dist/factories/contracts/MerkleTreeManager__factory.js.map +0 -1
- package/dist/factories/contracts/Outbox__factory.d.ts +0 -59
- package/dist/factories/contracts/Outbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/Outbox__factory.js +0 -415
- package/dist/factories/contracts/Outbox__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts +0 -48
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js +0 -380
- package/dist/factories/contracts/middleware/token-bridge/TokenBridgeRouter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts +0 -48
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js +0 -584
- package/dist/factories/contracts/middleware/token-bridge/adapters/CircleBridgeAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/adapters/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts +0 -4
- package/dist/factories/contracts/middleware/token-bridge/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts +0 -19
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/ITokenBridgeMessageRecipient__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleBridge__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/ICircleMessageTransmitter__factory.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/circle/index.js.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts +0 -4
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.d.ts.map +0 -1
- package/dist/factories/contracts/middleware/token-bridge/interfaces/index.js.map +0 -1
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts +0 -31
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockInbox__factory.js +0 -76
- package/dist/factories/contracts/mock/MockInbox__factory.js.map +0 -1
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +0 -45
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockOutbox__factory.js +0 -86
- package/dist/factories/contracts/mock/MockOutbox__factory.js.map +0 -1
- package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.d.ts +0 -45
- package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.d.ts.map +0 -1
- package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.js +0 -170
- package/dist/factories/contracts/mock/MockTokenBridgeAdapter__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +0 -48
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +0 -242
- package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestInbox__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestInbox__factory.js +0 -371
- package/dist/factories/contracts/test/TestInbox__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +0 -349
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts +0 -59
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestOutbox__factory.js +0 -483
- package/dist/factories/contracts/test/TestOutbox__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestTokenBridgeMessageRecipient__factory.js.map +0 -1
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +0 -31
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/test/TestValidatorManager__factory.js +0 -79
- package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +0 -373
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +0 -36
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +0 -286
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +0 -59
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +0 -560
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +0 -1
- package/dist/factories/contracts/validator-manager/index.d.ts +0 -4
- package/dist/factories/contracts/validator-manager/index.d.ts.map +0 -1
- package/dist/factories/contracts/validator-manager/index.js +0 -13
- package/dist/factories/contracts/validator-manager/index.js.map +0 -1
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +0 -63
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +0 -1
- package/dist/factories/interfaces/IInbox__factory.d.ts +0 -29
- package/dist/factories/interfaces/IInbox__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IInbox__factory.js.map +0 -1
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +0 -19
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +0 -57
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +0 -1
- package/dist/factories/interfaces/IOutbox__factory.d.ts.map +0 -1
- package/dist/factories/interfaces/IOutbox__factory.js +0 -155
- package/dist/factories/interfaces/IOutbox__factory.js.map +0 -1
- package/dist/interfaces/IAbacusConnectionManager.d.ts +0 -59
- package/dist/interfaces/IAbacusConnectionManager.d.ts.map +0 -1
- package/dist/interfaces/IAbacusConnectionManager.js +0 -4
- package/dist/interfaces/IAbacusConnectionManager.js.map +0 -1
- package/dist/interfaces/IInbox.d.ts +0 -83
- package/dist/interfaces/IInbox.d.ts.map +0 -1
- package/dist/interfaces/IInbox.js +0 -4
- package/dist/interfaces/IInbox.js.map +0 -1
- package/dist/interfaces/IMultisigValidatorManager.d.ts +0 -59
- package/dist/interfaces/IMultisigValidatorManager.d.ts.map +0 -1
- package/dist/interfaces/IMultisigValidatorManager.js +0 -4
- package/dist/interfaces/IMultisigValidatorManager.js.map +0 -1
- package/dist/interfaces/IOutbox.d.ts +0 -148
- package/dist/interfaces/IOutbox.d.ts.map +0 -1
- package/dist/interfaces/IOutbox.js +0 -4
- package/dist/interfaces/IOutbox.js.map +0 -1
- package/interfaces/IAbacusConnectionManager.sol +0 -12
- package/interfaces/IInbox.sol +0 -16
- package/interfaces/IMultisigValidatorManager.sol +0 -11
- package/interfaces/IOutbox.sol +0 -27
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Format of metadata:
|
|
6
|
+
* [ 0: 32] Merkle root
|
|
7
|
+
* [ 32: 64] Root index
|
|
8
|
+
* [ 64: 96] Origin mailbox address
|
|
9
|
+
* [ 96:1120] Merkle proof
|
|
10
|
+
* [1120:1152] Threshold
|
|
11
|
+
* [1152:????] Validator signatures, 65 bytes each, length == Threshold
|
|
12
|
+
* [????:????] Addresses of the entire validator set, left padded to bytes32
|
|
13
|
+
*/
|
|
14
|
+
library MultisigIsmMetadata {
|
|
15
|
+
uint256 private constant MERKLE_ROOT_OFFSET = 0;
|
|
16
|
+
uint256 private constant MERKLE_INDEX_OFFSET = 32;
|
|
17
|
+
uint256 private constant ORIGIN_MAILBOX_OFFSET = 64;
|
|
18
|
+
uint256 private constant MERKLE_PROOF_OFFSET = 96;
|
|
19
|
+
uint256 private constant THRESHOLD_OFFSET = 1120;
|
|
20
|
+
uint256 private constant SIGNATURES_OFFSET = 1152;
|
|
21
|
+
uint256 private constant SIGNATURE_LENGTH = 65;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @notice Returns the merkle root of the signed checkpoint.
|
|
25
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
26
|
+
* @return Merkle root of the signed checkpoint
|
|
27
|
+
*/
|
|
28
|
+
function root(bytes calldata _metadata) internal pure returns (bytes32) {
|
|
29
|
+
return bytes32(_metadata[MERKLE_ROOT_OFFSET:MERKLE_INDEX_OFFSET]);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @notice Returns the index of the signed checkpoint.
|
|
34
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
35
|
+
* @return Index of the signed checkpoint
|
|
36
|
+
*/
|
|
37
|
+
function index(bytes calldata _metadata) internal pure returns (uint256) {
|
|
38
|
+
return
|
|
39
|
+
uint256(
|
|
40
|
+
bytes32(_metadata[MERKLE_INDEX_OFFSET:ORIGIN_MAILBOX_OFFSET])
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @notice Returns the origin mailbox of the signed checkpoint as bytes32.
|
|
46
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
47
|
+
* @return Origin mailbox of the signed checkpoint as bytes32
|
|
48
|
+
*/
|
|
49
|
+
function originMailbox(bytes calldata _metadata)
|
|
50
|
+
internal
|
|
51
|
+
pure
|
|
52
|
+
returns (bytes32)
|
|
53
|
+
{
|
|
54
|
+
return bytes32(_metadata[ORIGIN_MAILBOX_OFFSET:MERKLE_PROOF_OFFSET]);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @notice Returns the merkle proof branch of the message.
|
|
59
|
+
* @dev This appears to be more gas efficient than returning a calldata
|
|
60
|
+
* slice and using that.
|
|
61
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
62
|
+
* @return Merkle proof branch of the message.
|
|
63
|
+
*/
|
|
64
|
+
function proof(bytes calldata _metadata)
|
|
65
|
+
internal
|
|
66
|
+
pure
|
|
67
|
+
returns (bytes32[32] memory)
|
|
68
|
+
{
|
|
69
|
+
return
|
|
70
|
+
abi.decode(
|
|
71
|
+
_metadata[MERKLE_PROOF_OFFSET:THRESHOLD_OFFSET],
|
|
72
|
+
(bytes32[32])
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @notice Returns the number of required signatures. Verified against
|
|
78
|
+
* the commitment stored in the module.
|
|
79
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
80
|
+
* @return The number of required signatures.
|
|
81
|
+
*/
|
|
82
|
+
function threshold(bytes calldata _metadata)
|
|
83
|
+
internal
|
|
84
|
+
pure
|
|
85
|
+
returns (uint256)
|
|
86
|
+
{
|
|
87
|
+
return uint256(bytes32(_metadata[THRESHOLD_OFFSET:SIGNATURES_OFFSET]));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @notice Returns the validator ECDSA signature at `_index`.
|
|
92
|
+
* @dev Assumes signatures are sorted by validator
|
|
93
|
+
* @dev Assumes `_metadata` encodes `threshold` signatures.
|
|
94
|
+
* @dev Assumes `_index` is less than `threshold`
|
|
95
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
96
|
+
* @param _index The index of the signature to return.
|
|
97
|
+
* @return The validator ECDSA signature at `_index`.
|
|
98
|
+
*/
|
|
99
|
+
function signatureAt(bytes calldata _metadata, uint256 _index)
|
|
100
|
+
internal
|
|
101
|
+
pure
|
|
102
|
+
returns (bytes calldata)
|
|
103
|
+
{
|
|
104
|
+
uint256 _start = SIGNATURES_OFFSET + (_index * SIGNATURE_LENGTH);
|
|
105
|
+
uint256 _end = _start + SIGNATURE_LENGTH;
|
|
106
|
+
return _metadata[_start:_end];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @notice Returns the validator address at `_index`.
|
|
111
|
+
* @dev Assumes `_index` is less than the number of validators
|
|
112
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
113
|
+
* @param _index The index of the validator to return.
|
|
114
|
+
* @return The validator address at `_index`.
|
|
115
|
+
*/
|
|
116
|
+
function validatorAt(bytes calldata _metadata, uint256 _index)
|
|
117
|
+
internal
|
|
118
|
+
pure
|
|
119
|
+
returns (address)
|
|
120
|
+
{
|
|
121
|
+
// Validator addresses are left padded to bytes32 in order to match
|
|
122
|
+
// abi.encodePacked(address[]).
|
|
123
|
+
uint256 _start = _validatorsOffset(_metadata) + (_index * 32) + 12;
|
|
124
|
+
uint256 _end = _start + 20;
|
|
125
|
+
return address(bytes20(_metadata[_start:_end]));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @notice Returns the validator set encoded as bytes. Verified against the
|
|
130
|
+
* commitment stored in the module.
|
|
131
|
+
* @dev Validator addresses are encoded as tightly packed array of bytes32,
|
|
132
|
+
* sorted to match the enumerable set stored by the module.
|
|
133
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
134
|
+
* @return The validator set encoded as bytes.
|
|
135
|
+
*/
|
|
136
|
+
function validators(bytes calldata _metadata)
|
|
137
|
+
internal
|
|
138
|
+
pure
|
|
139
|
+
returns (bytes calldata)
|
|
140
|
+
{
|
|
141
|
+
return _metadata[_validatorsOffset(_metadata):];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @notice Returns the size of the validator set encoded in the metadata
|
|
146
|
+
* @dev Validator addresses are encoded as tightly packed array of bytes32,
|
|
147
|
+
* sorted to match the enumerable set stored by the module.
|
|
148
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
149
|
+
* @return The size of the validator set encoded in the metadata
|
|
150
|
+
*/
|
|
151
|
+
function commitment(bytes calldata _metadata)
|
|
152
|
+
internal
|
|
153
|
+
pure
|
|
154
|
+
returns (uint256)
|
|
155
|
+
{
|
|
156
|
+
return (_metadata.length - _validatorsOffset(_metadata)) / 32;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @notice Returns the size of the validator set encoded in the metadata
|
|
161
|
+
* @dev Validator addresses are encoded as tightly packed array of bytes32,
|
|
162
|
+
* sorted to match the enumerable set stored by the module.
|
|
163
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
164
|
+
* @return The size of the validator set encoded in the metadata
|
|
165
|
+
*/
|
|
166
|
+
function validatorCount(bytes calldata _metadata)
|
|
167
|
+
internal
|
|
168
|
+
pure
|
|
169
|
+
returns (uint256)
|
|
170
|
+
{
|
|
171
|
+
return (_metadata.length - _validatorsOffset(_metadata)) / 32;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* @notice Returns the offset in bytes of the list of validators within
|
|
176
|
+
* `_metadata`.
|
|
177
|
+
* @param _metadata ABI encoded Multisig ISM metadata.
|
|
178
|
+
* @return The index at which the list of validators starts
|
|
179
|
+
*/
|
|
180
|
+
function _validatorsOffset(bytes calldata _metadata)
|
|
181
|
+
private
|
|
182
|
+
pure
|
|
183
|
+
returns (uint256)
|
|
184
|
+
{
|
|
185
|
+
return SIGNATURES_OFFSET + (threshold(_metadata) * SIGNATURE_LENGTH);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.13;
|
|
3
3
|
|
|
4
|
+
// ============ Internal Imports ============
|
|
4
5
|
import {OwnableMulticall, Call} from "../OwnableMulticall.sol";
|
|
6
|
+
import {Router} from "../Router.sol";
|
|
7
|
+
import {IInterchainAccountRouter} from "../../interfaces/IInterchainAccountRouter.sol";
|
|
5
8
|
|
|
6
9
|
// ============ External Imports ============
|
|
7
|
-
import {Router} from "../Router.sol";
|
|
8
10
|
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
9
11
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
10
12
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
@@ -13,7 +15,7 @@ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Ini
|
|
|
13
15
|
* @title The Hello World App
|
|
14
16
|
* @dev You can use this simple app as a starting point for your own application.
|
|
15
17
|
*/
|
|
16
|
-
contract InterchainAccountRouter is Router {
|
|
18
|
+
contract InterchainAccountRouter is Router, IInterchainAccountRouter {
|
|
17
19
|
bytes constant bytecode = type(OwnableMulticall).creationCode;
|
|
18
20
|
bytes32 constant bytecodeHash = bytes32(keccak256(bytecode));
|
|
19
21
|
|
|
@@ -25,21 +27,22 @@ contract InterchainAccountRouter is Router {
|
|
|
25
27
|
|
|
26
28
|
function initialize(
|
|
27
29
|
address _owner,
|
|
28
|
-
address
|
|
30
|
+
address _mailbox,
|
|
29
31
|
address _interchainGasPaymaster
|
|
30
32
|
) public initializer {
|
|
31
33
|
// Transfer ownership of the contract to deployer
|
|
32
34
|
_transferOwnership(_owner);
|
|
33
|
-
// Set the addresses for the
|
|
35
|
+
// Set the addresses for the Mailbox and IGP
|
|
34
36
|
// Alternatively, this could be done later in an initialize method
|
|
35
|
-
|
|
37
|
+
_setMailbox(_mailbox);
|
|
36
38
|
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
function dispatch(uint32 _destinationDomain, Call[] calldata calls)
|
|
40
42
|
external
|
|
43
|
+
returns (bytes32)
|
|
41
44
|
{
|
|
42
|
-
_dispatch(_destinationDomain, abi.encode(msg.sender, calls));
|
|
45
|
+
return _dispatch(_destinationDomain, abi.encode(msg.sender, calls));
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
function getInterchainAccount(uint32 _origin, address _sender)
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.13;
|
|
3
3
|
|
|
4
|
+
// ============ Internal Imports ============
|
|
4
5
|
import {OwnableMulticall, Call} from "../OwnableMulticall.sol";
|
|
6
|
+
import {Router} from "../Router.sol";
|
|
7
|
+
import {IInterchainQueryRouter} from "../../interfaces/IInterchainQueryRouter.sol";
|
|
5
8
|
|
|
6
9
|
// ============ External Imports ============
|
|
7
|
-
import {Router} from "../Router.sol";
|
|
8
10
|
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
9
11
|
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
10
12
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
11
13
|
|
|
12
|
-
contract InterchainQueryRouter is
|
|
14
|
+
contract InterchainQueryRouter is
|
|
15
|
+
Router,
|
|
16
|
+
OwnableMulticall,
|
|
17
|
+
IInterchainQueryRouter
|
|
18
|
+
{
|
|
13
19
|
enum Action {
|
|
14
20
|
DISPATCH,
|
|
15
21
|
RESOLVE
|
|
@@ -27,14 +33,14 @@ contract InterchainQueryRouter is Router, OwnableMulticall {
|
|
|
27
33
|
|
|
28
34
|
function initialize(
|
|
29
35
|
address _owner,
|
|
30
|
-
address
|
|
36
|
+
address _mailbox,
|
|
31
37
|
address _interchainGasPaymaster
|
|
32
38
|
) public initializer {
|
|
33
39
|
// Transfer ownership of the contract to deployer
|
|
34
40
|
_transferOwnership(_owner);
|
|
35
|
-
// Set the addresses for the
|
|
41
|
+
// Set the addresses for the Mailbox and IGP
|
|
36
42
|
// Alternatively, this could be done later in an initialize method
|
|
37
|
-
|
|
43
|
+
_setMailbox(_mailbox);
|
|
38
44
|
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
39
45
|
}
|
|
40
46
|
|
|
@@ -47,13 +53,13 @@ contract InterchainQueryRouter is Router, OwnableMulticall {
|
|
|
47
53
|
uint32 _destinationDomain,
|
|
48
54
|
Call calldata call,
|
|
49
55
|
bytes calldata callback
|
|
50
|
-
) external {
|
|
56
|
+
) external returns (bytes32 messageId) {
|
|
51
57
|
// TODO: fix this ugly arrayification
|
|
52
58
|
Call[] memory calls = new Call[](1);
|
|
53
59
|
calls[0] = call;
|
|
54
60
|
bytes[] memory callbacks = new bytes[](1);
|
|
55
61
|
callbacks[0] = callback;
|
|
56
|
-
query(_destinationDomain, calls, callbacks);
|
|
62
|
+
messageId = query(_destinationDomain, calls, callbacks);
|
|
57
63
|
}
|
|
58
64
|
|
|
59
65
|
/**
|
|
@@ -65,12 +71,12 @@ contract InterchainQueryRouter is Router, OwnableMulticall {
|
|
|
65
71
|
uint32 _destinationDomain,
|
|
66
72
|
Call[] memory calls,
|
|
67
73
|
bytes[] memory callbacks
|
|
68
|
-
) public {
|
|
74
|
+
) public returns (bytes32 messageId) {
|
|
69
75
|
require(
|
|
70
76
|
calls.length == callbacks.length,
|
|
71
77
|
"InterchainQueryRouter: calls and callbacks must be same length"
|
|
72
78
|
);
|
|
73
|
-
_dispatch(
|
|
79
|
+
messageId = _dispatch(
|
|
74
80
|
_destinationDomain,
|
|
75
81
|
abi.encode(Action.DISPATCH, msg.sender, calls, callbacks)
|
|
76
82
|
);
|
|
@@ -6,29 +6,28 @@ import {Router} from "../../Router.sol";
|
|
|
6
6
|
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
7
7
|
import {ICircleBridge} from "./interfaces/circle/ICircleBridge.sol";
|
|
8
8
|
import {ICircleMessageTransmitter} from "./interfaces/circle/ICircleMessageTransmitter.sol";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import {ILiquidityLayerAdapter} from "./interfaces/ILiquidityLayerAdapter.sol";
|
|
10
|
+
import {ILiquidityLayerMessageRecipient} from "./interfaces/ILiquidityLayerMessageRecipient.sol";
|
|
11
11
|
|
|
12
12
|
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
13
13
|
|
|
14
14
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
15
15
|
|
|
16
|
-
contract
|
|
16
|
+
contract LiquidityLayerRouter is Router {
|
|
17
17
|
// Token bridge => adapter address
|
|
18
|
-
mapping(string => address) public
|
|
18
|
+
mapping(string => address) public liquidityLayerAdapters;
|
|
19
19
|
|
|
20
|
-
event
|
|
20
|
+
event LiquidityLayerAdapterSet(string indexed bridge, address adapter);
|
|
21
21
|
|
|
22
22
|
function initialize(
|
|
23
23
|
address _owner,
|
|
24
|
-
address
|
|
24
|
+
address _mailbox,
|
|
25
25
|
address _interchainGasPaymaster
|
|
26
26
|
) public initializer {
|
|
27
27
|
// Transfer ownership of the contract to deployer
|
|
28
28
|
_transferOwnership(_owner);
|
|
29
|
-
// Set the addresses for the ACM and IGP
|
|
30
29
|
// Alternatively, this could be done later in an initialize method
|
|
31
|
-
|
|
30
|
+
_setMailbox(_mailbox);
|
|
32
31
|
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
33
32
|
}
|
|
34
33
|
|
|
@@ -40,7 +39,7 @@ contract TokenBridgeRouter is Router {
|
|
|
40
39
|
uint256 _amount,
|
|
41
40
|
string calldata _bridge
|
|
42
41
|
) external payable {
|
|
43
|
-
|
|
42
|
+
ILiquidityLayerAdapter _adapter = _getAdapter(_bridge);
|
|
44
43
|
|
|
45
44
|
// Transfer the tokens to the adapter
|
|
46
45
|
// TODO: use safeTransferFrom
|
|
@@ -70,11 +69,11 @@ contract TokenBridgeRouter is Router {
|
|
|
70
69
|
_messageBody // The "user" message
|
|
71
70
|
);
|
|
72
71
|
|
|
73
|
-
// Dispatch the _messageWithMetadata to the destination's
|
|
72
|
+
// Dispatch the _messageWithMetadata to the destination's LiquidityLayerRouter.
|
|
74
73
|
_dispatchWithGas(_destinationDomain, _messageWithMetadata, msg.value);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
// Handles a message from an enrolled remote
|
|
76
|
+
// Handles a message from an enrolled remote LiquidityLayerRouter
|
|
78
77
|
function _handle(
|
|
79
78
|
uint32 _origin,
|
|
80
79
|
bytes32, // _sender, unused
|
|
@@ -93,7 +92,7 @@ contract TokenBridgeRouter is Router {
|
|
|
93
92
|
(bytes32, bytes32, uint256, string, bytes, bytes)
|
|
94
93
|
);
|
|
95
94
|
|
|
96
|
-
|
|
95
|
+
ILiquidityLayerMessageRecipient _userRecipient = ILiquidityLayerMessageRecipient(
|
|
97
96
|
TypeCasts.bytes32ToAddress(_userRecipientAddress)
|
|
98
97
|
);
|
|
99
98
|
|
|
@@ -115,20 +114,20 @@ contract TokenBridgeRouter is Router {
|
|
|
115
114
|
);
|
|
116
115
|
}
|
|
117
116
|
|
|
118
|
-
function
|
|
117
|
+
function setLiquidityLayerAdapter(string calldata _bridge, address _adapter)
|
|
119
118
|
external
|
|
120
119
|
onlyOwner
|
|
121
120
|
{
|
|
122
|
-
|
|
123
|
-
emit
|
|
121
|
+
liquidityLayerAdapters[_bridge] = _adapter;
|
|
122
|
+
emit LiquidityLayerAdapterSet(_bridge, _adapter);
|
|
124
123
|
}
|
|
125
124
|
|
|
126
125
|
function _getAdapter(string memory _bridge)
|
|
127
126
|
internal
|
|
128
127
|
view
|
|
129
|
-
returns (
|
|
128
|
+
returns (ILiquidityLayerAdapter _adapter)
|
|
130
129
|
{
|
|
131
|
-
_adapter =
|
|
130
|
+
_adapter = ILiquidityLayerAdapter(liquidityLayerAdapters[_bridge]);
|
|
132
131
|
// Require the adapter to have been set
|
|
133
132
|
require(address(_adapter) != address(0), "No adapter found for bridge");
|
|
134
133
|
}
|
package/contracts/middleware/{token-bridge → liquidity-layer}/adapters/CircleBridgeAdapter.sol
RENAMED
|
@@ -5,19 +5,19 @@ import {Router} from "../../../Router.sol";
|
|
|
5
5
|
|
|
6
6
|
import {ICircleBridge} from "../interfaces/circle/ICircleBridge.sol";
|
|
7
7
|
import {ICircleMessageTransmitter} from "../interfaces/circle/ICircleMessageTransmitter.sol";
|
|
8
|
-
import {
|
|
8
|
+
import {ILiquidityLayerAdapter} from "../interfaces/ILiquidityLayerAdapter.sol";
|
|
9
9
|
|
|
10
10
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
11
11
|
|
|
12
|
-
contract CircleBridgeAdapter is
|
|
12
|
+
contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
13
13
|
/// @notice The CircleBridge contract.
|
|
14
14
|
ICircleBridge public circleBridge;
|
|
15
15
|
|
|
16
16
|
/// @notice The Circle MessageTransmitter contract.
|
|
17
17
|
ICircleMessageTransmitter public circleMessageTransmitter;
|
|
18
18
|
|
|
19
|
-
/// @notice The
|
|
20
|
-
address public
|
|
19
|
+
/// @notice The LiquidityLayerRouter contract.
|
|
20
|
+
address public liquidityLayerRouter;
|
|
21
21
|
|
|
22
22
|
/// @notice Hyperlane domain => Circle domain.
|
|
23
23
|
/// ATM, known Circle domains are Ethereum = 0 and Avalanche = 1.
|
|
@@ -54,8 +54,8 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
54
54
|
*/
|
|
55
55
|
event TokenRemoved(address indexed token, string indexed symbol);
|
|
56
56
|
|
|
57
|
-
modifier
|
|
58
|
-
require(msg.sender ==
|
|
57
|
+
modifier onlyLiquidityLayerRouter() {
|
|
58
|
+
require(msg.sender == liquidityLayerRouter, "!liquidityLayerRouter");
|
|
59
59
|
_;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -63,26 +63,25 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
63
63
|
* @param _owner The new owner.
|
|
64
64
|
* @param _circleBridge The CircleBridge contract.
|
|
65
65
|
* @param _circleMessageTransmitter The Circle MessageTransmitter contract.
|
|
66
|
-
* @param
|
|
66
|
+
* @param _liquidityLayerRouter The LiquidityLayerRouter contract.
|
|
67
67
|
*/
|
|
68
68
|
function initialize(
|
|
69
69
|
address _owner,
|
|
70
70
|
address _circleBridge,
|
|
71
71
|
address _circleMessageTransmitter,
|
|
72
|
-
address
|
|
72
|
+
address _liquidityLayerRouter
|
|
73
73
|
) public initializer {
|
|
74
74
|
// Transfer ownership of the contract to deployer
|
|
75
75
|
_transferOwnership(_owner);
|
|
76
76
|
|
|
77
|
-
// Set the addresses for the
|
|
78
|
-
_setAbacusConnectionManager(address(0));
|
|
77
|
+
// Set the addresses for the IGP to address(0) - it's not used.
|
|
79
78
|
_setInterchainGasPaymaster(address(0));
|
|
80
79
|
|
|
81
80
|
circleBridge = ICircleBridge(_circleBridge);
|
|
82
81
|
circleMessageTransmitter = ICircleMessageTransmitter(
|
|
83
82
|
_circleMessageTransmitter
|
|
84
83
|
);
|
|
85
|
-
|
|
84
|
+
liquidityLayerRouter = _liquidityLayerRouter;
|
|
86
85
|
}
|
|
87
86
|
|
|
88
87
|
function sendTokens(
|
|
@@ -90,7 +89,7 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
90
89
|
bytes32, // _recipientAddress, unused
|
|
91
90
|
address _token,
|
|
92
91
|
uint256 _amount
|
|
93
|
-
) external
|
|
92
|
+
) external onlyLiquidityLayerRouter returns (bytes memory) {
|
|
94
93
|
string memory _tokenSymbol = tokenAddressToSymbol[_token];
|
|
95
94
|
require(
|
|
96
95
|
bytes(_tokenSymbol).length > 0,
|
|
@@ -106,7 +105,7 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
106
105
|
"CircleBridgeAdapter: No router for domain"
|
|
107
106
|
);
|
|
108
107
|
|
|
109
|
-
// Approve the token to Circle. We assume that the
|
|
108
|
+
// Approve the token to Circle. We assume that the LiquidityLayerRouter
|
|
110
109
|
// has already transferred the token to this contract.
|
|
111
110
|
require(
|
|
112
111
|
IERC20(_token).approve(address(circleBridge), _amount),
|
|
@@ -121,8 +120,7 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
121
120
|
);
|
|
122
121
|
|
|
123
122
|
emit BridgedToken(_nonce);
|
|
124
|
-
|
|
125
|
-
return abi.encodePacked(_nonce, _tokenSymbol);
|
|
123
|
+
return abi.encode(_nonce, _tokenSymbol);
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
// Returns the token and amount sent
|
|
@@ -131,7 +129,7 @@ contract CircleBridgeAdapter is ITokenBridgeAdapter, Router {
|
|
|
131
129
|
address _recipient,
|
|
132
130
|
uint256 _amount,
|
|
133
131
|
bytes calldata _adapterData // The adapter data from the message
|
|
134
|
-
) external
|
|
132
|
+
) external onlyLiquidityLayerRouter returns (address, uint256) {
|
|
135
133
|
// The origin Circle domain
|
|
136
134
|
uint32 _originCircleDomain = hyperlaneDomainToCircleDomain[
|
|
137
135
|
_originDomain
|
package/contracts/middleware/{token-bridge → liquidity-layer}/interfaces/circle/ICircleBridge.sol
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {ICircleBridge} from "../middleware/liquidity-layer/interfaces/circle/ICircleBridge.sol";
|
|
5
|
+
import {MockToken} from "./MockToken.sol";
|
|
6
|
+
|
|
7
|
+
contract MockCircleBridge is ICircleBridge {
|
|
8
|
+
uint64 public nextNonce = 0;
|
|
9
|
+
MockToken token;
|
|
10
|
+
|
|
11
|
+
constructor(MockToken _token) {
|
|
12
|
+
token = _token;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function depositForBurn(
|
|
16
|
+
uint256 _amount,
|
|
17
|
+
uint32,
|
|
18
|
+
bytes32,
|
|
19
|
+
address _burnToken
|
|
20
|
+
) external returns (uint64 _nonce) {
|
|
21
|
+
nextNonce = nextNonce + 1;
|
|
22
|
+
_nonce = nextNonce;
|
|
23
|
+
require(address(token) == _burnToken);
|
|
24
|
+
token.transferFrom(msg.sender, address(this), _amount);
|
|
25
|
+
token.burn(_amount);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function depositForBurnWithCaller(
|
|
29
|
+
uint256,
|
|
30
|
+
uint32,
|
|
31
|
+
bytes32,
|
|
32
|
+
address,
|
|
33
|
+
bytes32
|
|
34
|
+
) external returns (uint64 _nonce) {
|
|
35
|
+
nextNonce = nextNonce + 1;
|
|
36
|
+
_nonce = nextNonce;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {ICircleMessageTransmitter} from "../middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol";
|
|
5
|
+
import {MockToken} from "./MockToken.sol";
|
|
6
|
+
|
|
7
|
+
contract MockCircleMessageTransmitter is ICircleMessageTransmitter {
|
|
8
|
+
mapping(bytes32 => bool) processedNonces;
|
|
9
|
+
MockToken token;
|
|
10
|
+
|
|
11
|
+
constructor(MockToken _token) {
|
|
12
|
+
token = _token;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function receiveMessage(bytes memory, bytes calldata)
|
|
16
|
+
external
|
|
17
|
+
pure
|
|
18
|
+
returns (bool success)
|
|
19
|
+
{
|
|
20
|
+
success = true;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function hashSourceAndNonce(uint32 _source, uint256 _nonce)
|
|
24
|
+
public
|
|
25
|
+
pure
|
|
26
|
+
returns (bytes32)
|
|
27
|
+
{
|
|
28
|
+
return keccak256(abi.encodePacked(_source, _nonce));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function process(
|
|
32
|
+
bytes32 _nonceId,
|
|
33
|
+
address _recipient,
|
|
34
|
+
uint256 _amount
|
|
35
|
+
) public {
|
|
36
|
+
processedNonces[_nonceId] = true;
|
|
37
|
+
token.mint(_recipient, _amount);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function usedNonces(bytes32 _nonceId) external view returns (bool) {
|
|
41
|
+
return processedNonces[_nonceId];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import "./MockMailbox.sol";
|
|
5
|
+
import "../middleware/InterchainQueryRouter.sol";
|
|
6
|
+
|
|
7
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
8
|
+
|
|
9
|
+
contract MockHyperlaneEnvironment {
|
|
10
|
+
uint32 originDomain;
|
|
11
|
+
uint32 destinationDomain;
|
|
12
|
+
|
|
13
|
+
mapping(uint32 => MockMailbox) public mailboxes;
|
|
14
|
+
mapping(uint32 => InterchainQueryRouter) public queryRouters;
|
|
15
|
+
|
|
16
|
+
constructor(uint32 _originDomain, uint32 _destinationDomain) {
|
|
17
|
+
originDomain = _originDomain;
|
|
18
|
+
destinationDomain = _destinationDomain;
|
|
19
|
+
|
|
20
|
+
MockMailbox originMailbox = new MockMailbox(_originDomain);
|
|
21
|
+
MockMailbox destinationMailbox = new MockMailbox(_destinationDomain);
|
|
22
|
+
|
|
23
|
+
mailboxes[_originDomain] = originMailbox;
|
|
24
|
+
mailboxes[_destinationDomain] = destinationMailbox;
|
|
25
|
+
|
|
26
|
+
InterchainQueryRouter originQueryRouter = new InterchainQueryRouter();
|
|
27
|
+
InterchainQueryRouter destinationQueryRouter = new InterchainQueryRouter();
|
|
28
|
+
|
|
29
|
+
originQueryRouter.initialize(
|
|
30
|
+
address(this),
|
|
31
|
+
address(originMailbox),
|
|
32
|
+
address(0)
|
|
33
|
+
);
|
|
34
|
+
destinationQueryRouter.initialize(
|
|
35
|
+
address(this),
|
|
36
|
+
address(destinationMailbox),
|
|
37
|
+
address(0)
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
originQueryRouter.enrollRemoteRouter(
|
|
41
|
+
_destinationDomain,
|
|
42
|
+
TypeCasts.addressToBytes32(address(destinationQueryRouter))
|
|
43
|
+
);
|
|
44
|
+
destinationQueryRouter.enrollRemoteRouter(
|
|
45
|
+
_originDomain,
|
|
46
|
+
TypeCasts.addressToBytes32(address(originQueryRouter))
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
queryRouters[_originDomain] = originQueryRouter;
|
|
50
|
+
queryRouters[_destinationDomain] = destinationQueryRouter;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function processNextPendingMessage() public {
|
|
54
|
+
mailboxes[destinationDomain].processNextInboundMessage();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function processNextPendingMessageFromDestination() public {
|
|
58
|
+
mailboxes[originDomain].processNextInboundMessage();
|
|
59
|
+
}
|
|
60
|
+
}
|