@arbitrum/nitro-contracts 2.1.1-beta.0 → 3.0.0-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- 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/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
- 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 +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
- 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/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
- 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 +14 -1
- 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 +16 -3
- 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/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.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 +20 -2
- 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 +566 -9
- 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/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -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/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
- 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/CallerChecker.sol/CallerChecker.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
- 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 +15 -2
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -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 +566 -9
- 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/{express-lane-auction/Balance.sol/BalanceLib.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 +11 -4
- 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 +89 -92
- 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 +16 -8
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +134 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +343 -279
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +559 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/Structs.sol +176 -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/CallerChecker.sol +18 -0
- 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 +21 -3
- package/src/libraries/GasRefundEnabled.sol +5 -6
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/CreateTest.sol +3 -1
- package/src/mocks/HostioTest.sol +20 -16
- 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 +84 -71
- 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/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
- 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/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
- 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/express-lane-auction/Balance.sol +0 -142
- package/src/express-lane-auction/Burner.sol +0 -25
- package/src/express-lane-auction/ELCRound.sol +0 -73
- package/src/express-lane-auction/Errors.sol +0 -31
- package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
- package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
- package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
- 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
|
}
|