@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
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
import "../libraries/DelegateCallAware.sol";
|
|
8
|
-
import "../osp/IOneStepProofEntry.sol";
|
|
9
|
-
import "../state/GlobalState.sol";
|
|
10
|
-
import "./IChallengeResultReceiver.sol";
|
|
11
|
-
import "./ChallengeLib.sol";
|
|
12
|
-
import "./IChallengeManager.sol";
|
|
13
|
-
|
|
14
|
-
import {NO_CHAL_INDEX} from "../libraries/Constants.sol";
|
|
15
|
-
|
|
16
|
-
contract ChallengeManager is DelegateCallAware, IChallengeManager {
|
|
17
|
-
using GlobalStateLib for GlobalState;
|
|
18
|
-
using MachineLib for Machine;
|
|
19
|
-
using ChallengeLib for ChallengeLib.Challenge;
|
|
20
|
-
|
|
21
|
-
enum ChallengeModeRequirement {
|
|
22
|
-
ANY,
|
|
23
|
-
BLOCK,
|
|
24
|
-
EXECUTION
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
string private constant NO_CHAL = "NO_CHAL";
|
|
28
|
-
uint256 private constant MAX_CHALLENGE_DEGREE = 40;
|
|
29
|
-
|
|
30
|
-
uint64 public totalChallengesCreated;
|
|
31
|
-
mapping(uint256 => ChallengeLib.Challenge) public challenges;
|
|
32
|
-
|
|
33
|
-
IChallengeResultReceiver public resultReceiver;
|
|
34
|
-
|
|
35
|
-
ISequencerInbox public sequencerInbox;
|
|
36
|
-
IBridge public bridge;
|
|
37
|
-
IOneStepProofEntry public osp;
|
|
38
|
-
mapping(bytes32 => IOneStepProofEntry) public ospCond;
|
|
39
|
-
|
|
40
|
-
function challengeInfo(uint64 challengeIndex)
|
|
41
|
-
external
|
|
42
|
-
view
|
|
43
|
-
override
|
|
44
|
-
returns (ChallengeLib.Challenge memory)
|
|
45
|
-
{
|
|
46
|
-
return challenges[challengeIndex];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
modifier takeTurn(
|
|
50
|
-
uint64 challengeIndex,
|
|
51
|
-
ChallengeLib.SegmentSelection calldata selection,
|
|
52
|
-
ChallengeModeRequirement expectedMode
|
|
53
|
-
) {
|
|
54
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
55
|
-
require(msg.sender == currentResponder(challengeIndex), "CHAL_SENDER");
|
|
56
|
-
require(!isTimedOut(challengeIndex), "CHAL_DEADLINE");
|
|
57
|
-
|
|
58
|
-
if (expectedMode == ChallengeModeRequirement.ANY) {
|
|
59
|
-
require(challenge.mode != ChallengeLib.ChallengeMode.NONE, NO_CHAL);
|
|
60
|
-
} else if (expectedMode == ChallengeModeRequirement.BLOCK) {
|
|
61
|
-
require(challenge.mode == ChallengeLib.ChallengeMode.BLOCK, "CHAL_NOT_BLOCK");
|
|
62
|
-
} else if (expectedMode == ChallengeModeRequirement.EXECUTION) {
|
|
63
|
-
require(challenge.mode == ChallengeLib.ChallengeMode.EXECUTION, "CHAL_NOT_EXECUTION");
|
|
64
|
-
} else {
|
|
65
|
-
assert(false);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
require(
|
|
69
|
-
challenge.challengeStateHash ==
|
|
70
|
-
ChallengeLib.hashChallengeState(
|
|
71
|
-
selection.oldSegmentsStart,
|
|
72
|
-
selection.oldSegmentsLength,
|
|
73
|
-
selection.oldSegments
|
|
74
|
-
),
|
|
75
|
-
"BIS_STATE"
|
|
76
|
-
);
|
|
77
|
-
if (
|
|
78
|
-
selection.oldSegments.length < 2 ||
|
|
79
|
-
selection.challengePosition >= selection.oldSegments.length - 1
|
|
80
|
-
) {
|
|
81
|
-
revert("BAD_CHALLENGE_POS");
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
_;
|
|
85
|
-
|
|
86
|
-
if (challenge.mode == ChallengeLib.ChallengeMode.NONE) {
|
|
87
|
-
// Early return since challenge must have terminated
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
ChallengeLib.Participant memory current = challenge.current;
|
|
92
|
-
current.timeLeft -= block.timestamp - challenge.lastMoveTimestamp;
|
|
93
|
-
|
|
94
|
-
challenge.current = challenge.next;
|
|
95
|
-
challenge.next = current;
|
|
96
|
-
|
|
97
|
-
challenge.lastMoveTimestamp = block.timestamp;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function initialize(
|
|
101
|
-
IChallengeResultReceiver resultReceiver_,
|
|
102
|
-
ISequencerInbox sequencerInbox_,
|
|
103
|
-
IBridge bridge_,
|
|
104
|
-
IOneStepProofEntry osp_
|
|
105
|
-
) external override onlyDelegated {
|
|
106
|
-
require(address(resultReceiver) == address(0), "ALREADY_INIT");
|
|
107
|
-
require(address(resultReceiver_) != address(0), "NO_RESULT_RECEIVER");
|
|
108
|
-
resultReceiver = resultReceiver_;
|
|
109
|
-
sequencerInbox = sequencerInbox_;
|
|
110
|
-
bridge = bridge_;
|
|
111
|
-
osp = osp_;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/// @dev A osp breaking change is introduced as part of Stylus upgrade, where the new osp would not support
|
|
115
|
-
/// pre-Stylus legacy wasmModuleRoot. To ensure that the new osp is not used for legacy wasmModuleRoot,
|
|
116
|
-
/// we introduce a conditional OSP where condRoot should be set to the pre-Stylus root and condOsp should
|
|
117
|
-
/// be set to the pre-Stylus osp. The correct value should be handled by the upgrade action contract.
|
|
118
|
-
function postUpgradeInit(
|
|
119
|
-
IOneStepProofEntry osp_,
|
|
120
|
-
bytes32 condRoot,
|
|
121
|
-
IOneStepProofEntry condOsp
|
|
122
|
-
) external onlyDelegated onlyProxyOwner {
|
|
123
|
-
ospCond[condRoot] = condOsp;
|
|
124
|
-
osp = osp_;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function getOsp(bytes32 wasmModuleRoot) public view returns (IOneStepProofEntry) {
|
|
128
|
-
IOneStepProofEntry t = ospCond[wasmModuleRoot];
|
|
129
|
-
if (address(t) == address(0)) {
|
|
130
|
-
return osp;
|
|
131
|
-
} else {
|
|
132
|
-
return t;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function createChallenge(
|
|
137
|
-
bytes32 wasmModuleRoot_,
|
|
138
|
-
MachineStatus[2] calldata startAndEndMachineStatuses_,
|
|
139
|
-
GlobalState[2] calldata startAndEndGlobalStates_,
|
|
140
|
-
uint64 numBlocks,
|
|
141
|
-
address asserter_,
|
|
142
|
-
address challenger_,
|
|
143
|
-
uint256 asserterTimeLeft_,
|
|
144
|
-
uint256 challengerTimeLeft_
|
|
145
|
-
) external override returns (uint64) {
|
|
146
|
-
require(msg.sender == address(resultReceiver), "ONLY_ROLLUP_CHAL");
|
|
147
|
-
bytes32[] memory segments = new bytes32[](2);
|
|
148
|
-
segments[0] = ChallengeLib.blockStateHash(
|
|
149
|
-
startAndEndMachineStatuses_[0],
|
|
150
|
-
startAndEndGlobalStates_[0].hash()
|
|
151
|
-
);
|
|
152
|
-
segments[1] = ChallengeLib.blockStateHash(
|
|
153
|
-
startAndEndMachineStatuses_[1],
|
|
154
|
-
startAndEndGlobalStates_[1].hash()
|
|
155
|
-
);
|
|
156
|
-
|
|
157
|
-
uint64 challengeIndex = ++totalChallengesCreated;
|
|
158
|
-
// The following is an assertion since it should never be possible, but it's an important invariant
|
|
159
|
-
assert(challengeIndex != NO_CHAL_INDEX);
|
|
160
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
161
|
-
challenge.wasmModuleRoot = wasmModuleRoot_;
|
|
162
|
-
|
|
163
|
-
// See validator/assertion.go ExecutionState RequiredBatches() for reasoning
|
|
164
|
-
uint64 maxInboxMessagesRead = startAndEndGlobalStates_[1].getInboxPosition();
|
|
165
|
-
if (
|
|
166
|
-
startAndEndMachineStatuses_[1] == MachineStatus.ERRORED ||
|
|
167
|
-
startAndEndGlobalStates_[1].getPositionInMessage() > 0
|
|
168
|
-
) {
|
|
169
|
-
maxInboxMessagesRead++;
|
|
170
|
-
}
|
|
171
|
-
challenge.maxInboxMessages = maxInboxMessagesRead;
|
|
172
|
-
challenge.next = ChallengeLib.Participant({addr: asserter_, timeLeft: asserterTimeLeft_});
|
|
173
|
-
challenge.current = ChallengeLib.Participant({
|
|
174
|
-
addr: challenger_,
|
|
175
|
-
timeLeft: challengerTimeLeft_
|
|
176
|
-
});
|
|
177
|
-
challenge.lastMoveTimestamp = block.timestamp;
|
|
178
|
-
challenge.mode = ChallengeLib.ChallengeMode.BLOCK;
|
|
179
|
-
|
|
180
|
-
emit InitiatedChallenge(
|
|
181
|
-
challengeIndex,
|
|
182
|
-
startAndEndGlobalStates_[0],
|
|
183
|
-
startAndEndGlobalStates_[1]
|
|
184
|
-
);
|
|
185
|
-
completeBisection(challengeIndex, 0, numBlocks, segments);
|
|
186
|
-
return challengeIndex;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* @notice Initiate the next round in the bisection by objecting to execution correctness with a bisection
|
|
191
|
-
* of an execution segment with the same length but a different endpoint. This is either the initial move
|
|
192
|
-
* or follows another execution objection
|
|
193
|
-
*/
|
|
194
|
-
function bisectExecution(
|
|
195
|
-
uint64 challengeIndex,
|
|
196
|
-
ChallengeLib.SegmentSelection calldata selection,
|
|
197
|
-
bytes32[] calldata newSegments
|
|
198
|
-
) external takeTurn(challengeIndex, selection, ChallengeModeRequirement.ANY) {
|
|
199
|
-
(uint256 challengeStart, uint256 challengeLength) = ChallengeLib.extractChallengeSegment(
|
|
200
|
-
selection
|
|
201
|
-
);
|
|
202
|
-
require(challengeLength > 1, "TOO_SHORT");
|
|
203
|
-
{
|
|
204
|
-
uint256 expectedDegree = challengeLength;
|
|
205
|
-
if (expectedDegree > MAX_CHALLENGE_DEGREE) {
|
|
206
|
-
expectedDegree = MAX_CHALLENGE_DEGREE;
|
|
207
|
-
}
|
|
208
|
-
require(newSegments.length == expectedDegree + 1, "WRONG_DEGREE");
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
requireValidBisection(selection, newSegments[0], newSegments[newSegments.length - 1]);
|
|
212
|
-
|
|
213
|
-
completeBisection(challengeIndex, challengeStart, challengeLength, newSegments);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function challengeExecution(
|
|
217
|
-
uint64 challengeIndex,
|
|
218
|
-
ChallengeLib.SegmentSelection calldata selection,
|
|
219
|
-
MachineStatus[2] calldata machineStatuses,
|
|
220
|
-
bytes32[2] calldata globalStateHashes,
|
|
221
|
-
uint256 numSteps
|
|
222
|
-
) external takeTurn(challengeIndex, selection, ChallengeModeRequirement.BLOCK) {
|
|
223
|
-
require(numSteps >= 1, "CHALLENGE_TOO_SHORT");
|
|
224
|
-
require(numSteps <= OneStepProofEntryLib.MAX_STEPS, "CHALLENGE_TOO_LONG");
|
|
225
|
-
requireValidBisection(
|
|
226
|
-
selection,
|
|
227
|
-
ChallengeLib.blockStateHash(machineStatuses[0], globalStateHashes[0]),
|
|
228
|
-
ChallengeLib.blockStateHash(machineStatuses[1], globalStateHashes[1])
|
|
229
|
-
);
|
|
230
|
-
|
|
231
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
232
|
-
(uint256 executionChallengeAtSteps, uint256 challengeLength) = ChallengeLib
|
|
233
|
-
.extractChallengeSegment(selection);
|
|
234
|
-
require(challengeLength == 1, "TOO_LONG");
|
|
235
|
-
|
|
236
|
-
if (machineStatuses[0] != MachineStatus.FINISHED) {
|
|
237
|
-
// If the machine is in a halted state, it can't change
|
|
238
|
-
require(
|
|
239
|
-
machineStatuses[0] == machineStatuses[1] &&
|
|
240
|
-
globalStateHashes[0] == globalStateHashes[1],
|
|
241
|
-
"HALTED_CHANGE"
|
|
242
|
-
);
|
|
243
|
-
_currentWin(challengeIndex, ChallengeTerminationType.BLOCK_PROOF);
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
if (machineStatuses[1] == MachineStatus.ERRORED) {
|
|
248
|
-
// If the machine errors, it must return to the previous global state
|
|
249
|
-
require(globalStateHashes[0] == globalStateHashes[1], "ERROR_CHANGE");
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
bytes32[] memory segments = new bytes32[](2);
|
|
253
|
-
IOneStepProofEntry _osp = getOsp(challenge.wasmModuleRoot);
|
|
254
|
-
segments[0] = _osp.getStartMachineHash(globalStateHashes[0], challenge.wasmModuleRoot);
|
|
255
|
-
segments[1] = _osp.getEndMachineHash(machineStatuses[1], globalStateHashes[1]);
|
|
256
|
-
|
|
257
|
-
challenge.mode = ChallengeLib.ChallengeMode.EXECUTION;
|
|
258
|
-
|
|
259
|
-
completeBisection(challengeIndex, 0, numSteps, segments);
|
|
260
|
-
|
|
261
|
-
emit ExecutionChallengeBegun(challengeIndex, executionChallengeAtSteps);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
function oneStepProveExecution(
|
|
265
|
-
uint64 challengeIndex,
|
|
266
|
-
ChallengeLib.SegmentSelection calldata selection,
|
|
267
|
-
bytes calldata proof
|
|
268
|
-
) external takeTurn(challengeIndex, selection, ChallengeModeRequirement.EXECUTION) {
|
|
269
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
270
|
-
uint256 challengeStart;
|
|
271
|
-
{
|
|
272
|
-
uint256 challengeLength;
|
|
273
|
-
(challengeStart, challengeLength) = ChallengeLib.extractChallengeSegment(selection);
|
|
274
|
-
require(challengeLength == 1, "TOO_LONG");
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
bytes32 afterHash = getOsp(challenge.wasmModuleRoot).proveOneStep(
|
|
278
|
-
ExecutionContext({maxInboxMessagesRead: challenge.maxInboxMessages, bridge: bridge}),
|
|
279
|
-
challengeStart,
|
|
280
|
-
selection.oldSegments[selection.challengePosition],
|
|
281
|
-
proof
|
|
282
|
-
);
|
|
283
|
-
require(
|
|
284
|
-
afterHash != selection.oldSegments[selection.challengePosition + 1],
|
|
285
|
-
"SAME_OSP_END"
|
|
286
|
-
);
|
|
287
|
-
|
|
288
|
-
emit OneStepProofCompleted(challengeIndex);
|
|
289
|
-
_currentWin(challengeIndex, ChallengeTerminationType.EXECUTION_PROOF);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
function timeout(uint64 challengeIndex) external override {
|
|
293
|
-
require(challenges[challengeIndex].mode != ChallengeLib.ChallengeMode.NONE, NO_CHAL);
|
|
294
|
-
require(isTimedOut(challengeIndex), "TIMEOUT_DEADLINE");
|
|
295
|
-
_nextWin(challengeIndex, ChallengeTerminationType.TIMEOUT);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
function clearChallenge(uint64 challengeIndex) external override {
|
|
299
|
-
require(msg.sender == address(resultReceiver), "NOT_RES_RECEIVER");
|
|
300
|
-
require(challenges[challengeIndex].mode != ChallengeLib.ChallengeMode.NONE, NO_CHAL);
|
|
301
|
-
delete challenges[challengeIndex];
|
|
302
|
-
emit ChallengeEnded(challengeIndex, ChallengeTerminationType.CLEARED);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
function currentResponder(uint64 challengeIndex) public view override returns (address) {
|
|
306
|
-
return challenges[challengeIndex].current.addr;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
function isTimedOut(uint64 challengeIndex) public view virtual override returns (bool) {
|
|
310
|
-
return challenges[challengeIndex].isTimedOut();
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
function requireValidBisection(
|
|
314
|
-
ChallengeLib.SegmentSelection calldata selection,
|
|
315
|
-
bytes32 startHash,
|
|
316
|
-
bytes32 endHash
|
|
317
|
-
) private pure {
|
|
318
|
-
require(selection.oldSegments[selection.challengePosition] == startHash, "WRONG_START");
|
|
319
|
-
require(selection.oldSegments[selection.challengePosition + 1] != endHash, "SAME_END");
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
function completeBisection(
|
|
323
|
-
uint64 challengeIndex,
|
|
324
|
-
uint256 challengeStart,
|
|
325
|
-
uint256 challengeLength,
|
|
326
|
-
bytes32[] memory newSegments
|
|
327
|
-
) private {
|
|
328
|
-
assert(challengeLength >= 1);
|
|
329
|
-
assert(newSegments.length >= 2);
|
|
330
|
-
|
|
331
|
-
bytes32 challengeStateHash = ChallengeLib.hashChallengeState(
|
|
332
|
-
challengeStart,
|
|
333
|
-
challengeLength,
|
|
334
|
-
newSegments
|
|
335
|
-
);
|
|
336
|
-
challenges[challengeIndex].challengeStateHash = challengeStateHash;
|
|
337
|
-
|
|
338
|
-
emit Bisected(
|
|
339
|
-
challengeIndex,
|
|
340
|
-
challengeStateHash,
|
|
341
|
-
challengeStart,
|
|
342
|
-
challengeLength,
|
|
343
|
-
newSegments
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/// @dev This function causes the mode of the challenge to be set to NONE by deleting the challenge
|
|
348
|
-
function _nextWin(uint64 challengeIndex, ChallengeTerminationType reason) private {
|
|
349
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
350
|
-
address next = challenge.next.addr;
|
|
351
|
-
address current = challenge.current.addr;
|
|
352
|
-
delete challenges[challengeIndex];
|
|
353
|
-
resultReceiver.completeChallenge(challengeIndex, next, current);
|
|
354
|
-
emit ChallengeEnded(challengeIndex, reason);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* @dev this currently sets a challenge hash of 0 - no move is possible for the next participant to progress the
|
|
359
|
-
* state. It is assumed that wherever this function is consumed, the turn is then adjusted for the opposite party
|
|
360
|
-
* to timeout. This is done as a safety measure so challenges can only be resolved by timeouts during mainnet beta.
|
|
361
|
-
*/
|
|
362
|
-
function _currentWin(
|
|
363
|
-
uint64 challengeIndex,
|
|
364
|
-
ChallengeTerminationType /* reason */
|
|
365
|
-
) private {
|
|
366
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
367
|
-
challenge.challengeStateHash = bytes32(0);
|
|
368
|
-
|
|
369
|
-
// address next = challenge.next.addr;
|
|
370
|
-
// address current = challenge.current.addr;
|
|
371
|
-
// delete challenges[challengeIndex];
|
|
372
|
-
// resultReceiver.completeChallenge(challengeIndex, current, next);
|
|
373
|
-
// emit ChallengeEnded(challengeIndex, reason);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
import "../state/Machine.sol";
|
|
8
|
-
import "../bridge/IBridge.sol";
|
|
9
|
-
import "../bridge/ISequencerInbox.sol";
|
|
10
|
-
import "../osp/IOneStepProofEntry.sol";
|
|
11
|
-
|
|
12
|
-
import "./IChallengeResultReceiver.sol";
|
|
13
|
-
|
|
14
|
-
import "./ChallengeLib.sol";
|
|
15
|
-
|
|
16
|
-
interface IChallengeManager {
|
|
17
|
-
enum ChallengeTerminationType {
|
|
18
|
-
TIMEOUT,
|
|
19
|
-
BLOCK_PROOF,
|
|
20
|
-
EXECUTION_PROOF,
|
|
21
|
-
CLEARED
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
event InitiatedChallenge(
|
|
25
|
-
uint64 indexed challengeIndex,
|
|
26
|
-
GlobalState startState,
|
|
27
|
-
GlobalState endState
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
event Bisected(
|
|
31
|
-
uint64 indexed challengeIndex,
|
|
32
|
-
bytes32 indexed challengeRoot,
|
|
33
|
-
uint256 challengedSegmentStart,
|
|
34
|
-
uint256 challengedSegmentLength,
|
|
35
|
-
bytes32[] chainHashes
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
event ExecutionChallengeBegun(uint64 indexed challengeIndex, uint256 blockSteps);
|
|
39
|
-
event OneStepProofCompleted(uint64 indexed challengeIndex);
|
|
40
|
-
|
|
41
|
-
event ChallengeEnded(uint64 indexed challengeIndex, ChallengeTerminationType kind);
|
|
42
|
-
|
|
43
|
-
function initialize(
|
|
44
|
-
IChallengeResultReceiver resultReceiver_,
|
|
45
|
-
ISequencerInbox sequencerInbox_,
|
|
46
|
-
IBridge bridge_,
|
|
47
|
-
IOneStepProofEntry osp_
|
|
48
|
-
) external;
|
|
49
|
-
|
|
50
|
-
function postUpgradeInit(
|
|
51
|
-
IOneStepProofEntry osp_,
|
|
52
|
-
bytes32 condRoot,
|
|
53
|
-
IOneStepProofEntry condOsp
|
|
54
|
-
) external;
|
|
55
|
-
|
|
56
|
-
/// @notice Get the default osp, which is used for all wasm module roots that don't have a conditional OSP set
|
|
57
|
-
/// Use getOsp(wasmModuleRoot) to get the OSP for a specific wasm module root
|
|
58
|
-
function osp() external view returns (IOneStepProofEntry);
|
|
59
|
-
|
|
60
|
-
/// @notice Get the OSP for a given wasm module root
|
|
61
|
-
function getOsp(bytes32 wasmModuleRoot) external view returns (IOneStepProofEntry);
|
|
62
|
-
|
|
63
|
-
function createChallenge(
|
|
64
|
-
bytes32 wasmModuleRoot_,
|
|
65
|
-
MachineStatus[2] calldata startAndEndMachineStatuses_,
|
|
66
|
-
GlobalState[2] calldata startAndEndGlobalStates_,
|
|
67
|
-
uint64 numBlocks,
|
|
68
|
-
address asserter_,
|
|
69
|
-
address challenger_,
|
|
70
|
-
uint256 asserterTimeLeft_,
|
|
71
|
-
uint256 challengerTimeLeft_
|
|
72
|
-
) external returns (uint64);
|
|
73
|
-
|
|
74
|
-
function challengeInfo(uint64 challengeIndex_)
|
|
75
|
-
external
|
|
76
|
-
view
|
|
77
|
-
returns (ChallengeLib.Challenge memory);
|
|
78
|
-
|
|
79
|
-
function currentResponder(uint64 challengeIndex) external view returns (address);
|
|
80
|
-
|
|
81
|
-
function isTimedOut(uint64 challengeIndex) external view returns (bool);
|
|
82
|
-
|
|
83
|
-
function clearChallenge(uint64 challengeIndex_) external;
|
|
84
|
-
|
|
85
|
-
function timeout(uint64 challengeIndex_) external;
|
|
86
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
interface IChallengeResultReceiver {
|
|
8
|
-
function completeChallenge(
|
|
9
|
-
uint256 challengeIndex,
|
|
10
|
-
address winner,
|
|
11
|
-
address loser
|
|
12
|
-
) external;
|
|
13
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
import "../challenge/IChallengeResultReceiver.sol";
|
|
8
|
-
import "../challenge/IChallengeManager.sol";
|
|
9
|
-
|
|
10
|
-
contract MockResultReceiver is IChallengeResultReceiver {
|
|
11
|
-
IChallengeManager public manager;
|
|
12
|
-
address public winner;
|
|
13
|
-
address public loser;
|
|
14
|
-
uint256 public challengeIndex;
|
|
15
|
-
|
|
16
|
-
event ChallengeCompleted(
|
|
17
|
-
uint256 indexed challengeIndex,
|
|
18
|
-
address indexed winner,
|
|
19
|
-
address indexed loser
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
constructor(IChallengeManager manager_) {
|
|
23
|
-
manager = manager_;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function createChallenge(
|
|
27
|
-
bytes32 wasmModuleRoot_,
|
|
28
|
-
MachineStatus[2] calldata startAndEndMachineStatuses_,
|
|
29
|
-
GlobalState[2] calldata startAndEndGlobalStates_,
|
|
30
|
-
uint64 numBlocks,
|
|
31
|
-
address asserter_,
|
|
32
|
-
address challenger_,
|
|
33
|
-
uint256 asserterTimeLeft_,
|
|
34
|
-
uint256 challengerTimeLeft_
|
|
35
|
-
) external returns (uint64) {
|
|
36
|
-
return
|
|
37
|
-
manager.createChallenge(
|
|
38
|
-
wasmModuleRoot_,
|
|
39
|
-
startAndEndMachineStatuses_,
|
|
40
|
-
startAndEndGlobalStates_,
|
|
41
|
-
numBlocks,
|
|
42
|
-
asserter_,
|
|
43
|
-
challenger_,
|
|
44
|
-
asserterTimeLeft_,
|
|
45
|
-
challengerTimeLeft_
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function completeChallenge(
|
|
50
|
-
uint256 challengeIndex_,
|
|
51
|
-
address winner_,
|
|
52
|
-
address loser_
|
|
53
|
-
) external override {
|
|
54
|
-
winner = winner_;
|
|
55
|
-
loser = loser_;
|
|
56
|
-
challengeIndex = challengeIndex_;
|
|
57
|
-
emit ChallengeCompleted(challengeIndex, winner_, loser_);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
import "../challenge/ChallengeManager.sol";
|
|
8
|
-
|
|
9
|
-
contract SingleExecutionChallenge is ChallengeManager {
|
|
10
|
-
constructor(
|
|
11
|
-
IOneStepProofEntry osp_,
|
|
12
|
-
IChallengeResultReceiver resultReceiver_,
|
|
13
|
-
uint64 maxInboxMessagesRead_,
|
|
14
|
-
bytes32[2] memory startAndEndHashes,
|
|
15
|
-
uint256 numSteps_,
|
|
16
|
-
address asserter_,
|
|
17
|
-
address challenger_,
|
|
18
|
-
uint256 asserterTimeLeft_,
|
|
19
|
-
uint256 challengerTimeLeft_
|
|
20
|
-
) {
|
|
21
|
-
osp = osp_;
|
|
22
|
-
resultReceiver = resultReceiver_;
|
|
23
|
-
uint64 challengeIndex = ++totalChallengesCreated;
|
|
24
|
-
ChallengeLib.Challenge storage challenge = challenges[challengeIndex];
|
|
25
|
-
challenge.maxInboxMessages = maxInboxMessagesRead_;
|
|
26
|
-
bytes32[] memory segments = new bytes32[](2);
|
|
27
|
-
segments[0] = startAndEndHashes[0];
|
|
28
|
-
segments[1] = startAndEndHashes[1];
|
|
29
|
-
bytes32 challengeStateHash = ChallengeLib.hashChallengeState(0, numSteps_, segments);
|
|
30
|
-
challenge.challengeStateHash = challengeStateHash;
|
|
31
|
-
challenge.next = ChallengeLib.Participant({addr: asserter_, timeLeft: asserterTimeLeft_});
|
|
32
|
-
challenge.current = ChallengeLib.Participant({
|
|
33
|
-
addr: challenger_,
|
|
34
|
-
timeLeft: challengerTimeLeft_
|
|
35
|
-
});
|
|
36
|
-
challenge.lastMoveTimestamp = block.timestamp;
|
|
37
|
-
challenge.mode = ChallengeLib.ChallengeMode.EXECUTION;
|
|
38
|
-
|
|
39
|
-
emit Bisected(challengeIndex, challengeStateHash, 0, numSteps_, segments);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
-
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
-
|
|
5
|
-
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
import "../challenge/ChallengeManager.sol";
|
|
8
|
-
|
|
9
|
-
contract TimedOutChallengeManager is ChallengeManager {
|
|
10
|
-
function isTimedOut(uint64) public pure override returns (bool) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
}
|