@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
|
@@ -1,243 +1 @@
|
|
|
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
1
|
pragma solidity ^0.8.0;
|
|
6
|
-
|
|
7
|
-
pragma experimental ABIEncoderV2;
|
|
8
|
-
|
|
9
|
-
import "../rollup/IRollupCore.sol";
|
|
10
|
-
import "../challenge/IChallengeManager.sol";
|
|
11
|
-
import "./IRollupLogic.sol";
|
|
12
|
-
|
|
13
|
-
import {NO_CHAL_INDEX} from "../libraries/Constants.sol";
|
|
14
|
-
|
|
15
|
-
contract ValidatorUtils {
|
|
16
|
-
using NodeLib for Node;
|
|
17
|
-
|
|
18
|
-
enum ConfirmType {
|
|
19
|
-
NONE,
|
|
20
|
-
VALID,
|
|
21
|
-
INVALID
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
enum NodeConflictType {
|
|
25
|
-
NONE,
|
|
26
|
-
FOUND,
|
|
27
|
-
INDETERMINATE,
|
|
28
|
-
INCOMPLETE
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
struct NodeConflict {
|
|
32
|
-
NodeConflictType ty;
|
|
33
|
-
uint64 node1;
|
|
34
|
-
uint64 node2;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function findStakerConflict(
|
|
38
|
-
IRollupCore rollup,
|
|
39
|
-
address staker1,
|
|
40
|
-
address staker2,
|
|
41
|
-
uint256 maxDepth
|
|
42
|
-
) external view returns (NodeConflict memory) {
|
|
43
|
-
uint64 staker1NodeNum = rollup.latestStakedNode(staker1);
|
|
44
|
-
uint64 staker2NodeNum = rollup.latestStakedNode(staker2);
|
|
45
|
-
return findNodeConflict(rollup, staker1NodeNum, staker2NodeNum, maxDepth);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function checkDecidableNextNode(IRollupUserAbs rollup) external view returns (ConfirmType) {
|
|
49
|
-
try ValidatorUtils(address(this)).requireConfirmable(rollup) {
|
|
50
|
-
return ConfirmType.VALID;
|
|
51
|
-
} catch {}
|
|
52
|
-
|
|
53
|
-
try ValidatorUtils(address(this)).requireRejectable(rollup) {
|
|
54
|
-
return ConfirmType.INVALID;
|
|
55
|
-
} catch {
|
|
56
|
-
return ConfirmType.NONE;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function requireRejectable(IRollupCore rollup) external view {
|
|
61
|
-
IRollupUser(address(rollup)).requireUnresolvedExists();
|
|
62
|
-
uint64 firstUnresolvedNode = rollup.firstUnresolvedNode();
|
|
63
|
-
Node memory node = rollup.getNode(firstUnresolvedNode);
|
|
64
|
-
if (node.prevNum == rollup.latestConfirmed()) {
|
|
65
|
-
// Verify the block's deadline has passed
|
|
66
|
-
require(block.number >= node.deadlineBlock, "BEFORE_DEADLINE");
|
|
67
|
-
rollup.getNode(node.prevNum).requirePastChildConfirmDeadline();
|
|
68
|
-
|
|
69
|
-
// Verify that no staker is staked on this node
|
|
70
|
-
require(
|
|
71
|
-
node.stakerCount ==
|
|
72
|
-
IRollupUser(address(rollup)).countStakedZombies(firstUnresolvedNode),
|
|
73
|
-
"HAS_STAKERS"
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function requireConfirmable(IRollupUserAbs rollup) external view {
|
|
79
|
-
rollup.requireUnresolvedExists();
|
|
80
|
-
|
|
81
|
-
uint256 stakerCount = rollup.stakerCount();
|
|
82
|
-
// There is at least one non-zombie staker
|
|
83
|
-
require(stakerCount > 0, "NO_STAKERS");
|
|
84
|
-
|
|
85
|
-
uint64 firstUnresolved = rollup.firstUnresolvedNode();
|
|
86
|
-
Node memory node = rollup.getNode(firstUnresolved);
|
|
87
|
-
|
|
88
|
-
// Verify the block's deadline has passed
|
|
89
|
-
node.requirePastDeadline();
|
|
90
|
-
|
|
91
|
-
// Check that prev is latest confirmed
|
|
92
|
-
assert(node.prevNum == rollup.latestConfirmed());
|
|
93
|
-
|
|
94
|
-
Node memory prevNode = rollup.getNode(node.prevNum);
|
|
95
|
-
prevNode.requirePastChildConfirmDeadline();
|
|
96
|
-
|
|
97
|
-
uint256 zombiesStakedOnOtherChildren = rollup.countZombiesStakedOnChildren(node.prevNum) -
|
|
98
|
-
rollup.countStakedZombies(firstUnresolved);
|
|
99
|
-
require(
|
|
100
|
-
prevNode.childStakerCount == node.stakerCount + zombiesStakedOnOtherChildren,
|
|
101
|
-
"NOT_ALL_STAKED"
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function refundableStakers(IRollupCore rollup) external view returns (address[] memory) {
|
|
106
|
-
uint256 stakerCount = rollup.stakerCount();
|
|
107
|
-
address[] memory stakers = new address[](stakerCount);
|
|
108
|
-
uint256 latestConfirmed = rollup.latestConfirmed();
|
|
109
|
-
uint256 index = 0;
|
|
110
|
-
for (uint64 i = 0; i < stakerCount; i++) {
|
|
111
|
-
address staker = rollup.getStakerAddress(i);
|
|
112
|
-
uint256 latestStakedNode = rollup.latestStakedNode(staker);
|
|
113
|
-
if (latestStakedNode <= latestConfirmed && rollup.currentChallenge(staker) == 0) {
|
|
114
|
-
stakers[index] = staker;
|
|
115
|
-
index++;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
assembly {
|
|
119
|
-
mstore(stakers, index)
|
|
120
|
-
}
|
|
121
|
-
return stakers;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function latestStaked(IRollupCore rollup, address staker)
|
|
125
|
-
external
|
|
126
|
-
view
|
|
127
|
-
returns (uint64, Node memory)
|
|
128
|
-
{
|
|
129
|
-
uint64 num = rollup.latestStakedNode(staker);
|
|
130
|
-
if (num == 0) {
|
|
131
|
-
num = rollup.latestConfirmed();
|
|
132
|
-
}
|
|
133
|
-
Node memory node = rollup.getNode(num);
|
|
134
|
-
return (num, node);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function stakedNodes(IRollupCore rollup, address staker)
|
|
138
|
-
external
|
|
139
|
-
view
|
|
140
|
-
returns (uint64[] memory)
|
|
141
|
-
{
|
|
142
|
-
uint64[] memory nodes = new uint64[](100000);
|
|
143
|
-
uint256 index = 0;
|
|
144
|
-
for (uint64 i = rollup.latestConfirmed(); i <= rollup.latestNodeCreated(); i++) {
|
|
145
|
-
if (rollup.nodeHasStaker(i, staker)) {
|
|
146
|
-
nodes[index] = i;
|
|
147
|
-
index++;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Shrink array down to real size
|
|
151
|
-
assembly {
|
|
152
|
-
mstore(nodes, index)
|
|
153
|
-
}
|
|
154
|
-
return nodes;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function findNodeConflict(
|
|
158
|
-
IRollupCore rollup,
|
|
159
|
-
uint64 node1,
|
|
160
|
-
uint64 node2,
|
|
161
|
-
uint256 maxDepth
|
|
162
|
-
) public view returns (NodeConflict memory) {
|
|
163
|
-
uint64 firstUnresolvedNode = rollup.firstUnresolvedNode();
|
|
164
|
-
uint64 node1Prev = rollup.getNode(node1).prevNum;
|
|
165
|
-
uint64 node2Prev = rollup.getNode(node2).prevNum;
|
|
166
|
-
|
|
167
|
-
for (uint256 i = 0; i < maxDepth; i++) {
|
|
168
|
-
if (node1 == node2) {
|
|
169
|
-
return NodeConflict(NodeConflictType.NONE, node1, node2);
|
|
170
|
-
}
|
|
171
|
-
if (node1Prev == node2Prev) {
|
|
172
|
-
return NodeConflict(NodeConflictType.FOUND, node1, node2);
|
|
173
|
-
}
|
|
174
|
-
if (node1Prev < firstUnresolvedNode && node2Prev < firstUnresolvedNode) {
|
|
175
|
-
return NodeConflict(NodeConflictType.INDETERMINATE, 0, 0);
|
|
176
|
-
}
|
|
177
|
-
if (node1Prev < node2Prev) {
|
|
178
|
-
node2 = node2Prev;
|
|
179
|
-
node2Prev = rollup.getNode(node2).prevNum;
|
|
180
|
-
} else {
|
|
181
|
-
node1 = node1Prev;
|
|
182
|
-
node1Prev = rollup.getNode(node1).prevNum;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return NodeConflict(NodeConflictType.INCOMPLETE, 0, 0);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
function getStakers(
|
|
189
|
-
IRollupCore rollup,
|
|
190
|
-
uint64 startIndex,
|
|
191
|
-
uint64 max
|
|
192
|
-
) public view returns (address[] memory, bool hasMore) {
|
|
193
|
-
uint256 maxStakers = rollup.stakerCount();
|
|
194
|
-
if (startIndex + max <= maxStakers) {
|
|
195
|
-
maxStakers = startIndex + max;
|
|
196
|
-
hasMore = true;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
address[] memory stakers = new address[](maxStakers);
|
|
200
|
-
for (uint64 i = 0; i < maxStakers; i++) {
|
|
201
|
-
stakers[i] = rollup.getStakerAddress(startIndex + i);
|
|
202
|
-
}
|
|
203
|
-
return (stakers, hasMore);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function timedOutChallenges(
|
|
207
|
-
IRollupCore rollup,
|
|
208
|
-
uint64 startIndex,
|
|
209
|
-
uint64 max
|
|
210
|
-
) external view returns (uint64[] memory, bool hasMore) {
|
|
211
|
-
(address[] memory stakers, bool hasMoreStakers) = getStakers(rollup, startIndex, max);
|
|
212
|
-
uint64[] memory challenges = new uint64[](stakers.length);
|
|
213
|
-
uint256 index = 0;
|
|
214
|
-
IChallengeManager challengeManager = rollup.challengeManager();
|
|
215
|
-
for (uint256 i = 0; i < stakers.length; i++) {
|
|
216
|
-
address staker = stakers[i];
|
|
217
|
-
uint64 challengeIndex = rollup.currentChallenge(staker);
|
|
218
|
-
if (
|
|
219
|
-
challengeIndex != NO_CHAL_INDEX &&
|
|
220
|
-
challengeManager.isTimedOut(challengeIndex) &&
|
|
221
|
-
challengeManager.currentResponder(challengeIndex) == staker
|
|
222
|
-
) {
|
|
223
|
-
challenges[index++] = challengeIndex;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
// Shrink array down to real size
|
|
227
|
-
assembly {
|
|
228
|
-
mstore(challenges, index)
|
|
229
|
-
}
|
|
230
|
-
return (challenges, hasMoreStakers);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
// Worst case runtime of O(depth), as it terminates if it switches paths.
|
|
234
|
-
function areUnresolvedNodesLinear(IRollupCore rollup) external view returns (bool) {
|
|
235
|
-
uint256 end = rollup.latestNodeCreated();
|
|
236
|
-
for (uint64 i = rollup.firstUnresolvedNode(); i <= end; i++) {
|
|
237
|
-
if (i > 0 && rollup.getNode(i).prevNum != i - 1) {
|
|
238
|
-
return false;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.0;
|
|
6
6
|
|
|
7
|
-
import "../challenge/IChallengeManager.sol";
|
|
8
7
|
import "../libraries/DelegateCallAware.sol";
|
|
9
8
|
import "../libraries/IGasRefunder.sol";
|
|
10
9
|
import "../libraries/GasRefundEnabled.sol";
|
|
@@ -33,20 +32,22 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
33
32
|
mapping(address => bool) public allowedExecutorDestinations;
|
|
34
33
|
|
|
35
34
|
modifier onlyExecutorOrOwner() {
|
|
36
|
-
if (!executors[_msgSender()] && owner() != _msgSender())
|
|
35
|
+
if (!executors[_msgSender()] && owner() != _msgSender()) {
|
|
37
36
|
revert NotExecutorOrOwner(_msgSender());
|
|
37
|
+
}
|
|
38
38
|
_;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
event ExecutorUpdated(address indexed executor, bool isExecutor);
|
|
42
42
|
|
|
43
43
|
/// @dev updates the executor addresses
|
|
44
|
-
function setExecutor(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{
|
|
48
|
-
if (newExecutors.length != isExecutor.length)
|
|
44
|
+
function setExecutor(
|
|
45
|
+
address[] calldata newExecutors,
|
|
46
|
+
bool[] calldata isExecutor
|
|
47
|
+
) external onlyOwner {
|
|
48
|
+
if (newExecutors.length != isExecutor.length) {
|
|
49
49
|
revert BadArrayLength(newExecutors.length, isExecutor.length);
|
|
50
|
+
}
|
|
50
51
|
unchecked {
|
|
51
52
|
for (uint64 i = 0; i < newExecutors.length; ++i) {
|
|
52
53
|
executors[newExecutors[i]] = isExecutor[i];
|
|
@@ -77,12 +78,13 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
77
78
|
event AllowedExecutorDestinationsUpdated(address indexed destination, bool isSet);
|
|
78
79
|
|
|
79
80
|
/// @notice updates the destination addresses which executors are allowed to call
|
|
80
|
-
function setAllowedExecutorDestinations(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
if (destinations.length != isSet.length)
|
|
81
|
+
function setAllowedExecutorDestinations(
|
|
82
|
+
address[] calldata destinations,
|
|
83
|
+
bool[] calldata isSet
|
|
84
|
+
) external onlyOwner {
|
|
85
|
+
if (destinations.length != isSet.length) {
|
|
85
86
|
revert BadArrayLength(destinations.length, isSet.length);
|
|
87
|
+
}
|
|
86
88
|
unchecked {
|
|
87
89
|
for (uint256 i = 0; i < destinations.length; ++i) {
|
|
88
90
|
allowedExecutorDestinations[destinations[i]] = isSet[i];
|
|
@@ -92,9 +94,12 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
/// @dev reverts if the current function can't be called
|
|
95
|
-
function validateExecuteTransaction(
|
|
96
|
-
|
|
97
|
+
function validateExecuteTransaction(
|
|
98
|
+
address destination
|
|
99
|
+
) public view {
|
|
100
|
+
if (!allowedExecutorDestinations[destination] && owner() != _msgSender()) {
|
|
97
101
|
revert OnlyOwnerDestination(owner(), _msgSender(), destination);
|
|
102
|
+
}
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
function executeTransactions(
|
|
@@ -120,7 +125,7 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
120
125
|
validateExecuteTransaction(destination[i]);
|
|
121
126
|
// We use a low level call here to allow for contract and non-contract calls
|
|
122
127
|
// solhint-disable-next-line avoid-low-level-calls
|
|
123
|
-
(bool success,
|
|
128
|
+
(bool success,) = address(destination[i]).call{value: amount[i]}(data[i]);
|
|
124
129
|
if (!success) {
|
|
125
130
|
assembly {
|
|
126
131
|
let ptr := mload(0x40)
|
|
@@ -150,7 +155,7 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
150
155
|
validateExecuteTransaction(destination);
|
|
151
156
|
// We use a low level call here to allow for contract and non-contract calls
|
|
152
157
|
// solhint-disable-next-line avoid-low-level-calls
|
|
153
|
-
(bool success,
|
|
158
|
+
(bool success,) = destination.call{value: amount}(data);
|
|
154
159
|
if (!success) {
|
|
155
160
|
assembly {
|
|
156
161
|
let ptr := mload(0x40)
|
|
@@ -161,33 +166,12 @@ contract ValidatorWallet is OwnableUpgradeable, DelegateCallAware, GasRefundEnab
|
|
|
161
166
|
}
|
|
162
167
|
}
|
|
163
168
|
|
|
164
|
-
function timeoutChallenges(IChallengeManager manager, uint64[] calldata challenges) external {
|
|
165
|
-
timeoutChallengesWithGasRefunder(IGasRefunder(address(0)), manager, challenges);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function timeoutChallengesWithGasRefunder(
|
|
169
|
-
IGasRefunder gasRefunder,
|
|
170
|
-
IChallengeManager manager,
|
|
171
|
-
uint64[] calldata challenges
|
|
172
|
-
) public onlyExecutorOrOwner refundsGas(gasRefunder, IReader4844(address(0))) {
|
|
173
|
-
uint256 challengesCount = challenges.length;
|
|
174
|
-
for (uint256 i = 0; i < challengesCount; i++) {
|
|
175
|
-
try manager.timeout(challenges[i]) {} catch (bytes memory error) {
|
|
176
|
-
if (error.length == 0) {
|
|
177
|
-
// Assume out of gas
|
|
178
|
-
// We need to revert here so gas estimation works
|
|
179
|
-
require(false, "GAS");
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
169
|
receive() external payable {}
|
|
186
170
|
|
|
187
171
|
/// @dev allows the owner to withdraw eth held by this contract
|
|
188
172
|
function withdrawEth(uint256 amount, address destination) external onlyOwner {
|
|
189
173
|
// solhint-disable-next-line avoid-low-level-calls
|
|
190
|
-
(bool success,
|
|
174
|
+
(bool success,) = destination.call{value: amount}("");
|
|
191
175
|
if (!success) revert WithdrawEthFail(destination);
|
|
192
176
|
}
|
|
193
177
|
}
|
|
@@ -25,21 +25,21 @@ contract ValidatorWalletCreator is Ownable {
|
|
|
25
25
|
template = address(new ValidatorWallet());
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
function setTemplate(
|
|
28
|
+
function setTemplate(
|
|
29
|
+
address _template
|
|
30
|
+
) external onlyOwner {
|
|
29
31
|
template = _template;
|
|
30
32
|
emit TemplateUpdated();
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
function createWallet(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{
|
|
35
|
+
function createWallet(
|
|
36
|
+
address[] calldata initialExecutorAllowedDests
|
|
37
|
+
) external returns (address) {
|
|
37
38
|
address _executor = msg.sender;
|
|
38
39
|
address _owner = msg.sender;
|
|
39
40
|
ProxyAdmin admin = new ProxyAdmin();
|
|
40
|
-
address proxy =
|
|
41
|
-
new TransparentUpgradeableProxy(address(template), address(admin), "")
|
|
42
|
-
);
|
|
41
|
+
address proxy =
|
|
42
|
+
address(new TransparentUpgradeableProxy(address(template), address(admin), ""));
|
|
43
43
|
admin.transferOwnership(_owner);
|
|
44
44
|
ValidatorWallet(payable(proxy)).initialize(_executor, _owner, initialExecutorAllowedDests);
|
|
45
45
|
emit WalletCreated(proxy, _executor, _owner, address(admin));
|
|
@@ -16,21 +16,19 @@ import "./Module.sol";
|
|
|
16
16
|
import "./GlobalState.sol";
|
|
17
17
|
|
|
18
18
|
library Deserialize {
|
|
19
|
-
function u8(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
{
|
|
19
|
+
function u8(
|
|
20
|
+
bytes calldata proof,
|
|
21
|
+
uint256 startOffset
|
|
22
|
+
) internal pure returns (uint8 ret, uint256 offset) {
|
|
24
23
|
offset = startOffset;
|
|
25
24
|
ret = uint8(proof[offset]);
|
|
26
25
|
offset++;
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
function u16(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{
|
|
28
|
+
function u16(
|
|
29
|
+
bytes calldata proof,
|
|
30
|
+
uint256 startOffset
|
|
31
|
+
) internal pure returns (uint16 ret, uint256 offset) {
|
|
34
32
|
offset = startOffset;
|
|
35
33
|
for (uint256 i = 0; i < 16 / 8; i++) {
|
|
36
34
|
ret <<= 8;
|
|
@@ -39,11 +37,10 @@ library Deserialize {
|
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
|
|
42
|
-
function u32(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{
|
|
40
|
+
function u32(
|
|
41
|
+
bytes calldata proof,
|
|
42
|
+
uint256 startOffset
|
|
43
|
+
) internal pure returns (uint32 ret, uint256 offset) {
|
|
47
44
|
offset = startOffset;
|
|
48
45
|
for (uint256 i = 0; i < 32 / 8; i++) {
|
|
49
46
|
ret <<= 8;
|
|
@@ -52,11 +49,10 @@ library Deserialize {
|
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
51
|
|
|
55
|
-
function u64(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
{
|
|
52
|
+
function u64(
|
|
53
|
+
bytes calldata proof,
|
|
54
|
+
uint256 startOffset
|
|
55
|
+
) internal pure returns (uint64 ret, uint256 offset) {
|
|
60
56
|
offset = startOffset;
|
|
61
57
|
for (uint256 i = 0; i < 64 / 8; i++) {
|
|
62
58
|
ret <<= 8;
|
|
@@ -65,11 +61,10 @@ library Deserialize {
|
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
63
|
|
|
68
|
-
function u256(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
{
|
|
64
|
+
function u256(
|
|
65
|
+
bytes calldata proof,
|
|
66
|
+
uint256 startOffset
|
|
67
|
+
) internal pure returns (uint256 ret, uint256 offset) {
|
|
73
68
|
offset = startOffset;
|
|
74
69
|
for (uint256 i = 0; i < 256 / 8; i++) {
|
|
75
70
|
ret <<= 8;
|
|
@@ -78,32 +73,29 @@ library Deserialize {
|
|
|
78
73
|
}
|
|
79
74
|
}
|
|
80
75
|
|
|
81
|
-
function b32(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
{
|
|
76
|
+
function b32(
|
|
77
|
+
bytes calldata proof,
|
|
78
|
+
uint256 startOffset
|
|
79
|
+
) internal pure returns (bytes32 ret, uint256 offset) {
|
|
86
80
|
offset = startOffset;
|
|
87
81
|
uint256 retInt;
|
|
88
82
|
(retInt, offset) = u256(proof, offset);
|
|
89
83
|
ret = bytes32(retInt);
|
|
90
84
|
}
|
|
91
85
|
|
|
92
|
-
function boolean(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{
|
|
86
|
+
function boolean(
|
|
87
|
+
bytes calldata proof,
|
|
88
|
+
uint256 startOffset
|
|
89
|
+
) internal pure returns (bool ret, uint256 offset) {
|
|
97
90
|
offset = startOffset;
|
|
98
91
|
ret = uint8(proof[offset]) != 0;
|
|
99
92
|
offset++;
|
|
100
93
|
}
|
|
101
94
|
|
|
102
|
-
function value(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
{
|
|
95
|
+
function value(
|
|
96
|
+
bytes calldata proof,
|
|
97
|
+
uint256 startOffset
|
|
98
|
+
) internal pure returns (Value memory val, uint256 offset) {
|
|
107
99
|
offset = startOffset;
|
|
108
100
|
uint8 typeInt = uint8(proof[offset]);
|
|
109
101
|
offset++;
|
|
@@ -113,11 +105,10 @@ library Deserialize {
|
|
|
113
105
|
val = Value({valueType: ValueType(typeInt), contents: contents});
|
|
114
106
|
}
|
|
115
107
|
|
|
116
|
-
function valueStack(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{
|
|
108
|
+
function valueStack(
|
|
109
|
+
bytes calldata proof,
|
|
110
|
+
uint256 startOffset
|
|
111
|
+
) internal pure returns (ValueStack memory stack, uint256 offset) {
|
|
121
112
|
offset = startOffset;
|
|
122
113
|
bytes32 remainingHash;
|
|
123
114
|
(remainingHash, offset) = b32(proof, offset);
|
|
@@ -130,27 +121,23 @@ library Deserialize {
|
|
|
130
121
|
stack = ValueStack({proved: ValueArray(proved), remainingHash: remainingHash});
|
|
131
122
|
}
|
|
132
123
|
|
|
133
|
-
function multiStack(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
{
|
|
124
|
+
function multiStack(
|
|
125
|
+
bytes calldata proof,
|
|
126
|
+
uint256 startOffset
|
|
127
|
+
) internal pure returns (MultiStack memory multistack, uint256 offset) {
|
|
138
128
|
offset = startOffset;
|
|
139
129
|
bytes32 inactiveStackHash;
|
|
140
130
|
(inactiveStackHash, offset) = b32(proof, offset);
|
|
141
131
|
bytes32 remainingHash;
|
|
142
132
|
(remainingHash, offset) = b32(proof, offset);
|
|
143
|
-
multistack =
|
|
144
|
-
inactiveStackHash: inactiveStackHash,
|
|
145
|
-
remainingHash: remainingHash
|
|
146
|
-
});
|
|
133
|
+
multistack =
|
|
134
|
+
MultiStack({inactiveStackHash: inactiveStackHash, remainingHash: remainingHash});
|
|
147
135
|
}
|
|
148
136
|
|
|
149
|
-
function instructions(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
{
|
|
137
|
+
function instructions(
|
|
138
|
+
bytes calldata proof,
|
|
139
|
+
uint256 startOffset
|
|
140
|
+
) internal pure returns (Instruction[] memory code, uint256 offset) {
|
|
154
141
|
offset = startOffset;
|
|
155
142
|
uint8 count;
|
|
156
143
|
(count, offset) = u8(proof, offset);
|
|
@@ -165,11 +152,10 @@ library Deserialize {
|
|
|
165
152
|
}
|
|
166
153
|
}
|
|
167
154
|
|
|
168
|
-
function stackFrame(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
{
|
|
155
|
+
function stackFrame(
|
|
156
|
+
bytes calldata proof,
|
|
157
|
+
uint256 startOffset
|
|
158
|
+
) internal pure returns (StackFrame memory window, uint256 offset) {
|
|
173
159
|
offset = startOffset;
|
|
174
160
|
Value memory returnPc;
|
|
175
161
|
bytes32 localsMerkleRoot;
|
|
@@ -187,11 +173,10 @@ library Deserialize {
|
|
|
187
173
|
});
|
|
188
174
|
}
|
|
189
175
|
|
|
190
|
-
function stackFrameWindow(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
{
|
|
176
|
+
function stackFrameWindow(
|
|
177
|
+
bytes calldata proof,
|
|
178
|
+
uint256 startOffset
|
|
179
|
+
) internal pure returns (StackFrameWindow memory window, uint256 offset) {
|
|
195
180
|
offset = startOffset;
|
|
196
181
|
bytes32 remainingHash;
|
|
197
182
|
(remainingHash, offset) = b32(proof, offset);
|
|
@@ -207,11 +192,10 @@ library Deserialize {
|
|
|
207
192
|
window = StackFrameWindow({proved: proved, remainingHash: remainingHash});
|
|
208
193
|
}
|
|
209
194
|
|
|
210
|
-
function moduleMemory(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
{
|
|
195
|
+
function moduleMemory(
|
|
196
|
+
bytes calldata proof,
|
|
197
|
+
uint256 startOffset
|
|
198
|
+
) internal pure returns (ModuleMemory memory mem, uint256 offset) {
|
|
215
199
|
offset = startOffset;
|
|
216
200
|
uint64 size;
|
|
217
201
|
uint64 maxSize;
|
|
@@ -222,11 +206,10 @@ library Deserialize {
|
|
|
222
206
|
mem = ModuleMemory({size: size, maxSize: maxSize, merkleRoot: root});
|
|
223
207
|
}
|
|
224
208
|
|
|
225
|
-
function module(
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
{
|
|
209
|
+
function module(
|
|
210
|
+
bytes calldata proof,
|
|
211
|
+
uint256 startOffset
|
|
212
|
+
) internal pure returns (Module memory mod, uint256 offset) {
|
|
230
213
|
offset = startOffset;
|
|
231
214
|
bytes32 globalsMerkleRoot;
|
|
232
215
|
ModuleMemory memory mem;
|
|
@@ -250,11 +233,10 @@ library Deserialize {
|
|
|
250
233
|
});
|
|
251
234
|
}
|
|
252
235
|
|
|
253
|
-
function globalState(
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
{
|
|
236
|
+
function globalState(
|
|
237
|
+
bytes calldata proof,
|
|
238
|
+
uint256 startOffset
|
|
239
|
+
) internal pure returns (GlobalState memory state, uint256 offset) {
|
|
258
240
|
offset = startOffset;
|
|
259
241
|
|
|
260
242
|
// using constant ints for array size requires newer solidity
|
|
@@ -270,11 +252,10 @@ library Deserialize {
|
|
|
270
252
|
state = GlobalState({bytes32Vals: bytes32Vals, u64Vals: u64Vals});
|
|
271
253
|
}
|
|
272
254
|
|
|
273
|
-
function machine(
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
{
|
|
255
|
+
function machine(
|
|
256
|
+
bytes calldata proof,
|
|
257
|
+
uint256 startOffset
|
|
258
|
+
) internal pure returns (Machine memory mach, uint256 offset) {
|
|
278
259
|
offset = startOffset;
|
|
279
260
|
{
|
|
280
261
|
MachineStatus status;
|
|
@@ -287,8 +268,6 @@ library Deserialize {
|
|
|
287
268
|
status = MachineStatus.FINISHED;
|
|
288
269
|
} else if (statusU8 == 2) {
|
|
289
270
|
status = MachineStatus.ERRORED;
|
|
290
|
-
} else if (statusU8 == 3) {
|
|
291
|
-
status = MachineStatus.TOO_FAR;
|
|
292
271
|
} else {
|
|
293
272
|
revert("UNKNOWN_MACH_STATUS");
|
|
294
273
|
}
|
|
@@ -326,11 +305,10 @@ library Deserialize {
|
|
|
326
305
|
(mach.modulesRoot, offset) = b32(proof, offset);
|
|
327
306
|
}
|
|
328
307
|
|
|
329
|
-
function merkleProof(
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
{
|
|
308
|
+
function merkleProof(
|
|
309
|
+
bytes calldata proof,
|
|
310
|
+
uint256 startOffset
|
|
311
|
+
) internal pure returns (MerkleProof memory merkle, uint256 offset) {
|
|
334
312
|
offset = startOffset;
|
|
335
313
|
uint8 length;
|
|
336
314
|
(length, offset) = u8(proof, offset);
|