@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
|
@@ -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
|
);
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {Router} from "../../Router.sol";
|
|
5
|
+
|
|
6
|
+
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
7
|
+
import {ICircleBridge} from "./interfaces/circle/ICircleBridge.sol";
|
|
8
|
+
import {ICircleMessageTransmitter} from "./interfaces/circle/ICircleMessageTransmitter.sol";
|
|
9
|
+
import {ILiquidityLayerAdapter} from "./interfaces/ILiquidityLayerAdapter.sol";
|
|
10
|
+
import {ILiquidityLayerMessageRecipient} from "./interfaces/ILiquidityLayerMessageRecipient.sol";
|
|
11
|
+
|
|
12
|
+
import {TypeCasts} from "../../libs/TypeCasts.sol";
|
|
13
|
+
|
|
14
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
15
|
+
|
|
16
|
+
contract LiquidityLayerRouter is Router {
|
|
17
|
+
// Token bridge => adapter address
|
|
18
|
+
mapping(string => address) public liquidityLayerAdapters;
|
|
19
|
+
|
|
20
|
+
event LiquidityLayerAdapterSet(string indexed bridge, address adapter);
|
|
21
|
+
|
|
22
|
+
function initialize(
|
|
23
|
+
address _owner,
|
|
24
|
+
address _mailbox,
|
|
25
|
+
address _interchainGasPaymaster
|
|
26
|
+
) public initializer {
|
|
27
|
+
// Transfer ownership of the contract to deployer
|
|
28
|
+
_transferOwnership(_owner);
|
|
29
|
+
// Alternatively, this could be done later in an initialize method
|
|
30
|
+
_setMailbox(_mailbox);
|
|
31
|
+
_setInterchainGasPaymaster(_interchainGasPaymaster);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function dispatchWithTokens(
|
|
35
|
+
uint32 _destinationDomain,
|
|
36
|
+
bytes32 _recipientAddress,
|
|
37
|
+
bytes calldata _messageBody,
|
|
38
|
+
address _token,
|
|
39
|
+
uint256 _amount,
|
|
40
|
+
string calldata _bridge
|
|
41
|
+
) external payable {
|
|
42
|
+
ILiquidityLayerAdapter _adapter = _getAdapter(_bridge);
|
|
43
|
+
|
|
44
|
+
// Transfer the tokens to the adapter
|
|
45
|
+
// TODO: use safeTransferFrom
|
|
46
|
+
// TODO: Are there scenarios where a transferFrom fails and it doesn't revert?
|
|
47
|
+
require(
|
|
48
|
+
IERC20(_token).transferFrom(msg.sender, address(_adapter), _amount),
|
|
49
|
+
"!transfer in"
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
// Reverts if the bridge was unsuccessful.
|
|
53
|
+
// Gets adapter-specific data that is encoded into the message
|
|
54
|
+
// ultimately sent via Hyperlane.
|
|
55
|
+
bytes memory _adapterData = _adapter.sendTokens(
|
|
56
|
+
_destinationDomain,
|
|
57
|
+
_recipientAddress,
|
|
58
|
+
_token,
|
|
59
|
+
_amount
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
// The user's message "wrapped" with metadata required by this middleware
|
|
63
|
+
bytes memory _messageWithMetadata = abi.encode(
|
|
64
|
+
TypeCasts.addressToBytes32(msg.sender),
|
|
65
|
+
_recipientAddress, // The "user" recipient
|
|
66
|
+
_amount, // The amount of the tokens sent over the bridge
|
|
67
|
+
_bridge, // The destination token bridge ID
|
|
68
|
+
_adapterData, // The adapter-specific data
|
|
69
|
+
_messageBody // The "user" message
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
// Dispatch the _messageWithMetadata to the destination's LiquidityLayerRouter.
|
|
73
|
+
_dispatchWithGas(_destinationDomain, _messageWithMetadata, msg.value);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Handles a message from an enrolled remote LiquidityLayerRouter
|
|
77
|
+
function _handle(
|
|
78
|
+
uint32 _origin,
|
|
79
|
+
bytes32, // _sender, unused
|
|
80
|
+
bytes calldata _message
|
|
81
|
+
) internal override {
|
|
82
|
+
// Decode the message with metadata, "unwrapping" the user's message body
|
|
83
|
+
(
|
|
84
|
+
bytes32 _originalSender,
|
|
85
|
+
bytes32 _userRecipientAddress,
|
|
86
|
+
uint256 _amount,
|
|
87
|
+
string memory _bridge,
|
|
88
|
+
bytes memory _adapterData,
|
|
89
|
+
bytes memory _userMessageBody
|
|
90
|
+
) = abi.decode(
|
|
91
|
+
_message,
|
|
92
|
+
(bytes32, bytes32, uint256, string, bytes, bytes)
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
ILiquidityLayerMessageRecipient _userRecipient = ILiquidityLayerMessageRecipient(
|
|
96
|
+
TypeCasts.bytes32ToAddress(_userRecipientAddress)
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
// Reverts if the adapter hasn't received the bridged tokens yet
|
|
100
|
+
(address _token, uint256 _receivedAmount) = _getAdapter(_bridge)
|
|
101
|
+
.receiveTokens(
|
|
102
|
+
_origin,
|
|
103
|
+
address(_userRecipient),
|
|
104
|
+
_amount,
|
|
105
|
+
_adapterData
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
_userRecipient.handleWithTokens(
|
|
109
|
+
_origin,
|
|
110
|
+
_originalSender,
|
|
111
|
+
_userMessageBody,
|
|
112
|
+
_token,
|
|
113
|
+
_receivedAmount
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function setLiquidityLayerAdapter(string calldata _bridge, address _adapter)
|
|
118
|
+
external
|
|
119
|
+
onlyOwner
|
|
120
|
+
{
|
|
121
|
+
liquidityLayerAdapters[_bridge] = _adapter;
|
|
122
|
+
emit LiquidityLayerAdapterSet(_bridge, _adapter);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function _getAdapter(string memory _bridge)
|
|
126
|
+
internal
|
|
127
|
+
view
|
|
128
|
+
returns (ILiquidityLayerAdapter _adapter)
|
|
129
|
+
{
|
|
130
|
+
_adapter = ILiquidityLayerAdapter(liquidityLayerAdapters[_bridge]);
|
|
131
|
+
// Require the adapter to have been set
|
|
132
|
+
require(address(_adapter) != address(0), "No adapter found for bridge");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.13;
|
|
3
|
+
|
|
4
|
+
import {Router} from "../../../Router.sol";
|
|
5
|
+
|
|
6
|
+
import {ICircleBridge} from "../interfaces/circle/ICircleBridge.sol";
|
|
7
|
+
import {ICircleMessageTransmitter} from "../interfaces/circle/ICircleMessageTransmitter.sol";
|
|
8
|
+
import {ILiquidityLayerAdapter} from "../interfaces/ILiquidityLayerAdapter.sol";
|
|
9
|
+
|
|
10
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
11
|
+
|
|
12
|
+
contract CircleBridgeAdapter is ILiquidityLayerAdapter, Router {
|
|
13
|
+
/// @notice The CircleBridge contract.
|
|
14
|
+
ICircleBridge public circleBridge;
|
|
15
|
+
|
|
16
|
+
/// @notice The Circle MessageTransmitter contract.
|
|
17
|
+
ICircleMessageTransmitter public circleMessageTransmitter;
|
|
18
|
+
|
|
19
|
+
/// @notice The LiquidityLayerRouter contract.
|
|
20
|
+
address public liquidityLayerRouter;
|
|
21
|
+
|
|
22
|
+
/// @notice Hyperlane domain => Circle domain.
|
|
23
|
+
/// ATM, known Circle domains are Ethereum = 0 and Avalanche = 1.
|
|
24
|
+
/// Note this could result in ambiguity between the Circle domain being
|
|
25
|
+
/// Ethereum or unknown. TODO fix?
|
|
26
|
+
mapping(uint32 => uint32) public hyperlaneDomainToCircleDomain;
|
|
27
|
+
|
|
28
|
+
/// @notice Token symbol => address of token on local chain.
|
|
29
|
+
mapping(string => IERC20) public tokenSymbolToAddress;
|
|
30
|
+
|
|
31
|
+
/// @notice Local chain token address => token symbol.
|
|
32
|
+
mapping(address => string) public tokenAddressToSymbol;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @notice Emits the nonce of the Circle message when a token is bridged.
|
|
36
|
+
* @param nonce The nonce of the Circle message.
|
|
37
|
+
*/
|
|
38
|
+
event BridgedToken(uint64 nonce);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @notice Emitted when the Hyperlane domain to Circle domain mapping is updated.
|
|
42
|
+
* @param hyperlaneDomain The Hyperlane domain.
|
|
43
|
+
* @param circleDomain The Circle domain.
|
|
44
|
+
*/
|
|
45
|
+
event DomainAdded(uint32 indexed hyperlaneDomain, uint32 circleDomain);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @notice Emitted when a local token and its token symbol have been added.
|
|
49
|
+
*/
|
|
50
|
+
event TokenAdded(address indexed token, string indexed symbol);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @notice Emitted when a local token and its token symbol have been removed.
|
|
54
|
+
*/
|
|
55
|
+
event TokenRemoved(address indexed token, string indexed symbol);
|
|
56
|
+
|
|
57
|
+
modifier onlyLiquidityLayerRouter() {
|
|
58
|
+
require(msg.sender == liquidityLayerRouter, "!liquidityLayerRouter");
|
|
59
|
+
_;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @param _owner The new owner.
|
|
64
|
+
* @param _circleBridge The CircleBridge contract.
|
|
65
|
+
* @param _circleMessageTransmitter The Circle MessageTransmitter contract.
|
|
66
|
+
* @param _liquidityLayerRouter The LiquidityLayerRouter contract.
|
|
67
|
+
*/
|
|
68
|
+
function initialize(
|
|
69
|
+
address _owner,
|
|
70
|
+
address _circleBridge,
|
|
71
|
+
address _circleMessageTransmitter,
|
|
72
|
+
address _liquidityLayerRouter
|
|
73
|
+
) public initializer {
|
|
74
|
+
// Transfer ownership of the contract to deployer
|
|
75
|
+
_transferOwnership(_owner);
|
|
76
|
+
|
|
77
|
+
// Set the addresses for the IGP to address(0) - it's not used.
|
|
78
|
+
_setInterchainGasPaymaster(address(0));
|
|
79
|
+
|
|
80
|
+
circleBridge = ICircleBridge(_circleBridge);
|
|
81
|
+
circleMessageTransmitter = ICircleMessageTransmitter(
|
|
82
|
+
_circleMessageTransmitter
|
|
83
|
+
);
|
|
84
|
+
liquidityLayerRouter = _liquidityLayerRouter;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function sendTokens(
|
|
88
|
+
uint32 _destinationDomain,
|
|
89
|
+
bytes32, // _recipientAddress, unused
|
|
90
|
+
address _token,
|
|
91
|
+
uint256 _amount
|
|
92
|
+
) external onlyLiquidityLayerRouter returns (bytes memory) {
|
|
93
|
+
string memory _tokenSymbol = tokenAddressToSymbol[_token];
|
|
94
|
+
require(
|
|
95
|
+
bytes(_tokenSymbol).length > 0,
|
|
96
|
+
"CircleBridgeAdapter: Unknown token"
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
uint32 _circleDomain = hyperlaneDomainToCircleDomain[
|
|
100
|
+
_destinationDomain
|
|
101
|
+
];
|
|
102
|
+
bytes32 _remoteRouter = routers[_destinationDomain];
|
|
103
|
+
require(
|
|
104
|
+
_remoteRouter != bytes32(0),
|
|
105
|
+
"CircleBridgeAdapter: No router for domain"
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
// Approve the token to Circle. We assume that the LiquidityLayerRouter
|
|
109
|
+
// has already transferred the token to this contract.
|
|
110
|
+
require(
|
|
111
|
+
IERC20(_token).approve(address(circleBridge), _amount),
|
|
112
|
+
"!approval"
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
uint64 _nonce = circleBridge.depositForBurn(
|
|
116
|
+
_amount,
|
|
117
|
+
_circleDomain,
|
|
118
|
+
_remoteRouter, // Mint to the remote router
|
|
119
|
+
_token
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
emit BridgedToken(_nonce);
|
|
123
|
+
return abi.encode(_nonce, _tokenSymbol);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Returns the token and amount sent
|
|
127
|
+
function receiveTokens(
|
|
128
|
+
uint32 _originDomain, // Hyperlane domain
|
|
129
|
+
address _recipient,
|
|
130
|
+
uint256 _amount,
|
|
131
|
+
bytes calldata _adapterData // The adapter data from the message
|
|
132
|
+
) external onlyLiquidityLayerRouter returns (address, uint256) {
|
|
133
|
+
// The origin Circle domain
|
|
134
|
+
uint32 _originCircleDomain = hyperlaneDomainToCircleDomain[
|
|
135
|
+
_originDomain
|
|
136
|
+
];
|
|
137
|
+
// Get the token symbol and nonce of the transfer from the _adapterData
|
|
138
|
+
(uint64 _nonce, string memory _tokenSymbol) = abi.decode(
|
|
139
|
+
_adapterData,
|
|
140
|
+
(uint64, string)
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
// Require the circle message to have been processed
|
|
144
|
+
bytes32 _nonceId = _circleNonceId(_originCircleDomain, _nonce);
|
|
145
|
+
require(
|
|
146
|
+
circleMessageTransmitter.usedNonces(_nonceId),
|
|
147
|
+
"Circle message not processed yet"
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
IERC20 _token = tokenSymbolToAddress[_tokenSymbol];
|
|
151
|
+
require(
|
|
152
|
+
address(_token) != address(0),
|
|
153
|
+
"CircleBridgeAdapter: Unknown token"
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
// Transfer the token out to the recipient
|
|
157
|
+
// TODO: use safeTransfer
|
|
158
|
+
// Circle doesn't charge any fee, so we can safely transfer out the
|
|
159
|
+
// exact amount that was bridged over.
|
|
160
|
+
require(_token.transfer(_recipient, _amount), "!transfer out");
|
|
161
|
+
|
|
162
|
+
return (address(_token), _amount);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// This contract is only a Router to be aware of remote router addresses,
|
|
166
|
+
// and doesn't actually send/handle Hyperlane messages directly
|
|
167
|
+
function _handle(
|
|
168
|
+
uint32, // origin
|
|
169
|
+
bytes32, // sender
|
|
170
|
+
bytes calldata // message
|
|
171
|
+
) internal pure override {
|
|
172
|
+
revert("No messages expected");
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function addDomain(uint32 _hyperlaneDomain, uint32 _circleDomain)
|
|
176
|
+
external
|
|
177
|
+
onlyOwner
|
|
178
|
+
{
|
|
179
|
+
hyperlaneDomainToCircleDomain[_hyperlaneDomain] = _circleDomain;
|
|
180
|
+
|
|
181
|
+
emit DomainAdded(_hyperlaneDomain, _circleDomain);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function addToken(address _token, string calldata _tokenSymbol)
|
|
185
|
+
external
|
|
186
|
+
onlyOwner
|
|
187
|
+
{
|
|
188
|
+
require(
|
|
189
|
+
_token != address(0) && bytes(_tokenSymbol).length > 0,
|
|
190
|
+
"Cannot add default values"
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
// Require the token and token symbol to be unset.
|
|
194
|
+
address _existingToken = address(tokenSymbolToAddress[_tokenSymbol]);
|
|
195
|
+
require(_existingToken == address(0), "token symbol already has token");
|
|
196
|
+
|
|
197
|
+
string memory _existingSymbol = tokenAddressToSymbol[_token];
|
|
198
|
+
require(
|
|
199
|
+
bytes(_existingSymbol).length == 0,
|
|
200
|
+
"token already has token symbol"
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
tokenAddressToSymbol[_token] = _tokenSymbol;
|
|
204
|
+
tokenSymbolToAddress[_tokenSymbol] = IERC20(_token);
|
|
205
|
+
|
|
206
|
+
emit TokenAdded(_token, _tokenSymbol);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function removeToken(address _token, string calldata _tokenSymbol)
|
|
210
|
+
external
|
|
211
|
+
onlyOwner
|
|
212
|
+
{
|
|
213
|
+
// Require the provided token and token symbols match what's in storage.
|
|
214
|
+
address _existingToken = address(tokenSymbolToAddress[_tokenSymbol]);
|
|
215
|
+
require(_existingToken == _token, "Token mismatch");
|
|
216
|
+
|
|
217
|
+
string memory _existingSymbol = tokenAddressToSymbol[_token];
|
|
218
|
+
require(
|
|
219
|
+
keccak256(bytes(_existingSymbol)) == keccak256(bytes(_tokenSymbol)),
|
|
220
|
+
"Token symbol mismatch"
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
// Delete them from storage.
|
|
224
|
+
delete tokenSymbolToAddress[_tokenSymbol];
|
|
225
|
+
delete tokenAddressToSymbol[_token];
|
|
226
|
+
|
|
227
|
+
emit TokenRemoved(_token, _tokenSymbol);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @notice Gets the Circle nonce ID by hashing _originCircleDomain and _nonce.
|
|
232
|
+
* @param _originCircleDomain Domain of chain where the transfer originated
|
|
233
|
+
* @param _nonce The unique identifier for the message from source to
|
|
234
|
+
destination
|
|
235
|
+
* @return hash of source and nonce
|
|
236
|
+
*/
|
|
237
|
+
function _circleNonceId(uint32 _originCircleDomain, uint64 _nonce)
|
|
238
|
+
internal
|
|
239
|
+
pure
|
|
240
|
+
returns (bytes32)
|
|
241
|
+
{
|
|
242
|
+
// The hash is of a uint256 nonce, not a uint64 one.
|
|
243
|
+
return
|
|
244
|
+
keccak256(abi.encodePacked(_originCircleDomain, uint256(_nonce)));
|
|
245
|
+
}
|
|
246
|
+
}
|