@arbitrum/nitro-contracts 2.1.1-beta.0 → 3.0.0-alpha.1
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/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +14 -1
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +16 -3
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +11 -4
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +89 -92
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +16 -8
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +134 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +343 -279
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +559 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/Structs.sol +176 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CallerChecker.sol +18 -0
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +21 -3
- package/src/libraries/GasRefundEnabled.sol +5 -6
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/CreateTest.sol +3 -1
- package/src/mocks/HostioTest.sol +20 -16
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +84 -71
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/express-lane-auction/Balance.sol +0 -142
- package/src/express-lane-auction/Burner.sol +0 -25
- package/src/express-lane-auction/ELCRound.sol +0 -73
- package/src/express-lane-auction/Errors.sol +0 -31
- package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
- package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
- package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -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);
|
|
@@ -5,21 +5,22 @@
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
6
|
|
|
7
7
|
import "./IOneStepProver.sol";
|
|
8
|
+
import "../state/Machine.sol";
|
|
8
9
|
|
|
9
10
|
library OneStepProofEntryLib {
|
|
10
11
|
uint256 internal constant MAX_STEPS = 1 << 43;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
returns (bytes32);
|
|
14
|
+
struct ExecutionState {
|
|
15
|
+
GlobalState globalState;
|
|
16
|
+
MachineStatus machineStatus;
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
interface IOneStepProofEntry {
|
|
20
|
+
function getStartMachineHash(
|
|
21
|
+
bytes32 globalStateHash,
|
|
22
|
+
bytes32 wasmModuleRoot
|
|
23
|
+
) external pure returns (bytes32);
|
|
23
24
|
|
|
24
25
|
function proveOneStep(
|
|
25
26
|
ExecutionContext calldata execCtx,
|
|
@@ -27,4 +28,8 @@ interface IOneStepProofEntry {
|
|
|
27
28
|
bytes32 beforeHash,
|
|
28
29
|
bytes calldata proof
|
|
29
30
|
) external view returns (bytes32 afterHash);
|
|
31
|
+
|
|
32
|
+
function getMachineHash(
|
|
33
|
+
ExecutionState calldata execState
|
|
34
|
+
) external pure returns (bytes32);
|
|
30
35
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
2
|
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
@@ -14,6 +14,7 @@ import "./IOneStepProofEntry.sol";
|
|
|
14
14
|
contract OneStepProofEntry is IOneStepProofEntry {
|
|
15
15
|
using MerkleProofLib for MerkleProof;
|
|
16
16
|
using MachineLib for Machine;
|
|
17
|
+
using GlobalStateLib for GlobalState;
|
|
17
18
|
using MultiStackLib for MultiStack;
|
|
18
19
|
|
|
19
20
|
using ValueStackLib for ValueStack;
|
|
@@ -36,12 +37,11 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
36
37
|
proverHostIo = proverHostIo_;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
// Copied from
|
|
40
|
-
function getStartMachineHash(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{
|
|
40
|
+
// Copied from OldChallengeLib.sol
|
|
41
|
+
function getStartMachineHash(
|
|
42
|
+
bytes32 globalStateHash,
|
|
43
|
+
bytes32 wasmModuleRoot
|
|
44
|
+
) public pure returns (bytes32) {
|
|
45
45
|
// Start the value stack with the function call ABI for the entrypoint
|
|
46
46
|
Value[] memory startingValues = new Value[](3);
|
|
47
47
|
startingValues[0] = ValueLib.newRefNull();
|
|
@@ -71,20 +71,15 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
71
71
|
return mach.hash();
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return keccak256(abi.encodePacked("Machine finished:", globalStateHash));
|
|
82
|
-
} else if (status == MachineStatus.ERRORED) {
|
|
83
|
-
return keccak256(abi.encodePacked("Machine errored:"));
|
|
84
|
-
} else if (status == MachineStatus.TOO_FAR) {
|
|
85
|
-
return keccak256(abi.encodePacked("Machine too far:"));
|
|
74
|
+
function getMachineHash(
|
|
75
|
+
ExecutionState calldata execState
|
|
76
|
+
) external pure override returns (bytes32) {
|
|
77
|
+
if (execState.machineStatus == MachineStatus.FINISHED) {
|
|
78
|
+
return keccak256(abi.encodePacked("Machine finished:", execState.globalState.hash()));
|
|
79
|
+
} else if (execState.machineStatus == MachineStatus.ERRORED) {
|
|
80
|
+
return keccak256(abi.encodePacked("Machine errored:", execState.globalState.hash()));
|
|
86
81
|
} else {
|
|
87
|
-
revert("
|
|
82
|
+
revert("BAD_MACHINE_STATUS");
|
|
88
83
|
}
|
|
89
84
|
}
|
|
90
85
|
|
|
@@ -106,6 +101,16 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
106
101
|
if (mach.status != MachineStatus.RUNNING) {
|
|
107
102
|
// Machine is halted.
|
|
108
103
|
// WARNING: at this point, most machine fields are unconstrained.
|
|
104
|
+
GlobalState memory globalState;
|
|
105
|
+
(globalState, offset) = Deserialize.globalState(proof, offset);
|
|
106
|
+
require(globalState.hash() == mach.globalStateHash, "BAD_GLOBAL_STATE");
|
|
107
|
+
if (
|
|
108
|
+
mach.status == MachineStatus.FINISHED && machineStep == 0
|
|
109
|
+
&& globalState.getInboxPosition() < execCtx.maxInboxMessagesRead
|
|
110
|
+
) {
|
|
111
|
+
// Kickstart the machine
|
|
112
|
+
return getStartMachineHash(mach.globalStateHash, execCtx.initialWasmModuleRoot);
|
|
113
|
+
}
|
|
109
114
|
return mach.hash();
|
|
110
115
|
}
|
|
111
116
|
|
|
@@ -128,14 +133,10 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
128
133
|
(codeChunk, offset) = Deserialize.instructions(proof, offset);
|
|
129
134
|
(codeProof, offset) = Deserialize.merkleProof(proof, offset);
|
|
130
135
|
(funcProof, offset) = Deserialize.merkleProof(proof, offset);
|
|
131
|
-
bytes32 codeHash =
|
|
132
|
-
mach.functionPc / 64,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
bytes32 recomputedRoot = funcProof.computeRootFromFunction(
|
|
136
|
-
mach.functionIdx,
|
|
137
|
-
codeHash
|
|
138
|
-
);
|
|
136
|
+
bytes32 codeHash =
|
|
137
|
+
codeProof.computeRootFromInstructions(mach.functionPc / 64, codeChunk);
|
|
138
|
+
bytes32 recomputedRoot =
|
|
139
|
+
funcProof.computeRootFromFunction(mach.functionIdx, codeHash);
|
|
139
140
|
require(recomputedRoot == mod.functionsMerkleRoot, "BAD_FUNCTIONS_ROOT");
|
|
140
141
|
inst = codeChunk[mach.functionPc % 64];
|
|
141
142
|
}
|
|
@@ -147,36 +148,44 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
147
148
|
uint16 opcode = inst.opcode;
|
|
148
149
|
IOneStepProver prover;
|
|
149
150
|
if (
|
|
150
|
-
(opcode >= Instructions.I32_LOAD && opcode <= Instructions.I64_LOAD32_U)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
opcode == Instructions.MEMORY_GROW
|
|
151
|
+
(opcode >= Instructions.I32_LOAD && opcode <= Instructions.I64_LOAD32_U)
|
|
152
|
+
|| (opcode >= Instructions.I32_STORE && opcode <= Instructions.I64_STORE32)
|
|
153
|
+
|| opcode == Instructions.MEMORY_SIZE || opcode == Instructions.MEMORY_GROW
|
|
154
154
|
) {
|
|
155
155
|
prover = proverMem;
|
|
156
156
|
} else if (
|
|
157
|
-
(opcode == Instructions.I32_EQZ || opcode == Instructions.I64_EQZ)
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
157
|
+
(opcode == Instructions.I32_EQZ || opcode == Instructions.I64_EQZ)
|
|
158
|
+
|| (
|
|
159
|
+
opcode >= Instructions.I32_RELOP_BASE
|
|
160
|
+
&& opcode <= Instructions.I32_RELOP_BASE + Instructions.IRELOP_LAST
|
|
161
|
+
)
|
|
162
|
+
|| (
|
|
163
|
+
opcode >= Instructions.I32_UNOP_BASE
|
|
164
|
+
&& opcode <= Instructions.I32_UNOP_BASE + Instructions.IUNOP_LAST
|
|
165
|
+
) || (opcode >= Instructions.I32_ADD && opcode <= Instructions.I32_ROTR)
|
|
166
|
+
|| (
|
|
167
|
+
opcode >= Instructions.I64_RELOP_BASE
|
|
168
|
+
&& opcode <= Instructions.I64_RELOP_BASE + Instructions.IRELOP_LAST
|
|
169
|
+
)
|
|
170
|
+
|| (
|
|
171
|
+
opcode >= Instructions.I64_UNOP_BASE
|
|
172
|
+
&& opcode <= Instructions.I64_UNOP_BASE + Instructions.IUNOP_LAST
|
|
173
|
+
) || (opcode >= Instructions.I64_ADD && opcode <= Instructions.I64_ROTR)
|
|
174
|
+
|| (opcode == Instructions.I32_WRAP_I64)
|
|
175
|
+
|| (opcode == Instructions.I64_EXTEND_I32_S || opcode == Instructions.I64_EXTEND_I32_U)
|
|
176
|
+
|| (opcode >= Instructions.I32_EXTEND_8S && opcode <= Instructions.I64_EXTEND_32S)
|
|
177
|
+
|| (
|
|
178
|
+
opcode >= Instructions.I32_REINTERPRET_F32
|
|
179
|
+
&& opcode <= Instructions.F64_REINTERPRET_I64
|
|
180
|
+
)
|
|
173
181
|
) {
|
|
174
182
|
prover = proverMath;
|
|
175
183
|
} else if (
|
|
176
|
-
(
|
|
177
|
-
opcode
|
|
178
|
-
|
|
179
|
-
(opcode >= Instructions.
|
|
184
|
+
(
|
|
185
|
+
opcode >= Instructions.GET_GLOBAL_STATE_BYTES32
|
|
186
|
+
&& opcode <= Instructions.SET_GLOBAL_STATE_U64
|
|
187
|
+
) || (opcode >= Instructions.READ_PRE_IMAGE && opcode <= Instructions.UNLINK_MODULE)
|
|
188
|
+
|| (opcode >= Instructions.NEW_COTHREAD && opcode <= Instructions.SWITCH_COTHREAD)
|
|
180
189
|
) {
|
|
181
190
|
prover = proverHostIo;
|
|
182
191
|
} else {
|
|
@@ -185,8 +194,8 @@ contract OneStepProofEntry is IOneStepProofEntry {
|
|
|
185
194
|
|
|
186
195
|
(mach, mod) = prover.executeOneStep(execCtx, mach, mod, inst, proof);
|
|
187
196
|
|
|
188
|
-
bool updateRoot =
|
|
189
|
-
opcode == Instructions.UNLINK_MODULE);
|
|
197
|
+
bool updateRoot =
|
|
198
|
+
!(opcode == Instructions.LINK_MODULE || opcode == Instructions.UNLINK_MODULE);
|
|
190
199
|
if (updateRoot) {
|
|
191
200
|
mach.modulesRoot = modProof.computeRootFromModule(oldModIdx, mod);
|
|
192
201
|
}
|
|
@@ -94,7 +94,9 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
94
94
|
mach.setPc(frame.returnPc);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
function createReturnValue(
|
|
97
|
+
function createReturnValue(
|
|
98
|
+
Machine memory mach
|
|
99
|
+
) internal pure returns (Value memory) {
|
|
98
100
|
return ValueLib.newPc(mach.functionPc, mach.functionIdx, mach.moduleIdx);
|
|
99
101
|
}
|
|
100
102
|
|
|
@@ -252,16 +254,11 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
252
254
|
(tableMerkleProof, offset) = Deserialize.merkleProof(proof, offset);
|
|
253
255
|
|
|
254
256
|
// Validate the information by recomputing known hashes
|
|
255
|
-
bytes32 recomputed =
|
|
256
|
-
abi.encodePacked("Call indirect:", tableIdx, wantedFuncTypeHash)
|
|
257
|
-
);
|
|
257
|
+
bytes32 recomputed =
|
|
258
|
+
keccak256(abi.encodePacked("Call indirect:", tableIdx, wantedFuncTypeHash));
|
|
258
259
|
require(recomputed == bytes32(inst.argumentData), "BAD_CALL_INDIRECT_DATA");
|
|
259
|
-
recomputed =
|
|
260
|
-
tableIdx,
|
|
261
|
-
tableType,
|
|
262
|
-
tableSize,
|
|
263
|
-
elemsRoot
|
|
264
|
-
);
|
|
260
|
+
recomputed =
|
|
261
|
+
tableMerkleProof.computeRootFromTable(tableIdx, tableType, tableSize, elemsRoot);
|
|
265
262
|
require(recomputed == mod.tablesMerkleRoot, "BAD_TABLES_ROOT");
|
|
266
263
|
|
|
267
264
|
// Check if the table access is out of bounds
|
|
@@ -278,9 +275,7 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
278
275
|
(functionPointer, offset) = Deserialize.value(proof, offset);
|
|
279
276
|
(elementMerkleProof, offset) = Deserialize.merkleProof(proof, offset);
|
|
280
277
|
bytes32 recomputedElemRoot = elementMerkleProof.computeRootFromElement(
|
|
281
|
-
elementIdx,
|
|
282
|
-
elemFuncTypeHash,
|
|
283
|
-
functionPointer
|
|
278
|
+
elementIdx, elemFuncTypeHash, functionPointer
|
|
284
279
|
);
|
|
285
280
|
require(recomputedElemRoot == elemsRoot, "BAD_ELEMENTS_ROOT");
|
|
286
281
|
|
|
@@ -390,12 +385,8 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
390
385
|
) internal pure {
|
|
391
386
|
Value memory newVal = mach.valueStack.pop();
|
|
392
387
|
StackFrame memory frame = mach.frameStack.peek();
|
|
393
|
-
frame.localsMerkleRoot =
|
|
394
|
-
frame.localsMerkleRoot,
|
|
395
|
-
inst.argumentData,
|
|
396
|
-
newVal,
|
|
397
|
-
proof
|
|
398
|
-
);
|
|
388
|
+
frame.localsMerkleRoot =
|
|
389
|
+
merkleProveSetValue(frame.localsMerkleRoot, inst.argumentData, newVal, proof);
|
|
399
390
|
}
|
|
400
391
|
|
|
401
392
|
function executeGlobalGet(
|
|
@@ -415,12 +406,8 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
415
406
|
bytes calldata proof
|
|
416
407
|
) internal pure {
|
|
417
408
|
Value memory newVal = mach.valueStack.pop();
|
|
418
|
-
mod.globalsMerkleRoot =
|
|
419
|
-
mod.globalsMerkleRoot,
|
|
420
|
-
inst.argumentData,
|
|
421
|
-
newVal,
|
|
422
|
-
proof
|
|
423
|
-
);
|
|
409
|
+
mod.globalsMerkleRoot =
|
|
410
|
+
merkleProveSetValue(mod.globalsMerkleRoot, inst.argumentData, newVal, proof);
|
|
424
411
|
}
|
|
425
412
|
|
|
426
413
|
function executeInitFrame(
|
|
@@ -523,8 +510,8 @@ contract OneStepProver0 is IOneStepProver {
|
|
|
523
510
|
} else if (opcode >= Instructions.I32_CONST && opcode <= Instructions.F64_CONST) {
|
|
524
511
|
impl = executeConstPush;
|
|
525
512
|
} else if (
|
|
526
|
-
opcode == Instructions.MOVE_FROM_STACK_TO_INTERNAL
|
|
527
|
-
|
|
513
|
+
opcode == Instructions.MOVE_FROM_STACK_TO_INTERNAL
|
|
514
|
+
|| opcode == Instructions.MOVE_FROM_INTERNAL_TO_STACK
|
|
528
515
|
) {
|
|
529
516
|
impl = executeMoveInternal;
|
|
530
517
|
} else if (opcode == Instructions.DUP) {
|