@arbitrum/nitro-contracts 2.1.0 → 3.0.0-alpha.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/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +15 -5
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -3
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -9,7 +9,9 @@ library CryptographyPrimitives {
|
|
|
9
9
|
// WARNING: This function has the keccak state in a weird order.
|
|
10
10
|
// If the normal Keccak state is [0, 1, 2, 3, 4, 5, 6, ..., 24]
|
|
11
11
|
// this function has its state as [0, 5, 10, 15, 20, 1, 6, 11, ..., 24]
|
|
12
|
-
function keccakF(
|
|
12
|
+
function keccakF(
|
|
13
|
+
uint256[25] memory a
|
|
14
|
+
) internal pure returns (uint256[25] memory) {
|
|
13
15
|
uint256[5] memory c;
|
|
14
16
|
uint256[5] memory d;
|
|
15
17
|
//uint D_0; uint D_1; uint D_2; uint D_3; uint D_4;
|
|
@@ -60,11 +62,11 @@ library CryptographyPrimitives {
|
|
|
60
62
|
D[x] = C[(x+4)%5]^((C[(x+1)%5] * 2)&0xffffffffffffffff | (C[(x+1)%5]/(2**63)));
|
|
61
63
|
}*/
|
|
62
64
|
|
|
63
|
-
d[0] = c[4] ^ (((c[1] * 2) & 0xffffffffffffffff) | (c[1] / (2**63)));
|
|
64
|
-
d[1] = c[0] ^ (((c[2] * 2) & 0xffffffffffffffff) | (c[2] / (2**63)));
|
|
65
|
-
d[2] = c[1] ^ (((c[3] * 2) & 0xffffffffffffffff) | (c[3] / (2**63)));
|
|
66
|
-
d[3] = c[2] ^ (((c[4] * 2) & 0xffffffffffffffff) | (c[4] / (2**63)));
|
|
67
|
-
d[4] = c[3] ^ (((c[0] * 2) & 0xffffffffffffffff) | (c[0] / (2**63)));
|
|
65
|
+
d[0] = c[4] ^ (((c[1] * 2) & 0xffffffffffffffff) | (c[1] / (2 ** 63)));
|
|
66
|
+
d[1] = c[0] ^ (((c[2] * 2) & 0xffffffffffffffff) | (c[2] / (2 ** 63)));
|
|
67
|
+
d[2] = c[1] ^ (((c[3] * 2) & 0xffffffffffffffff) | (c[3] / (2 ** 63)));
|
|
68
|
+
d[3] = c[2] ^ (((c[4] * 2) & 0xffffffffffffffff) | (c[4] / (2 ** 63)));
|
|
69
|
+
d[4] = c[3] ^ (((c[0] * 2) & 0xffffffffffffffff) | (c[0] / (2 ** 63)));
|
|
68
70
|
|
|
69
71
|
/*
|
|
70
72
|
for( x = 0 ; x < 5 ; x++ ) {
|
|
@@ -101,30 +103,30 @@ library CryptographyPrimitives {
|
|
|
101
103
|
|
|
102
104
|
/*Rho and pi steps*/
|
|
103
105
|
b[0] = a[0];
|
|
104
|
-
b[8] = (((a[1] * (2**36)) & 0xffffffffffffffff) | (a[1] / (2**28)));
|
|
105
|
-
b[11] = (((a[2] * (2**3)) & 0xffffffffffffffff) | (a[2] / (2**61)));
|
|
106
|
-
b[19] = (((a[3] * (2**41)) & 0xffffffffffffffff) | (a[3] / (2**23)));
|
|
107
|
-
b[22] = (((a[4] * (2**18)) & 0xffffffffffffffff) | (a[4] / (2**46)));
|
|
108
|
-
b[2] = (((a[5] * (2**1)) & 0xffffffffffffffff) | (a[5] / (2**63)));
|
|
109
|
-
b[5] = (((a[6] * (2**44)) & 0xffffffffffffffff) | (a[6] / (2**20)));
|
|
110
|
-
b[13] = (((a[7] * (2**10)) & 0xffffffffffffffff) | (a[7] / (2**54)));
|
|
111
|
-
b[16] = (((a[8] * (2**45)) & 0xffffffffffffffff) | (a[8] / (2**19)));
|
|
112
|
-
b[24] = (((a[9] * (2**2)) & 0xffffffffffffffff) | (a[9] / (2**62)));
|
|
113
|
-
b[4] = (((a[10] * (2**62)) & 0xffffffffffffffff) | (a[10] / (2**2)));
|
|
114
|
-
b[7] = (((a[11] * (2**6)) & 0xffffffffffffffff) | (a[11] / (2**58)));
|
|
115
|
-
b[10] = (((a[12] * (2**43)) & 0xffffffffffffffff) | (a[12] / (2**21)));
|
|
116
|
-
b[18] = (((a[13] * (2**15)) & 0xffffffffffffffff) | (a[13] / (2**49)));
|
|
117
|
-
b[21] = (((a[14] * (2**61)) & 0xffffffffffffffff) | (a[14] / (2**3)));
|
|
118
|
-
b[1] = (((a[15] * (2**28)) & 0xffffffffffffffff) | (a[15] / (2**36)));
|
|
119
|
-
b[9] = (((a[16] * (2**55)) & 0xffffffffffffffff) | (a[16] / (2**9)));
|
|
120
|
-
b[12] = (((a[17] * (2**25)) & 0xffffffffffffffff) | (a[17] / (2**39)));
|
|
121
|
-
b[15] = (((a[18] * (2**21)) & 0xffffffffffffffff) | (a[18] / (2**43)));
|
|
122
|
-
b[23] = (((a[19] * (2**56)) & 0xffffffffffffffff) | (a[19] / (2**8)));
|
|
123
|
-
b[3] = (((a[20] * (2**27)) & 0xffffffffffffffff) | (a[20] / (2**37)));
|
|
124
|
-
b[6] = (((a[21] * (2**20)) & 0xffffffffffffffff) | (a[21] / (2**44)));
|
|
125
|
-
b[14] = (((a[22] * (2**39)) & 0xffffffffffffffff) | (a[22] / (2**25)));
|
|
126
|
-
b[17] = (((a[23] * (2**8)) & 0xffffffffffffffff) | (a[23] / (2**56)));
|
|
127
|
-
b[20] = (((a[24] * (2**14)) & 0xffffffffffffffff) | (a[24] / (2**50)));
|
|
106
|
+
b[8] = (((a[1] * (2 ** 36)) & 0xffffffffffffffff) | (a[1] / (2 ** 28)));
|
|
107
|
+
b[11] = (((a[2] * (2 ** 3)) & 0xffffffffffffffff) | (a[2] / (2 ** 61)));
|
|
108
|
+
b[19] = (((a[3] * (2 ** 41)) & 0xffffffffffffffff) | (a[3] / (2 ** 23)));
|
|
109
|
+
b[22] = (((a[4] * (2 ** 18)) & 0xffffffffffffffff) | (a[4] / (2 ** 46)));
|
|
110
|
+
b[2] = (((a[5] * (2 ** 1)) & 0xffffffffffffffff) | (a[5] / (2 ** 63)));
|
|
111
|
+
b[5] = (((a[6] * (2 ** 44)) & 0xffffffffffffffff) | (a[6] / (2 ** 20)));
|
|
112
|
+
b[13] = (((a[7] * (2 ** 10)) & 0xffffffffffffffff) | (a[7] / (2 ** 54)));
|
|
113
|
+
b[16] = (((a[8] * (2 ** 45)) & 0xffffffffffffffff) | (a[8] / (2 ** 19)));
|
|
114
|
+
b[24] = (((a[9] * (2 ** 2)) & 0xffffffffffffffff) | (a[9] / (2 ** 62)));
|
|
115
|
+
b[4] = (((a[10] * (2 ** 62)) & 0xffffffffffffffff) | (a[10] / (2 ** 2)));
|
|
116
|
+
b[7] = (((a[11] * (2 ** 6)) & 0xffffffffffffffff) | (a[11] / (2 ** 58)));
|
|
117
|
+
b[10] = (((a[12] * (2 ** 43)) & 0xffffffffffffffff) | (a[12] / (2 ** 21)));
|
|
118
|
+
b[18] = (((a[13] * (2 ** 15)) & 0xffffffffffffffff) | (a[13] / (2 ** 49)));
|
|
119
|
+
b[21] = (((a[14] * (2 ** 61)) & 0xffffffffffffffff) | (a[14] / (2 ** 3)));
|
|
120
|
+
b[1] = (((a[15] * (2 ** 28)) & 0xffffffffffffffff) | (a[15] / (2 ** 36)));
|
|
121
|
+
b[9] = (((a[16] * (2 ** 55)) & 0xffffffffffffffff) | (a[16] / (2 ** 9)));
|
|
122
|
+
b[12] = (((a[17] * (2 ** 25)) & 0xffffffffffffffff) | (a[17] / (2 ** 39)));
|
|
123
|
+
b[15] = (((a[18] * (2 ** 21)) & 0xffffffffffffffff) | (a[18] / (2 ** 43)));
|
|
124
|
+
b[23] = (((a[19] * (2 ** 56)) & 0xffffffffffffffff) | (a[19] / (2 ** 8)));
|
|
125
|
+
b[3] = (((a[20] * (2 ** 27)) & 0xffffffffffffffff) | (a[20] / (2 ** 37)));
|
|
126
|
+
b[6] = (((a[21] * (2 ** 20)) & 0xffffffffffffffff) | (a[21] / (2 ** 44)));
|
|
127
|
+
b[14] = (((a[22] * (2 ** 39)) & 0xffffffffffffffff) | (a[22] / (2 ** 25)));
|
|
128
|
+
b[17] = (((a[23] * (2 ** 8)) & 0xffffffffffffffff) | (a[23] / (2 ** 56)));
|
|
129
|
+
b[20] = (((a[24] * (2 ** 14)) & 0xffffffffffffffff) | (a[24] / (2 ** 50)));
|
|
128
130
|
|
|
129
131
|
/*Xi state*/
|
|
130
132
|
/*
|
|
@@ -172,11 +174,7 @@ library CryptographyPrimitives {
|
|
|
172
174
|
return ((x) >> (n)) | ((x) << (32 - (n)));
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
function ch(
|
|
176
|
-
uint32 e,
|
|
177
|
-
uint32 f,
|
|
178
|
-
uint32 g
|
|
179
|
-
) internal pure returns (uint32) {
|
|
177
|
+
function ch(uint32 e, uint32 f, uint32 g) internal pure returns (uint32) {
|
|
180
178
|
return ((e & f) ^ ((~e) & g));
|
|
181
179
|
}
|
|
182
180
|
|
|
@@ -184,11 +182,10 @@ library CryptographyPrimitives {
|
|
|
184
182
|
// Note that the input must be padded by the caller
|
|
185
183
|
// For the initial chunk, the initial values from the SHA256 spec should be passed in as hashState
|
|
186
184
|
// For subsequent rounds, hashState is the output from the previous round
|
|
187
|
-
function sha256Block(
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
{
|
|
185
|
+
function sha256Block(
|
|
186
|
+
uint256[2] memory inputChunk,
|
|
187
|
+
uint256 hashState
|
|
188
|
+
) internal pure returns (uint256) {
|
|
192
189
|
unchecked {
|
|
193
190
|
uint32[64] memory k = [
|
|
194
191
|
0x428a2f98,
|
|
@@ -285,14 +282,10 @@ library CryptographyPrimitives {
|
|
|
285
282
|
|
|
286
283
|
for (i = 0; i < 64; i++) {
|
|
287
284
|
s1 =
|
|
288
|
-
rightRotate(state[4], 6) ^
|
|
289
|
-
rightRotate(state[4], 11) ^
|
|
290
|
-
rightRotate(state[4], 25);
|
|
285
|
+
rightRotate(state[4], 6) ^ rightRotate(state[4], 11) ^ rightRotate(state[4], 25);
|
|
291
286
|
temp1 = state[7] + s1 + ch(state[4], state[5], state[6]) + k[i] + w[i];
|
|
292
287
|
s0 =
|
|
293
|
-
rightRotate(state[0], 2) ^
|
|
294
|
-
rightRotate(state[0], 13) ^
|
|
295
|
-
rightRotate(state[0], 22);
|
|
288
|
+
rightRotate(state[0], 2) ^ rightRotate(state[0], 13) ^ rightRotate(state[0], 22);
|
|
296
289
|
|
|
297
290
|
maj = (state[0] & (state[1] ^ state[2])) ^ (state[1] & state[2]);
|
|
298
291
|
temp2 = s0 + maj;
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
6
|
|
|
7
|
-
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
8
|
-
|
|
9
7
|
library DecimalsConverterHelper {
|
|
10
8
|
/// @notice generic function for mapping amount from one decimal denomination to another
|
|
11
9
|
/// @dev Ie. let's say amount is 752. If token has 16 decimals and is being adjusted to
|
|
@@ -25,9 +23,9 @@ library DecimalsConverterHelper {
|
|
|
25
23
|
if (decimalsIn == decimalsOut) {
|
|
26
24
|
return amount;
|
|
27
25
|
} else if (decimalsIn < decimalsOut) {
|
|
28
|
-
return amount * 10**(decimalsOut - decimalsIn);
|
|
26
|
+
return amount * 10 ** (decimalsOut - decimalsIn);
|
|
29
27
|
} else {
|
|
30
|
-
return amount / 10**(decimalsIn - decimalsOut);
|
|
28
|
+
return amount / 10 ** (decimalsIn - decimalsOut);
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
}
|
|
@@ -26,7 +26,9 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
|
|
|
26
26
|
* function _authorizeSecondaryUpgrade(address) internal override onlyOwner {}
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
-
function _authorizeSecondaryUpgrade(
|
|
29
|
+
function _authorizeSecondaryUpgrade(
|
|
30
|
+
address newImplementation
|
|
31
|
+
) internal virtual;
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* @dev Upgrade the secondary implementation of the proxy to `newImplementation`.
|
|
@@ -35,7 +37,9 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
|
|
|
35
37
|
*
|
|
36
38
|
* Emits an {UpgradedSecondary} event.
|
|
37
39
|
*/
|
|
38
|
-
function upgradeSecondaryTo(
|
|
40
|
+
function upgradeSecondaryTo(
|
|
41
|
+
address newImplementation
|
|
42
|
+
) external onlyProxy {
|
|
39
43
|
_authorizeSecondaryUpgrade(newImplementation);
|
|
40
44
|
_upgradeSecondaryToAndCallUUPS(newImplementation, new bytes(0), false);
|
|
41
45
|
}
|
|
@@ -48,11 +52,10 @@ abstract contract DoubleLogicUUPSUpgradeable is UUPSUpgradeable, DoubleLogicERC1
|
|
|
48
52
|
*
|
|
49
53
|
* Emits an {UpgradedSecondary} event.
|
|
50
54
|
*/
|
|
51
|
-
function upgradeSecondaryToAndCall(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
{
|
|
55
|
+
function upgradeSecondaryToAndCall(
|
|
56
|
+
address newImplementation,
|
|
57
|
+
bytes memory data
|
|
58
|
+
) external payable onlyProxy {
|
|
56
59
|
_authorizeSecondaryUpgrade(newImplementation);
|
|
57
60
|
_upgradeSecondaryToAndCallUUPS(newImplementation, data, true);
|
|
58
61
|
}
|
package/src/libraries/Error.sol
CHANGED
|
@@ -149,9 +149,6 @@ error DelayedTooFar();
|
|
|
149
149
|
/// @dev Force include can only read messages more blocks old than the delay period
|
|
150
150
|
error ForceIncludeBlockTooSoon();
|
|
151
151
|
|
|
152
|
-
/// @dev Force include can only read messages more seconds old than the delay period
|
|
153
|
-
error ForceIncludeTimeTooSoon();
|
|
154
|
-
|
|
155
152
|
/// @dev The message provided did not match the hash in the delayed inbox
|
|
156
153
|
error IncorrectMessagePreimage();
|
|
157
154
|
|
|
@@ -176,6 +173,15 @@ error NotBatchPosterManager(address);
|
|
|
176
173
|
/// @dev Thrown when a data blob feature is attempted to be used on a chain that doesnt support it
|
|
177
174
|
error DataBlobsNotSupported();
|
|
178
175
|
|
|
176
|
+
/// @dev Thrown when batches are posted without buffer proof, this is only allowed in a sync state or when no new delayed messages are read
|
|
177
|
+
error DelayProofRequired();
|
|
178
|
+
|
|
179
|
+
/// @dev The DelayedAccPreimage is invalid
|
|
180
|
+
error InvalidDelayedAccPreimage();
|
|
181
|
+
|
|
182
|
+
/// @dev Thrown when the sequencer attempts to post a batch with delay / sync proofs without delay bufferability enabled
|
|
183
|
+
error NotDelayBufferable();
|
|
184
|
+
|
|
179
185
|
/// @dev Thrown when an init param was supplied as empty
|
|
180
186
|
error InitParamZero(string name);
|
|
181
187
|
|
|
@@ -196,3 +202,12 @@ error Deprecated();
|
|
|
196
202
|
|
|
197
203
|
/// @dev Thrown when any component of maxTimeVariation is over uint64
|
|
198
204
|
error BadMaxTimeVariation();
|
|
205
|
+
|
|
206
|
+
/// @dev Thrown when any component of bufferConfig is zero
|
|
207
|
+
error BadBufferConfig();
|
|
208
|
+
|
|
209
|
+
/// @dev Thrown when extra gas is not a uint64
|
|
210
|
+
error ExtraGasNotUint64();
|
|
211
|
+
|
|
212
|
+
/// @dev Thrown when keysetBytes is too large
|
|
213
|
+
error KeysetTooLarge();
|
|
@@ -9,7 +9,7 @@ import "./IReader4844.sol";
|
|
|
9
9
|
import "./IGasRefunder.sol";
|
|
10
10
|
|
|
11
11
|
abstract contract GasRefundEnabled {
|
|
12
|
-
uint256 internal immutable gasPerBlob = 2**17;
|
|
12
|
+
uint256 internal immutable gasPerBlob = 2 ** 17;
|
|
13
13
|
|
|
14
14
|
/// @dev this refunds the sender for execution costs of the tx
|
|
15
15
|
/// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging
|
|
@@ -21,7 +21,7 @@ abstract contract GasRefundEnabled {
|
|
|
21
21
|
uint256 calldataSize = msg.data.length;
|
|
22
22
|
uint256 calldataWords = (calldataSize + 31) / 32;
|
|
23
23
|
// account for the CALLDATACOPY cost of the proxy contract, including the memory expansion cost
|
|
24
|
-
startGasLeft += calldataWords * 6 + (calldataWords**2) / 512;
|
|
24
|
+
startGasLeft += calldataWords * 6 + (calldataWords ** 2) / 512;
|
|
25
25
|
// if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call
|
|
26
26
|
// so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input
|
|
27
27
|
// solhint-disable-next-line avoid-tx-origin
|
|
@@ -39,8 +39,7 @@ abstract contract GasRefundEnabled {
|
|
|
39
39
|
if (dataHashes.length != 0) {
|
|
40
40
|
uint256 blobBasefee = reader4844.getBlobBaseFee();
|
|
41
41
|
startGasLeft +=
|
|
42
|
-
(dataHashes.length * gasPerBlob * blobBasefee) /
|
|
43
|
-
block.basefee;
|
|
42
|
+
(dataHashes.length * gasPerBlob * blobBasefee) / block.basefee;
|
|
44
43
|
}
|
|
45
44
|
} catch {}
|
|
46
45
|
}
|
|
@@ -7,15 +7,16 @@ pragma solidity ^0.8.4;
|
|
|
7
7
|
import {MerkleProofTooLong} from "./Error.sol";
|
|
8
8
|
|
|
9
9
|
library MerkleLib {
|
|
10
|
-
function generateRoot(
|
|
10
|
+
function generateRoot(
|
|
11
|
+
bytes32[] memory _hashes
|
|
12
|
+
) internal pure returns (bytes32) {
|
|
11
13
|
bytes32[] memory prevLayer = _hashes;
|
|
12
14
|
while (prevLayer.length > 1) {
|
|
13
15
|
bytes32[] memory nextLayer = new bytes32[]((prevLayer.length + 1) / 2);
|
|
14
16
|
for (uint256 i = 0; i < nextLayer.length; i++) {
|
|
15
17
|
if (2 * i + 1 < prevLayer.length) {
|
|
16
|
-
nextLayer[i] =
|
|
17
|
-
abi.encodePacked(prevLayer[2 * i], prevLayer[2 * i + 1])
|
|
18
|
-
);
|
|
18
|
+
nextLayer[i] =
|
|
19
|
+
keccak256(abi.encodePacked(prevLayer[2 * i], prevLayer[2 * i + 1]));
|
|
19
20
|
} else {
|
|
20
21
|
nextLayer[i] = prevLayer[2 * i];
|
|
21
22
|
}
|
|
@@ -33,7 +34,7 @@ library MerkleLib {
|
|
|
33
34
|
uint256 proofItems = nodes.length;
|
|
34
35
|
if (proofItems > 256) revert MerkleProofTooLong(proofItems, 256);
|
|
35
36
|
bytes32 h = item;
|
|
36
|
-
for (uint256 i = 0; i < proofItems;
|
|
37
|
+
for (uint256 i = 0; i < proofItems;) {
|
|
37
38
|
bytes32 node = nodes[i];
|
|
38
39
|
if ((route & (1 << i)) == 0) {
|
|
39
40
|
assembly {
|
|
@@ -24,8 +24,7 @@ abstract contract UUPSNotUpgradeable is IERC1822Proxiable, DoubleLogicERC1967Upg
|
|
|
24
24
|
modifier onlyProxy() {
|
|
25
25
|
require(address(this) != __self, "Function must be called through delegatecall");
|
|
26
26
|
require(
|
|
27
|
-
_getSecondaryImplementation() == __self,
|
|
28
|
-
"Function must be called through active proxy"
|
|
27
|
+
_getSecondaryImplementation() == __self, "Function must be called through active proxy"
|
|
29
28
|
);
|
|
30
29
|
_;
|
|
31
30
|
}
|
|
@@ -36,8 +35,7 @@ abstract contract UUPSNotUpgradeable is IERC1822Proxiable, DoubleLogicERC1967Upg
|
|
|
36
35
|
*/
|
|
37
36
|
modifier notDelegated() {
|
|
38
37
|
require(
|
|
39
|
-
address(this) == __self,
|
|
40
|
-
"UUPSNotUpgradeable: must not be called through delegatecall"
|
|
38
|
+
address(this) == __self, "UUPSNotUpgradeable: must not be called through delegatecall"
|
|
41
39
|
);
|
|
42
40
|
_;
|
|
43
41
|
}
|
package/src/mocks/BridgeStub.sol
CHANGED
|
@@ -35,20 +35,28 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
35
35
|
address public nativeToken;
|
|
36
36
|
uint8 public nativeTokenDecimals;
|
|
37
37
|
|
|
38
|
-
function setSequencerInbox(
|
|
38
|
+
function setSequencerInbox(
|
|
39
|
+
address _sequencerInbox
|
|
40
|
+
) external override {
|
|
39
41
|
sequencerInbox = _sequencerInbox;
|
|
40
42
|
emit SequencerInboxUpdated(_sequencerInbox);
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
function allowedDelayedInboxes(
|
|
45
|
+
function allowedDelayedInboxes(
|
|
46
|
+
address inbox
|
|
47
|
+
) external view override returns (bool) {
|
|
44
48
|
return allowedDelayedInboxesMap[inbox].allowed;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
|
-
function allowedOutboxes(
|
|
51
|
+
function allowedOutboxes(
|
|
52
|
+
address
|
|
53
|
+
) external pure override returns (bool) {
|
|
48
54
|
revert("NOT_IMPLEMENTED");
|
|
49
55
|
}
|
|
50
56
|
|
|
51
|
-
function updateRollupAddress(
|
|
57
|
+
function updateRollupAddress(
|
|
58
|
+
IOwnable
|
|
59
|
+
) external pure {
|
|
52
60
|
revert("NOT_IMPLEMENTED");
|
|
53
61
|
}
|
|
54
62
|
|
|
@@ -58,15 +66,14 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
58
66
|
bytes32 messageDataHash
|
|
59
67
|
) external payable override returns (uint256) {
|
|
60
68
|
require(allowedDelayedInboxesMap[msg.sender].allowed, "NOT_FROM_INBOX");
|
|
61
|
-
return
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
);
|
|
69
|
+
return addMessageToDelayedAccumulator(
|
|
70
|
+
kind,
|
|
71
|
+
sender,
|
|
72
|
+
block.number,
|
|
73
|
+
block.timestamp, // solhint-disable-line not-rely-on-time
|
|
74
|
+
block.basefee,
|
|
75
|
+
messageDataHash
|
|
76
|
+
);
|
|
70
77
|
}
|
|
71
78
|
|
|
72
79
|
function enqueueSequencerMessage(
|
|
@@ -76,17 +83,11 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
76
83
|
uint256 newMessageCount
|
|
77
84
|
)
|
|
78
85
|
external
|
|
79
|
-
returns (
|
|
80
|
-
uint256 seqMessageIndex,
|
|
81
|
-
bytes32 beforeAcc,
|
|
82
|
-
bytes32 delayedAcc,
|
|
83
|
-
bytes32 acc
|
|
84
|
-
)
|
|
86
|
+
returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc)
|
|
85
87
|
{
|
|
86
88
|
if (
|
|
87
|
-
sequencerReportedSubMessageCount != prevMessageCount &&
|
|
88
|
-
|
|
89
|
-
sequencerReportedSubMessageCount != 0
|
|
89
|
+
sequencerReportedSubMessageCount != prevMessageCount && prevMessageCount != 0
|
|
90
|
+
&& sequencerReportedSubMessageCount != 0
|
|
90
91
|
) {
|
|
91
92
|
revert BadSequencerMessageNumber(sequencerReportedSubMessageCount, prevMessageCount);
|
|
92
93
|
}
|
|
@@ -102,10 +103,10 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
102
103
|
sequencerInboxAccs.push(acc);
|
|
103
104
|
}
|
|
104
105
|
|
|
105
|
-
function submitBatchSpendingReport(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
{
|
|
106
|
+
function submitBatchSpendingReport(
|
|
107
|
+
address batchPoster,
|
|
108
|
+
bytes32 dataHash
|
|
109
|
+
) external returns (uint256) {
|
|
109
110
|
// TODO: implement stub
|
|
110
111
|
}
|
|
111
112
|
|
|
@@ -118,15 +119,8 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
118
119
|
bytes32 messageDataHash
|
|
119
120
|
) internal returns (uint256) {
|
|
120
121
|
uint256 count = delayedInboxAccs.length;
|
|
121
|
-
bytes32 messageHash =
|
|
122
|
-
0,
|
|
123
|
-
address(uint160(0)),
|
|
124
|
-
0,
|
|
125
|
-
0,
|
|
126
|
-
0,
|
|
127
|
-
0,
|
|
128
|
-
messageDataHash
|
|
129
|
-
);
|
|
122
|
+
bytes32 messageHash =
|
|
123
|
+
Messages.messageHash(0, address(uint160(0)), 0, 0, 0, 0, messageDataHash);
|
|
130
124
|
bytes32 prevAcc = 0;
|
|
131
125
|
if (count > 0) {
|
|
132
126
|
prevAcc = delayedInboxAccs[count - 1];
|
|
@@ -136,11 +130,21 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
136
130
|
}
|
|
137
131
|
|
|
138
132
|
function executeCall(
|
|
139
|
-
address,
|
|
140
|
-
uint256,
|
|
141
|
-
bytes calldata
|
|
142
|
-
) external
|
|
143
|
-
|
|
133
|
+
address to,
|
|
134
|
+
uint256 value,
|
|
135
|
+
bytes calldata data
|
|
136
|
+
) external override returns (bool success, bytes memory returnData) {
|
|
137
|
+
(success, returnData) = _executeLowLevelCall(to, value, data);
|
|
138
|
+
emit BridgeCallTriggered(msg.sender, to, value, data);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function _executeLowLevelCall(
|
|
142
|
+
address to,
|
|
143
|
+
uint256 value,
|
|
144
|
+
bytes memory data
|
|
145
|
+
) internal returns (bool success, bytes memory returnData) {
|
|
146
|
+
// solhint-disable-next-line avoid-low-level-calls
|
|
147
|
+
(success, returnData) = to.call{value: value}(data);
|
|
144
148
|
}
|
|
145
149
|
|
|
146
150
|
function setDelayedInbox(address inbox, bool enabled) external override {
|
|
@@ -154,19 +158,15 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
154
158
|
allowedDelayedInboxesMap[inbox] = InOutInfo(allowedDelayedInboxList.length, true);
|
|
155
159
|
allowedDelayedInboxList.push(inbox);
|
|
156
160
|
} else {
|
|
157
|
-
allowedDelayedInboxList[info.index] =
|
|
158
|
-
allowedDelayedInboxList.length - 1
|
|
159
|
-
];
|
|
161
|
+
allowedDelayedInboxList[info.index] =
|
|
162
|
+
allowedDelayedInboxList[allowedDelayedInboxList.length - 1];
|
|
160
163
|
allowedDelayedInboxesMap[allowedDelayedInboxList[info.index]].index = info.index;
|
|
161
164
|
allowedDelayedInboxList.pop();
|
|
162
165
|
delete allowedDelayedInboxesMap[inbox];
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
|
|
166
|
-
function setOutbox(
|
|
167
|
-
address, /* outbox */
|
|
168
|
-
bool /* enabled*/
|
|
169
|
-
) external pure override {
|
|
169
|
+
function setOutbox(address, /* outbox */ bool /* enabled*/ ) external pure override {
|
|
170
170
|
revert("NOT_IMPLEMENTED");
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -184,7 +184,9 @@ contract BridgeStub is IBridge, IEthBridge {
|
|
|
184
184
|
|
|
185
185
|
function acceptFundsFromOldBridge() external payable {}
|
|
186
186
|
|
|
187
|
-
function initialize(
|
|
187
|
+
function initialize(
|
|
188
|
+
IOwnable
|
|
189
|
+
) external pure {
|
|
188
190
|
revert("NOT_IMPLEMENTED");
|
|
189
191
|
}
|
|
190
192
|
}
|
|
@@ -10,6 +10,8 @@ import {BadSequencerMessageNumber} from "../libraries/Error.sol";
|
|
|
10
10
|
import "../bridge/Bridge.sol";
|
|
11
11
|
|
|
12
12
|
contract BridgeUnproxied is Bridge {
|
|
13
|
+
uint256 public DUMMYVAR = 0; // This is a dummy variable to disambiguous with the Bridge contract
|
|
14
|
+
|
|
13
15
|
constructor() {
|
|
14
16
|
_activeOutbox = EMPTY_ACTIVEOUTBOX;
|
|
15
17
|
rollup = IOwnable(msg.sender);
|
package/src/mocks/InboxStub.sol
CHANGED
|
@@ -48,7 +48,9 @@ contract InboxStub is IInboxBase, IInbox {
|
|
|
48
48
|
* @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input
|
|
49
49
|
* @param messageData Data of the message being sent
|
|
50
50
|
*/
|
|
51
|
-
function sendL2MessageFromOrigin(
|
|
51
|
+
function sendL2MessageFromOrigin(
|
|
52
|
+
bytes calldata messageData
|
|
53
|
+
) external returns (uint256) {
|
|
52
54
|
// solhint-disable-next-line avoid-tx-origin
|
|
53
55
|
require(msg.sender == tx.origin, "origin only");
|
|
54
56
|
uint256 msgNum = deliverToBridge(L2_MSG, msg.sender, keccak256(messageData));
|
|
@@ -61,7 +63,9 @@ contract InboxStub is IInboxBase, IInbox {
|
|
|
61
63
|
* @dev This method can be used to send any type of message that doesn't require L1 validation
|
|
62
64
|
* @param messageData Data of the message being sent
|
|
63
65
|
*/
|
|
64
|
-
function sendL2Message(
|
|
66
|
+
function sendL2Message(
|
|
67
|
+
bytes calldata messageData
|
|
68
|
+
) external override returns (uint256) {
|
|
65
69
|
uint256 msgNum = deliverToBridge(L2_MSG, msg.sender, keccak256(messageData));
|
|
66
70
|
emit InboxMessageDelivered(msgNum, messageData);
|
|
67
71
|
return msgNum;
|
|
@@ -72,12 +76,9 @@ contract InboxStub is IInboxBase, IInbox {
|
|
|
72
76
|
address sender,
|
|
73
77
|
bytes32 messageDataHash
|
|
74
78
|
) internal returns (uint256) {
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
sender,
|
|
79
|
-
messageDataHash
|
|
80
|
-
);
|
|
79
|
+
return IEthBridge(address(bridge)).enqueueDelayedMessage{value: msg.value}(
|
|
80
|
+
kind, sender, messageDataHash
|
|
81
|
+
);
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
function sendUnsignedTransaction(
|
|
@@ -181,14 +182,14 @@ contract InboxStub is IInboxBase, IInbox {
|
|
|
181
182
|
revert("NOT_IMPLEMENTED");
|
|
182
183
|
}
|
|
183
184
|
|
|
184
|
-
function postUpgradeInit(
|
|
185
|
+
function postUpgradeInit(
|
|
186
|
+
IBridge _bridge
|
|
187
|
+
) external {}
|
|
185
188
|
|
|
186
|
-
function calculateRetryableSubmissionFee(
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
returns (uint256)
|
|
191
|
-
{
|
|
189
|
+
function calculateRetryableSubmissionFee(
|
|
190
|
+
uint256,
|
|
191
|
+
uint256
|
|
192
|
+
) external pure override returns (uint256) {
|
|
192
193
|
revert("NOT_IMPLEMENTED");
|
|
193
194
|
}
|
|
194
195
|
|
|
@@ -196,11 +197,15 @@ contract InboxStub is IInboxBase, IInbox {
|
|
|
196
197
|
revert("NOT_IMPLEMENTED");
|
|
197
198
|
}
|
|
198
199
|
|
|
199
|
-
function setAllowListEnabled(
|
|
200
|
+
function setAllowListEnabled(
|
|
201
|
+
bool
|
|
202
|
+
) external pure {
|
|
200
203
|
revert("NOT_IMPLEMENTED");
|
|
201
204
|
}
|
|
202
205
|
|
|
203
|
-
function isAllowed(
|
|
206
|
+
function isAllowed(
|
|
207
|
+
address
|
|
208
|
+
) external pure returns (bool) {
|
|
204
209
|
revert("NOT_IMPLEMENTED");
|
|
205
210
|
}
|
|
206
211
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Copyright 2023, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/offchainlabs/bold/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.17;
|
|
6
|
+
|
|
7
|
+
import "../challengeV2/libraries/MerkleTreeAccumulatorLib.sol";
|
|
8
|
+
import "../challengeV2/libraries/UintUtilsLib.sol";
|
|
9
|
+
|
|
10
|
+
contract MerkleTreeAccess {
|
|
11
|
+
function mostSignificantBit(
|
|
12
|
+
uint256 x
|
|
13
|
+
) external pure returns (uint256) {
|
|
14
|
+
return UintUtilsLib.mostSignificantBit(x);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function leastSignificantBit(
|
|
18
|
+
uint256 x
|
|
19
|
+
) external pure returns (uint256) {
|
|
20
|
+
return UintUtilsLib.leastSignificantBit(x);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function root(
|
|
24
|
+
bytes32[] memory me
|
|
25
|
+
) external pure returns (bytes32) {
|
|
26
|
+
return MerkleTreeAccumulatorLib.root(me);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function appendCompleteSubTree(
|
|
30
|
+
bytes32[] memory me,
|
|
31
|
+
uint256 level,
|
|
32
|
+
bytes32 subtreeRoot
|
|
33
|
+
) external pure returns (bytes32[] memory) {
|
|
34
|
+
return MerkleTreeAccumulatorLib.appendCompleteSubTree(me, level, subtreeRoot);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function appendLeaf(
|
|
38
|
+
bytes32[] memory me,
|
|
39
|
+
bytes32 leaf
|
|
40
|
+
) external pure returns (bytes32[] memory) {
|
|
41
|
+
return MerkleTreeAccumulatorLib.appendLeaf(me, leaf);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function maximumAppendBetween(
|
|
45
|
+
uint256 startSize,
|
|
46
|
+
uint256 endSize
|
|
47
|
+
) external pure returns (uint256) {
|
|
48
|
+
return MerkleTreeAccumulatorLib.maximumAppendBetween(startSize, endSize);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function verifyPrefixProof(
|
|
52
|
+
bytes32 preRoot,
|
|
53
|
+
uint256 preSize,
|
|
54
|
+
bytes32 postRoot,
|
|
55
|
+
uint256 postSize,
|
|
56
|
+
bytes32[] memory preExpansion,
|
|
57
|
+
bytes32[] memory proof
|
|
58
|
+
) external pure {
|
|
59
|
+
return MerkleTreeAccumulatorLib.verifyPrefixProof(
|
|
60
|
+
preRoot, preSize, postRoot, postSize, preExpansion, proof
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function verifyInclusionProof(
|
|
65
|
+
bytes32 rootHash,
|
|
66
|
+
bytes32 leaf,
|
|
67
|
+
uint256 index,
|
|
68
|
+
bytes32[] memory proof
|
|
69
|
+
) external pure {
|
|
70
|
+
MerkleTreeAccumulatorLib.verifyInclusionProof(rootHash, leaf, index, proof);
|
|
71
|
+
}
|
|
72
|
+
}
|