@arbitrum/nitro-contracts 2.0.0 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -494
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -530
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +16 -6
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -12
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +36 -69
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -642
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1327
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1461
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1609
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1743
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "../rollup/IRollupEventInbox.sol";
|
|
8
|
+
import "../bridge/IEthBridge.sol";
|
|
9
|
+
import "../bridge/IDelayedMessageProvider.sol";
|
|
10
|
+
import "../precompiles/ArbGasInfo.sol";
|
|
11
|
+
import "../libraries/DelegateCallAware.sol";
|
|
12
|
+
import "../libraries/ArbitrumChecker.sol";
|
|
13
|
+
import {INITIALIZATION_MSG_TYPE} from "../libraries/MessageTypes.sol";
|
|
14
|
+
import {AlreadyInit, HadZeroInit} from "../libraries/Error.sol";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @title The inbox for rollup protocol events
|
|
18
|
+
*/
|
|
19
|
+
contract MockRollupEventInbox is IRollupEventInbox, IDelayedMessageProvider, DelegateCallAware {
|
|
20
|
+
IBridge public override bridge;
|
|
21
|
+
address public override rollup;
|
|
22
|
+
|
|
23
|
+
modifier onlyRollup() {
|
|
24
|
+
require(msg.sender == rollup, "ONLY_ROLLUP");
|
|
25
|
+
_;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function initialize(
|
|
29
|
+
IBridge _bridge
|
|
30
|
+
) external override onlyDelegated {
|
|
31
|
+
if (address(bridge) != address(0)) revert AlreadyInit();
|
|
32
|
+
if (address(_bridge) == address(0)) revert HadZeroInit();
|
|
33
|
+
bridge = _bridge;
|
|
34
|
+
rollup = address(_bridge.rollup());
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// @notice Allows the proxy owner to set the rollup address
|
|
38
|
+
function updateRollupAddress() external onlyDelegated onlyProxyOwner {
|
|
39
|
+
rollup = address(bridge.rollup());
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function rollupInitialized(
|
|
43
|
+
uint256 chainId,
|
|
44
|
+
string calldata chainConfig
|
|
45
|
+
) external override onlyRollup {
|
|
46
|
+
require(bytes(chainConfig).length > 0, "EMPTY_CHAIN_CONFIG");
|
|
47
|
+
uint8 initMsgVersion = 1;
|
|
48
|
+
uint256 currentDataCost = 1; // Set to a base fee of 1.
|
|
49
|
+
if (ArbitrumChecker.runningOnArbitrum()) {
|
|
50
|
+
currentDataCost += ArbGasInfo(address(0x6c)).getL1BaseFeeEstimate();
|
|
51
|
+
}
|
|
52
|
+
bytes memory initMsg =
|
|
53
|
+
abi.encodePacked(chainId, initMsgVersion, currentDataCost, chainConfig);
|
|
54
|
+
uint256 num = IEthBridge(address(bridge)).enqueueDelayedMessage(
|
|
55
|
+
INITIALIZATION_MSG_TYPE, address(0), keccak256(initMsg)
|
|
56
|
+
);
|
|
57
|
+
emit InboxMessageDelivered(num, initMsg);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -26,7 +26,9 @@ contract MultiCallTest {
|
|
|
26
26
|
// solhint-disable reason-string
|
|
27
27
|
// solhint-disable avoid-low-level-calls
|
|
28
28
|
// solhint-disable-next-line prettier/prettier
|
|
29
|
-
fallback(
|
|
29
|
+
fallback(
|
|
30
|
+
bytes calldata input
|
|
31
|
+
) external payable returns (bytes memory) {
|
|
30
32
|
require(input.length > 0);
|
|
31
33
|
uint8 count = uint8(input[0]);
|
|
32
34
|
input = input[1:];
|
|
@@ -21,7 +21,9 @@ contract PendingBlkTimeAndNrAdvanceCheck {
|
|
|
21
21
|
require(ARB_SYS.arbBlockNumber() > deployedAtBlock, "Block didn't advance");
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function checkArbBlockHashReturnsLatest(
|
|
24
|
+
function checkArbBlockHashReturnsLatest(
|
|
25
|
+
bytes32 expected
|
|
26
|
+
) external {
|
|
25
27
|
bytes32 gotBlockHash = ARB_SYS.arbBlockHash(ARB_SYS.arbBlockNumber() - 1);
|
|
26
28
|
require(gotBlockHash != bytes32(0), "ZERO_BLOCK_HASH");
|
|
27
29
|
require(gotBlockHash == expected, "WRONG_BLOCK_HASH");
|
package/src/mocks/Program.sol
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
6
7
|
import "../precompiles/ArbSys.sol";
|
|
7
8
|
import "@openzeppelin/contracts/utils/Strings.sol";
|
|
8
9
|
|
|
@@ -20,11 +21,10 @@ contract ProgramTest {
|
|
|
20
21
|
require(hash == keccak256(data[1:]));
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
function staticcallProgram(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
24
|
+
function staticcallProgram(
|
|
25
|
+
address program,
|
|
26
|
+
bytes calldata data
|
|
27
|
+
) external view returns (bytes memory) {
|
|
28
28
|
(bool success, bytes memory result) = address(program).staticcall(data);
|
|
29
29
|
require(success, "call failed");
|
|
30
30
|
return result;
|
|
@@ -101,7 +101,9 @@ contract ProgramTest {
|
|
|
101
101
|
return result;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
function mathTest(
|
|
104
|
+
function mathTest(
|
|
105
|
+
address program
|
|
106
|
+
) external {
|
|
105
107
|
uint256 value = 0xeddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d4367786;
|
|
106
108
|
value = mulmod(
|
|
107
109
|
value,
|
|
@@ -115,7 +117,7 @@ contract ProgramTest {
|
|
|
115
117
|
);
|
|
116
118
|
unchecked {
|
|
117
119
|
value /= 0xeddecf107b5740ce;
|
|
118
|
-
value = value**0xfffffffefffffc2f;
|
|
120
|
+
value = value ** 0xfffffffefffffc2f;
|
|
119
121
|
value = value % 0xc6178c2de1078cd3;
|
|
120
122
|
}
|
|
121
123
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "../bridge/SequencerInbox.sol";
|
|
8
|
+
|
|
9
|
+
contract SequencerInboxBlobMock is SequencerInbox {
|
|
10
|
+
constructor(
|
|
11
|
+
uint256 maxDataSize_,
|
|
12
|
+
IReader4844 reader_,
|
|
13
|
+
bool isUsingFeeToken_,
|
|
14
|
+
bool isDelayBufferable_
|
|
15
|
+
) SequencerInbox(maxDataSize_, reader_, isUsingFeeToken_, isDelayBufferable_) {}
|
|
16
|
+
|
|
17
|
+
/// @dev Form a hash of the data being provided in 4844 data blobs
|
|
18
|
+
/// @param afterDelayedMessagesRead The delayed messages count read up to
|
|
19
|
+
/// @return The data hash
|
|
20
|
+
/// @return The timebounds within which the message should be processed
|
|
21
|
+
/// @return The normalized amount of gas used for blob posting
|
|
22
|
+
function formBlobDataHash(
|
|
23
|
+
uint256 afterDelayedMessagesRead
|
|
24
|
+
) internal view override returns (bytes32, IBridge.TimeBounds memory, uint256) {
|
|
25
|
+
bytes32[3] memory dataHashes = [bytes32(0), bytes32(0), bytes32(0)];
|
|
26
|
+
if (dataHashes.length == 0) revert MissingDataHashes();
|
|
27
|
+
|
|
28
|
+
(bytes memory header, IBridge.TimeBounds memory timeBounds) =
|
|
29
|
+
packHeader(afterDelayedMessagesRead);
|
|
30
|
+
uint256 BLOB_BASE_FEE = 1 gwei;
|
|
31
|
+
uint256 blobCost = BLOB_BASE_FEE * GAS_PER_BLOB * dataHashes.length;
|
|
32
|
+
return (
|
|
33
|
+
keccak256(bytes.concat(header, DATA_BLOB_HEADER_FLAG, abi.encodePacked(dataHashes))),
|
|
34
|
+
timeBounds,
|
|
35
|
+
block.basefee > 0 ? blobCost / block.basefee : 0
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -15,8 +15,9 @@ contract SequencerInboxStub is SequencerInbox {
|
|
|
15
15
|
ISequencerInbox.MaxTimeVariation memory maxTimeVariation_,
|
|
16
16
|
uint256 maxDataSize_,
|
|
17
17
|
IReader4844 reader4844_,
|
|
18
|
-
bool isUsingFeeToken_
|
|
19
|
-
|
|
18
|
+
bool isUsingFeeToken_,
|
|
19
|
+
bool isDelayBufferable_
|
|
20
|
+
) SequencerInbox(maxDataSize_, reader4844_, isUsingFeeToken_, isDelayBufferable_) {
|
|
20
21
|
bridge = bridge_;
|
|
21
22
|
rollup = IOwnable(msg.sender);
|
|
22
23
|
delayBlocks = uint64(maxTimeVariation_.delayBlocks);
|
|
@@ -26,22 +27,18 @@ contract SequencerInboxStub is SequencerInbox {
|
|
|
26
27
|
isBatchPoster[sequencer_] = true;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
function addInitMessage(
|
|
30
|
+
function addInitMessage(
|
|
31
|
+
uint256 chainId
|
|
32
|
+
) external {
|
|
30
33
|
bytes memory initMsg = abi.encodePacked(chainId);
|
|
31
34
|
uint256 num = IEthBridge(address(bridge)).enqueueDelayedMessage(
|
|
32
|
-
INITIALIZATION_MSG_TYPE,
|
|
33
|
-
address(0),
|
|
34
|
-
keccak256(initMsg)
|
|
35
|
+
INITIALIZATION_MSG_TYPE, address(0), keccak256(initMsg)
|
|
35
36
|
);
|
|
36
37
|
require(num == 0, "ALREADY_DELAYED_INIT");
|
|
37
38
|
emit InboxMessageDelivered(num, initMsg);
|
|
38
39
|
(bytes32 dataHash, IBridge.TimeBounds memory timeBounds) = formEmptyDataHash(1);
|
|
39
|
-
(
|
|
40
|
-
|
|
41
|
-
bytes32 beforeAcc,
|
|
42
|
-
bytes32 delayedAcc,
|
|
43
|
-
bytes32 afterAcc
|
|
44
|
-
) = addSequencerL2BatchImpl(dataHash, 1, 0, 0, 1);
|
|
40
|
+
(uint256 sequencerMessageCount, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 afterAcc) =
|
|
41
|
+
addSequencerL2BatchImpl(dataHash, 1, 0, 0, 1);
|
|
45
42
|
require(sequencerMessageCount == 0, "ALREADY_SEQ_INIT");
|
|
46
43
|
emit SequencerBatchDelivered(
|
|
47
44
|
sequencerMessageCount,
|
package/src/mocks/Simple.sol
CHANGED
|
@@ -21,7 +21,9 @@ contract Simple {
|
|
|
21
21
|
counter++;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function logAndIncrement(
|
|
24
|
+
function logAndIncrement(
|
|
25
|
+
uint256 expected
|
|
26
|
+
) external {
|
|
25
27
|
emit LogAndIncrementCalled(expected, counter);
|
|
26
28
|
counter++;
|
|
27
29
|
}
|
|
@@ -67,8 +69,7 @@ contract Simple {
|
|
|
67
69
|
require(ArbSys(address(100)).isTopLevelCall() == expected, "UNEXPECTED_RESULT");
|
|
68
70
|
} else {
|
|
69
71
|
require(
|
|
70
|
-
ArbSys(address(100)).wasMyCallersAddressAliased() == expected,
|
|
71
|
-
"UNEXPECTED_RESULT"
|
|
72
|
+
ArbSys(address(100)).wasMyCallersAddressAliased() == expected, "UNEXPECTED_RESULT"
|
|
72
73
|
);
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -86,8 +87,7 @@ contract Simple {
|
|
|
86
87
|
require(ArbSys(address(100)).isTopLevelCall() == directCase, "UNEXPECTED_RESULT");
|
|
87
88
|
} else {
|
|
88
89
|
require(
|
|
89
|
-
ArbSys(address(100)).wasMyCallersAddressAliased() == directCase,
|
|
90
|
-
"UNEXPECTED_RESULT"
|
|
90
|
+
ArbSys(address(100)).wasMyCallersAddressAliased() == directCase, "UNEXPECTED_RESULT"
|
|
91
91
|
);
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -96,19 +96,15 @@ contract Simple {
|
|
|
96
96
|
|
|
97
97
|
// DELEGATE CALL
|
|
98
98
|
bytes memory data = abi.encodeWithSelector(
|
|
99
|
-
this.checkIsTopLevelOrWasAliased.selector,
|
|
100
|
-
useTopLevel,
|
|
101
|
-
delegateCase
|
|
99
|
+
this.checkIsTopLevelOrWasAliased.selector, useTopLevel, delegateCase
|
|
102
100
|
);
|
|
103
101
|
// solhint-disable-next-line avoid-low-level-calls
|
|
104
|
-
(bool success,
|
|
102
|
+
(bool success,) = address(this).delegatecall(data);
|
|
105
103
|
require(success, "DELEGATE_CALL_FAILED");
|
|
106
104
|
|
|
107
105
|
// CALLCODE
|
|
108
106
|
data = abi.encodeWithSelector(
|
|
109
|
-
this.checkIsTopLevelOrWasAliased.selector,
|
|
110
|
-
useTopLevel,
|
|
111
|
-
callcodeCase
|
|
107
|
+
this.checkIsTopLevelOrWasAliased.selector, useTopLevel, callcodeCase
|
|
112
108
|
);
|
|
113
109
|
assembly {
|
|
114
110
|
success := callcode(gas(), address(), 0, add(data, 32), mload(data), 0, 0)
|
|
@@ -116,13 +112,10 @@ contract Simple {
|
|
|
116
112
|
require(success, "CALLCODE_FAILED");
|
|
117
113
|
|
|
118
114
|
// CALL
|
|
119
|
-
data =
|
|
120
|
-
this.checkIsTopLevelOrWasAliased.selector,
|
|
121
|
-
useTopLevel,
|
|
122
|
-
callCase
|
|
123
|
-
);
|
|
115
|
+
data =
|
|
116
|
+
abi.encodeWithSelector(this.checkIsTopLevelOrWasAliased.selector, useTopLevel, callCase);
|
|
124
117
|
// solhint-disable-next-line avoid-low-level-calls
|
|
125
|
-
(success,
|
|
118
|
+
(success,) = address(this).call(data);
|
|
126
119
|
require(success, "CALL_FAILED");
|
|
127
120
|
}
|
|
128
121
|
|
|
@@ -132,7 +125,7 @@ contract Simple {
|
|
|
132
125
|
// so we ignore the result of this call.
|
|
133
126
|
// solhint-disable-next-line avoid-low-level-calls
|
|
134
127
|
// solc-ignore-next-line unused-call-retval
|
|
135
|
-
to.staticcall{gas: before - 10000}(input)
|
|
128
|
+
to.staticcall{gas: before - 10000}(input);// forgefmt: disable-line
|
|
136
129
|
return before - gasleft();
|
|
137
130
|
}
|
|
138
131
|
|
|
@@ -145,12 +138,7 @@ contract Simple {
|
|
|
145
138
|
uint256 delayedMessagesRead = sequencerInbox.totalDelayedMessagesRead();
|
|
146
139
|
for (uint256 i = 0; i < numberToPost; i++) {
|
|
147
140
|
sequencerInbox.addSequencerL2Batch(
|
|
148
|
-
sequenceNumber,
|
|
149
|
-
batchData,
|
|
150
|
-
delayedMessagesRead,
|
|
151
|
-
IGasRefunder(address(0)),
|
|
152
|
-
0,
|
|
153
|
-
0
|
|
141
|
+
sequenceNumber, batchData, delayedMessagesRead, IGasRefunder(address(0)), 0, 0
|
|
154
142
|
);
|
|
155
143
|
sequenceNumber++;
|
|
156
144
|
}
|
|
@@ -3,18 +3,25 @@
|
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
6
7
|
import "../precompiles/ArbWasmCache.sol";
|
|
7
8
|
|
|
8
9
|
contract SimpleCacheManager {
|
|
9
|
-
function cacheProgram(
|
|
10
|
+
function cacheProgram(
|
|
11
|
+
address program
|
|
12
|
+
) external {
|
|
10
13
|
ArbWasmCache(address(0x72)).cacheProgram(program);
|
|
11
14
|
}
|
|
12
15
|
|
|
13
|
-
function evictProgram(
|
|
16
|
+
function evictProgram(
|
|
17
|
+
address program
|
|
18
|
+
) external {
|
|
14
19
|
ArbWasmCache(address(0x72)).evictCodehash(codehash(program));
|
|
15
20
|
}
|
|
16
21
|
|
|
17
|
-
function codehash(
|
|
22
|
+
function codehash(
|
|
23
|
+
address program
|
|
24
|
+
) internal view returns (bytes32 hash) {
|
|
18
25
|
assembly {
|
|
19
26
|
hash := extcodehash(program)
|
|
20
27
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Copyright 2023, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/offchainlabs/bold/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.17;
|
|
6
|
+
|
|
7
|
+
import "../challengeV2/EdgeChallengeManager.sol";
|
|
8
|
+
import "../state/Deserialize.sol";
|
|
9
|
+
|
|
10
|
+
contract SimpleOneStepProofEntry is IOneStepProofEntry {
|
|
11
|
+
using GlobalStateLib for GlobalState;
|
|
12
|
+
|
|
13
|
+
// End the batch after 2000 steps. This results in 11 blocks for an honest validator.
|
|
14
|
+
// This constant must be synchronized with the one in execution/engine.go
|
|
15
|
+
uint64 public constant STEPS_PER_BATCH = 2000;
|
|
16
|
+
|
|
17
|
+
function getStartMachineHash(
|
|
18
|
+
bytes32 globalStateHash,
|
|
19
|
+
bytes32 wasmModuleRoot
|
|
20
|
+
) external pure returns (bytes32) {
|
|
21
|
+
return keccak256(abi.encodePacked("Machine:", globalStateHash, wasmModuleRoot));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function proveOneStep(
|
|
25
|
+
ExecutionContext calldata execCtx,
|
|
26
|
+
uint256 step,
|
|
27
|
+
bytes32 beforeHash,
|
|
28
|
+
bytes calldata proof
|
|
29
|
+
) external view returns (bytes32 afterHash) {
|
|
30
|
+
if (proof.length == 0) {
|
|
31
|
+
revert("EMPTY_PROOF");
|
|
32
|
+
}
|
|
33
|
+
GlobalState memory globalState;
|
|
34
|
+
uint256 offset;
|
|
35
|
+
(globalState.u64Vals[0], offset) = Deserialize.u64(proof, offset);
|
|
36
|
+
(globalState.u64Vals[1], offset) = Deserialize.u64(proof, offset);
|
|
37
|
+
if (step > 0 && (beforeHash[0] == 0 || globalState.getPositionInMessage() == 0)) {
|
|
38
|
+
// We end the block when the first byte of the hash hits 0 or we advance a batch
|
|
39
|
+
return beforeHash;
|
|
40
|
+
}
|
|
41
|
+
if (globalState.getInboxPosition() >= execCtx.maxInboxMessagesRead) {
|
|
42
|
+
// We can't continue further because we've hit the max inbox messages read
|
|
43
|
+
return beforeHash;
|
|
44
|
+
}
|
|
45
|
+
require(globalState.hash() == beforeHash, "BAD_PROOF");
|
|
46
|
+
globalState.u64Vals[1]++;
|
|
47
|
+
if (globalState.u64Vals[1] % STEPS_PER_BATCH == 0) {
|
|
48
|
+
globalState.u64Vals[0]++;
|
|
49
|
+
globalState.u64Vals[1] = 0;
|
|
50
|
+
}
|
|
51
|
+
return globalState.hash();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function getMachineHash(
|
|
55
|
+
ExecutionState calldata execState
|
|
56
|
+
) external pure override returns (bytes32) {
|
|
57
|
+
require(execState.machineStatus == MachineStatus.FINISHED, "BAD_MACHINE_STATUS");
|
|
58
|
+
return execState.globalState.hash();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
8
|
+
|
|
9
|
+
interface IWETH9 {
|
|
10
|
+
function deposit() external payable;
|
|
11
|
+
|
|
12
|
+
function withdraw(
|
|
13
|
+
uint256 _amount
|
|
14
|
+
) external;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
contract TestWETH9 is ERC20, IWETH9 {
|
|
18
|
+
constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}
|
|
19
|
+
|
|
20
|
+
function deposit() external payable override {
|
|
21
|
+
_mint(msg.sender, msg.value);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function withdraw(
|
|
25
|
+
uint256 _amount
|
|
26
|
+
) external override {
|
|
27
|
+
_burn(msg.sender, _amount);
|
|
28
|
+
payable(address(msg.sender)).transfer(_amount);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -47,16 +47,13 @@ contract UpgradeExecutorMock is
|
|
|
47
47
|
/// @dev Only executor can call this. Since we're using a delegatecall here the Upgrade contract
|
|
48
48
|
/// will have access to the state of this contract - including the roles. Only upgrade contracts
|
|
49
49
|
/// that do not touch local state should be used.
|
|
50
|
-
function execute(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
nonReentrant
|
|
55
|
-
{
|
|
50
|
+
function execute(
|
|
51
|
+
address upgrade,
|
|
52
|
+
bytes memory upgradeCallData
|
|
53
|
+
) public payable onlyRole(EXECUTOR_ROLE) nonReentrant {
|
|
56
54
|
// OZ Address library check if the address is a contract and bubble up inner revert reason
|
|
57
55
|
address(upgrade).functionDelegateCall(
|
|
58
|
-
upgradeCallData,
|
|
59
|
-
"UpgradeExecutor: inner delegate call failed without reason"
|
|
56
|
+
upgradeCallData, "UpgradeExecutor: inner delegate call failed without reason"
|
|
60
57
|
);
|
|
61
58
|
|
|
62
59
|
emit UpgradeExecuted(upgrade, msg.value, upgradeCallData);
|
|
@@ -64,17 +61,13 @@ contract UpgradeExecutorMock is
|
|
|
64
61
|
|
|
65
62
|
/// @notice Execute an upgrade by directly calling target contract
|
|
66
63
|
/// @dev Only executor can call this.
|
|
67
|
-
function executeCall(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
nonReentrant
|
|
72
|
-
{
|
|
64
|
+
function executeCall(
|
|
65
|
+
address target,
|
|
66
|
+
bytes memory targetCallData
|
|
67
|
+
) public payable onlyRole(EXECUTOR_ROLE) nonReentrant {
|
|
73
68
|
// OZ Address library check if the address is a contract and bubble up inner revert reason
|
|
74
69
|
address(target).functionCallWithValue(
|
|
75
|
-
targetCallData,
|
|
76
|
-
msg.value,
|
|
77
|
-
"UpgradeExecutor: inner call failed without reason"
|
|
70
|
+
targetCallData, msg.value, "UpgradeExecutor: inner call failed without reason"
|
|
78
71
|
);
|
|
79
72
|
|
|
80
73
|
emit TargetCallExecuted(target, msg.value, targetCallData);
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
pragma solidity >=0.4.21 <0.9.0;
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* @title Interface for providing gas estimation for retryable auto-redeems and constructing outbox proofs
|
|
8
9
|
* @notice This contract doesn't exist on-chain. Instead it is a virtual interface accessible at
|
|
9
10
|
* 0x00000000000000000000000000000000000000C8
|
|
10
11
|
* This is a cute trick to allow an Arbitrum node to provide data without us having to implement additional RPCs
|
|
@@ -41,14 +42,10 @@ interface NodeInterface {
|
|
|
41
42
|
* @return root the root of the outbox accumulator
|
|
42
43
|
* @return proof level-by-level branch hashes constituting a proof of the send's membership at the given size
|
|
43
44
|
*/
|
|
44
|
-
function constructOutboxProof(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
bytes32 send,
|
|
49
|
-
bytes32 root,
|
|
50
|
-
bytes32[] memory proof
|
|
51
|
-
);
|
|
45
|
+
function constructOutboxProof(
|
|
46
|
+
uint64 size,
|
|
47
|
+
uint64 leaf
|
|
48
|
+
) external view returns (bytes32 send, bytes32 root, bytes32[] memory proof);
|
|
52
49
|
|
|
53
50
|
/**
|
|
54
51
|
* @notice Finds the L1 batch containing a requested L2 block, reverting if none does.
|
|
@@ -57,7 +54,9 @@ interface NodeInterface {
|
|
|
57
54
|
* @param blockNum The L2 block being queried
|
|
58
55
|
* @return batch The sequencer batch number containing the requested L2 block
|
|
59
56
|
*/
|
|
60
|
-
function findBatchContainingBlock(
|
|
57
|
+
function findBatchContainingBlock(
|
|
58
|
+
uint64 blockNum
|
|
59
|
+
) external view returns (uint64 batch);
|
|
61
60
|
|
|
62
61
|
/**
|
|
63
62
|
* @notice Gets the number of L1 confirmations of the sequencer batch producing the requested L2 block
|
|
@@ -68,7 +67,9 @@ interface NodeInterface {
|
|
|
68
67
|
* @param blockHash The hash of the L2 block being queried
|
|
69
68
|
* @return confirmations The number of L1 confirmations the sequencer batch has. Returns 0 if block not yet included in an L1 batch.
|
|
70
69
|
*/
|
|
71
|
-
function getL1Confirmations(
|
|
70
|
+
function getL1Confirmations(
|
|
71
|
+
bytes32 blockHash
|
|
72
|
+
) external view returns (uint64 confirmations);
|
|
72
73
|
|
|
73
74
|
/**
|
|
74
75
|
* @notice Same as native gas estimation, but with additional info on the l1 costs.
|
|
@@ -116,11 +117,7 @@ interface NodeInterface {
|
|
|
116
117
|
)
|
|
117
118
|
external
|
|
118
119
|
payable
|
|
119
|
-
returns (
|
|
120
|
-
uint64 gasEstimateForL1,
|
|
121
|
-
uint256 baseFee,
|
|
122
|
-
uint256 l1BaseFeeEstimate
|
|
123
|
-
);
|
|
120
|
+
returns (uint64 gasEstimateForL1, uint256 baseFee, uint256 l1BaseFeeEstimate);
|
|
124
121
|
|
|
125
122
|
/**
|
|
126
123
|
* @notice Returns the proof necessary to redeem a message
|
|
@@ -136,7 +133,10 @@ interface NodeInterface {
|
|
|
136
133
|
* @return amount value in L1 message in wei
|
|
137
134
|
* @return calldataForL1 abi-encoded L1 message data
|
|
138
135
|
*/
|
|
139
|
-
function legacyLookupMessageBatchProof(
|
|
136
|
+
function legacyLookupMessageBatchProof(
|
|
137
|
+
uint256 batchNum,
|
|
138
|
+
uint64 index
|
|
139
|
+
)
|
|
140
140
|
external
|
|
141
141
|
view
|
|
142
142
|
returns (
|
|
@@ -158,7 +158,9 @@ interface NodeInterface {
|
|
|
158
158
|
|
|
159
159
|
// @notice Returns the L1 block number of the L2 block
|
|
160
160
|
// @return l1BlockNum The L1 block number
|
|
161
|
-
function blockL1Num(
|
|
161
|
+
function blockL1Num(
|
|
162
|
+
uint64 l2BlockNum
|
|
163
|
+
) external view returns (uint64 l1BlockNum);
|
|
162
164
|
|
|
163
165
|
/**
|
|
164
166
|
* @notice Finds the L2 block number range that has the given L1 block number
|
|
@@ -167,8 +169,7 @@ interface NodeInterface {
|
|
|
167
169
|
* @return firstBlock The first L2 block number with the given L1 block number
|
|
168
170
|
* @return lastBlock The last L2 block number with the given L1 block number
|
|
169
171
|
*/
|
|
170
|
-
function l2BlockRangeForL1(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
returns (uint64 firstBlock, uint64 lastBlock);
|
|
172
|
+
function l2BlockRangeForL1(
|
|
173
|
+
uint64 blockNum
|
|
174
|
+
) external view returns (uint64 firstBlock, uint64 lastBlock);
|
|
174
175
|
}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
pragma solidity >=0.4.21 <0.9.0;
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* @title An extension to NodeInterface not meant for public consumption. Do not call.
|
|
8
9
|
* @notice This contract doesn't exist on-chain. Instead it is a virtual interface accessible at 0xc9.
|
|
9
10
|
* These methods add additional debugging and network monitoring instruments not intended for end users and
|
|
10
11
|
* as such may change without notice.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
interface NodeInterfaceDebug {
|
|
14
14
|
struct RetryableInfo {
|
|
15
15
|
uint64 timeout;
|
|
@@ -26,5 +26,7 @@ interface NodeInterfaceDebug {
|
|
|
26
26
|
* @param ticket the retryable's id
|
|
27
27
|
* @return retryable the serialized retryable
|
|
28
28
|
*/
|
|
29
|
-
function getRetryable(
|
|
29
|
+
function getRetryable(
|
|
30
|
+
bytes32 ticket
|
|
31
|
+
) external view returns (RetryableInfo memory retryable);
|
|
30
32
|
}
|
|
@@ -30,10 +30,10 @@ contract HashProofHelper {
|
|
|
30
30
|
uint256 private constant MAX_PART_LENGTH = 32;
|
|
31
31
|
uint256 private constant KECCAK_ROUND_INPUT = 136;
|
|
32
32
|
|
|
33
|
-
function proveWithFullPreimage(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{
|
|
33
|
+
function proveWithFullPreimage(
|
|
34
|
+
bytes calldata data,
|
|
35
|
+
uint64 offset
|
|
36
|
+
) external returns (bytes32 fullHash) {
|
|
37
37
|
fullHash = keccak256(data);
|
|
38
38
|
bytes memory part;
|
|
39
39
|
if (data.length > offset) {
|
|
@@ -96,11 +96,7 @@ contract HashProofHelper {
|
|
|
96
96
|
delete keccakStates[msg.sender];
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
function keccakUpdate(
|
|
100
|
-
KeccakState storage state,
|
|
101
|
-
bytes calldata data,
|
|
102
|
-
bool isFinal
|
|
103
|
-
) internal {
|
|
99
|
+
function keccakUpdate(KeccakState storage state, bytes calldata data, bool isFinal) internal {
|
|
104
100
|
state.length += data.length;
|
|
105
101
|
while (true) {
|
|
106
102
|
if (data.length == 0 && !isFinal) {
|
|
@@ -144,7 +140,10 @@ contract HashProofHelper {
|
|
|
144
140
|
}
|
|
145
141
|
|
|
146
142
|
/// Retrieves up to 32 bytes of the preimage of fullHash at the given offset, reverting if it hasn't been proven yet.
|
|
147
|
-
function getPreimagePart(
|
|
143
|
+
function getPreimagePart(
|
|
144
|
+
bytes32 fullHash,
|
|
145
|
+
uint64 offset
|
|
146
|
+
) external view returns (bytes memory) {
|
|
148
147
|
PreimagePart storage part = preimageParts[fullHash][offset];
|
|
149
148
|
if (!part.proven) {
|
|
150
149
|
revert NotProven(fullHash, offset);
|