@arbitrum/nitro-contracts 2.1.0 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +15 -5
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -3
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -9,22 +9,19 @@ import "./IRollupLogic.sol";
|
|
|
9
9
|
import "./RollupCore.sol";
|
|
10
10
|
import "../bridge/IOutbox.sol";
|
|
11
11
|
import "../bridge/ISequencerInbox.sol";
|
|
12
|
-
import "../challenge/IChallengeManager.sol";
|
|
13
12
|
import "../libraries/DoubleLogicUUPSUpgradeable.sol";
|
|
14
13
|
import "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";
|
|
15
14
|
|
|
16
|
-
import {NO_CHAL_INDEX} from "../libraries/Constants.sol";
|
|
17
|
-
|
|
18
15
|
contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeable {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
using AssertionStateLib for AssertionState;
|
|
17
|
+
using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet;
|
|
18
|
+
|
|
19
|
+
function initialize(
|
|
20
|
+
Config calldata config,
|
|
21
|
+
ContractDependencies calldata connectedContracts
|
|
22
|
+
) external override onlyProxy initializer {
|
|
25
23
|
rollupDeploymentBlock = block.number;
|
|
26
24
|
bridge = connectedContracts.bridge;
|
|
27
|
-
sequencerInbox = connectedContracts.sequencerInbox;
|
|
28
25
|
connectedContracts.bridge.setDelayedInbox(address(connectedContracts.inbox), true);
|
|
29
26
|
connectedContracts.bridge.setSequencerInbox(address(connectedContracts.sequencerInbox));
|
|
30
27
|
|
|
@@ -32,65 +29,91 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
32
29
|
outbox = connectedContracts.outbox;
|
|
33
30
|
connectedContracts.bridge.setOutbox(address(connectedContracts.outbox), true);
|
|
34
31
|
rollupEventInbox = connectedContracts.rollupEventInbox;
|
|
35
|
-
connectedContracts.bridge.setDelayedInbox(
|
|
36
|
-
address(connectedContracts.rollupEventInbox),
|
|
37
|
-
true
|
|
38
|
-
);
|
|
39
32
|
|
|
40
|
-
|
|
41
|
-
connectedContracts.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
33
|
+
// dont need to connect and initialize the event inbox if it's already been initialized
|
|
34
|
+
if (!bridge.allowedDelayedInboxes(address(connectedContracts.rollupEventInbox))) {
|
|
35
|
+
connectedContracts.bridge.setDelayedInbox(
|
|
36
|
+
address(connectedContracts.rollupEventInbox), true
|
|
37
|
+
);
|
|
38
|
+
connectedContracts.rollupEventInbox.rollupInitialized(
|
|
39
|
+
config.chainId, config.chainConfig
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (connectedContracts.sequencerInbox.totalDelayedMessagesRead() == 0) {
|
|
44
|
+
connectedContracts.sequencerInbox.addSequencerL2Batch(
|
|
45
|
+
0, "", 1, IGasRefunder(address(0)), 0, 1
|
|
46
|
+
);
|
|
47
|
+
}
|
|
49
48
|
|
|
50
|
-
validatorUtils = connectedContracts.validatorUtils;
|
|
51
49
|
validatorWalletCreator = connectedContracts.validatorWalletCreator;
|
|
52
50
|
challengeManager = connectedContracts.challengeManager;
|
|
53
51
|
|
|
54
|
-
Node memory node = createInitialNode();
|
|
55
|
-
initializeCore(node);
|
|
56
|
-
|
|
57
52
|
confirmPeriodBlocks = config.confirmPeriodBlocks;
|
|
58
|
-
extraChallengeTimeBlocks = config.extraChallengeTimeBlocks;
|
|
59
53
|
chainId = config.chainId;
|
|
60
54
|
baseStake = config.baseStake;
|
|
61
55
|
wasmModuleRoot = config.wasmModuleRoot;
|
|
62
56
|
// A little over 15 minutes
|
|
63
57
|
minimumAssertionPeriod = 75;
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
// ValidatorAfkBlocks is defaulted to 28 days assuming a 12 seconds block time.
|
|
59
|
+
// Since it can take 14 days under normal circumstances to confirm an assertion, this means
|
|
60
|
+
// the validators will have been inactive for a further 14 days before the whitelist is removed.
|
|
61
|
+
validatorAfkBlocks = 201600;
|
|
62
|
+
challengeGracePeriodBlocks = config.challengeGracePeriodBlocks;
|
|
63
|
+
|
|
64
|
+
// loser stake is now sent directly to loserStakeEscrow, it must not
|
|
65
|
+
// be address(0) because some token do not allow transfers to address(0)
|
|
66
|
+
require(config.loserStakeEscrow != address(0), "INVALID_ESCROW_0");
|
|
70
67
|
loserStakeEscrow = config.loserStakeEscrow;
|
|
71
68
|
|
|
72
69
|
stakeToken = config.stakeToken;
|
|
70
|
+
anyTrustFastConfirmer = config.anyTrustFastConfirmer;
|
|
71
|
+
|
|
72
|
+
bytes32 parentAssertionHash = bytes32(0);
|
|
73
|
+
bytes32 inboxAcc = bytes32(0);
|
|
74
|
+
bytes32 genesisHash = RollupLib.assertionHash({
|
|
75
|
+
parentAssertionHash: parentAssertionHash,
|
|
76
|
+
afterStateHash: config.genesisAssertionState.hash(),
|
|
77
|
+
inboxAcc: inboxAcc
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
uint256 currentInboxCount = bridge.sequencerMessageCount();
|
|
81
|
+
// ensure to move the inbox forward by at least one message
|
|
82
|
+
if (currentInboxCount == config.genesisInboxCount) {
|
|
83
|
+
currentInboxCount += 1;
|
|
84
|
+
}
|
|
85
|
+
AssertionNode memory initialAssertion = AssertionNodeLib.createAssertion(
|
|
86
|
+
true,
|
|
87
|
+
RollupLib.configHash({
|
|
88
|
+
wasmModuleRoot: wasmModuleRoot,
|
|
89
|
+
requiredStake: baseStake,
|
|
90
|
+
challengeManager: address(challengeManager),
|
|
91
|
+
confirmPeriodBlocks: confirmPeriodBlocks,
|
|
92
|
+
nextInboxPosition: uint64(currentInboxCount)
|
|
93
|
+
})
|
|
94
|
+
);
|
|
95
|
+
initializeCore(initialAssertion, genesisHash);
|
|
96
|
+
|
|
97
|
+
AssertionInputs memory assertionInputs;
|
|
98
|
+
assertionInputs.afterState = config.genesisAssertionState;
|
|
99
|
+
emit AssertionCreated(
|
|
100
|
+
genesisHash,
|
|
101
|
+
parentAssertionHash,
|
|
102
|
+
assertionInputs,
|
|
103
|
+
inboxAcc,
|
|
104
|
+
currentInboxCount,
|
|
105
|
+
wasmModuleRoot,
|
|
106
|
+
baseStake,
|
|
107
|
+
address(challengeManager),
|
|
108
|
+
confirmPeriodBlocks
|
|
109
|
+
);
|
|
110
|
+
if (_hostChainIsArbitrum) {
|
|
111
|
+
_assertionCreatedAtArbSysBlock[genesisHash] = ArbSys(address(100)).arbBlockNumber();
|
|
112
|
+
}
|
|
73
113
|
|
|
74
114
|
emit RollupInitialized(config.wasmModuleRoot, config.chainId);
|
|
75
115
|
}
|
|
76
116
|
|
|
77
|
-
function createInitialNode() private view returns (Node memory) {
|
|
78
|
-
GlobalState memory emptyGlobalState;
|
|
79
|
-
bytes32 state = RollupLib.stateHashMem(
|
|
80
|
-
ExecutionState(emptyGlobalState, MachineStatus.FINISHED),
|
|
81
|
-
1 // inboxMaxCount - force the first assertion to read a message
|
|
82
|
-
);
|
|
83
|
-
return
|
|
84
|
-
NodeLib.createNode(
|
|
85
|
-
state,
|
|
86
|
-
0, // challenge hash (not challengeable)
|
|
87
|
-
0, // confirm data
|
|
88
|
-
0, // prev node
|
|
89
|
-
uint64(block.number), // deadline block (not challengeable)
|
|
90
|
-
0 // initial node has a node hash of 0
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
117
|
/**
|
|
95
118
|
* Functions are only to reach this logic contract if the caller is the owner
|
|
96
119
|
* so there is no need for a redundant onlyOwner check
|
|
@@ -100,20 +123,26 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
100
123
|
* @notice Add a contract authorized to put messages into this rollup's inbox
|
|
101
124
|
* @param _outbox Outbox contract to add
|
|
102
125
|
*/
|
|
103
|
-
function setOutbox(
|
|
126
|
+
function setOutbox(
|
|
127
|
+
IOutbox _outbox
|
|
128
|
+
) external override {
|
|
104
129
|
outbox = _outbox;
|
|
105
130
|
bridge.setOutbox(address(_outbox), true);
|
|
106
|
-
emit
|
|
131
|
+
emit OutboxSet(address(_outbox));
|
|
132
|
+
// previously: emit OwnerFunctionCalled(0);
|
|
107
133
|
}
|
|
108
134
|
|
|
109
135
|
/**
|
|
110
136
|
* @notice Disable an old outbox from interacting with the bridge
|
|
111
137
|
* @param _outbox Outbox contract to remove
|
|
112
138
|
*/
|
|
113
|
-
function removeOldOutbox(
|
|
139
|
+
function removeOldOutbox(
|
|
140
|
+
address _outbox
|
|
141
|
+
) external override {
|
|
114
142
|
require(_outbox != address(outbox), "CUR_OUTBOX");
|
|
115
143
|
bridge.setOutbox(_outbox, false);
|
|
116
|
-
emit
|
|
144
|
+
emit OldOutboxRemoved(address(_outbox));
|
|
145
|
+
// previously: emit OwnerFunctionCalled(1);
|
|
117
146
|
}
|
|
118
147
|
|
|
119
148
|
/**
|
|
@@ -123,19 +152,20 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
123
152
|
*/
|
|
124
153
|
function setDelayedInbox(address _inbox, bool _enabled) external override {
|
|
125
154
|
bridge.setDelayedInbox(address(_inbox), _enabled);
|
|
126
|
-
emit
|
|
155
|
+
emit DelayedInboxSet(address(_inbox), _enabled);
|
|
156
|
+
// previously: emit OwnerFunctionCalled(2);
|
|
127
157
|
}
|
|
128
158
|
|
|
129
159
|
/**
|
|
130
160
|
* @notice Pause interaction with the rollup contract.
|
|
131
|
-
* The time spent paused is not incremented in the rollup's timing for
|
|
132
|
-
* @dev this function may be frontrun by a validator (ie to create a
|
|
161
|
+
* The time spent paused is not incremented in the rollup's timing for assertion validation.
|
|
162
|
+
* @dev this function may be frontrun by a validator (ie to create a assertion before the system is paused).
|
|
133
163
|
* The pause should be called atomically with required checks to be sure the system is paused in a consistent state.
|
|
134
|
-
* The RollupAdmin may execute a check against the Rollup's latest
|
|
164
|
+
* The RollupAdmin may execute a check against the Rollup's latest assertion num or the OldChallengeManager, then execute this function atomically with it.
|
|
135
165
|
*/
|
|
136
166
|
function pause() external override {
|
|
137
167
|
_pause();
|
|
138
|
-
emit OwnerFunctionCalled(3);
|
|
168
|
+
// previously: emit OwnerFunctionCalled(3);
|
|
139
169
|
}
|
|
140
170
|
|
|
141
171
|
/**
|
|
@@ -143,18 +173,22 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
143
173
|
*/
|
|
144
174
|
function resume() external override {
|
|
145
175
|
_unpause();
|
|
146
|
-
emit OwnerFunctionCalled(4);
|
|
176
|
+
// previously: emit OwnerFunctionCalled(4);
|
|
147
177
|
}
|
|
148
178
|
|
|
149
179
|
/// @notice allows the admin to upgrade the primary logic contract (ie rollup admin logic, aka this)
|
|
150
180
|
/// @dev this function doesn't revert as this primary logic contract is only
|
|
151
181
|
/// reachable by the proxy's admin
|
|
152
|
-
function _authorizeUpgrade(
|
|
182
|
+
function _authorizeUpgrade(
|
|
183
|
+
address newImplementation
|
|
184
|
+
) internal override {}
|
|
153
185
|
|
|
154
186
|
/// @notice allows the admin to upgrade the secondary logic contract (ie rollup user logic)
|
|
155
187
|
/// @dev this function doesn't revert as this primary logic contract is only
|
|
156
188
|
/// reachable by the proxy's admin
|
|
157
|
-
function _authorizeSecondaryUpgrade(
|
|
189
|
+
function _authorizeSecondaryUpgrade(
|
|
190
|
+
address newImplementation
|
|
191
|
+
) internal override {}
|
|
158
192
|
|
|
159
193
|
/**
|
|
160
194
|
* @notice Set the addresses of the validator whitelist
|
|
@@ -168,9 +202,12 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
168
202
|
require(_validator.length == _val.length, "WRONG_LENGTH");
|
|
169
203
|
|
|
170
204
|
for (uint256 i = 0; i < _validator.length; i++) {
|
|
171
|
-
|
|
205
|
+
if (_val[i]) validators.add(_validator[i]);
|
|
206
|
+
else validators.remove(_validator[i]);
|
|
172
207
|
}
|
|
173
|
-
|
|
208
|
+
|
|
209
|
+
emit ValidatorsSet(_validator, _val);
|
|
210
|
+
// previously: emit OwnerFunctionCalled(6);
|
|
174
211
|
}
|
|
175
212
|
|
|
176
213
|
/**
|
|
@@ -178,216 +215,200 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
178
215
|
* @dev it is expected that only the rollup admin can use this facet to set a new owner
|
|
179
216
|
* @param newOwner address of new rollup owner
|
|
180
217
|
*/
|
|
181
|
-
function setOwner(
|
|
218
|
+
function setOwner(
|
|
219
|
+
address newOwner
|
|
220
|
+
) external override {
|
|
182
221
|
_changeAdmin(newOwner);
|
|
183
|
-
emit OwnerFunctionCalled(7);
|
|
222
|
+
// previously: emit OwnerFunctionCalled(7);
|
|
184
223
|
}
|
|
185
224
|
|
|
186
225
|
/**
|
|
187
226
|
* @notice Set minimum assertion period for the rollup
|
|
188
227
|
* @param newPeriod new minimum period for assertions
|
|
189
228
|
*/
|
|
190
|
-
function setMinimumAssertionPeriod(
|
|
229
|
+
function setMinimumAssertionPeriod(
|
|
230
|
+
uint256 newPeriod
|
|
231
|
+
) external override {
|
|
191
232
|
minimumAssertionPeriod = newPeriod;
|
|
192
|
-
emit
|
|
233
|
+
emit MinimumAssertionPeriodSet(newPeriod);
|
|
234
|
+
// previously: emit OwnerFunctionCalled(8);
|
|
193
235
|
}
|
|
194
236
|
|
|
195
237
|
/**
|
|
196
|
-
* @notice Set
|
|
197
|
-
* @param
|
|
238
|
+
* @notice Set validator afk blocks for the rollup
|
|
239
|
+
* @param newAfkBlocks new number of blocks before a validator is considered afk (0 to disable)
|
|
240
|
+
* @dev ValidatorAfkBlocks is the number of blocks since the last confirmed
|
|
241
|
+
* assertion (or its first child) before the validator whitelist is removed.
|
|
242
|
+
* It's important that this time is greater than the max amount of time it can take to
|
|
243
|
+
* to confirm an assertion via the normal method. Therefore we need it to be greater
|
|
244
|
+
* than max(2* confirmPeriod, 2 * challengePeriod) with some additional margin.
|
|
198
245
|
*/
|
|
199
|
-
function
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
246
|
+
function setValidatorAfkBlocks(
|
|
247
|
+
uint64 newAfkBlocks
|
|
248
|
+
) external override {
|
|
249
|
+
validatorAfkBlocks = newAfkBlocks;
|
|
250
|
+
emit ValidatorAfkBlocksSet(newAfkBlocks);
|
|
203
251
|
}
|
|
204
252
|
|
|
205
253
|
/**
|
|
206
|
-
* @notice Set number of
|
|
207
|
-
* @param
|
|
254
|
+
* @notice Set number of blocks until a assertion is considered confirmed
|
|
255
|
+
* @param newConfirmPeriod new number of blocks
|
|
208
256
|
*/
|
|
209
|
-
function
|
|
210
|
-
|
|
211
|
-
|
|
257
|
+
function setConfirmPeriodBlocks(
|
|
258
|
+
uint64 newConfirmPeriod
|
|
259
|
+
) external override {
|
|
260
|
+
require(newConfirmPeriod > 0, "INVALID_CONFIRM_PERIOD");
|
|
261
|
+
confirmPeriodBlocks = newConfirmPeriod;
|
|
262
|
+
emit ConfirmPeriodBlocksSet(newConfirmPeriod);
|
|
263
|
+
// previously: emit OwnerFunctionCalled(9);
|
|
212
264
|
}
|
|
213
265
|
|
|
214
266
|
/**
|
|
215
267
|
* @notice Set base stake required for an assertion
|
|
216
268
|
* @param newBaseStake minimum amount of stake required
|
|
217
269
|
*/
|
|
218
|
-
function setBaseStake(
|
|
270
|
+
function setBaseStake(
|
|
271
|
+
uint256 newBaseStake
|
|
272
|
+
) external override {
|
|
273
|
+
// we do not currently allow base stake to be reduced since as doing so might allow a malicious party
|
|
274
|
+
// to withdraw some (up to the difference between baseStake and newBaseStake) honest funds from this contract
|
|
275
|
+
// The sequence of events is as follows:
|
|
276
|
+
// 1. The malicious party creates a sibling assertion, stake size is currently S
|
|
277
|
+
// 2. The base stake is then reduced to S'
|
|
278
|
+
// 3. The malicious party uses a different address to create a child of the malicious assertion, using stake size S'
|
|
279
|
+
// 4. This allows the malicious party to withdraw the stake S, since assertions with children set the staker to "inactive"
|
|
280
|
+
require(newBaseStake > baseStake, "BASE_STAKE_MUST_BE_INCREASED");
|
|
219
281
|
baseStake = newBaseStake;
|
|
220
|
-
emit
|
|
282
|
+
emit BaseStakeSet(newBaseStake);
|
|
283
|
+
// previously: emit OwnerFunctionCalled(12);
|
|
221
284
|
}
|
|
222
285
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
* implementation of the Rollup User facet!
|
|
227
|
-
* @param newStakeToken address of token used for staking
|
|
228
|
-
*/
|
|
229
|
-
function setStakeToken(address newStakeToken) external override whenPaused {
|
|
230
|
-
/*
|
|
231
|
-
* To change the stake token without breaking consistency one would need to:
|
|
232
|
-
* Pause the system, have all stakers remove their funds,
|
|
233
|
-
* update the user logic to handle ERC20s, change the stake token, then resume.
|
|
234
|
-
*
|
|
235
|
-
* Note: To avoid loss of funds stakers must remove their funds and claim all the
|
|
236
|
-
* available withdrawable funds before the system is paused.
|
|
237
|
-
*/
|
|
238
|
-
bool expectERC20Support = newStakeToken != address(0);
|
|
239
|
-
// this assumes the rollup isn't its own admin. if needed, instead use a ProxyAdmin by OZ!
|
|
240
|
-
bool actualERC20Support = IRollupUser(address(this)).isERC20Enabled();
|
|
241
|
-
require(actualERC20Support == expectERC20Support, "NO_USER_LOGIC_SUPPORT");
|
|
242
|
-
require(stakerCount() == 0, "NO_ACTIVE_STAKERS");
|
|
243
|
-
require(totalWithdrawableFunds == 0, "NO_PENDING_WITHDRAW");
|
|
244
|
-
stakeToken = newStakeToken;
|
|
245
|
-
emit OwnerFunctionCalled(13);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* @notice Upgrades the implementation of a beacon controlled by the rollup
|
|
250
|
-
* @param beacon address of beacon to be upgraded
|
|
251
|
-
* @param newImplementation new address of implementation
|
|
252
|
-
*/
|
|
253
|
-
function upgradeBeacon(address beacon, address newImplementation) external override {
|
|
254
|
-
UpgradeableBeacon(beacon).upgradeTo(newImplementation);
|
|
255
|
-
emit OwnerFunctionCalled(20);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
function forceResolveChallenge(address[] calldata stakerA, address[] calldata stakerB)
|
|
259
|
-
external
|
|
260
|
-
override
|
|
261
|
-
whenPaused
|
|
262
|
-
{
|
|
263
|
-
require(stakerA.length > 0, "EMPTY_ARRAY");
|
|
264
|
-
require(stakerA.length == stakerB.length, "WRONG_LENGTH");
|
|
265
|
-
for (uint256 i = 0; i < stakerA.length; i++) {
|
|
266
|
-
uint64 chall = inChallenge(stakerA[i], stakerB[i]);
|
|
267
|
-
|
|
268
|
-
require(chall != NO_CHAL_INDEX, "NOT_IN_CHALL");
|
|
269
|
-
clearChallenge(stakerA[i]);
|
|
270
|
-
clearChallenge(stakerB[i]);
|
|
271
|
-
challengeManager.clearChallenge(chall);
|
|
272
|
-
}
|
|
273
|
-
emit OwnerFunctionCalled(21);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
function forceRefundStaker(address[] calldata staker) external override whenPaused {
|
|
286
|
+
function forceRefundStaker(
|
|
287
|
+
address[] calldata staker
|
|
288
|
+
) external override whenPaused {
|
|
277
289
|
require(staker.length > 0, "EMPTY_ARRAY");
|
|
278
290
|
for (uint256 i = 0; i < staker.length; i++) {
|
|
279
|
-
|
|
291
|
+
requireInactiveStaker(staker[i]);
|
|
280
292
|
reduceStakeTo(staker[i], 0);
|
|
281
|
-
turnIntoZombie(staker[i]);
|
|
282
293
|
}
|
|
283
|
-
emit
|
|
294
|
+
emit StakersForceRefunded(staker);
|
|
295
|
+
// previously: emit OwnerFunctionCalled(22);
|
|
284
296
|
}
|
|
285
297
|
|
|
286
|
-
function
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
bytes32 expectedNodeHash
|
|
298
|
+
function forceCreateAssertion(
|
|
299
|
+
bytes32 prevAssertionHash,
|
|
300
|
+
AssertionInputs calldata assertion,
|
|
301
|
+
bytes32 expectedAssertionHash
|
|
291
302
|
) external override whenPaused {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
303
|
+
// To update the wasm module root in the case of a bug:
|
|
304
|
+
// 0. pause the contract
|
|
305
|
+
// 1. update the wasm module root in the contract
|
|
306
|
+
// 2. update the config hash of the assertion after which you wish to use the new wasm module root (functionality not written yet)
|
|
307
|
+
// 3. force refund the stake of the current leaf assertion(s)
|
|
308
|
+
// 4. create a new assertion using the assertion with the updated config has as a prev
|
|
309
|
+
// 5. force confirm it - this is necessary to set latestConfirmed on the correct line
|
|
310
|
+
// 6. unpause the contract
|
|
311
|
+
|
|
312
|
+
// Normally, a new assertion is created using its prev's confirmPeriodBlocks
|
|
313
|
+
// in the case of a force create, we use the rollup's current confirmPeriodBlocks
|
|
314
|
+
createNewAssertion(assertion, prevAssertionHash, expectedAssertionHash);
|
|
315
|
+
|
|
316
|
+
emit AssertionForceCreated(expectedAssertionHash);
|
|
317
|
+
// previously: emit OwnerFunctionCalled(23);
|
|
297
318
|
}
|
|
298
319
|
|
|
299
|
-
function
|
|
300
|
-
|
|
301
|
-
bytes32
|
|
302
|
-
|
|
320
|
+
function forceConfirmAssertion(
|
|
321
|
+
bytes32 assertionHash,
|
|
322
|
+
bytes32 parentAssertionHash,
|
|
323
|
+
AssertionState calldata confirmState,
|
|
324
|
+
bytes32 inboxAcc
|
|
303
325
|
) external override whenPaused {
|
|
304
|
-
// this
|
|
305
|
-
|
|
306
|
-
emit
|
|
326
|
+
// this skip deadline, prev, challenge validations
|
|
327
|
+
confirmAssertionInternal(assertionHash, parentAssertionHash, confirmState, inboxAcc);
|
|
328
|
+
emit AssertionForceConfirmed(assertionHash);
|
|
329
|
+
// previously: emit OwnerFunctionCalled(24);
|
|
307
330
|
}
|
|
308
331
|
|
|
309
|
-
function setLoserStakeEscrow(
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
332
|
+
function setLoserStakeEscrow(
|
|
333
|
+
address newLoserStakerEscrow
|
|
334
|
+
) external override {
|
|
335
|
+
// loser stake is now sent directly to loserStakeEscrow, it must not
|
|
336
|
+
// be address(0) because some token do not allow transfers to address(0)
|
|
337
|
+
require(newLoserStakerEscrow != address(0), "INVALID_ESCROW_0");
|
|
313
338
|
loserStakeEscrow = newLoserStakerEscrow;
|
|
314
|
-
emit
|
|
339
|
+
emit LoserStakeEscrowSet(newLoserStakerEscrow);
|
|
340
|
+
// previously: emit OwnerFunctionCalled(25);
|
|
315
341
|
}
|
|
316
342
|
|
|
317
343
|
/**
|
|
318
344
|
* @notice Set the proving WASM module root
|
|
319
345
|
* @param newWasmModuleRoot new module root
|
|
320
346
|
*/
|
|
321
|
-
function setWasmModuleRoot(
|
|
347
|
+
function setWasmModuleRoot(
|
|
348
|
+
bytes32 newWasmModuleRoot
|
|
349
|
+
) external override {
|
|
322
350
|
wasmModuleRoot = newWasmModuleRoot;
|
|
323
|
-
emit
|
|
351
|
+
emit WasmModuleRootSet(newWasmModuleRoot);
|
|
352
|
+
// previously: emit OwnerFunctionCalled(26);
|
|
324
353
|
}
|
|
325
354
|
|
|
326
355
|
/**
|
|
327
356
|
* @notice set a new sequencer inbox contract
|
|
328
357
|
* @param _sequencerInbox new address of sequencer inbox
|
|
329
358
|
*/
|
|
330
|
-
function setSequencerInbox(
|
|
359
|
+
function setSequencerInbox(
|
|
360
|
+
address _sequencerInbox
|
|
361
|
+
) external override {
|
|
331
362
|
bridge.setSequencerInbox(_sequencerInbox);
|
|
332
|
-
emit
|
|
363
|
+
emit SequencerInboxSet(_sequencerInbox);
|
|
364
|
+
// previously: emit OwnerFunctionCalled(27);
|
|
333
365
|
}
|
|
334
366
|
|
|
335
367
|
/**
|
|
336
368
|
* @notice sets the rollup's inbox reference. Does not update the bridge's view.
|
|
337
369
|
* @param newInbox new address of inbox
|
|
338
370
|
*/
|
|
339
|
-
function setInbox(
|
|
371
|
+
function setInbox(
|
|
372
|
+
IInboxBase newInbox
|
|
373
|
+
) external {
|
|
340
374
|
inbox = newInbox;
|
|
341
|
-
emit
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
function createNitroMigrationGenesis(Assertion calldata assertion) external whenPaused {
|
|
345
|
-
bytes32 expectedSendRoot = bytes32(0);
|
|
346
|
-
uint64 expectedInboxCount = 1;
|
|
347
|
-
|
|
348
|
-
require(latestNodeCreated() == 0, "NON_GENESIS_NODES_EXIST");
|
|
349
|
-
require(GlobalStateLib.isEmpty(assertion.beforeState.globalState), "NOT_EMPTY_BEFORE");
|
|
350
|
-
require(
|
|
351
|
-
assertion.beforeState.machineStatus == MachineStatus.FINISHED,
|
|
352
|
-
"BEFORE_MACHINE_NOT_FINISHED"
|
|
353
|
-
);
|
|
354
|
-
// accessors such as state.getSendRoot not available for calldata structs, only memory
|
|
355
|
-
require(
|
|
356
|
-
assertion.afterState.globalState.bytes32Vals[1] == expectedSendRoot,
|
|
357
|
-
"NOT_ZERO_SENDROOT"
|
|
358
|
-
);
|
|
359
|
-
require(
|
|
360
|
-
assertion.afterState.globalState.u64Vals[0] == expectedInboxCount,
|
|
361
|
-
"INBOX_NOT_AT_ONE"
|
|
362
|
-
);
|
|
363
|
-
require(assertion.afterState.globalState.u64Vals[1] == 0, "POSITION_IN_MESSAGE_NOT_ZERO");
|
|
364
|
-
require(
|
|
365
|
-
assertion.afterState.machineStatus == MachineStatus.FINISHED,
|
|
366
|
-
"AFTER_MACHINE_NOT_FINISHED"
|
|
367
|
-
);
|
|
368
|
-
bytes32 genesisBlockHash = assertion.afterState.globalState.bytes32Vals[0];
|
|
369
|
-
createNewNode(assertion, 0, expectedInboxCount, bytes32(0));
|
|
370
|
-
confirmNode(1, genesisBlockHash, expectedSendRoot);
|
|
371
|
-
emit OwnerFunctionCalled(29);
|
|
375
|
+
emit InboxSet(address(newInbox));
|
|
376
|
+
// previously: emit OwnerFunctionCalled(28);
|
|
372
377
|
}
|
|
373
378
|
|
|
374
379
|
/**
|
|
375
380
|
* @notice set the validatorWhitelistDisabled flag
|
|
376
381
|
* @param _validatorWhitelistDisabled new value of validatorWhitelistDisabled, i.e. true = disabled
|
|
377
382
|
*/
|
|
378
|
-
function setValidatorWhitelistDisabled(
|
|
383
|
+
function setValidatorWhitelistDisabled(
|
|
384
|
+
bool _validatorWhitelistDisabled
|
|
385
|
+
) external {
|
|
379
386
|
validatorWhitelistDisabled = _validatorWhitelistDisabled;
|
|
380
|
-
emit
|
|
387
|
+
emit ValidatorWhitelistDisabledSet(_validatorWhitelistDisabled);
|
|
388
|
+
// previously: emit OwnerFunctionCalled(30);
|
|
381
389
|
}
|
|
382
390
|
|
|
383
391
|
/**
|
|
384
392
|
* @notice set the anyTrustFastConfirmer address
|
|
385
|
-
* must also call `setValidator` to set the same address as a validator to work
|
|
386
|
-
* old fast confirmer need to be removed from the validator list manually
|
|
387
393
|
* @param _anyTrustFastConfirmer new value of anyTrustFastConfirmer
|
|
388
394
|
*/
|
|
389
|
-
function setAnyTrustFastConfirmer(
|
|
395
|
+
function setAnyTrustFastConfirmer(
|
|
396
|
+
address _anyTrustFastConfirmer
|
|
397
|
+
) external {
|
|
390
398
|
anyTrustFastConfirmer = _anyTrustFastConfirmer;
|
|
391
|
-
emit
|
|
399
|
+
emit AnyTrustFastConfirmerSet(_anyTrustFastConfirmer);
|
|
400
|
+
// previously: emit OwnerFunctionCalled(31);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* @notice set a new challengeManager contract
|
|
405
|
+
* @param _challengeManager new value of challengeManager
|
|
406
|
+
*/
|
|
407
|
+
function setChallengeManager(
|
|
408
|
+
address _challengeManager
|
|
409
|
+
) external {
|
|
410
|
+
challengeManager = IEdgeChallengeManager(_challengeManager);
|
|
411
|
+
emit ChallengeManagerSet(_challengeManager);
|
|
412
|
+
// previously: emit OwnerFunctionCalled(32);
|
|
392
413
|
}
|
|
393
414
|
}
|