@hyperlane-xyz/core 0.5.2 → 0.5.4-0
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/liquidity-layer/LiquidityLayerRouter.sol +134 -0
- package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +246 -0
- package/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol +18 -0
- package/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.sol +12 -0
- package/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.sol +59 -0
- package/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol +38 -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/mock/MockToken.sol +14 -0
- package/contracts/test/TestHyperlaneConnectionClient.sol +14 -0
- package/contracts/test/TestIsm.sol +20 -0
- package/contracts/test/TestLiquidityLayerMessageRecipient.sol +24 -0
- 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 +44 -0
- package/dist/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts/token/ERC20/IERC20.d.ts +139 -0
- package/dist/@openzeppelin/contracts/token/ERC20/IERC20.d.ts.map +1 -0
- package/dist/{contracts/Outbox.js → @openzeppelin/contracts/token/ERC20/IERC20.js} +1 -1
- package/dist/@openzeppelin/contracts/token/ERC20/IERC20.js.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.js +3 -0
- package/dist/@openzeppelin/contracts/token/ERC20/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/token/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/token/index.d.ts.map +1 -0
- package/dist/{interfaces/IOutbox.js → @openzeppelin/contracts/token/index.js} +1 -1
- package/dist/@openzeppelin/contracts/token/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.d.ts +204 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.d.ts +139 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.d.ts.map +1 -0
- package/dist/{contracts/MerkleTreeManager.js → @openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.js} +1 -1
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.d.ts +163 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts.map +1 -0
- package/dist/{contracts/validator-manager → @openzeppelin/contracts-upgradeable/token/ERC20/extensions}/index.js +0 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts +5 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts.map +1 -0
- package/dist/{contracts/Inbox.js → @openzeppelin/contracts-upgradeable/token/ERC20/index.js} +1 -1
- package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/token/index.d.ts.map +1 -0
- package/dist/{interfaces/IInbox.js → @openzeppelin/contracts-upgradeable/token/index.js} +1 -1
- package/dist/@openzeppelin/contracts-upgradeable/token/index.js.map +1 -0
- 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/OwnableSpecifiesISM.js +4 -0
- 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/{mock/MockOutbox.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/isms/index.js +3 -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 -0
- package/dist/contracts/middleware/index.d.ts.map +1 -1
- package/dist/contracts/middleware/index.js +1 -0
- package/dist/contracts/middleware/index.js.map +1 -1
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +324 -0
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +449 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +2 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.js +3 -0
- package/dist/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/index.d.ts +6 -0
- package/dist/contracts/middleware/liquidity-layer/index.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/index.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/index.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts +67 -0
- 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/{test/TestValidatorManager.d.ts → middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts} +14 -21
- 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/liquidity-layer/interfaces/circle/ICircleBridge.d.ts +78 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts +59 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js +4 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts +3 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
- package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.js +3 -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/liquidity-layer/interfaces/index.js +4 -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/MockToken.d.ts +236 -0
- package/dist/contracts/mock/MockToken.d.ts.map +1 -0
- package/dist/contracts/mock/{MockInbox.js → MockToken.js} +1 -1
- package/dist/contracts/mock/MockToken.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +6 -2
- 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/test/TestIsm.js +4 -0
- package/dist/contracts/test/TestIsm.js.map +1 -0
- package/dist/contracts/test/TestLiquidityLayerMessageRecipient.d.ts +72 -0
- 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/TestTokenRecipient.d.ts +151 -0
- package/dist/contracts/test/TestTokenRecipient.d.ts.map +1 -0
- package/dist/contracts/test/TestTokenRecipient.js +4 -0
- package/dist/contracts/test/TestTokenRecipient.js.map +1 -0
- package/dist/contracts/test/index.d.ts +6 -5
- package/dist/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts/index.js +2 -1
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.d.ts +36 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.js +201 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/token/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/token/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts/token/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +2 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -1
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +48 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +324 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -0
- package/dist/factories/{contracts/validator-manager/MultisigValidatorManager__factory.d.ts → @openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.d.ts} +5 -5
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.js +201 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.d.ts +36 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.d.ts.map +1 -0
- package/dist/factories/{contracts/validator-manager/MultisigValidatorManager__factory.js → @openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.js} +76 -122
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts +4 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.js +35 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/token/index.js.map +1 -0
- 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 -0
- package/dist/factories/contracts/middleware/index.d.ts.map +1 -1
- package/dist/factories/contracts/middleware/index.js +25 -1
- 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/liquidity-layer/adapters/index.d.ts +2 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +9 -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/liquidity-layer/index.js +34 -0
- 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/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js +91 -0
- 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/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js +51 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts +36 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js +104 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +23 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js +61 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts +3 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -0
- package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.js +11 -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/liquidity-layer/interfaces/index.js +35 -0
- 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/MockToken__factory.d.ts +48 -0
- package/dist/factories/contracts/mock/{MockInbox__factory.d.ts.map → MockToken__factory.d.ts.map} +1 -1
- package/dist/factories/contracts/mock/MockToken__factory.js +355 -0
- package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +6 -2
- package/dist/factories/contracts/mock/index.d.ts.map +1 -1
- package/dist/factories/contracts/mock/index.js +13 -5
- 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/TestLiquidityLayerMessageRecipient__factory.d.ts +44 -0
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +111 -0
- 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 +55 -0
- package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js +232 -0
- package/dist/factories/contracts/test/TestTokenRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/test/index.d.ts +6 -5
- package/dist/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/factories/contracts/test/index.js +13 -11
- 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/interfaces/{IInbox__factory.d.ts → IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts} +10 -16
- 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 +58 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -40
- 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/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/mock/MockInbox.d.ts.map +0 -1
- 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.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/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/mock/MockInbox__factory.d.ts +0 -31
- 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/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/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.map +0 -1
- 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.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.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.map +0 -1
- package/interfaces/IAbacusConnectionManager.sol +0 -12
- package/interfaces/IInbox.sol +0 -16
- package/interfaces/IMultisigValidatorManager.sol +0 -11
- package/interfaces/IOutbox.sol +0 -27
package/contracts/Inbox.sol
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
-
pragma solidity >=0.8.0;
|
|
3
|
-
|
|
4
|
-
// ============ Internal Imports ============
|
|
5
|
-
import {Versioned} from "./upgrade/Versioned.sol";
|
|
6
|
-
import {Mailbox} from "./Mailbox.sol";
|
|
7
|
-
import {MerkleLib} from "./libs/Merkle.sol";
|
|
8
|
-
import {Message} from "./libs/Message.sol";
|
|
9
|
-
import {TypeCasts} from "./libs/TypeCasts.sol";
|
|
10
|
-
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
|
|
11
|
-
import {IInbox} from "../interfaces/IInbox.sol";
|
|
12
|
-
|
|
13
|
-
// ============ External Imports ============
|
|
14
|
-
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @title Inbox
|
|
18
|
-
* @author Celo Labs Inc.
|
|
19
|
-
* @notice Track root updates on Outbox, prove and dispatch messages to end
|
|
20
|
-
* recipients.
|
|
21
|
-
*/
|
|
22
|
-
contract Inbox is IInbox, ReentrancyGuardUpgradeable, Versioned, Mailbox {
|
|
23
|
-
// ============ Libraries ============
|
|
24
|
-
|
|
25
|
-
using MerkleLib for MerkleLib.Tree;
|
|
26
|
-
using Message for bytes;
|
|
27
|
-
using TypeCasts for bytes32;
|
|
28
|
-
|
|
29
|
-
// ============ Enums ============
|
|
30
|
-
|
|
31
|
-
// Status of Message:
|
|
32
|
-
// 0 - None - message has not been processed
|
|
33
|
-
// 1 - Processed - message has been dispatched to recipient
|
|
34
|
-
enum MessageStatus {
|
|
35
|
-
None,
|
|
36
|
-
Processed
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// ============ Public Storage ============
|
|
40
|
-
|
|
41
|
-
// Domain of outbox chain
|
|
42
|
-
uint32 public override remoteDomain;
|
|
43
|
-
// Mapping of message leaves to MessageStatus
|
|
44
|
-
mapping(bytes32 => MessageStatus) public messages;
|
|
45
|
-
|
|
46
|
-
// ============ Upgrade Gap ============
|
|
47
|
-
|
|
48
|
-
// gap for upgrade safety
|
|
49
|
-
uint256[48] private __GAP;
|
|
50
|
-
|
|
51
|
-
// ============ Events ============
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @notice Emitted when message is processed
|
|
55
|
-
* @dev This event allows watchers to observe the merkle proof they need
|
|
56
|
-
* to prove fraud on the Outbox.
|
|
57
|
-
* @param messageHash Hash of message that was processed.
|
|
58
|
-
*/
|
|
59
|
-
event Process(bytes32 indexed messageHash);
|
|
60
|
-
|
|
61
|
-
// ============ Constructor ============
|
|
62
|
-
|
|
63
|
-
// solhint-disable-next-line no-empty-blocks
|
|
64
|
-
constructor(uint32 _localDomain) Mailbox(_localDomain) {}
|
|
65
|
-
|
|
66
|
-
// ============ Initializer ============
|
|
67
|
-
|
|
68
|
-
function initialize(uint32 _remoteDomain, address _validatorManager)
|
|
69
|
-
external
|
|
70
|
-
initializer
|
|
71
|
-
{
|
|
72
|
-
__ReentrancyGuard_init();
|
|
73
|
-
__Mailbox_initialize(_validatorManager);
|
|
74
|
-
remoteDomain = _remoteDomain;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// ============ External Functions ============
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* @notice Attempts to process the provided formatted `message`. Performs
|
|
81
|
-
* verification against root of the proof
|
|
82
|
-
* @dev Called by the validator manager, which is responsible for verifying a
|
|
83
|
-
* quorum of validator signatures on the checkpoint.
|
|
84
|
-
* @dev Reverts if verification of the message fails.
|
|
85
|
-
* @param _root The merkle root of the checkpoint used to prove message inclusion.
|
|
86
|
-
* @param _index The index of the checkpoint used to prove message inclusion.
|
|
87
|
-
* @param _message Formatted message (refer to Mailbox.sol Message library)
|
|
88
|
-
* @param _proof Merkle proof of inclusion for message's leaf
|
|
89
|
-
* @param _leafIndex Index of leaf in outbox's merkle tree
|
|
90
|
-
*/
|
|
91
|
-
function process(
|
|
92
|
-
bytes32 _root,
|
|
93
|
-
uint256 _index,
|
|
94
|
-
bytes calldata _message,
|
|
95
|
-
bytes32[32] calldata _proof,
|
|
96
|
-
uint256 _leafIndex
|
|
97
|
-
) external override nonReentrant onlyValidatorManager {
|
|
98
|
-
require(_index >= _leafIndex, "!index");
|
|
99
|
-
bytes32 _messageHash = _message.leaf(_leafIndex);
|
|
100
|
-
// ensure that message has not been processed
|
|
101
|
-
require(
|
|
102
|
-
messages[_messageHash] == MessageStatus.None,
|
|
103
|
-
"!MessageStatus.None"
|
|
104
|
-
);
|
|
105
|
-
// calculate the expected root based on the proof
|
|
106
|
-
bytes32 _calculatedRoot = MerkleLib.branchRoot(
|
|
107
|
-
_messageHash,
|
|
108
|
-
_proof,
|
|
109
|
-
_leafIndex
|
|
110
|
-
);
|
|
111
|
-
// verify the merkle proof
|
|
112
|
-
require(_calculatedRoot == _root, "!proof");
|
|
113
|
-
_process(_message, _messageHash);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// ============ Internal Functions ============
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @notice Marks a message as processed and calls handle on the recipient
|
|
120
|
-
* @dev Internal function that can be called by contracts like TestInbox
|
|
121
|
-
* @param _message Formatted message (refer to Mailbox.sol Message library)
|
|
122
|
-
* @param _messageHash keccak256 hash of the message
|
|
123
|
-
*/
|
|
124
|
-
function _process(bytes calldata _message, bytes32 _messageHash) internal {
|
|
125
|
-
(
|
|
126
|
-
uint32 origin,
|
|
127
|
-
bytes32 sender,
|
|
128
|
-
uint32 destination,
|
|
129
|
-
bytes32 recipient,
|
|
130
|
-
bytes calldata body
|
|
131
|
-
) = _message.destructure();
|
|
132
|
-
|
|
133
|
-
// ensure message came from the correct domain
|
|
134
|
-
require(origin == remoteDomain, "!origin");
|
|
135
|
-
// ensure message was meant for this domain
|
|
136
|
-
require(destination == localDomain, "!destination");
|
|
137
|
-
|
|
138
|
-
// update message status as processed
|
|
139
|
-
messages[_messageHash] = MessageStatus.Processed;
|
|
140
|
-
|
|
141
|
-
IMessageRecipient(recipient.bytes32ToAddress()).handle(
|
|
142
|
-
origin,
|
|
143
|
-
sender,
|
|
144
|
-
body
|
|
145
|
-
);
|
|
146
|
-
emit Process(_messageHash);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
-
pragma solidity >=0.8.0;
|
|
3
|
-
|
|
4
|
-
// ============ Internal Imports ============
|
|
5
|
-
import {MerkleLib} from "./libs/Merkle.sol";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @title MerkleTreeManager
|
|
9
|
-
* @author Celo Labs Inc.
|
|
10
|
-
* @notice Contains a Merkle tree instance and
|
|
11
|
-
* exposes view functions for the tree.
|
|
12
|
-
*/
|
|
13
|
-
contract MerkleTreeManager {
|
|
14
|
-
// ============ Libraries ============
|
|
15
|
-
|
|
16
|
-
using MerkleLib for MerkleLib.Tree;
|
|
17
|
-
MerkleLib.Tree public tree;
|
|
18
|
-
|
|
19
|
-
// ============ Upgrade Gap ============
|
|
20
|
-
|
|
21
|
-
// gap for upgrade safety
|
|
22
|
-
uint256[49] private __GAP;
|
|
23
|
-
|
|
24
|
-
// ============ Public Functions ============
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @notice Calculates and returns tree's current root
|
|
28
|
-
*/
|
|
29
|
-
function root() public view returns (bytes32) {
|
|
30
|
-
return tree.root();
|
|
31
|
-
}
|
|
32
|
-
}
|
package/contracts/Outbox.sol
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
-
pragma solidity >=0.8.0;
|
|
3
|
-
|
|
4
|
-
// ============ Internal Imports ============
|
|
5
|
-
import {Versioned} from "./upgrade/Versioned.sol";
|
|
6
|
-
import {Mailbox} from "./Mailbox.sol";
|
|
7
|
-
import {MerkleLib} from "./libs/Merkle.sol";
|
|
8
|
-
import {Message} from "./libs/Message.sol";
|
|
9
|
-
import {TypeCasts} from "./libs/TypeCasts.sol";
|
|
10
|
-
import {MerkleTreeManager} from "./MerkleTreeManager.sol";
|
|
11
|
-
import {IOutbox} from "../interfaces/IOutbox.sol";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @title Outbox
|
|
15
|
-
* @author Celo Labs Inc.
|
|
16
|
-
* @notice Accepts messages to be dispatched to remote chains,
|
|
17
|
-
* constructs a Merkle tree of the messages,
|
|
18
|
-
* and accepts signatures from a bonded Validator
|
|
19
|
-
* which notarize the Merkle tree roots.
|
|
20
|
-
* Accepts submissions of fraudulent signatures
|
|
21
|
-
* by the Validator and slashes the Validator in this case.
|
|
22
|
-
*/
|
|
23
|
-
contract Outbox is IOutbox, Versioned, MerkleTreeManager, Mailbox {
|
|
24
|
-
// ============ Libraries ============
|
|
25
|
-
|
|
26
|
-
using MerkleLib for MerkleLib.Tree;
|
|
27
|
-
using TypeCasts for address;
|
|
28
|
-
|
|
29
|
-
// ============ Constants ============
|
|
30
|
-
|
|
31
|
-
// Maximum bytes per message = 2 KiB
|
|
32
|
-
// (somewhat arbitrarily set to begin)
|
|
33
|
-
uint256 public constant MAX_MESSAGE_BODY_BYTES = 2 * 2**10;
|
|
34
|
-
|
|
35
|
-
// ============ Enums ============
|
|
36
|
-
|
|
37
|
-
// States:
|
|
38
|
-
// 0 - UnInitialized - before initialize function is called
|
|
39
|
-
// note: the contract is initialized at deploy time, so it should never be in this state
|
|
40
|
-
// 1 - Active - as long as the contract has not become fraudulent
|
|
41
|
-
// 2 - Failed - after a valid fraud proof has been submitted;
|
|
42
|
-
// contract will no longer accept updates or new messages
|
|
43
|
-
enum States {
|
|
44
|
-
UnInitialized,
|
|
45
|
-
Active,
|
|
46
|
-
Failed
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// ============ Public Storage Variables ============
|
|
50
|
-
|
|
51
|
-
// Cached checkpoints, mapping root => leaf index.
|
|
52
|
-
// Cached checkpoints must have index > 0 as the presence of such
|
|
53
|
-
// a checkpoint cannot be distinguished from its absence.
|
|
54
|
-
mapping(bytes32 => uint256) public cachedCheckpoints;
|
|
55
|
-
// The latest cached root
|
|
56
|
-
bytes32 public latestCachedRoot;
|
|
57
|
-
// Current state of contract
|
|
58
|
-
States public state;
|
|
59
|
-
|
|
60
|
-
// ============ Upgrade Gap ============
|
|
61
|
-
|
|
62
|
-
// gap for upgrade safety
|
|
63
|
-
uint256[47] private __GAP;
|
|
64
|
-
|
|
65
|
-
// ============ Events ============
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @notice Emitted when a checkpoint is cached.
|
|
69
|
-
* @param root Merkle root
|
|
70
|
-
* @param index Leaf index
|
|
71
|
-
*/
|
|
72
|
-
event CheckpointCached(bytes32 indexed root, uint256 indexed index);
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @notice Emitted when a new message is dispatched via Abacus
|
|
76
|
-
* @param leafIndex Index of message's leaf in merkle tree
|
|
77
|
-
* @param message Raw bytes of message
|
|
78
|
-
*/
|
|
79
|
-
event Dispatch(uint256 indexed leafIndex, bytes message);
|
|
80
|
-
|
|
81
|
-
event Fail();
|
|
82
|
-
|
|
83
|
-
// ============ Constructor ============
|
|
84
|
-
|
|
85
|
-
constructor(uint32 _localDomain) Mailbox(_localDomain) {} // solhint-disable-line no-empty-blocks
|
|
86
|
-
|
|
87
|
-
// ============ Initializer ============
|
|
88
|
-
|
|
89
|
-
function initialize(address _validatorManager) external initializer {
|
|
90
|
-
__Mailbox_initialize(_validatorManager);
|
|
91
|
-
state = States.Active;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// ============ Modifiers ============
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* @notice Ensures that contract state != FAILED when the function is called
|
|
98
|
-
*/
|
|
99
|
-
modifier notFailed() {
|
|
100
|
-
require(state != States.Failed, "failed state");
|
|
101
|
-
_;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// ============ External Functions ============
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* @notice Dispatch the message it to the destination domain & recipient
|
|
108
|
-
* @dev Format the message, insert its hash into Merkle tree,
|
|
109
|
-
* and emit `Dispatch` event with message information.
|
|
110
|
-
* @param _destinationDomain Domain of destination chain
|
|
111
|
-
* @param _recipientAddress Address of recipient on destination chain as bytes32
|
|
112
|
-
* @param _messageBody Raw bytes content of message
|
|
113
|
-
* @return The leaf index of the dispatched message's hash in the Merkle tree.
|
|
114
|
-
*/
|
|
115
|
-
function dispatch(
|
|
116
|
-
uint32 _destinationDomain,
|
|
117
|
-
bytes32 _recipientAddress,
|
|
118
|
-
bytes calldata _messageBody
|
|
119
|
-
) external override notFailed returns (uint256) {
|
|
120
|
-
require(_messageBody.length <= MAX_MESSAGE_BODY_BYTES, "msg too long");
|
|
121
|
-
// The leaf has not been inserted yet at this point
|
|
122
|
-
uint256 _leafIndex = count();
|
|
123
|
-
// format the message into packed bytes
|
|
124
|
-
bytes memory _message = Message.formatMessage(
|
|
125
|
-
localDomain,
|
|
126
|
-
msg.sender.addressToBytes32(),
|
|
127
|
-
_destinationDomain,
|
|
128
|
-
_recipientAddress,
|
|
129
|
-
_messageBody
|
|
130
|
-
);
|
|
131
|
-
// insert the hashed message into the Merkle tree
|
|
132
|
-
bytes32 _messageHash = keccak256(
|
|
133
|
-
abi.encodePacked(_message, _leafIndex)
|
|
134
|
-
);
|
|
135
|
-
tree.insert(_messageHash);
|
|
136
|
-
emit Dispatch(_leafIndex, _message);
|
|
137
|
-
return _leafIndex;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* @notice Caches the current merkle root and index.
|
|
142
|
-
* @dev emits CheckpointCached event
|
|
143
|
-
*/
|
|
144
|
-
function cacheCheckpoint() external override notFailed {
|
|
145
|
-
(bytes32 _root, uint256 _index) = latestCheckpoint();
|
|
146
|
-
require(_index > 0, "!index");
|
|
147
|
-
cachedCheckpoints[_root] = _index;
|
|
148
|
-
latestCachedRoot = _root;
|
|
149
|
-
emit CheckpointCached(_root, _index);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* @notice Set contract state to FAILED.
|
|
154
|
-
* @dev Called by the validator manager when fraud is proven.
|
|
155
|
-
*/
|
|
156
|
-
function fail() external override onlyValidatorManager {
|
|
157
|
-
// set contract to FAILED
|
|
158
|
-
state = States.Failed;
|
|
159
|
-
emit Fail();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @notice Returns the latest entry in the checkpoint cache.
|
|
164
|
-
* @return root Latest cached root
|
|
165
|
-
* @return index Latest cached index
|
|
166
|
-
*/
|
|
167
|
-
function latestCachedCheckpoint()
|
|
168
|
-
external
|
|
169
|
-
view
|
|
170
|
-
returns (bytes32 root, uint256 index)
|
|
171
|
-
{
|
|
172
|
-
root = latestCachedRoot;
|
|
173
|
-
index = cachedCheckpoints[root];
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* @notice Returns the number of inserted leaves in the tree
|
|
178
|
-
*/
|
|
179
|
-
function count() public view returns (uint256) {
|
|
180
|
-
return tree.count;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* @notice Returns a checkpoint representing the current merkle tree.
|
|
185
|
-
* @return root The root of the Outbox's merkle tree.
|
|
186
|
-
* @return index The index of the last element in the tree.
|
|
187
|
-
*/
|
|
188
|
-
function latestCheckpoint() public view returns (bytes32, uint256) {
|
|
189
|
-
return (root(), count() - 1);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
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,26 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
-
pragma solidity >=0.8.0;
|
|
3
|
-
|
|
4
|
-
// ============ Internal Imports ============
|
|
5
|
-
import {IInbox} from "../../interfaces/IInbox.sol";
|
|
6
|
-
import {MultisigValidatorManager} from "./MultisigValidatorManager.sol";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @title InboxValidatorManager
|
|
10
|
-
* @notice Verifies checkpoints are signed by a quorum of validators and submits
|
|
11
|
-
* them to an Inbox.
|
|
12
|
-
*/
|
|
13
|
-
contract InboxValidatorManager is MultisigValidatorManager {
|
|
14
|
-
// ============ Constructor ============
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @dev Reverts if `_validators` has any duplicates.
|
|
18
|
-
* @param _remoteDomain The remote domain of the outbox chain.
|
|
19
|
-
* @param _validators The set of validator addresses.
|
|
20
|
-
* @param _threshold The quorum threshold. Must be greater than or equal
|
|
21
|
-
* to the length of `_validators`.
|
|
22
|
-
*/
|
|
23
|
-
// solhint-disable-next-line no-empty-blocks
|
|
24
|
-
constructor(
|
|
25
|
-
uint32 _remoteDomain,
|
|
26
|
-
address[] memory _validators,
|
|
27
|
-
uint256 _threshold
|
|
28
|
-
) MultisigValidatorManager(_remoteDomain, _validators, _threshold) {}
|
|
29
|
-
|
|
30
|
-
// ============ External Functions ============
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @notice Verifies a signed checkpoint and submits a message for processing.
|
|
34
|
-
* @dev Reverts if `_signatures` is not a quorum of validator signatures.
|
|
35
|
-
* @dev Reverts if `_signatures` is not sorted in ascending order by the signer
|
|
36
|
-
* address, which is required for duplicate detection.
|
|
37
|
-
* @param _inbox The inbox to submit the message to.
|
|
38
|
-
* @param _root The merkle root of the signed checkpoint.
|
|
39
|
-
* @param _index The index of the signed checkpoint.
|
|
40
|
-
* @param _signatures Signatures over the checkpoint to be checked for a validator
|
|
41
|
-
* quorum. Must be sorted in ascending order by signer address.
|
|
42
|
-
* @param _message The message to process.
|
|
43
|
-
* @param _proof Merkle proof of inclusion for message's leaf
|
|
44
|
-
* @param _leafIndex Index of leaf in outbox's merkle tree
|
|
45
|
-
*/
|
|
46
|
-
function process(
|
|
47
|
-
IInbox _inbox,
|
|
48
|
-
bytes32 _root,
|
|
49
|
-
uint256 _index,
|
|
50
|
-
bytes[] calldata _signatures,
|
|
51
|
-
bytes calldata _message,
|
|
52
|
-
bytes32[32] calldata _proof,
|
|
53
|
-
uint256 _leafIndex
|
|
54
|
-
) external {
|
|
55
|
-
require(isQuorum(_root, _index, _signatures), "!quorum");
|
|
56
|
-
_inbox.process(_root, _index, _message, _proof, _leafIndex);
|
|
57
|
-
}
|
|
58
|
-
}
|