@hyperlane-xyz/core 0.5.0-beta0
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/README.md +14 -0
- package/contracts/AbacusConnectionManager.sol +168 -0
- package/contracts/Inbox.sol +148 -0
- package/contracts/InterchainGasPaymaster.sol +67 -0
- package/contracts/Mailbox.sol +93 -0
- package/contracts/MerkleTreeManager.sol +32 -0
- package/contracts/Outbox.sol +191 -0
- package/contracts/libs/Merkle.sol +208 -0
- package/contracts/libs/Message.sol +122 -0
- package/contracts/libs/TypeCasts.sol +34 -0
- package/contracts/mock/MockInbox.sol +49 -0
- package/contracts/mock/MockOutbox.sol +26 -0
- package/contracts/test/MysteryMath.sol +21 -0
- package/contracts/test/MysteryMathV1.sol +22 -0
- package/contracts/test/MysteryMathV2.sol +22 -0
- package/contracts/test/TestInbox.sol +54 -0
- package/contracts/test/TestMailbox.sol +12 -0
- package/contracts/test/TestMerkle.sol +30 -0
- package/contracts/test/TestMessage.sol +64 -0
- package/contracts/test/TestMultisigValidatorManager.sol +26 -0
- package/contracts/test/TestOutbox.sol +46 -0
- package/contracts/test/TestRecipient.sol +18 -0
- package/contracts/test/TestSendReceiver.sol +65 -0
- package/contracts/test/TestValidatorManager.sol +21 -0
- package/contracts/test/bad-recipient/BadRecipient1.sol +16 -0
- package/contracts/test/bad-recipient/BadRecipient2.sol +6 -0
- package/contracts/test/bad-recipient/BadRecipient3.sol +17 -0
- package/contracts/test/bad-recipient/BadRecipient5.sol +14 -0
- package/contracts/test/bad-recipient/BadRecipient6.sol +14 -0
- package/contracts/upgrade/UpgradeBeacon.sol +98 -0
- package/contracts/upgrade/UpgradeBeaconController.sol +48 -0
- package/contracts/upgrade/UpgradeBeaconProxy.sol +176 -0
- package/contracts/upgrade/Versioned.sol +10 -0
- package/contracts/validator-manager/InboxValidatorManager.sol +58 -0
- package/contracts/validator-manager/MultisigValidatorManager.sol +271 -0
- package/contracts/validator-manager/OutboxValidatorManager.sol +244 -0
- package/dist/@openzeppelin/contracts/access/Ownable.d.ts +90 -0
- package/dist/@openzeppelin/contracts/access/Ownable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/access/Ownable.js +4 -0
- package/dist/@openzeppelin/contracts/access/Ownable.js.map +1 -0
- package/dist/@openzeppelin/contracts/access/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts/access/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/access/index.js +3 -0
- package/dist/@openzeppelin/contracts/access/index.js.map +1 -0
- package/dist/@openzeppelin/contracts/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts/index.js +4 -0
- package/dist/@openzeppelin/contracts/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts +99 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/index.js +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +9 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts +40 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts +40 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/index.js +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts +40 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js +4 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/index.js +3 -0
- package/dist/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
- package/dist/@openzeppelin/index.d.ts +5 -0
- package/dist/@openzeppelin/index.d.ts.map +1 -0
- package/dist/@openzeppelin/index.js +4 -0
- package/dist/@openzeppelin/index.js.map +1 -0
- package/dist/common.d.ts +22 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +4 -0
- package/dist/common.js.map +1 -0
- package/dist/contracts/AbacusConnectionManager.d.ts +221 -0
- package/dist/contracts/AbacusConnectionManager.d.ts.map +1 -0
- package/dist/contracts/AbacusConnectionManager.js +4 -0
- package/dist/contracts/AbacusConnectionManager.js.map +1 -0
- package/dist/contracts/Inbox.d.ts +207 -0
- package/dist/contracts/Inbox.d.ts.map +1 -0
- package/dist/contracts/Inbox.js +4 -0
- package/dist/contracts/Inbox.js.map +1 -0
- package/dist/contracts/InterchainGasPaymaster.d.ts +162 -0
- package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -0
- package/dist/contracts/InterchainGasPaymaster.js +4 -0
- package/dist/contracts/InterchainGasPaymaster.js.map +1 -0
- package/dist/contracts/Mailbox.d.ts +142 -0
- package/dist/contracts/Mailbox.d.ts.map +1 -0
- package/dist/contracts/Mailbox.js +4 -0
- package/dist/contracts/Mailbox.js.map +1 -0
- package/dist/contracts/MerkleTreeManager.d.ts +53 -0
- package/dist/contracts/MerkleTreeManager.d.ts.map +1 -0
- package/dist/contracts/MerkleTreeManager.js +4 -0
- package/dist/contracts/MerkleTreeManager.js.map +1 -0
- package/dist/contracts/Outbox.d.ts +331 -0
- package/dist/contracts/Outbox.d.ts.map +1 -0
- package/dist/contracts/Outbox.js +4 -0
- package/dist/contracts/Outbox.js.map +1 -0
- package/dist/contracts/index.d.ts +15 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +4 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/mock/MockInbox.d.ts +67 -0
- package/dist/contracts/mock/MockInbox.d.ts.map +1 -0
- package/dist/contracts/mock/MockInbox.js +4 -0
- package/dist/contracts/mock/MockInbox.js.map +1 -0
- package/dist/contracts/mock/MockOutbox.d.ts +51 -0
- package/dist/contracts/mock/MockOutbox.d.ts.map +1 -0
- package/dist/contracts/mock/MockOutbox.js +4 -0
- package/dist/contracts/mock/MockOutbox.js.map +1 -0
- package/dist/contracts/mock/index.d.ts +3 -0
- package/dist/contracts/mock/index.d.ts.map +1 -0
- package/dist/contracts/mock/index.js +3 -0
- package/dist/contracts/mock/index.js.map +1 -0
- package/dist/contracts/test/MysteryMath.d.ts +77 -0
- package/dist/contracts/test/MysteryMath.d.ts.map +1 -0
- package/dist/contracts/test/MysteryMath.js +4 -0
- package/dist/contracts/test/MysteryMath.js.map +1 -0
- package/dist/contracts/test/MysteryMathV1.d.ts +85 -0
- package/dist/contracts/test/MysteryMathV1.d.ts.map +1 -0
- package/dist/contracts/test/MysteryMathV1.js +4 -0
- package/dist/contracts/test/MysteryMathV1.js.map +1 -0
- package/dist/contracts/test/MysteryMathV2.d.ts +85 -0
- package/dist/contracts/test/MysteryMathV2.d.ts.map +1 -0
- package/dist/contracts/test/MysteryMathV2.js +4 -0
- package/dist/contracts/test/MysteryMathV2.js.map +1 -0
- package/dist/contracts/test/TestInbox.d.ts +263 -0
- package/dist/contracts/test/TestInbox.d.ts.map +1 -0
- package/dist/contracts/test/TestInbox.js +4 -0
- package/dist/contracts/test/TestInbox.js.map +1 -0
- package/dist/contracts/test/TestMailbox.d.ts +158 -0
- package/dist/contracts/test/TestMailbox.d.ts.map +1 -0
- package/dist/contracts/test/TestMailbox.js +4 -0
- package/dist/contracts/test/TestMailbox.js.map +1 -0
- package/dist/contracts/test/TestMerkle.d.ts +87 -0
- package/dist/contracts/test/TestMerkle.d.ts.map +1 -0
- package/dist/contracts/test/TestMerkle.js +4 -0
- package/dist/contracts/test/TestMerkle.js.map +1 -0
- package/dist/contracts/test/TestMessage.d.ts +103 -0
- package/dist/contracts/test/TestMessage.d.ts.map +1 -0
- package/dist/contracts/test/TestMessage.js +4 -0
- package/dist/contracts/test/TestMessage.js.map +1 -0
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts +247 -0
- package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +1 -0
- package/dist/contracts/test/TestMultisigValidatorManager.js +4 -0
- package/dist/contracts/test/TestMultisigValidatorManager.js.map +1 -0
- package/dist/contracts/test/TestOutbox.d.ts +371 -0
- package/dist/contracts/test/TestOutbox.d.ts.map +1 -0
- package/dist/contracts/test/TestOutbox.js +4 -0
- package/dist/contracts/test/TestOutbox.js.map +1 -0
- package/dist/contracts/test/TestRecipient.d.ts +67 -0
- package/dist/contracts/test/TestRecipient.d.ts.map +1 -0
- package/dist/contracts/test/TestRecipient.js +4 -0
- package/dist/contracts/test/TestRecipient.js.map +1 -0
- package/dist/contracts/test/TestSendReceiver.d.ts +78 -0
- package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -0
- package/dist/contracts/test/TestSendReceiver.js +4 -0
- package/dist/contracts/test/TestSendReceiver.js.map +1 -0
- package/dist/contracts/test/TestValidatorManager.d.ts +58 -0
- package/dist/contracts/test/TestValidatorManager.d.ts.map +1 -0
- package/dist/contracts/test/TestValidatorManager.js +4 -0
- package/dist/contracts/test/TestValidatorManager.js.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts +43 -0
- package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient1.js +4 -0
- package/dist/contracts/test/bad-recipient/BadRecipient1.js.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts +43 -0
- package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient2.js +4 -0
- package/dist/contracts/test/bad-recipient/BadRecipient2.js.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts +43 -0
- package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient3.js +4 -0
- package/dist/contracts/test/bad-recipient/BadRecipient3.js.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts +43 -0
- package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient5.js +4 -0
- package/dist/contracts/test/bad-recipient/BadRecipient5.js.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts +43 -0
- package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/BadRecipient6.js +4 -0
- package/dist/contracts/test/bad-recipient/BadRecipient6.js.map +1 -0
- package/dist/contracts/test/bad-recipient/index.d.ts +6 -0
- package/dist/contracts/test/bad-recipient/index.d.ts.map +1 -0
- package/dist/contracts/test/bad-recipient/index.js +3 -0
- package/dist/contracts/test/bad-recipient/index.js.map +1 -0
- package/dist/contracts/test/index.d.ts +15 -0
- package/dist/contracts/test/index.d.ts.map +1 -0
- package/dist/contracts/test/index.js +4 -0
- package/dist/contracts/test/index.js.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeacon.d.ts +40 -0
- package/dist/contracts/upgrade/UpgradeBeacon.d.ts.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeacon.js +4 -0
- package/dist/contracts/upgrade/UpgradeBeacon.js.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeaconController.d.ts +119 -0
- package/dist/contracts/upgrade/UpgradeBeaconController.d.ts.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeaconController.js +4 -0
- package/dist/contracts/upgrade/UpgradeBeaconController.js.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts +28 -0
- package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts.map +1 -0
- package/dist/contracts/upgrade/UpgradeBeaconProxy.js +4 -0
- package/dist/contracts/upgrade/UpgradeBeaconProxy.js.map +1 -0
- package/dist/contracts/upgrade/Versioned.d.ts +43 -0
- package/dist/contracts/upgrade/Versioned.d.ts.map +1 -0
- package/dist/contracts/upgrade/Versioned.js +4 -0
- package/dist/contracts/upgrade/Versioned.js.map +1 -0
- package/dist/contracts/upgrade/index.d.ts +5 -0
- package/dist/contracts/upgrade/index.d.ts.map +1 -0
- package/dist/contracts/upgrade/index.js +3 -0
- package/dist/contracts/upgrade/index.js.map +1 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +263 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/InboxValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +239 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +335 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +1 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.js +4 -0
- package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +1 -0
- package/dist/contracts/validator-manager/index.d.ts +4 -0
- package/dist/contracts/validator-manager/index.d.ts.map +1 -0
- package/dist/contracts/validator-manager/index.js +3 -0
- package/dist/contracts/validator-manager/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts +43 -0
- package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js +70 -0
- package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/access/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/access/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/access/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts/access/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts +43 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +83 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +5 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +34 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +31 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts +19 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +31 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts +19 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js +31 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts +19 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +31 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.js +9 -0
- package/dist/factories/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
- package/dist/factories/@openzeppelin/index.d.ts +3 -0
- package/dist/factories/@openzeppelin/index.d.ts.map +1 -0
- package/dist/factories/@openzeppelin/index.js +32 -0
- package/dist/factories/@openzeppelin/index.js.map +1 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +55 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.js +295 -0
- package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +1 -0
- package/dist/factories/contracts/Inbox__factory.d.ts +59 -0
- package/dist/factories/contracts/Inbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/Inbox__factory.js +278 -0
- package/dist/factories/contracts/Inbox__factory.js.map +1 -0
- package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +62 -0
- package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -0
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js +173 -0
- package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -0
- package/dist/factories/contracts/Mailbox__factory.d.ts +43 -0
- package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/Mailbox__factory.js +135 -0
- package/dist/factories/contracts/Mailbox__factory.js.map +1 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +31 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.js +67 -0
- package/dist/factories/contracts/MerkleTreeManager__factory.js.map +1 -0
- package/dist/factories/contracts/Outbox__factory.d.ts +59 -0
- package/dist/factories/contracts/Outbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/Outbox__factory.js +415 -0
- package/dist/factories/contracts/Outbox__factory.js.map +1 -0
- package/dist/factories/contracts/index.d.ts +11 -0
- package/dist/factories/contracts/index.d.ts.map +1 -0
- package/dist/factories/contracts/index.js +46 -0
- package/dist/factories/contracts/index.js.map +1 -0
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts +31 -0
- package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockInbox__factory.js +71 -0
- package/dist/factories/contracts/mock/MockInbox__factory.js.map +1 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +41 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.js +75 -0
- package/dist/factories/contracts/mock/MockOutbox__factory.js.map +1 -0
- package/dist/factories/contracts/mock/index.d.ts +3 -0
- package/dist/factories/contracts/mock/index.d.ts.map +1 -0
- package/dist/factories/contracts/mock/index.js +11 -0
- package/dist/factories/contracts/mock/index.js.map +1 -0
- package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts +41 -0
- package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/MysteryMathV1__factory.js +122 -0
- package/dist/factories/contracts/test/MysteryMathV1__factory.js.map +1 -0
- package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts +41 -0
- package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/MysteryMathV2__factory.js +122 -0
- package/dist/factories/contracts/test/MysteryMathV2__factory.js.map +1 -0
- package/dist/factories/contracts/test/MysteryMath__factory.d.ts +23 -0
- package/dist/factories/contracts/test/MysteryMath__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/MysteryMath__factory.js +81 -0
- package/dist/factories/contracts/test/MysteryMath__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestInbox__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestInbox__factory.js +371 -0
- package/dist/factories/contracts/test/TestInbox__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts +66 -0
- package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMailbox__factory.js +182 -0
- package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts +41 -0
- package/dist/factories/contracts/test/TestMerkle__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMerkle__factory.js +127 -0
- package/dist/factories/contracts/test/TestMerkle__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMessage__factory.d.ts +35 -0
- package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMessage__factory.js +179 -0
- package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +349 -0
- package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts +59 -0
- package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestOutbox__factory.js +483 -0
- package/dist/factories/contracts/test/TestOutbox__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts +41 -0
- package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestRecipient__factory.js +90 -0
- package/dist/factories/contracts/test/TestRecipient__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +44 -0
- package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestSendReceiver__factory.js +105 -0
- package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +31 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.js +79 -0
- package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts +31 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js +64 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts +31 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js +59 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts +31 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js +64 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts +31 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js +64 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts +31 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js +64 -0
- package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/index.d.ts +6 -0
- package/dist/factories/contracts/test/bad-recipient/index.d.ts.map +1 -0
- package/dist/factories/contracts/test/bad-recipient/index.js +17 -0
- package/dist/factories/contracts/test/bad-recipient/index.js.map +1 -0
- package/dist/factories/contracts/test/index.d.ts +14 -0
- package/dist/factories/contracts/test/index.d.ts.map +1 -0
- package/dist/factories/contracts/test/index.js +55 -0
- package/dist/factories/contracts/test/index.js.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts +55 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js +130 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts +33 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js +65 -0
- package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts +48 -0
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts.map +1 -0
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js +74 -0
- package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js.map +1 -0
- package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +31 -0
- package/dist/factories/contracts/upgrade/Versioned__factory.d.ts.map +1 -0
- package/dist/factories/contracts/upgrade/Versioned__factory.js +54 -0
- package/dist/factories/contracts/upgrade/Versioned__factory.js.map +1 -0
- package/dist/factories/contracts/upgrade/index.d.ts +5 -0
- package/dist/factories/contracts/upgrade/index.d.ts.map +1 -0
- package/dist/factories/contracts/upgrade/index.js +15 -0
- package/dist/factories/contracts/upgrade/index.js.map +1 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +373 -0
- package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +36 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +286 -0
- package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +59 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +560 -0
- package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +1 -0
- package/dist/factories/contracts/validator-manager/index.d.ts +4 -0
- package/dist/factories/contracts/validator-manager/index.d.ts.map +1 -0
- package/dist/factories/contracts/validator-manager/index.js +13 -0
- package/dist/factories/contracts/validator-manager/index.js.map +1 -0
- package/dist/factories/index.d.ts +4 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/factories/index.js +33 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts +23 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +63 -0
- package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +1 -0
- package/dist/factories/interfaces/IInbox__factory.d.ts +29 -0
- package/dist/factories/interfaces/IInbox__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInbox__factory.js +90 -0
- package/dist/factories/interfaces/IInbox__factory.js.map +1 -0
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts +19 -0
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +41 -0
- package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -0
- package/dist/factories/interfaces/IMailbox__factory.d.ts +19 -0
- package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IMailbox__factory.js +44 -0
- package/dist/factories/interfaces/IMailbox__factory.js.map +1 -0
- package/dist/factories/interfaces/IMessageRecipient__factory.d.ts +19 -0
- package/dist/factories/interfaces/IMessageRecipient__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IMessageRecipient__factory.js +41 -0
- package/dist/factories/interfaces/IMessageRecipient__factory.js.map +1 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts +19 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +57 -0
- package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +1 -0
- package/dist/factories/interfaces/IOutbox__factory.d.ts +23 -0
- package/dist/factories/interfaces/IOutbox__factory.d.ts.map +1 -0
- package/dist/factories/interfaces/IOutbox__factory.js +155 -0
- package/dist/factories/interfaces/IOutbox__factory.js.map +1 -0
- package/dist/factories/interfaces/index.d.ts +8 -0
- package/dist/factories/interfaces/index.d.ts.map +1 -0
- package/dist/factories/interfaces/index.js +21 -0
- package/dist/factories/interfaces/index.js.map +1 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +117 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/IAbacusConnectionManager.d.ts +59 -0
- package/dist/interfaces/IAbacusConnectionManager.d.ts.map +1 -0
- package/dist/interfaces/IAbacusConnectionManager.js +4 -0
- package/dist/interfaces/IAbacusConnectionManager.js.map +1 -0
- package/dist/interfaces/IInbox.d.ts +83 -0
- package/dist/interfaces/IInbox.d.ts.map +1 -0
- package/dist/interfaces/IInbox.js +4 -0
- package/dist/interfaces/IInbox.js.map +1 -0
- package/dist/interfaces/IInterchainGasPaymaster.d.ts +51 -0
- package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -0
- package/dist/interfaces/IInterchainGasPaymaster.js +4 -0
- package/dist/interfaces/IInterchainGasPaymaster.js.map +1 -0
- package/dist/interfaces/IMailbox.d.ts +51 -0
- package/dist/interfaces/IMailbox.d.ts.map +1 -0
- package/dist/interfaces/IMailbox.js +4 -0
- package/dist/interfaces/IMailbox.js.map +1 -0
- package/dist/interfaces/IMessageRecipient.d.ts +51 -0
- package/dist/interfaces/IMessageRecipient.d.ts.map +1 -0
- package/dist/interfaces/IMessageRecipient.js +4 -0
- package/dist/interfaces/IMessageRecipient.js.map +1 -0
- package/dist/interfaces/IMultisigValidatorManager.d.ts +59 -0
- package/dist/interfaces/IMultisigValidatorManager.d.ts.map +1 -0
- package/dist/interfaces/IMultisigValidatorManager.js +4 -0
- package/dist/interfaces/IMultisigValidatorManager.js.map +1 -0
- package/dist/interfaces/IOutbox.d.ts +148 -0
- package/dist/interfaces/IOutbox.d.ts.map +1 -0
- package/dist/interfaces/IOutbox.js +4 -0
- package/dist/interfaces/IOutbox.js.map +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/interfaces/IAbacusConnectionManager.sol +12 -0
- package/interfaces/IInbox.sol +16 -0
- package/interfaces/IInterchainGasPaymaster.sol +15 -0
- package/interfaces/IMailbox.sol +8 -0
- package/interfaces/IMessageRecipient.sol +10 -0
- package/interfaces/IMultisigValidatorManager.sol +11 -0
- package/interfaces/IOutbox.sol +27 -0
- package/package.json +54 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../Inbox.sol";
|
|
5
|
+
|
|
6
|
+
contract TestInbox is Inbox {
|
|
7
|
+
using Message for bytes32;
|
|
8
|
+
using TypeCasts for bytes32;
|
|
9
|
+
|
|
10
|
+
constructor(uint32 _localDomain) Inbox(_localDomain) {} // solhint-disable-line no-empty-blocks
|
|
11
|
+
|
|
12
|
+
function testBranchRoot(
|
|
13
|
+
bytes32 leaf,
|
|
14
|
+
bytes32[32] calldata proof,
|
|
15
|
+
uint256 index
|
|
16
|
+
) external pure returns (bytes32) {
|
|
17
|
+
return MerkleLib.branchRoot(leaf, proof, index);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function testProcess(bytes calldata _message, uint256 leafIndex) external {
|
|
21
|
+
bytes32 _messageHash = keccak256(abi.encodePacked(_message, leafIndex));
|
|
22
|
+
_process(_message, _messageHash);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function testHandle(
|
|
26
|
+
uint32 origin,
|
|
27
|
+
bytes32 sender,
|
|
28
|
+
bytes32 recipient,
|
|
29
|
+
bytes calldata body
|
|
30
|
+
) external {
|
|
31
|
+
IMessageRecipient(recipient.bytes32ToAddress()).handle(
|
|
32
|
+
origin,
|
|
33
|
+
sender,
|
|
34
|
+
body
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function setMessageStatus(bytes32 _leaf, MessageStatus status) external {
|
|
39
|
+
messages[_leaf] = status;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getRevertMsg(bytes calldata _res)
|
|
43
|
+
internal
|
|
44
|
+
pure
|
|
45
|
+
returns (string memory)
|
|
46
|
+
{
|
|
47
|
+
// If the _res length is less than 68, then the transaction failed
|
|
48
|
+
// silently (without a revert message)
|
|
49
|
+
if (_res.length < 68) return "Transaction reverted silently";
|
|
50
|
+
|
|
51
|
+
// Remove the selector (first 4 bytes) and decode revert string
|
|
52
|
+
return abi.decode(_res[4:], (string));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../Mailbox.sol";
|
|
5
|
+
|
|
6
|
+
contract TestMailbox is Mailbox {
|
|
7
|
+
constructor(uint32 _localDomain) Mailbox(_localDomain) {}
|
|
8
|
+
|
|
9
|
+
function initialize(address _validatorManager) external initializer {
|
|
10
|
+
__Mailbox_initialize(_validatorManager);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../MerkleTreeManager.sol";
|
|
5
|
+
|
|
6
|
+
contract TestMerkle is MerkleTreeManager {
|
|
7
|
+
using MerkleLib for MerkleLib.Tree;
|
|
8
|
+
|
|
9
|
+
// solhint-disable-next-line no-empty-blocks
|
|
10
|
+
constructor() MerkleTreeManager() {}
|
|
11
|
+
|
|
12
|
+
function insert(bytes32 _node) external {
|
|
13
|
+
tree.insert(_node);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function branchRoot(
|
|
17
|
+
bytes32 _leaf,
|
|
18
|
+
bytes32[32] calldata _proof,
|
|
19
|
+
uint256 _index
|
|
20
|
+
) external pure returns (bytes32 _node) {
|
|
21
|
+
return MerkleLib.branchRoot(_leaf, _proof, _index);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @notice Returns the number of inserted leaves in the tree
|
|
26
|
+
*/
|
|
27
|
+
function count() public view returns (uint256) {
|
|
28
|
+
return tree.count;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.6.11;
|
|
3
|
+
|
|
4
|
+
import {Message} from "../libs/Message.sol";
|
|
5
|
+
|
|
6
|
+
contract TestMessage {
|
|
7
|
+
using Message for bytes;
|
|
8
|
+
|
|
9
|
+
function body(bytes calldata _message)
|
|
10
|
+
external
|
|
11
|
+
pure
|
|
12
|
+
returns (bytes calldata _body)
|
|
13
|
+
{
|
|
14
|
+
(, , , , _body) = _message.destructure();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function origin(bytes calldata _message)
|
|
18
|
+
external
|
|
19
|
+
pure
|
|
20
|
+
returns (uint32 _origin)
|
|
21
|
+
{
|
|
22
|
+
(_origin, , , , ) = _message.destructure();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function sender(bytes calldata _message)
|
|
26
|
+
external
|
|
27
|
+
pure
|
|
28
|
+
returns (bytes32 _sender)
|
|
29
|
+
{
|
|
30
|
+
(, _sender, , , ) = _message.destructure();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function destination(bytes calldata _message)
|
|
34
|
+
external
|
|
35
|
+
pure
|
|
36
|
+
returns (uint32 _destination)
|
|
37
|
+
{
|
|
38
|
+
(, , _destination, , ) = _message.destructure();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function recipient(bytes calldata _message)
|
|
42
|
+
external
|
|
43
|
+
pure
|
|
44
|
+
returns (bytes32 _recipient)
|
|
45
|
+
{
|
|
46
|
+
(, , , _recipient, ) = _message.destructure();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function recipientAddress(bytes calldata _message)
|
|
50
|
+
external
|
|
51
|
+
pure
|
|
52
|
+
returns (address _recipient)
|
|
53
|
+
{
|
|
54
|
+
(, , , _recipient, ) = _message.destructureAddresses();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function leaf(bytes calldata _message, uint256 _leafIndex)
|
|
58
|
+
external
|
|
59
|
+
pure
|
|
60
|
+
returns (bytes32)
|
|
61
|
+
{
|
|
62
|
+
return _message.leaf(_leafIndex);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {MultisigValidatorManager} from "../validator-manager/MultisigValidatorManager.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This contract exists to test MultisigValidatorManager.sol, which is abstract
|
|
8
|
+
* and cannot be deployed directly.
|
|
9
|
+
*/
|
|
10
|
+
contract TestMultisigValidatorManager is MultisigValidatorManager {
|
|
11
|
+
// solhint-disable-next-line no-empty-blocks
|
|
12
|
+
constructor(
|
|
13
|
+
uint32 _domain,
|
|
14
|
+
address[] memory _validators,
|
|
15
|
+
uint256 _threshold
|
|
16
|
+
) MultisigValidatorManager(_domain, _validators, _threshold) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @notice Hash of domain concatenated with "ABACUS".
|
|
20
|
+
* @dev This is a public getter of _domainHash to test with.
|
|
21
|
+
* @param _domain The domain to hash.
|
|
22
|
+
*/
|
|
23
|
+
function getDomainHash(uint32 _domain) external pure returns (bytes32) {
|
|
24
|
+
return _domainHash(_domain);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ Internal Imports ============
|
|
5
|
+
import "../Outbox.sol";
|
|
6
|
+
import {MerkleLib} from "../libs/Merkle.sol";
|
|
7
|
+
|
|
8
|
+
contract TestOutbox is Outbox {
|
|
9
|
+
constructor(uint32 _localDomain) Outbox(_localDomain) {} // solhint-disable-line no-empty-blocks
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @notice Set the validator manager
|
|
13
|
+
* @param _validatorManager Address of the validator manager
|
|
14
|
+
*/
|
|
15
|
+
function testSetValidatorManager(address _validatorManager) external {
|
|
16
|
+
validatorManager = _validatorManager;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function proof() external view returns (bytes32[32] memory) {
|
|
20
|
+
bytes32[32] memory _zeroes = MerkleLib.zeroHashes();
|
|
21
|
+
uint256 _index = tree.count - 1;
|
|
22
|
+
bytes32[32] memory _proof;
|
|
23
|
+
|
|
24
|
+
for (uint256 i = 0; i < 32; i++) {
|
|
25
|
+
uint256 _ithBit = (_index >> i) & 0x01;
|
|
26
|
+
if (_ithBit == 1) {
|
|
27
|
+
_proof[i] = tree.branch[i];
|
|
28
|
+
} else {
|
|
29
|
+
_proof[i] = _zeroes[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return _proof;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function branch() external view returns (bytes32[32] memory) {
|
|
36
|
+
return tree.branch;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function branchRoot(
|
|
40
|
+
bytes32 _item,
|
|
41
|
+
bytes32[32] memory _branch,
|
|
42
|
+
uint256 _index
|
|
43
|
+
) external pure returns (bytes32) {
|
|
44
|
+
return MerkleLib.branchRoot(_item, _branch, _index);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
|
|
5
|
+
|
|
6
|
+
contract TestRecipient is IMessageRecipient {
|
|
7
|
+
bytes32 public lastSender;
|
|
8
|
+
bytes public lastData;
|
|
9
|
+
|
|
10
|
+
function handle(
|
|
11
|
+
uint32,
|
|
12
|
+
bytes32 _sender,
|
|
13
|
+
bytes calldata _data
|
|
14
|
+
) external override {
|
|
15
|
+
lastSender = _sender;
|
|
16
|
+
lastData = _data;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {TypeCasts} from "../libs/TypeCasts.sol";
|
|
5
|
+
|
|
6
|
+
import {IInterchainGasPaymaster} from "../../interfaces/IInterchainGasPaymaster.sol";
|
|
7
|
+
import {IMessageRecipient} from "../../interfaces/IMessageRecipient.sol";
|
|
8
|
+
import {IOutbox} from "../../interfaces/IOutbox.sol";
|
|
9
|
+
|
|
10
|
+
contract TestSendReceiver is IMessageRecipient {
|
|
11
|
+
using TypeCasts for address;
|
|
12
|
+
|
|
13
|
+
event Handled(bytes32 blockHash);
|
|
14
|
+
|
|
15
|
+
function dispatchToSelf(
|
|
16
|
+
IOutbox _outbox,
|
|
17
|
+
IInterchainGasPaymaster _paymaster,
|
|
18
|
+
uint32 _destinationDomain,
|
|
19
|
+
bytes calldata _messageBody
|
|
20
|
+
) external payable {
|
|
21
|
+
uint256 _leafIndex = _outbox.dispatch(
|
|
22
|
+
_destinationDomain,
|
|
23
|
+
address(this).addressToBytes32(),
|
|
24
|
+
_messageBody
|
|
25
|
+
);
|
|
26
|
+
uint256 _blockHashNum = uint256(previousBlockHash());
|
|
27
|
+
uint256 _value = msg.value;
|
|
28
|
+
if (_blockHashNum % 5 == 0) {
|
|
29
|
+
// Pay in two separate calls, resulting in 2 distinct events
|
|
30
|
+
uint256 _half = _value / 2;
|
|
31
|
+
_paymaster.payGasFor{value: _half}(
|
|
32
|
+
address(_outbox),
|
|
33
|
+
_leafIndex,
|
|
34
|
+
_destinationDomain
|
|
35
|
+
);
|
|
36
|
+
_paymaster.payGasFor{value: _value - _half}(
|
|
37
|
+
address(_outbox),
|
|
38
|
+
_leafIndex,
|
|
39
|
+
_destinationDomain
|
|
40
|
+
);
|
|
41
|
+
} else {
|
|
42
|
+
// Pay the entire msg.value in one call
|
|
43
|
+
_paymaster.payGasFor{value: _value}(
|
|
44
|
+
address(_outbox),
|
|
45
|
+
_leafIndex,
|
|
46
|
+
_destinationDomain
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function handle(
|
|
52
|
+
uint32,
|
|
53
|
+
bytes32,
|
|
54
|
+
bytes calldata
|
|
55
|
+
) external override {
|
|
56
|
+
bytes32 blockHash = previousBlockHash();
|
|
57
|
+
bool isBlockHashEven = uint256(blockHash) % 2 == 0;
|
|
58
|
+
require(isBlockHashEven, "block hash is odd");
|
|
59
|
+
emit Handled(blockHash);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function previousBlockHash() internal view returns (bytes32) {
|
|
63
|
+
return blockhash(block.number - 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IInbox} from "../../interfaces/IInbox.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Intended for testing Inbox.sol, which requires its validator manager
|
|
8
|
+
* to be a contract.
|
|
9
|
+
*/
|
|
10
|
+
contract TestValidatorManager {
|
|
11
|
+
function process(
|
|
12
|
+
IInbox _inbox,
|
|
13
|
+
bytes32 _root,
|
|
14
|
+
uint256 _index,
|
|
15
|
+
bytes calldata _message,
|
|
16
|
+
bytes32[32] calldata _proof,
|
|
17
|
+
uint256 _leafIndex
|
|
18
|
+
) external {
|
|
19
|
+
_inbox.process(_root, _index, _message, _proof, _leafIndex);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
5
|
+
|
|
6
|
+
contract BadRecipient1 is IMessageRecipient {
|
|
7
|
+
function handle(
|
|
8
|
+
uint32,
|
|
9
|
+
bytes32,
|
|
10
|
+
bytes calldata
|
|
11
|
+
) external pure override {
|
|
12
|
+
assembly {
|
|
13
|
+
revert(0, 0)
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
5
|
+
|
|
6
|
+
contract BadRecipient3 is IMessageRecipient {
|
|
7
|
+
function handle(
|
|
8
|
+
uint32,
|
|
9
|
+
bytes32,
|
|
10
|
+
bytes calldata
|
|
11
|
+
) external pure override {
|
|
12
|
+
assembly {
|
|
13
|
+
mstore(0, 0xabcdef)
|
|
14
|
+
revert(0, 32)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
5
|
+
|
|
6
|
+
contract BadRecipient5 is IMessageRecipient {
|
|
7
|
+
function handle(
|
|
8
|
+
uint32,
|
|
9
|
+
bytes32,
|
|
10
|
+
bytes calldata
|
|
11
|
+
) external pure override {
|
|
12
|
+
require(false, "no can do");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import {IMessageRecipient} from "../../../interfaces/IMessageRecipient.sol";
|
|
5
|
+
|
|
6
|
+
contract BadRecipient6 is IMessageRecipient {
|
|
7
|
+
function handle(
|
|
8
|
+
uint32,
|
|
9
|
+
bytes32,
|
|
10
|
+
bytes calldata
|
|
11
|
+
) external pure override {
|
|
12
|
+
require(false); // solhint-disable-line reason-string
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ External Imports ============
|
|
5
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @title UpgradeBeacon
|
|
9
|
+
* @notice Stores the address of an implementation contract
|
|
10
|
+
* and allows a controller to upgrade the implementation address
|
|
11
|
+
* @dev This implementation combines the gas savings of having no function selectors
|
|
12
|
+
* found in 0age's implementation:
|
|
13
|
+
* https://github.com/dharma-eng/dharma-smart-wallet/blob/master/contracts/proxies/smart-wallet/UpgradeBeaconProxyV1.sol
|
|
14
|
+
* With the added niceties of a safety check that each implementation is a contract
|
|
15
|
+
* and an Upgrade event emitted each time the implementation is changed
|
|
16
|
+
* found in OpenZeppelin's implementation:
|
|
17
|
+
* https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/beacon/BeaconProxy.sol
|
|
18
|
+
*/
|
|
19
|
+
contract UpgradeBeacon {
|
|
20
|
+
// ============ Immutables ============
|
|
21
|
+
|
|
22
|
+
// The controller is capable of modifying the implementation address
|
|
23
|
+
address private immutable controller;
|
|
24
|
+
|
|
25
|
+
// ============ Private Storage Variables ============
|
|
26
|
+
|
|
27
|
+
// The implementation address is held in storage slot zero.
|
|
28
|
+
address private implementation;
|
|
29
|
+
|
|
30
|
+
// ============ Events ============
|
|
31
|
+
|
|
32
|
+
// Upgrade event is emitted each time the implementation address is set
|
|
33
|
+
// (including deployment)
|
|
34
|
+
event Upgrade(address indexed implementation);
|
|
35
|
+
|
|
36
|
+
// ============ Constructor ============
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice Validate the initial implementation and store it.
|
|
40
|
+
* Store the controller immutably.
|
|
41
|
+
* @param _initialImplementation Address of the initial implementation contract
|
|
42
|
+
* @param _controller Address of the controller who can upgrade the implementation
|
|
43
|
+
*/
|
|
44
|
+
constructor(address _initialImplementation, address _controller) payable {
|
|
45
|
+
_setImplementation(_initialImplementation);
|
|
46
|
+
controller = _controller;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ============ External Functions ============
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @notice For all callers except the controller, return the current implementation address.
|
|
53
|
+
* If called by the Controller, update the implementation address
|
|
54
|
+
* to the address passed in the calldata.
|
|
55
|
+
* Note: this requires inline assembly because Solidity fallback functions
|
|
56
|
+
* do not natively take arguments or return values.
|
|
57
|
+
*/
|
|
58
|
+
fallback() external payable {
|
|
59
|
+
if (msg.sender != controller) {
|
|
60
|
+
// if not called by the controller,
|
|
61
|
+
// load implementation address from storage slot zero
|
|
62
|
+
// and return it.
|
|
63
|
+
assembly {
|
|
64
|
+
mstore(0, sload(0))
|
|
65
|
+
return(0, 32)
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
// if called by the controller,
|
|
69
|
+
// load new implementation address from the first word of the calldata
|
|
70
|
+
address _newImplementation;
|
|
71
|
+
assembly {
|
|
72
|
+
_newImplementation := calldataload(0)
|
|
73
|
+
}
|
|
74
|
+
// set the new implementation
|
|
75
|
+
_setImplementation(_newImplementation);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// ============ Private Functions ============
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @notice Perform checks on the new implementation address
|
|
83
|
+
* then upgrade the stored implementation.
|
|
84
|
+
* @param _newImplementation Address of the new implementation contract which will replace the old one
|
|
85
|
+
*/
|
|
86
|
+
function _setImplementation(address _newImplementation) private {
|
|
87
|
+
// Require that the new implementation is different from the current one
|
|
88
|
+
require(implementation != _newImplementation, "!upgrade");
|
|
89
|
+
// Require that the new implementation is a contract
|
|
90
|
+
require(
|
|
91
|
+
Address.isContract(_newImplementation),
|
|
92
|
+
"implementation !contract"
|
|
93
|
+
);
|
|
94
|
+
// set the new implementation
|
|
95
|
+
implementation = _newImplementation;
|
|
96
|
+
emit Upgrade(_newImplementation);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT OR Apache-2.0
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
// ============ Internal Imports ============
|
|
5
|
+
import {UpgradeBeacon} from "./UpgradeBeacon.sol";
|
|
6
|
+
// ============ External Imports ============
|
|
7
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
|
8
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @title UpgradeBeaconController
|
|
12
|
+
* @notice Set as the controller of UpgradeBeacon contract(s),
|
|
13
|
+
* capable of changing their stored implementation address.
|
|
14
|
+
* @dev This implementation is a minimal version inspired by 0age's implementation:
|
|
15
|
+
* https://github.com/dharma-eng/dharma-smart-wallet/blob/master/contracts/upgradeability/DharmaUpgradeBeaconController.sol
|
|
16
|
+
*/
|
|
17
|
+
contract UpgradeBeaconController is Ownable {
|
|
18
|
+
// ============ Events ============
|
|
19
|
+
|
|
20
|
+
event BeaconUpgraded(address indexed beacon, address implementation);
|
|
21
|
+
|
|
22
|
+
// ============ External Functions ============
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @notice Modify the implementation stored in the UpgradeBeacon,
|
|
26
|
+
* which will upgrade the implementation used by all
|
|
27
|
+
* Proxy contracts using that UpgradeBeacon
|
|
28
|
+
* @param _beacon Address of the UpgradeBeacon which will be updated
|
|
29
|
+
* @param _implementation Address of the Implementation contract to upgrade the Beacon to
|
|
30
|
+
*/
|
|
31
|
+
function upgrade(address _beacon, address _implementation)
|
|
32
|
+
external
|
|
33
|
+
onlyOwner
|
|
34
|
+
{
|
|
35
|
+
// Require that the beacon is a contract
|
|
36
|
+
require(Address.isContract(_beacon), "beacon !contract");
|
|
37
|
+
// Call into beacon and supply address of new implementation to update it.
|
|
38
|
+
(bool _success, ) = _beacon.call(abi.encode(_implementation));
|
|
39
|
+
// Revert with message on failure (i.e. if the beacon is somehow incorrect).
|
|
40
|
+
if (!_success) {
|
|
41
|
+
assembly {
|
|
42
|
+
returndatacopy(0, 0, returndatasize())
|
|
43
|
+
revert(0, returndatasize())
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
emit BeaconUpgraded(_beacon, _implementation);
|
|
47
|
+
}
|
|
48
|
+
}
|