@arbitrum/nitro-contracts 2.0.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 -494
- 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 -530
- 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 +16 -6
- 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 -12
- 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 +36 -69
- 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 -642
- 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 -1327
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1461
- 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 -1609
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1743
- 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
|
@@ -0,0 +1,39 @@
|
|
|
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 "../bridge/IBridge.sol";
|
|
8
|
+
import "../osp/IOneStepProofEntry.sol";
|
|
9
|
+
import "../rollup/Assertion.sol";
|
|
10
|
+
|
|
11
|
+
/// @title Assertion chain interface
|
|
12
|
+
/// @notice The interface required by the EdgeChallengeManager for requesting assertion data from the AssertionChain
|
|
13
|
+
interface IAssertionChain {
|
|
14
|
+
function bridge() external view returns (IBridge);
|
|
15
|
+
function validateAssertionHash(
|
|
16
|
+
bytes32 assertionHash,
|
|
17
|
+
AssertionState calldata state,
|
|
18
|
+
bytes32 prevAssertionHash,
|
|
19
|
+
bytes32 inboxAcc
|
|
20
|
+
) external view;
|
|
21
|
+
function validateConfig(bytes32 assertionHash, ConfigData calldata configData) external view;
|
|
22
|
+
function getFirstChildCreationBlock(
|
|
23
|
+
bytes32 assertionHash
|
|
24
|
+
) external view returns (uint64);
|
|
25
|
+
function getSecondChildCreationBlock(
|
|
26
|
+
bytes32 assertionHash
|
|
27
|
+
) external view returns (uint64);
|
|
28
|
+
function isFirstChild(
|
|
29
|
+
bytes32 assertionHash
|
|
30
|
+
) external view returns (bool);
|
|
31
|
+
function isPending(
|
|
32
|
+
bytes32 assertionHash
|
|
33
|
+
) external view returns (bool);
|
|
34
|
+
function isValidator(
|
|
35
|
+
address
|
|
36
|
+
) external view returns (bool);
|
|
37
|
+
function getValidators() external view returns (address[] memory);
|
|
38
|
+
function validatorWhitelistDisabled() external view returns (bool);
|
|
39
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
/// @title Array utils library
|
|
8
|
+
/// @notice Utils for working with bytes32 arrays
|
|
9
|
+
library ArrayUtilsLib {
|
|
10
|
+
/// @notice Append an item to the end of an array
|
|
11
|
+
/// @param arr The array to append to
|
|
12
|
+
/// @param newItem The item to append
|
|
13
|
+
function append(
|
|
14
|
+
bytes32[] memory arr,
|
|
15
|
+
bytes32 newItem
|
|
16
|
+
) internal pure returns (bytes32[] memory) {
|
|
17
|
+
bytes32[] memory clone = new bytes32[](arr.length + 1);
|
|
18
|
+
for (uint256 i = 0; i < arr.length; i++) {
|
|
19
|
+
clone[i] = arr[i];
|
|
20
|
+
}
|
|
21
|
+
clone[clone.length - 1] = newItem;
|
|
22
|
+
return clone;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/// @notice Get a slice of an existing array
|
|
26
|
+
/// @dev End index exlusive so slice(arr, 0, 5) gets the first 5 elements of arr
|
|
27
|
+
/// @param arr Array to slice
|
|
28
|
+
/// @param startIndex The start index of the slice in the original array - inclusive
|
|
29
|
+
/// @param endIndex The end index of the slice in the original array - exlusive
|
|
30
|
+
function slice(
|
|
31
|
+
bytes32[] memory arr,
|
|
32
|
+
uint256 startIndex,
|
|
33
|
+
uint256 endIndex
|
|
34
|
+
) internal pure returns (bytes32[] memory) {
|
|
35
|
+
require(startIndex < endIndex, "Start not less than end");
|
|
36
|
+
require(endIndex <= arr.length, "End not less or equal than length");
|
|
37
|
+
|
|
38
|
+
bytes32[] memory newArr = new bytes32[](endIndex - startIndex);
|
|
39
|
+
for (uint256 i = startIndex; i < endIndex; i++) {
|
|
40
|
+
newArr[i - startIndex] = arr[i];
|
|
41
|
+
}
|
|
42
|
+
return newArr;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/// @notice Concatenated to arrays
|
|
46
|
+
/// @param arr1 First array
|
|
47
|
+
/// @param arr1 Second array
|
|
48
|
+
function concat(
|
|
49
|
+
bytes32[] memory arr1,
|
|
50
|
+
bytes32[] memory arr2
|
|
51
|
+
) internal pure returns (bytes32[] memory) {
|
|
52
|
+
bytes32[] memory full = new bytes32[](arr1.length + arr2.length);
|
|
53
|
+
for (uint256 i = 0; i < arr1.length; i++) {
|
|
54
|
+
full[i] = arr1[i];
|
|
55
|
+
}
|
|
56
|
+
for (uint256 i = 0; i < arr2.length; i++) {
|
|
57
|
+
full[arr1.length + i] = arr2[i];
|
|
58
|
+
}
|
|
59
|
+
return full;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,333 @@
|
|
|
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 "./Enums.sol";
|
|
8
|
+
import "./ChallengeErrors.sol";
|
|
9
|
+
|
|
10
|
+
/// @notice An edge committing to a range of states. These edges will be bisected, slowly
|
|
11
|
+
/// reducing them in length until they reach length one. At that point new edges of a different
|
|
12
|
+
/// level will be added that claim the result of this edge, or a one step proof will be calculated
|
|
13
|
+
/// if the edge level is already of type SmallStep.
|
|
14
|
+
struct ChallengeEdge {
|
|
15
|
+
/// @notice The origin id is a link from the edge to an edge or assertion at a lower level.
|
|
16
|
+
/// Intuitively all edges with the same origin id agree on the information committed to in the origin id
|
|
17
|
+
/// For a SmallStep edge the origin id is the 'mutual' id of the length one BigStep edge being claimed by the zero layer ancestors of this edge
|
|
18
|
+
/// For a BigStep edge the origin id is the 'mutual' id of the length one Block edge being claimed by the zero layer ancestors of this edge
|
|
19
|
+
/// For a Block edge the origin id is the assertion hash of the assertion that is the root of the challenge - all edges in this challenge agree
|
|
20
|
+
/// that that assertion hash is valid.
|
|
21
|
+
/// The purpose of the origin id is to ensure that only edges that agree on a common start position
|
|
22
|
+
/// are being compared against one another.
|
|
23
|
+
bytes32 originId;
|
|
24
|
+
/// @notice A root of all the states in the history up to the startHeight
|
|
25
|
+
bytes32 startHistoryRoot;
|
|
26
|
+
/// @notice The height of the start history root
|
|
27
|
+
uint256 startHeight;
|
|
28
|
+
/// @notice A root of all the states in the history up to the endHeight. Since endHeight > startHeight, the startHistoryRoot must
|
|
29
|
+
/// commit to a prefix of the states committed to by the endHistoryRoot
|
|
30
|
+
bytes32 endHistoryRoot;
|
|
31
|
+
/// @notice The height of the end history root
|
|
32
|
+
uint256 endHeight;
|
|
33
|
+
/// @notice Edges can be bisected into two children. If this edge has been bisected the id of the
|
|
34
|
+
/// lower child is populated here, until that time this value is 0. The lower child has startHistoryRoot and startHeight
|
|
35
|
+
/// equal to this edge, but endHistoryRoot and endHeight equal to some prefix of the endHistoryRoot of this edge
|
|
36
|
+
bytes32 lowerChildId;
|
|
37
|
+
/// @notice Edges can be bisected into two children. If this edge has been bisected the id of the
|
|
38
|
+
/// upper child is populated here, until that time this value is 0. The upper child has startHistoryRoot and startHeight
|
|
39
|
+
/// equal to some prefix of the endHistoryRoot of this edge, and endHistoryRoot and endHeight equal to this edge
|
|
40
|
+
bytes32 upperChildId;
|
|
41
|
+
/// @notice The edge or assertion in the upper level that this edge claims to be true.
|
|
42
|
+
/// Only populated on zero layer edges
|
|
43
|
+
bytes32 claimId;
|
|
44
|
+
/// @notice The entity that supplied a mini-stake accompanying this edge
|
|
45
|
+
/// Only populated on zero layer edges
|
|
46
|
+
address staker;
|
|
47
|
+
/// @notice The block number when this edge was created
|
|
48
|
+
uint64 createdAtBlock;
|
|
49
|
+
/// @notice The block number at which this edge was confirmed
|
|
50
|
+
/// Zero if not confirmed
|
|
51
|
+
uint64 confirmedAtBlock;
|
|
52
|
+
/// @notice Current status of this edge. All edges are created Pending, and may be updated to Confirmed
|
|
53
|
+
/// Once Confirmed they cannot transition back to Pending
|
|
54
|
+
EdgeStatus status;
|
|
55
|
+
/// @notice The level of this edge.
|
|
56
|
+
/// Level 0 is type Block
|
|
57
|
+
/// Last level (defined by NUM_BIGSTEP_LEVEL + 1) is type SmallStep
|
|
58
|
+
/// All levels in between are of type BigStep
|
|
59
|
+
uint8 level;
|
|
60
|
+
/// @notice Set to true when the staker has been refunded. Can only be set to true if the status is Confirmed
|
|
61
|
+
/// and the staker is non zero.
|
|
62
|
+
bool refunded;
|
|
63
|
+
/// @notice TODO
|
|
64
|
+
uint64 totalTimeUnrivaledCache;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
library ChallengeEdgeLib {
|
|
68
|
+
/// @notice Common checks to do when adding an edge
|
|
69
|
+
function newEdgeChecks(
|
|
70
|
+
bytes32 originId,
|
|
71
|
+
bytes32 startHistoryRoot,
|
|
72
|
+
uint256 startHeight,
|
|
73
|
+
bytes32 endHistoryRoot,
|
|
74
|
+
uint256 endHeight
|
|
75
|
+
) internal pure {
|
|
76
|
+
if (originId == 0) {
|
|
77
|
+
revert EmptyOriginId();
|
|
78
|
+
}
|
|
79
|
+
if (endHeight <= startHeight) {
|
|
80
|
+
revert InvalidHeights(startHeight, endHeight);
|
|
81
|
+
}
|
|
82
|
+
if (startHistoryRoot == 0) {
|
|
83
|
+
revert EmptyStartRoot();
|
|
84
|
+
}
|
|
85
|
+
if (endHistoryRoot == 0) {
|
|
86
|
+
revert EmptyEndRoot();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/// @notice Create a new layer zero edge. These edges make claims about length one edges in the level
|
|
91
|
+
/// below. Creating a layer zero edge also requires placing a mini stake, so information
|
|
92
|
+
/// about that staker is also stored on this edge.
|
|
93
|
+
function newLayerZeroEdge(
|
|
94
|
+
bytes32 originId,
|
|
95
|
+
bytes32 startHistoryRoot,
|
|
96
|
+
uint256 startHeight,
|
|
97
|
+
bytes32 endHistoryRoot,
|
|
98
|
+
uint256 endHeight,
|
|
99
|
+
bytes32 claimId,
|
|
100
|
+
address staker,
|
|
101
|
+
uint8 level
|
|
102
|
+
) internal view returns (ChallengeEdge memory) {
|
|
103
|
+
if (staker == address(0)) {
|
|
104
|
+
revert EmptyStaker();
|
|
105
|
+
}
|
|
106
|
+
if (claimId == 0) {
|
|
107
|
+
revert EmptyClaimId();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
newEdgeChecks(originId, startHistoryRoot, startHeight, endHistoryRoot, endHeight);
|
|
111
|
+
|
|
112
|
+
return ChallengeEdge({
|
|
113
|
+
originId: originId,
|
|
114
|
+
startHeight: startHeight,
|
|
115
|
+
startHistoryRoot: startHistoryRoot,
|
|
116
|
+
endHeight: endHeight,
|
|
117
|
+
endHistoryRoot: endHistoryRoot,
|
|
118
|
+
lowerChildId: 0,
|
|
119
|
+
upperChildId: 0,
|
|
120
|
+
createdAtBlock: uint64(block.number),
|
|
121
|
+
claimId: claimId,
|
|
122
|
+
staker: staker,
|
|
123
|
+
status: EdgeStatus.Pending,
|
|
124
|
+
level: level,
|
|
125
|
+
refunded: false,
|
|
126
|
+
confirmedAtBlock: 0,
|
|
127
|
+
totalTimeUnrivaledCache: 0
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/// @notice Creates a new child edge. All edges except layer zero edges are child edges.
|
|
132
|
+
/// These are edges that are created by bisection, and have parents rather than claims.
|
|
133
|
+
function newChildEdge(
|
|
134
|
+
bytes32 originId,
|
|
135
|
+
bytes32 startHistoryRoot,
|
|
136
|
+
uint256 startHeight,
|
|
137
|
+
bytes32 endHistoryRoot,
|
|
138
|
+
uint256 endHeight,
|
|
139
|
+
uint8 level
|
|
140
|
+
) internal view returns (ChallengeEdge memory) {
|
|
141
|
+
newEdgeChecks(originId, startHistoryRoot, startHeight, endHistoryRoot, endHeight);
|
|
142
|
+
|
|
143
|
+
return ChallengeEdge({
|
|
144
|
+
originId: originId,
|
|
145
|
+
startHeight: startHeight,
|
|
146
|
+
startHistoryRoot: startHistoryRoot,
|
|
147
|
+
endHeight: endHeight,
|
|
148
|
+
endHistoryRoot: endHistoryRoot,
|
|
149
|
+
lowerChildId: 0,
|
|
150
|
+
upperChildId: 0,
|
|
151
|
+
createdAtBlock: uint64(block.number),
|
|
152
|
+
claimId: 0,
|
|
153
|
+
staker: address(0),
|
|
154
|
+
status: EdgeStatus.Pending,
|
|
155
|
+
level: level,
|
|
156
|
+
refunded: false,
|
|
157
|
+
confirmedAtBlock: 0,
|
|
158
|
+
totalTimeUnrivaledCache: 0
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/// @notice The "mutualId" of an edge. A mutual id is a hash of all the data that is shared by rivals.
|
|
163
|
+
/// Rivals have the same start height, start history root and end height. They also have the same origin id and level.
|
|
164
|
+
/// The difference between rivals is that they have a different endHistoryRoot, so that information
|
|
165
|
+
/// is not included in this hash.
|
|
166
|
+
function mutualIdComponent(
|
|
167
|
+
uint8 level,
|
|
168
|
+
bytes32 originId,
|
|
169
|
+
uint256 startHeight,
|
|
170
|
+
bytes32 startHistoryRoot,
|
|
171
|
+
uint256 endHeight
|
|
172
|
+
) internal pure returns (bytes32) {
|
|
173
|
+
return
|
|
174
|
+
keccak256(abi.encodePacked(level, originId, startHeight, startHistoryRoot, endHeight));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/// @notice The "mutualId" of an edge. A mutual id is a hash of all the data that is shared by rivals.
|
|
178
|
+
/// Rivals have the same start height, start history root and end height. They also have the same origin id and level.
|
|
179
|
+
/// The difference between rivals is that they have a different endHistoryRoot, so that information
|
|
180
|
+
/// is not included in this hash.
|
|
181
|
+
function mutualId(
|
|
182
|
+
ChallengeEdge storage ce
|
|
183
|
+
) internal view returns (bytes32) {
|
|
184
|
+
return mutualIdComponent(
|
|
185
|
+
ce.level, ce.originId, ce.startHeight, ce.startHistoryRoot, ce.endHeight
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function mutualIdMem(
|
|
190
|
+
ChallengeEdge memory ce
|
|
191
|
+
) internal pure returns (bytes32) {
|
|
192
|
+
return mutualIdComponent(
|
|
193
|
+
ce.level, ce.originId, ce.startHeight, ce.startHistoryRoot, ce.endHeight
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/// @notice The id of an edge. Edges are uniquely identified by their id, and commit to the same information
|
|
198
|
+
function idComponent(
|
|
199
|
+
uint8 level,
|
|
200
|
+
bytes32 originId,
|
|
201
|
+
uint256 startHeight,
|
|
202
|
+
bytes32 startHistoryRoot,
|
|
203
|
+
uint256 endHeight,
|
|
204
|
+
bytes32 endHistoryRoot
|
|
205
|
+
) internal pure returns (bytes32) {
|
|
206
|
+
return keccak256(
|
|
207
|
+
abi.encodePacked(
|
|
208
|
+
mutualIdComponent(level, originId, startHeight, startHistoryRoot, endHeight),
|
|
209
|
+
endHistoryRoot
|
|
210
|
+
)
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/// @notice The id of an edge. Edges are uniquely identified by their id, and commit to the same information
|
|
215
|
+
/// @dev This separate idMem method is to be explicit about when ChallengeEdges are copied into memory. It is
|
|
216
|
+
/// possible to pass a storage edge to this method and the id be computed correctly, but that would load
|
|
217
|
+
/// the whole struct into memory, so we're explicit here that this should be used for edges already in memory.
|
|
218
|
+
function idMem(
|
|
219
|
+
ChallengeEdge memory edge
|
|
220
|
+
) internal pure returns (bytes32) {
|
|
221
|
+
return idComponent(
|
|
222
|
+
edge.level,
|
|
223
|
+
edge.originId,
|
|
224
|
+
edge.startHeight,
|
|
225
|
+
edge.startHistoryRoot,
|
|
226
|
+
edge.endHeight,
|
|
227
|
+
edge.endHistoryRoot
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/// @notice The id of an edge. Edges are uniquely identified by their id, and commit to the same information
|
|
232
|
+
function id(
|
|
233
|
+
ChallengeEdge storage edge
|
|
234
|
+
) internal view returns (bytes32) {
|
|
235
|
+
return idComponent(
|
|
236
|
+
edge.level,
|
|
237
|
+
edge.originId,
|
|
238
|
+
edge.startHeight,
|
|
239
|
+
edge.startHistoryRoot,
|
|
240
|
+
edge.endHeight,
|
|
241
|
+
edge.endHistoryRoot
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/// @notice Does this edge exist in storage
|
|
246
|
+
function exists(
|
|
247
|
+
ChallengeEdge storage edge
|
|
248
|
+
) internal view returns (bool) {
|
|
249
|
+
// All edges have a createdAtBlock number
|
|
250
|
+
return edge.createdAtBlock != 0;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/// @notice The length of this edge - difference between the start and end heights
|
|
254
|
+
function length(
|
|
255
|
+
ChallengeEdge storage edge
|
|
256
|
+
) internal view returns (uint256) {
|
|
257
|
+
uint256 len = edge.endHeight - edge.startHeight;
|
|
258
|
+
// It's impossible for a zero length edge to exist
|
|
259
|
+
if (len == 0) {
|
|
260
|
+
revert EdgeNotExists(ChallengeEdgeLib.id(edge));
|
|
261
|
+
}
|
|
262
|
+
return len;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/// @notice Set the children of an edge
|
|
266
|
+
/// @dev Children can only be set once
|
|
267
|
+
function setChildren(
|
|
268
|
+
ChallengeEdge storage edge,
|
|
269
|
+
bytes32 lowerChildId,
|
|
270
|
+
bytes32 upperChildId
|
|
271
|
+
) internal {
|
|
272
|
+
if (edge.lowerChildId != 0 || edge.upperChildId != 0) {
|
|
273
|
+
revert ChildrenAlreadySet(
|
|
274
|
+
ChallengeEdgeLib.id(edge), edge.lowerChildId, edge.upperChildId
|
|
275
|
+
);
|
|
276
|
+
}
|
|
277
|
+
edge.lowerChildId = lowerChildId;
|
|
278
|
+
edge.upperChildId = upperChildId;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/// @notice Set the status of an edge to Confirmed
|
|
282
|
+
/// @dev Only Pending edges can be confirmed
|
|
283
|
+
function setConfirmed(
|
|
284
|
+
ChallengeEdge storage edge
|
|
285
|
+
) internal {
|
|
286
|
+
if (edge.status != EdgeStatus.Pending) {
|
|
287
|
+
revert EdgeNotPending(ChallengeEdgeLib.id(edge), edge.status);
|
|
288
|
+
}
|
|
289
|
+
edge.status = EdgeStatus.Confirmed;
|
|
290
|
+
edge.confirmedAtBlock = uint64(block.number);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/// @notice Is the edge a layer zero edge.
|
|
294
|
+
function isLayerZero(
|
|
295
|
+
ChallengeEdge storage edge
|
|
296
|
+
) internal view returns (bool) {
|
|
297
|
+
return edge.claimId != 0 && edge.staker != address(0);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/// @notice Set the refunded flag of an edge
|
|
301
|
+
/// @dev Checks internally that edge is confirmed, layer zero edge and hasnt been refunded already
|
|
302
|
+
function setRefunded(
|
|
303
|
+
ChallengeEdge storage edge
|
|
304
|
+
) internal {
|
|
305
|
+
if (edge.status != EdgeStatus.Confirmed) {
|
|
306
|
+
revert EdgeNotConfirmed(ChallengeEdgeLib.id(edge), edge.status);
|
|
307
|
+
}
|
|
308
|
+
if (!isLayerZero(edge)) {
|
|
309
|
+
revert EdgeNotLayerZero(ChallengeEdgeLib.id(edge), edge.staker, edge.claimId);
|
|
310
|
+
}
|
|
311
|
+
if (edge.refunded == true) {
|
|
312
|
+
revert EdgeAlreadyRefunded(ChallengeEdgeLib.id(edge));
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
edge.refunded = true;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/// @notice Returns the edge type for a given level, given the total number of big step levels
|
|
319
|
+
function levelToType(
|
|
320
|
+
uint8 level,
|
|
321
|
+
uint8 numBigStepLevels
|
|
322
|
+
) internal pure returns (EdgeType eType) {
|
|
323
|
+
if (level == 0) {
|
|
324
|
+
return EdgeType.Block;
|
|
325
|
+
} else if (level <= numBigStepLevels) {
|
|
326
|
+
return EdgeType.BigStep;
|
|
327
|
+
} else if (level == numBigStepLevels + 1) {
|
|
328
|
+
return EdgeType.SmallStep;
|
|
329
|
+
} else {
|
|
330
|
+
revert LevelTooHigh(level, numBigStepLevels);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
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 "./Enums.sol";
|
|
8
|
+
|
|
9
|
+
/// @dev The edge is not currently stored
|
|
10
|
+
error EdgeNotExists(bytes32 edgeId);
|
|
11
|
+
/// @dev The edge has already been stored
|
|
12
|
+
error EdgeAlreadyExists(bytes32 edgeId);
|
|
13
|
+
/// @dev The provided assertion hash was empty
|
|
14
|
+
error AssertionHashEmpty();
|
|
15
|
+
/// @dev The assertion hashes are not the same, but should have been
|
|
16
|
+
error AssertionHashMismatch(bytes32 h1, bytes32 h2);
|
|
17
|
+
/// @dev The assertion is not currently pending
|
|
18
|
+
error AssertionNotPending();
|
|
19
|
+
/// @dev The assertion has no sibling
|
|
20
|
+
error AssertionNoSibling();
|
|
21
|
+
/// @dev The edge type specific proof data is empty
|
|
22
|
+
error EmptyEdgeSpecificProof();
|
|
23
|
+
/// @dev The start machine status is empty
|
|
24
|
+
error EmptyStartMachineStatus();
|
|
25
|
+
/// @dev The end machine status is empty
|
|
26
|
+
error EmptyEndMachineStatus();
|
|
27
|
+
/// @dev The claim edge is not pending
|
|
28
|
+
error ClaimEdgeNotPending();
|
|
29
|
+
/// @dev The claim edge does not have a length one rival
|
|
30
|
+
error ClaimEdgeNotLengthOneRival(bytes32 claimId);
|
|
31
|
+
/// @dev The claim edge has an invalid level
|
|
32
|
+
error ClaimEdgeInvalidLevel(uint8 argLevel, uint8 claimLevel);
|
|
33
|
+
/// @dev The val is not a power of two
|
|
34
|
+
error NotPowerOfTwo(uint256 val);
|
|
35
|
+
/// @dev The height has an unexpected value
|
|
36
|
+
error InvalidEndHeight(uint256 actualHeight, uint256 expectedHeight);
|
|
37
|
+
/// @dev The prefix proof is empty
|
|
38
|
+
error EmptyPrefixProof();
|
|
39
|
+
/// @dev The edge is not of type SmallStep
|
|
40
|
+
error EdgeTypeNotSmallStep(uint8 level);
|
|
41
|
+
/// @dev The first rival record is empty
|
|
42
|
+
error EmptyFirstRival();
|
|
43
|
+
/// @dev The difference between two heights is less than 2
|
|
44
|
+
error HeightDiffLtTwo(uint256 h1, uint256 h2);
|
|
45
|
+
/// @dev The edge is not pending
|
|
46
|
+
error EdgeNotPending(bytes32 edgeId, EdgeStatus status);
|
|
47
|
+
/// @dev The edge is unrivaled
|
|
48
|
+
error EdgeUnrivaled(bytes32 edgeId);
|
|
49
|
+
/// @dev The edge is not confirmed
|
|
50
|
+
error EdgeNotConfirmed(bytes32 edgeId, EdgeStatus);
|
|
51
|
+
/// @dev The edge level is unexpected
|
|
52
|
+
error EdgeLevelInvalid(bytes32 edgeId1, bytes32 edgeId2, uint8 level1, uint8 level2);
|
|
53
|
+
/// @dev The claim id on the claimingEdge does not match the provided edge id
|
|
54
|
+
error EdgeClaimMismatch(bytes32 edgeId, bytes32 claimingEdgeId);
|
|
55
|
+
/// @dev The origin id is not equal to the mutual id
|
|
56
|
+
error OriginIdMutualIdMismatch(bytes32 mutualId, bytes32 originId);
|
|
57
|
+
/// @dev The total number of blocks is not above the threshold
|
|
58
|
+
error InsufficientConfirmationBlocks(uint256 totalBlocks, uint256 thresholdBlocks);
|
|
59
|
+
/// @dev The edge is not of length one
|
|
60
|
+
error EdgeNotLengthOne(uint256 length);
|
|
61
|
+
/// @dev No origin id supplied when creating an edge
|
|
62
|
+
error EmptyOriginId();
|
|
63
|
+
/// @dev Invalid heights supplied when creating an edge
|
|
64
|
+
error InvalidHeights(uint256 start, uint256 end);
|
|
65
|
+
/// @dev No start root supplied when creating an edge
|
|
66
|
+
error EmptyStartRoot();
|
|
67
|
+
/// @dev No end root supplied when creating an edge
|
|
68
|
+
error EmptyEndRoot();
|
|
69
|
+
/// @dev No staker supplied when creating a layer zero edge
|
|
70
|
+
error EmptyStaker();
|
|
71
|
+
/// @dev No claim id supplied when creating a layer zero edge
|
|
72
|
+
error EmptyClaimId();
|
|
73
|
+
/// @dev Children already set on edge
|
|
74
|
+
error ChildrenAlreadySet(bytes32 edgeId, bytes32 lowerChildId, bytes32 upperChildId);
|
|
75
|
+
/// @dev Edge is not a layer zero edge
|
|
76
|
+
error EdgeNotLayerZero(bytes32 edgeId, address staker, bytes32 claimId);
|
|
77
|
+
/// @dev The edge staker has already been refunded
|
|
78
|
+
error EdgeAlreadyRefunded(bytes32 edgeId);
|
|
79
|
+
/// @dev No assertion chain address supplied
|
|
80
|
+
error EmptyAssertionChain();
|
|
81
|
+
/// @dev No one step proof entry address supplied
|
|
82
|
+
error EmptyOneStepProofEntry();
|
|
83
|
+
/// @dev No challenge period supplied
|
|
84
|
+
error EmptyChallengePeriod();
|
|
85
|
+
/// @dev No stake receiver address supplied
|
|
86
|
+
error EmptyStakeReceiver();
|
|
87
|
+
/// @dev Stake amounts does not match number of levels
|
|
88
|
+
error StakeAmountsMismatch(uint256 stakeLevels, uint256 numLevels);
|
|
89
|
+
/// @dev A rival edge is already confirmed
|
|
90
|
+
error RivalEdgeConfirmed(bytes32 edgeId, bytes32 confirmedRivalId);
|
|
91
|
+
/// @dev Thrown when big step levels is set to 0
|
|
92
|
+
error ZeroBigStepLevels();
|
|
93
|
+
/// @dev Thrown when there are too many big step levels requested
|
|
94
|
+
error BigStepLevelsTooMany(uint8 levels);
|
|
95
|
+
/// @dev Thrown when the level does not correspond to a valid type
|
|
96
|
+
error LevelTooHigh(uint8 level, uint8 numBigStepLevels);
|
|
97
|
+
/// @dev Thrown for unrecognised edge types
|
|
98
|
+
error InvalidEdgeType(EdgeType edgeType);
|
|
99
|
+
/// @dev Thrown when endHistoryRoot not matching the assertion
|
|
100
|
+
error EndHistoryRootMismatch(bytes32 endHistoryRoot, bytes32 assertionEndRoot);
|
|
101
|
+
/// @dev Thrown when the validator whitelist is enabled and the account attempting to create a layer zero edge is not whitelisted
|
|
102
|
+
error NotValidator(address account);
|
|
103
|
+
/// @dev Thrown when an account has already created a rivalling layer zero edge
|
|
104
|
+
error AccountHasMadeLayerZeroRival(address account, bytes32 mutualId);
|
|
105
|
+
/// @dev Thrown when the cached time is already sufficient
|
|
106
|
+
error CachedTimeSufficient(uint256 actual, uint256 expected);
|
|
107
|
+
/// @dev Thrown when the input is an empty array
|
|
108
|
+
error EmptyArray();
|