@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
|
@@ -28,7 +28,6 @@ contract RollupCreator is Ownable {
|
|
|
28
28
|
address sequencerInbox,
|
|
29
29
|
address bridge,
|
|
30
30
|
address upgradeExecutor,
|
|
31
|
-
address validatorUtils,
|
|
32
31
|
address validatorWalletCreator
|
|
33
32
|
);
|
|
34
33
|
event TemplatesUpdated();
|
|
@@ -40,19 +39,17 @@ contract RollupCreator is Ownable {
|
|
|
40
39
|
address nativeToken;
|
|
41
40
|
bool deployFactoriesToL2;
|
|
42
41
|
uint256 maxFeePerGasForRetryables;
|
|
43
|
-
//// @dev The address of the batch poster, not used when set to zero address
|
|
44
42
|
address[] batchPosters;
|
|
45
43
|
address batchPosterManager;
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
BridgeCreator public bridgeCreator;
|
|
49
47
|
IOneStepProofEntry public osp;
|
|
50
|
-
|
|
48
|
+
IEdgeChallengeManager public challengeManagerTemplate;
|
|
51
49
|
IRollupAdmin public rollupAdminLogic;
|
|
52
50
|
IRollupUser public rollupUserLogic;
|
|
53
51
|
IUpgradeExecutor public upgradeExecutorLogic;
|
|
54
52
|
|
|
55
|
-
address public validatorUtils;
|
|
56
53
|
address public validatorWalletCreator;
|
|
57
54
|
|
|
58
55
|
DeployHelper public l2FactoriesDeployer;
|
|
@@ -65,11 +62,10 @@ contract RollupCreator is Ownable {
|
|
|
65
62
|
function setTemplates(
|
|
66
63
|
BridgeCreator _bridgeCreator,
|
|
67
64
|
IOneStepProofEntry _osp,
|
|
68
|
-
|
|
65
|
+
IEdgeChallengeManager _challengeManagerLogic,
|
|
69
66
|
IRollupAdmin _rollupAdminLogic,
|
|
70
67
|
IRollupUser _rollupUserLogic,
|
|
71
68
|
IUpgradeExecutor _upgradeExecutorLogic,
|
|
72
|
-
address _validatorUtils,
|
|
73
69
|
address _validatorWalletCreator,
|
|
74
70
|
DeployHelper _l2FactoriesDeployer
|
|
75
71
|
) external onlyOwner {
|
|
@@ -79,12 +75,41 @@ contract RollupCreator is Ownable {
|
|
|
79
75
|
rollupAdminLogic = _rollupAdminLogic;
|
|
80
76
|
rollupUserLogic = _rollupUserLogic;
|
|
81
77
|
upgradeExecutorLogic = _upgradeExecutorLogic;
|
|
82
|
-
validatorUtils = _validatorUtils;
|
|
83
78
|
validatorWalletCreator = _validatorWalletCreator;
|
|
84
79
|
l2FactoriesDeployer = _l2FactoriesDeployer;
|
|
85
80
|
emit TemplatesUpdated();
|
|
86
81
|
}
|
|
87
82
|
|
|
83
|
+
// internal function to workaround stack limit
|
|
84
|
+
function createChallengeManager(
|
|
85
|
+
address rollupAddr,
|
|
86
|
+
address proxyAdminAddr,
|
|
87
|
+
Config memory config
|
|
88
|
+
) internal returns (IEdgeChallengeManager) {
|
|
89
|
+
IEdgeChallengeManager challengeManager = IEdgeChallengeManager(
|
|
90
|
+
address(
|
|
91
|
+
new TransparentUpgradeableProxy(
|
|
92
|
+
address(challengeManagerTemplate), proxyAdminAddr, ""
|
|
93
|
+
)
|
|
94
|
+
)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
challengeManager.initialize({
|
|
98
|
+
_assertionChain: IAssertionChain(rollupAddr),
|
|
99
|
+
_challengePeriodBlocks: config.confirmPeriodBlocks,
|
|
100
|
+
_oneStepProofEntry: osp,
|
|
101
|
+
layerZeroBlockEdgeHeight: config.layerZeroBlockEdgeHeight,
|
|
102
|
+
layerZeroBigStepEdgeHeight: config.layerZeroBigStepEdgeHeight,
|
|
103
|
+
layerZeroSmallStepEdgeHeight: config.layerZeroSmallStepEdgeHeight,
|
|
104
|
+
_stakeToken: IERC20(config.stakeToken),
|
|
105
|
+
_stakeAmounts: config.miniStakeValues,
|
|
106
|
+
_excessStakeReceiver: config.owner,
|
|
107
|
+
_numBigStepLevel: config.numBigStepLevel
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
return challengeManager;
|
|
111
|
+
}
|
|
112
|
+
|
|
88
113
|
/**
|
|
89
114
|
* @notice Create a new rollup
|
|
90
115
|
* @dev After this setup:
|
|
@@ -92,11 +117,11 @@ contract RollupCreator is Ownable {
|
|
|
92
117
|
* @dev - UpgradeExecutor should be the owner of proxyAdmin which manages bridge contracts
|
|
93
118
|
* @dev - config.rollupOwner should have executor role on upgradeExecutor
|
|
94
119
|
* @dev - Bridge should have a single inbox and outbox
|
|
95
|
-
* @dev - Validators and batch poster should be set if provided
|
|
120
|
+
* @dev - Validators, batch posters and batch poster manager should be set if provided
|
|
96
121
|
* @param deployParams The parameters for the rollup deployment. It consists of:
|
|
97
122
|
* - config The configuration for the rollup
|
|
98
|
-
* - batchPoster The address of the batch poster, not used when set to zero address
|
|
99
123
|
* - validators The list of validator addresses, not used when set to empty list
|
|
124
|
+
* - maxDataSize Max size of the calldata that can be posted
|
|
100
125
|
* - nativeToken Address of the custom fee token used by rollup. If rollup is ETH-based address(0) should be provided
|
|
101
126
|
* - deployFactoriesToL2 Whether to deploy L2 factories using retryable tickets. If true, retryables need to be paid for in native currency.
|
|
102
127
|
* Deploying factories via retryable tickets at rollup creation time is the most reliable method to do it since it
|
|
@@ -104,33 +129,49 @@ contract RollupCreator is Ownable {
|
|
|
104
129
|
* anyone can try to deploy factories and potentially burn the nonce 0 (ie. due to gas price spike when doing direct
|
|
105
130
|
* L2 TX). That would mean we permanently lost capability to deploy deterministic factory at expected address.
|
|
106
131
|
* - maxFeePerGasForRetryables price bid for L2 execution.
|
|
107
|
-
* -
|
|
132
|
+
* - batchPosters The list of batch poster addresses, not used when set to empty list
|
|
133
|
+
* - batchPosterManager The address which has the ability to rotate batch poster keys
|
|
108
134
|
* @return The address of the newly created rollup
|
|
109
135
|
*/
|
|
110
|
-
function createRollup(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
returns (address)
|
|
114
|
-
{
|
|
136
|
+
function createRollup(
|
|
137
|
+
RollupDeploymentParams memory deployParams
|
|
138
|
+
) public payable returns (address) {
|
|
115
139
|
{
|
|
116
140
|
// Make sure the immutable maxDataSize is as expected
|
|
117
|
-
(
|
|
118
|
-
|
|
141
|
+
(
|
|
142
|
+
,
|
|
143
|
+
ISequencerInbox ethSequencerInbox,
|
|
144
|
+
ISequencerInbox ethDelayBufferableSequencerInbox,
|
|
145
|
+
IInboxBase ethInbox,
|
|
146
|
+
,
|
|
147
|
+
) = bridgeCreator.ethBasedTemplates();
|
|
119
148
|
require(
|
|
120
149
|
deployParams.maxDataSize == ethSequencerInbox.maxDataSize(),
|
|
121
150
|
"SI_MAX_DATA_SIZE_MISMATCH"
|
|
122
151
|
);
|
|
152
|
+
require(
|
|
153
|
+
deployParams.maxDataSize == ethDelayBufferableSequencerInbox.maxDataSize(),
|
|
154
|
+
"SI_MAX_DATA_SIZE_MISMATCH"
|
|
155
|
+
);
|
|
123
156
|
require(deployParams.maxDataSize == ethInbox.maxDataSize(), "I_MAX_DATA_SIZE_MISMATCH");
|
|
124
157
|
|
|
125
|
-
(
|
|
126
|
-
|
|
158
|
+
(
|
|
159
|
+
,
|
|
160
|
+
ISequencerInbox erc20SequencerInbox,
|
|
161
|
+
ISequencerInbox erc20DelayBufferableSequencerInbox,
|
|
162
|
+
IInboxBase erc20Inbox,
|
|
163
|
+
,
|
|
164
|
+
) = bridgeCreator.erc20BasedTemplates();
|
|
127
165
|
require(
|
|
128
166
|
deployParams.maxDataSize == erc20SequencerInbox.maxDataSize(),
|
|
129
167
|
"SI_MAX_DATA_SIZE_MISMATCH"
|
|
130
168
|
);
|
|
131
169
|
require(
|
|
132
|
-
deployParams.maxDataSize ==
|
|
133
|
-
"
|
|
170
|
+
deployParams.maxDataSize == erc20DelayBufferableSequencerInbox.maxDataSize(),
|
|
171
|
+
"SI_MAX_DATA_SIZE_MISMATCH"
|
|
172
|
+
);
|
|
173
|
+
require(
|
|
174
|
+
deployParams.maxDataSize == erc20Inbox.maxDataSize(), "I_MAX_DATA_SIZE_MISMATCH"
|
|
134
175
|
);
|
|
135
176
|
}
|
|
136
177
|
|
|
@@ -144,24 +185,12 @@ contract RollupCreator is Ownable {
|
|
|
144
185
|
address(proxyAdmin),
|
|
145
186
|
address(rollup),
|
|
146
187
|
deployParams.nativeToken,
|
|
147
|
-
deployParams.config.sequencerInboxMaxTimeVariation
|
|
188
|
+
deployParams.config.sequencerInboxMaxTimeVariation,
|
|
189
|
+
deployParams.config.bufferConfig
|
|
148
190
|
);
|
|
149
191
|
|
|
150
|
-
|
|
151
|
-
address(
|
|
152
|
-
new TransparentUpgradeableProxy(
|
|
153
|
-
address(challengeManagerTemplate),
|
|
154
|
-
address(proxyAdmin),
|
|
155
|
-
""
|
|
156
|
-
)
|
|
157
|
-
)
|
|
158
|
-
);
|
|
159
|
-
challengeManager.initialize(
|
|
160
|
-
IChallengeResultReceiver(address(rollup)),
|
|
161
|
-
bridgeContracts.sequencerInbox,
|
|
162
|
-
bridgeContracts.bridge,
|
|
163
|
-
osp
|
|
164
|
-
);
|
|
192
|
+
IEdgeChallengeManager challengeManager =
|
|
193
|
+
createChallengeManager(address(rollup), address(proxyAdmin), deployParams.config);
|
|
165
194
|
|
|
166
195
|
// deploy and init upgrade executor
|
|
167
196
|
address upgradeExecutor = _deployUpgradeExecutor(deployParams.config.owner, proxyAdmin);
|
|
@@ -183,7 +212,6 @@ contract RollupCreator is Ownable {
|
|
|
183
212
|
challengeManager: challengeManager,
|
|
184
213
|
rollupAdminLogic: address(rollupAdminLogic),
|
|
185
214
|
rollupUserLogic: rollupUserLogic,
|
|
186
|
-
validatorUtils: validatorUtils,
|
|
187
215
|
validatorWalletCreator: validatorWalletCreator
|
|
188
216
|
})
|
|
189
217
|
);
|
|
@@ -226,22 +254,19 @@ contract RollupCreator is Ownable {
|
|
|
226
254
|
address(bridgeContracts.sequencerInbox),
|
|
227
255
|
address(bridgeContracts.bridge),
|
|
228
256
|
address(upgradeExecutor),
|
|
229
|
-
address(validatorUtils),
|
|
230
257
|
address(validatorWalletCreator)
|
|
231
258
|
);
|
|
232
259
|
return address(rollup);
|
|
233
260
|
}
|
|
234
261
|
|
|
235
|
-
function _deployUpgradeExecutor(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
{
|
|
262
|
+
function _deployUpgradeExecutor(
|
|
263
|
+
address rollupOwner,
|
|
264
|
+
ProxyAdmin proxyAdmin
|
|
265
|
+
) internal returns (address) {
|
|
239
266
|
IUpgradeExecutor upgradeExecutor = IUpgradeExecutor(
|
|
240
267
|
address(
|
|
241
268
|
new TransparentUpgradeableProxy(
|
|
242
|
-
address(upgradeExecutorLogic),
|
|
243
|
-
address(proxyAdmin),
|
|
244
|
-
bytes("")
|
|
269
|
+
address(upgradeExecutorLogic), address(proxyAdmin), bytes("")
|
|
245
270
|
)
|
|
246
271
|
)
|
|
247
272
|
);
|
|
@@ -259,24 +284,20 @@ contract RollupCreator is Ownable {
|
|
|
259
284
|
) internal {
|
|
260
285
|
if (_nativeToken == address(0)) {
|
|
261
286
|
// we need to fund 4 retryable tickets
|
|
262
|
-
uint256 cost =
|
|
263
|
-
IInboxBase(_inbox),
|
|
264
|
-
_maxFeePerGas
|
|
265
|
-
);
|
|
287
|
+
uint256 cost =
|
|
288
|
+
l2FactoriesDeployer.getDeploymentTotalCost(IInboxBase(_inbox), _maxFeePerGas);
|
|
266
289
|
|
|
267
290
|
// do it
|
|
268
291
|
l2FactoriesDeployer.perform{value: cost}(_inbox, _nativeToken, _maxFeePerGas);
|
|
269
292
|
|
|
270
293
|
// refund the caller
|
|
271
294
|
// solhint-disable-next-line avoid-low-level-calls
|
|
272
|
-
(bool sent,
|
|
295
|
+
(bool sent,) = msg.sender.call{value: address(this).balance}("");
|
|
273
296
|
require(sent, "Refund failed");
|
|
274
297
|
} else {
|
|
275
298
|
// Transfer fee token amount needed to pay for retryable fees to the inbox.
|
|
276
|
-
uint256 totalFee =
|
|
277
|
-
IInboxBase(_inbox),
|
|
278
|
-
_maxFeePerGas
|
|
279
|
-
);
|
|
299
|
+
uint256 totalFee =
|
|
300
|
+
l2FactoriesDeployer.getDeploymentTotalCost(IInboxBase(_inbox), _maxFeePerGas);
|
|
280
301
|
|
|
281
302
|
// calculate the fee amount in the native token's decimals
|
|
282
303
|
uint8 decimals = ERC20(_nativeToken).decimals();
|
|
@@ -285,28 +306,21 @@ contract RollupCreator is Ownable {
|
|
|
285
306
|
if (decimals < 18) {
|
|
286
307
|
uint256 gasCost = _maxFeePerGas * 21_000;
|
|
287
308
|
uint256 nickCreate2Cost = _scaleDownToNativeDecimals(
|
|
288
|
-
l2FactoriesDeployer.NICK_CREATE2_VALUE() + gasCost,
|
|
289
|
-
decimals
|
|
309
|
+
l2FactoriesDeployer.NICK_CREATE2_VALUE() + gasCost, decimals
|
|
290
310
|
);
|
|
291
311
|
uint256 erc2470Cost = _scaleDownToNativeDecimals(
|
|
292
|
-
l2FactoriesDeployer.ERC2470_VALUE() + gasCost,
|
|
293
|
-
decimals
|
|
312
|
+
l2FactoriesDeployer.ERC2470_VALUE() + gasCost, decimals
|
|
294
313
|
);
|
|
295
314
|
uint256 zoltuCreate2Cost = _scaleDownToNativeDecimals(
|
|
296
|
-
l2FactoriesDeployer.ZOLTU_VALUE() + gasCost,
|
|
297
|
-
decimals
|
|
315
|
+
l2FactoriesDeployer.ZOLTU_VALUE() + gasCost, decimals
|
|
298
316
|
);
|
|
299
317
|
uint256 erc1820Cost = _scaleDownToNativeDecimals(
|
|
300
|
-
l2FactoriesDeployer.ERC1820_VALUE() + gasCost,
|
|
301
|
-
decimals
|
|
318
|
+
l2FactoriesDeployer.ERC1820_VALUE() + gasCost, decimals
|
|
302
319
|
);
|
|
303
320
|
totalFeeNativeDenominated =
|
|
304
|
-
nickCreate2Cost +
|
|
305
|
-
erc2470Cost +
|
|
306
|
-
zoltuCreate2Cost +
|
|
307
|
-
erc1820Cost;
|
|
321
|
+
nickCreate2Cost + erc2470Cost + zoltuCreate2Cost + erc1820Cost;
|
|
308
322
|
} else if (decimals > 18) {
|
|
309
|
-
totalFeeNativeDenominated = totalFee * (10**(decimals - 18));
|
|
323
|
+
totalFeeNativeDenominated = totalFee * (10 ** (decimals - 18));
|
|
310
324
|
}
|
|
311
325
|
|
|
312
326
|
IERC20(_nativeToken).safeTransferFrom(msg.sender, _inbox, totalFeeNativeDenominated);
|
|
@@ -316,16 +330,15 @@ contract RollupCreator is Ownable {
|
|
|
316
330
|
}
|
|
317
331
|
}
|
|
318
332
|
|
|
319
|
-
function _scaleDownToNativeDecimals(
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
{
|
|
333
|
+
function _scaleDownToNativeDecimals(
|
|
334
|
+
uint256 amount,
|
|
335
|
+
uint8 decimals
|
|
336
|
+
) internal pure returns (uint256) {
|
|
324
337
|
uint256 scaledAmount = amount;
|
|
325
338
|
if (decimals < 18) {
|
|
326
|
-
scaledAmount = amount / (10**(18 - decimals));
|
|
339
|
+
scaledAmount = amount / (10 ** (18 - decimals));
|
|
327
340
|
// round up if necessary
|
|
328
|
-
if (scaledAmount * (10**(18 - decimals)) < amount) {
|
|
341
|
+
if (scaledAmount * (10 ** (18 - decimals)) < amount) {
|
|
329
342
|
scaledAmount++;
|
|
330
343
|
}
|
|
331
344
|
}
|
|
@@ -6,6 +6,7 @@ pragma solidity ^0.8.0;
|
|
|
6
6
|
|
|
7
7
|
import "./AbsRollupEventInbox.sol";
|
|
8
8
|
import "../bridge/IEthBridge.sol";
|
|
9
|
+
import {INITIALIZATION_MSG_TYPE} from "../libraries/MessageTypes.sol";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* @title The inbox for rollup protocol events
|
|
@@ -13,13 +14,12 @@ import "../bridge/IEthBridge.sol";
|
|
|
13
14
|
contract RollupEventInbox is AbsRollupEventInbox {
|
|
14
15
|
constructor() AbsRollupEventInbox() {}
|
|
15
16
|
|
|
16
|
-
function _enqueueInitializationMsg(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
);
|
|
17
|
+
function _enqueueInitializationMsg(
|
|
18
|
+
bytes memory initMsg
|
|
19
|
+
) internal override returns (uint256) {
|
|
20
|
+
return IEthBridge(address(bridge)).enqueueDelayedMessage(
|
|
21
|
+
INITIALIZATION_MSG_TYPE, address(0), keccak256(initMsg)
|
|
22
|
+
);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
function _currentDataCostToReport() internal view override returns (uint256) {
|
package/src/rollup/RollupLib.sol
CHANGED
|
@@ -4,110 +4,74 @@
|
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
6
|
|
|
7
|
-
import "../challenge/IChallengeManager.sol";
|
|
8
|
-
import "../challenge/ChallengeLib.sol";
|
|
9
7
|
import "../state/GlobalState.sol";
|
|
10
8
|
import "../bridge/ISequencerInbox.sol";
|
|
11
9
|
|
|
12
10
|
import "../bridge/IBridge.sol";
|
|
13
11
|
import "../bridge/IOutbox.sol";
|
|
14
12
|
import "../bridge/IInboxBase.sol";
|
|
15
|
-
import "./
|
|
13
|
+
import "./Assertion.sol";
|
|
16
14
|
import "./IRollupEventInbox.sol";
|
|
15
|
+
import "../challengeV2/EdgeChallengeManager.sol";
|
|
17
16
|
|
|
18
17
|
library RollupLib {
|
|
19
18
|
using GlobalStateLib for GlobalState;
|
|
19
|
+
using AssertionStateLib for AssertionState;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
keccak256(
|
|
28
|
-
abi.encodePacked(
|
|
29
|
-
execState.globalState.hash(),
|
|
30
|
-
inboxMaxCount,
|
|
31
|
-
execState.machineStatus
|
|
32
|
-
)
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/// @dev same as stateHash but expects execState in memory instead of calldata
|
|
37
|
-
function stateHashMem(ExecutionState memory execState, uint256 inboxMaxCount)
|
|
38
|
-
internal
|
|
39
|
-
pure
|
|
40
|
-
returns (bytes32)
|
|
41
|
-
{
|
|
42
|
-
return
|
|
43
|
-
keccak256(
|
|
44
|
-
abi.encodePacked(
|
|
45
|
-
execState.globalState.hash(),
|
|
46
|
-
inboxMaxCount,
|
|
47
|
-
execState.machineStatus
|
|
48
|
-
)
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function executionHash(Assertion memory assertion) internal pure returns (bytes32) {
|
|
53
|
-
MachineStatus[2] memory statuses;
|
|
54
|
-
statuses[0] = assertion.beforeState.machineStatus;
|
|
55
|
-
statuses[1] = assertion.afterState.machineStatus;
|
|
56
|
-
GlobalState[2] memory globalStates;
|
|
57
|
-
globalStates[0] = assertion.beforeState.globalState;
|
|
58
|
-
globalStates[1] = assertion.afterState.globalState;
|
|
59
|
-
// TODO: benchmark how much this abstraction adds of gas overhead
|
|
60
|
-
return executionHash(statuses, globalStates, assertion.numBlocks);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function executionHash(
|
|
64
|
-
MachineStatus[2] memory statuses,
|
|
65
|
-
GlobalState[2] memory globalStates,
|
|
66
|
-
uint64 numBlocks
|
|
21
|
+
// The `assertionHash` contains all the information needed to determine an assertion's validity.
|
|
22
|
+
// This helps protect validators against reorgs by letting them bind their assertion to the current chain state.
|
|
23
|
+
function assertionHash(
|
|
24
|
+
bytes32 parentAssertionHash,
|
|
25
|
+
AssertionState memory afterState,
|
|
26
|
+
bytes32 inboxAcc
|
|
67
27
|
) internal pure returns (bytes32) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
segments[1] = ChallengeLib.blockStateHash(statuses[1], globalStates[1].hash());
|
|
71
|
-
return ChallengeLib.hashChallengeState(0, numBlocks, segments);
|
|
28
|
+
// we can no longer have `hasSibling` in the assertion hash as it would allow identical assertions
|
|
29
|
+
return assertionHash(parentAssertionHash, afterState.hash(), inboxAcc);
|
|
72
30
|
}
|
|
73
31
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
bytes32
|
|
32
|
+
// Takes in a hash of the afterState instead of the afterState itself
|
|
33
|
+
function assertionHash(
|
|
34
|
+
bytes32 parentAssertionHash,
|
|
35
|
+
bytes32 afterStateHash,
|
|
36
|
+
bytes32 inboxAcc
|
|
78
37
|
) internal pure returns (bytes32) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
function confirmHash(Assertion memory assertion) internal pure returns (bytes32) {
|
|
83
|
-
return
|
|
84
|
-
confirmHash(
|
|
85
|
-
assertion.afterState.globalState.getBlockHash(),
|
|
86
|
-
assertion.afterState.globalState.getSendRoot()
|
|
87
|
-
);
|
|
38
|
+
// we can no longer have `hasSibling` in the assertion hash as it would allow identical assertions
|
|
39
|
+
return keccak256(abi.encodePacked(parentAssertionHash, afterStateHash, inboxAcc));
|
|
88
40
|
}
|
|
89
41
|
|
|
90
|
-
|
|
91
|
-
|
|
42
|
+
// All these should be emited in AssertionCreated event
|
|
43
|
+
function configHash(
|
|
44
|
+
bytes32 wasmModuleRoot,
|
|
45
|
+
uint256 requiredStake,
|
|
46
|
+
address challengeManager,
|
|
47
|
+
uint64 confirmPeriodBlocks,
|
|
48
|
+
uint64 nextInboxPosition
|
|
49
|
+
) internal pure returns (bytes32) {
|
|
50
|
+
return keccak256(
|
|
51
|
+
abi.encodePacked(
|
|
52
|
+
wasmModuleRoot,
|
|
53
|
+
requiredStake,
|
|
54
|
+
challengeManager,
|
|
55
|
+
confirmPeriodBlocks,
|
|
56
|
+
nextInboxPosition
|
|
57
|
+
)
|
|
58
|
+
);
|
|
92
59
|
}
|
|
93
60
|
|
|
94
|
-
function
|
|
95
|
-
|
|
96
|
-
bytes32
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
wasmModuleRoot
|
|
110
|
-
)
|
|
111
|
-
);
|
|
61
|
+
function validateConfigHash(
|
|
62
|
+
ConfigData calldata configData,
|
|
63
|
+
bytes32 _configHash
|
|
64
|
+
) internal pure {
|
|
65
|
+
require(
|
|
66
|
+
_configHash
|
|
67
|
+
== configHash(
|
|
68
|
+
configData.wasmModuleRoot,
|
|
69
|
+
configData.requiredStake,
|
|
70
|
+
configData.challengeManager,
|
|
71
|
+
configData.confirmPeriodBlocks,
|
|
72
|
+
configData.nextInboxPosition
|
|
73
|
+
),
|
|
74
|
+
"CONFIG_HASH_MISMATCH"
|
|
75
|
+
);
|
|
112
76
|
}
|
|
113
77
|
}
|
|
@@ -9,23 +9,19 @@ import "./IRollupAdmin.sol";
|
|
|
9
9
|
import "./Config.sol";
|
|
10
10
|
|
|
11
11
|
contract RollupProxy is AdminFallbackProxy {
|
|
12
|
-
function initializeProxy(
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
function initializeProxy(
|
|
13
|
+
Config memory config,
|
|
14
|
+
ContractDependencies memory connectedContracts
|
|
15
|
+
) external {
|
|
15
16
|
if (
|
|
16
|
-
_getAdmin() == address(0) &&
|
|
17
|
-
|
|
18
|
-
_getSecondaryImplementation() == address(0)
|
|
17
|
+
_getAdmin() == address(0) && _getImplementation() == address(0)
|
|
18
|
+
&& _getSecondaryImplementation() == address(0)
|
|
19
19
|
) {
|
|
20
20
|
_initialize(
|
|
21
21
|
address(connectedContracts.rollupAdminLogic),
|
|
22
|
-
abi.
|
|
23
|
-
IRollupAdmin.initialize.selector,
|
|
24
|
-
config,
|
|
25
|
-
connectedContracts
|
|
26
|
-
),
|
|
22
|
+
abi.encodeCall(IRollupAdmin.initialize, (config, connectedContracts)),
|
|
27
23
|
address(connectedContracts.rollupUserLogic),
|
|
28
|
-
abi.
|
|
24
|
+
abi.encodeCall(IRollupUser.initialize, (config.stakeToken)),
|
|
29
25
|
config.owner
|
|
30
26
|
);
|
|
31
27
|
} else {
|