@arbitrum/nitro-contracts 2.1.0 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +15 -5
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -3
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -10,42 +10,96 @@ struct GlobalState {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
library GlobalStateLib {
|
|
13
|
+
using GlobalStateLib for GlobalState;
|
|
14
|
+
|
|
13
15
|
uint16 internal constant BYTES32_VALS_NUM = 2;
|
|
14
16
|
uint16 internal constant U64_VALS_NUM = 2;
|
|
15
17
|
|
|
16
|
-
function hash(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
)
|
|
18
|
+
function hash(
|
|
19
|
+
GlobalState memory state
|
|
20
|
+
) internal pure returns (bytes32) {
|
|
21
|
+
return keccak256(
|
|
22
|
+
abi.encodePacked(
|
|
23
|
+
"Global state:",
|
|
24
|
+
state.bytes32Vals[0],
|
|
25
|
+
state.bytes32Vals[1],
|
|
26
|
+
state.u64Vals[0],
|
|
27
|
+
state.u64Vals[1]
|
|
28
|
+
)
|
|
29
|
+
);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
function getBlockHash(
|
|
32
|
+
function getBlockHash(
|
|
33
|
+
GlobalState memory state
|
|
34
|
+
) internal pure returns (bytes32) {
|
|
30
35
|
return state.bytes32Vals[0];
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
function getSendRoot(
|
|
38
|
+
function getSendRoot(
|
|
39
|
+
GlobalState memory state
|
|
40
|
+
) internal pure returns (bytes32) {
|
|
34
41
|
return state.bytes32Vals[1];
|
|
35
42
|
}
|
|
36
43
|
|
|
37
|
-
function getInboxPosition(
|
|
44
|
+
function getInboxPosition(
|
|
45
|
+
GlobalState memory state
|
|
46
|
+
) internal pure returns (uint64) {
|
|
38
47
|
return state.u64Vals[0];
|
|
39
48
|
}
|
|
40
49
|
|
|
41
|
-
function getPositionInMessage(
|
|
50
|
+
function getPositionInMessage(
|
|
51
|
+
GlobalState memory state
|
|
52
|
+
) internal pure returns (uint64) {
|
|
42
53
|
return state.u64Vals[1];
|
|
43
54
|
}
|
|
44
55
|
|
|
45
|
-
function isEmpty(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
state.
|
|
56
|
+
function isEmpty(
|
|
57
|
+
GlobalState calldata state
|
|
58
|
+
) internal pure returns (bool) {
|
|
59
|
+
return (
|
|
60
|
+
state.bytes32Vals[0] == bytes32(0) && state.bytes32Vals[1] == bytes32(0)
|
|
61
|
+
&& state.u64Vals[0] == 0 && state.u64Vals[1] == 0
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function comparePositions(
|
|
66
|
+
GlobalState calldata a,
|
|
67
|
+
GlobalState calldata b
|
|
68
|
+
) internal pure returns (int256) {
|
|
69
|
+
uint64 aPos = a.getInboxPosition();
|
|
70
|
+
uint64 bPos = b.getInboxPosition();
|
|
71
|
+
if (aPos < bPos) {
|
|
72
|
+
return -1;
|
|
73
|
+
} else if (aPos > bPos) {
|
|
74
|
+
return 1;
|
|
75
|
+
} else {
|
|
76
|
+
uint64 aMsg = a.getPositionInMessage();
|
|
77
|
+
uint64 bMsg = b.getPositionInMessage();
|
|
78
|
+
if (aMsg < bMsg) {
|
|
79
|
+
return -1;
|
|
80
|
+
} else if (aMsg > bMsg) {
|
|
81
|
+
return 1;
|
|
82
|
+
} else {
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function comparePositionsAgainstStartOfBatch(
|
|
89
|
+
GlobalState calldata a,
|
|
90
|
+
uint256 bPos
|
|
91
|
+
) internal pure returns (int256) {
|
|
92
|
+
uint64 aPos = a.getInboxPosition();
|
|
93
|
+
if (aPos < bPos) {
|
|
94
|
+
return -1;
|
|
95
|
+
} else if (aPos > bPos) {
|
|
96
|
+
return 1;
|
|
97
|
+
} else {
|
|
98
|
+
if (a.getPositionInMessage() > 0) {
|
|
99
|
+
return 1;
|
|
100
|
+
} else {
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
50
104
|
}
|
|
51
105
|
}
|
|
@@ -155,14 +155,15 @@ library Instructions {
|
|
|
155
155
|
uint256 internal constant INBOX_INDEX_SEQUENCER = 0;
|
|
156
156
|
uint256 internal constant INBOX_INDEX_DELAYED = 1;
|
|
157
157
|
|
|
158
|
-
function hash(
|
|
158
|
+
function hash(
|
|
159
|
+
Instruction[] memory code
|
|
160
|
+
) internal pure returns (bytes32) {
|
|
159
161
|
// To avoid quadratic expense, we declare a `bytes` early and populate its contents.
|
|
160
162
|
bytes memory data = new bytes(13 + 1 + 34 * code.length);
|
|
161
163
|
assembly {
|
|
162
164
|
// Represents the string "Instructions:", which we place after the length word.
|
|
163
165
|
mstore(
|
|
164
|
-
add(data, 32),
|
|
165
|
-
0x496e737472756374696f6e733a00000000000000000000000000000000000000
|
|
166
|
+
add(data, 32), 0x496e737472756374696f6e733a00000000000000000000000000000000000000
|
|
166
167
|
)
|
|
167
168
|
}
|
|
168
169
|
|
package/src/state/Machine.sol
CHANGED
|
@@ -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
|
|
|
@@ -12,8 +12,7 @@ import "./StackFrame.sol";
|
|
|
12
12
|
enum MachineStatus {
|
|
13
13
|
RUNNING,
|
|
14
14
|
FINISHED,
|
|
15
|
-
ERRORED
|
|
16
|
-
TOO_FAR
|
|
15
|
+
ERRORED
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
struct Machine {
|
|
@@ -38,17 +37,15 @@ library MachineLib {
|
|
|
38
37
|
|
|
39
38
|
bytes32 internal constant NO_RECOVERY_PC = ~bytes32(0);
|
|
40
39
|
|
|
41
|
-
function hash(
|
|
40
|
+
function hash(
|
|
41
|
+
Machine memory mach
|
|
42
|
+
) internal pure returns (bytes32) {
|
|
42
43
|
// Warning: the non-running hashes are replicated in Challenge
|
|
43
44
|
if (mach.status == MachineStatus.RUNNING) {
|
|
44
|
-
bytes32 valueMultiHash =
|
|
45
|
-
mach.valueStack.hash(),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
bytes32 frameMultiHash = mach.frameMultiStack.hash(
|
|
49
|
-
mach.frameStack.hash(),
|
|
50
|
-
mach.recoveryPc != NO_RECOVERY_PC
|
|
51
|
-
);
|
|
45
|
+
bytes32 valueMultiHash =
|
|
46
|
+
mach.valueMultiStack.hash(mach.valueStack.hash(), mach.recoveryPc != NO_RECOVERY_PC);
|
|
47
|
+
bytes32 frameMultiHash =
|
|
48
|
+
mach.frameMultiStack.hash(mach.frameStack.hash(), mach.recoveryPc != NO_RECOVERY_PC);
|
|
52
49
|
bytes memory preimage = abi.encodePacked(
|
|
53
50
|
"Machine running:",
|
|
54
51
|
valueMultiHash,
|
|
@@ -65,20 +62,20 @@ library MachineLib {
|
|
|
65
62
|
} else if (mach.status == MachineStatus.FINISHED) {
|
|
66
63
|
return keccak256(abi.encodePacked("Machine finished:", mach.globalStateHash));
|
|
67
64
|
} else if (mach.status == MachineStatus.ERRORED) {
|
|
68
|
-
return keccak256(abi.encodePacked("Machine errored:"));
|
|
69
|
-
} else if (mach.status == MachineStatus.TOO_FAR) {
|
|
70
|
-
return keccak256(abi.encodePacked("Machine too far:"));
|
|
65
|
+
return keccak256(abi.encodePacked("Machine errored:", mach.globalStateHash));
|
|
71
66
|
} else {
|
|
72
67
|
revert("BAD_MACH_STATUS");
|
|
73
68
|
}
|
|
74
69
|
}
|
|
75
70
|
|
|
76
|
-
function switchCoThreadStacks(
|
|
71
|
+
function switchCoThreadStacks(
|
|
72
|
+
Machine memory mach
|
|
73
|
+
) internal pure {
|
|
77
74
|
bytes32 newActiveValue = mach.valueMultiStack.inactiveStackHash;
|
|
78
75
|
bytes32 newActiveFrame = mach.frameMultiStack.inactiveStackHash;
|
|
79
76
|
if (
|
|
80
|
-
newActiveFrame == MultiStackLib.NO_STACK_HASH
|
|
81
|
-
|
|
77
|
+
newActiveFrame == MultiStackLib.NO_STACK_HASH
|
|
78
|
+
|| newActiveValue == MultiStackLib.NO_STACK_HASH
|
|
82
79
|
) {
|
|
83
80
|
mach.status = MachineStatus.ERRORED;
|
|
84
81
|
return;
|
|
@@ -100,7 +97,9 @@ library MachineLib {
|
|
|
100
97
|
return true;
|
|
101
98
|
}
|
|
102
99
|
|
|
103
|
-
function setPcFromRecovery(
|
|
100
|
+
function setPcFromRecovery(
|
|
101
|
+
Machine memory mach
|
|
102
|
+
) internal pure returns (bool) {
|
|
104
103
|
if (!setPcFromData(mach, uint256(mach.recoveryPc))) {
|
|
105
104
|
return false;
|
|
106
105
|
}
|
package/src/state/Module.sol
CHANGED
|
@@ -18,18 +18,19 @@ struct Module {
|
|
|
18
18
|
library ModuleLib {
|
|
19
19
|
using ModuleMemoryCompactLib for ModuleMemory;
|
|
20
20
|
|
|
21
|
-
function hash(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
)
|
|
21
|
+
function hash(
|
|
22
|
+
Module memory mod
|
|
23
|
+
) internal pure returns (bytes32) {
|
|
24
|
+
return keccak256(
|
|
25
|
+
abi.encodePacked(
|
|
26
|
+
"Module:",
|
|
27
|
+
mod.globalsMerkleRoot,
|
|
28
|
+
mod.moduleMemory.hash(),
|
|
29
|
+
mod.tablesMerkleRoot,
|
|
30
|
+
mod.functionsMerkleRoot,
|
|
31
|
+
mod.extraHash,
|
|
32
|
+
mod.internalsOffset
|
|
33
|
+
)
|
|
34
|
+
);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -13,7 +13,9 @@ library ModuleMemoryLib {
|
|
|
13
13
|
|
|
14
14
|
uint256 private constant LEAF_SIZE = 32;
|
|
15
15
|
|
|
16
|
-
function hash(
|
|
16
|
+
function hash(
|
|
17
|
+
ModuleMemory memory mem
|
|
18
|
+
) internal pure returns (bytes32) {
|
|
17
19
|
return ModuleMemoryCompactLib.hash(mem);
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -22,15 +24,7 @@ library ModuleMemoryLib {
|
|
|
22
24
|
uint256 leafIdx,
|
|
23
25
|
bytes calldata proof,
|
|
24
26
|
uint256 startOffset
|
|
25
|
-
)
|
|
26
|
-
internal
|
|
27
|
-
pure
|
|
28
|
-
returns (
|
|
29
|
-
bytes32 contents,
|
|
30
|
-
uint256 offset,
|
|
31
|
-
MerkleProof memory merkle
|
|
32
|
-
)
|
|
33
|
-
{
|
|
27
|
+
) internal pure returns (bytes32 contents, uint256 offset, MerkleProof memory merkle) {
|
|
34
28
|
offset = startOffset;
|
|
35
29
|
(contents, offset) = Deserialize.b32(proof, offset);
|
|
36
30
|
(merkle, offset) = Deserialize.merkleProof(proof, offset);
|
|
@@ -56,15 +50,7 @@ library ModuleMemoryLib {
|
|
|
56
50
|
uint256 width,
|
|
57
51
|
bytes calldata proof,
|
|
58
52
|
uint256 proofOffset
|
|
59
|
-
)
|
|
60
|
-
internal
|
|
61
|
-
pure
|
|
62
|
-
returns (
|
|
63
|
-
bool err,
|
|
64
|
-
uint256 value,
|
|
65
|
-
uint256 offset
|
|
66
|
-
)
|
|
67
|
-
{
|
|
53
|
+
) internal pure returns (bool err, uint256 value, uint256 offset) {
|
|
68
54
|
if (start + width > mem.size) {
|
|
69
55
|
return (true, 0, proofOffset);
|
|
70
56
|
}
|
|
@@ -76,12 +62,7 @@ library ModuleMemoryLib {
|
|
|
76
62
|
uint256 idx = start + i;
|
|
77
63
|
uint256 leafIdx = idx / LEAF_SIZE;
|
|
78
64
|
if (leafIdx != lastProvedLeafIdx) {
|
|
79
|
-
(lastProvedLeafContents, proofOffset,
|
|
80
|
-
mem,
|
|
81
|
-
leafIdx,
|
|
82
|
-
proof,
|
|
83
|
-
proofOffset
|
|
84
|
-
);
|
|
65
|
+
(lastProvedLeafContents, proofOffset,) = proveLeaf(mem, leafIdx, proof, proofOffset);
|
|
85
66
|
lastProvedLeafIdx = leafIdx;
|
|
86
67
|
}
|
|
87
68
|
uint256 indexWithinLeaf = idx % LEAF_SIZE;
|
|
@@ -11,7 +11,9 @@ struct ModuleMemory {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
library ModuleMemoryCompactLib {
|
|
14
|
-
function hash(
|
|
14
|
+
function hash(
|
|
15
|
+
ModuleMemory memory mem
|
|
16
|
+
) internal pure returns (bytes32) {
|
|
15
17
|
return keccak256(abi.encodePacked("Memory:", mem.size, mem.maxSize, mem.merkleRoot));
|
|
16
18
|
}
|
|
17
19
|
}
|
package/src/state/MultiStack.sol
CHANGED
|
@@ -20,34 +20,30 @@ library MultiStackLib {
|
|
|
20
20
|
require(activeStackHash != NO_STACK_HASH, "MULTISTACK_NOSTACK_ACTIVE");
|
|
21
21
|
if (cothread) {
|
|
22
22
|
require(multi.inactiveStackHash != NO_STACK_HASH, "MULTISTACK_NOSTACK_MAIN");
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
activeStackHash,
|
|
29
|
-
multi.remainingHash
|
|
30
|
-
)
|
|
31
|
-
);
|
|
23
|
+
return keccak256(
|
|
24
|
+
abi.encodePacked(
|
|
25
|
+
"multistack:", multi.inactiveStackHash, activeStackHash, multi.remainingHash
|
|
26
|
+
)
|
|
27
|
+
);
|
|
32
28
|
} else {
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
multi.inactiveStackHash,
|
|
39
|
-
multi.remainingHash
|
|
40
|
-
)
|
|
41
|
-
);
|
|
29
|
+
return keccak256(
|
|
30
|
+
abi.encodePacked(
|
|
31
|
+
"multistack:", activeStackHash, multi.inactiveStackHash, multi.remainingHash
|
|
32
|
+
)
|
|
33
|
+
);
|
|
42
34
|
}
|
|
43
35
|
}
|
|
44
36
|
|
|
45
|
-
function setEmpty(
|
|
37
|
+
function setEmpty(
|
|
38
|
+
MultiStack memory multi
|
|
39
|
+
) internal pure {
|
|
46
40
|
multi.inactiveStackHash = NO_STACK_HASH;
|
|
47
41
|
multi.remainingHash = 0;
|
|
48
42
|
}
|
|
49
43
|
|
|
50
|
-
function pushNew(
|
|
44
|
+
function pushNew(
|
|
45
|
+
MultiStack memory multi
|
|
46
|
+
) internal pure {
|
|
51
47
|
if (multi.inactiveStackHash != NO_STACK_HASH) {
|
|
52
48
|
multi.remainingHash = keccak256(
|
|
53
49
|
abi.encodePacked("cothread:", multi.inactiveStackHash, multi.remainingHash)
|
package/src/state/PcArray.sol
CHANGED
|
@@ -13,15 +13,13 @@ library PcArrayLib {
|
|
|
13
13
|
return arr.inner[index];
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
function set(
|
|
17
|
-
PcArray memory arr,
|
|
18
|
-
uint256 index,
|
|
19
|
-
uint32 val
|
|
20
|
-
) internal pure {
|
|
16
|
+
function set(PcArray memory arr, uint256 index, uint32 val) internal pure {
|
|
21
17
|
arr.inner[index] = val;
|
|
22
18
|
}
|
|
23
19
|
|
|
24
|
-
function length(
|
|
20
|
+
function length(
|
|
21
|
+
PcArray memory arr
|
|
22
|
+
) internal pure returns (uint256) {
|
|
25
23
|
return arr.inner.length;
|
|
26
24
|
}
|
|
27
25
|
|
|
@@ -34,7 +32,9 @@ library PcArrayLib {
|
|
|
34
32
|
arr.inner = newInner;
|
|
35
33
|
}
|
|
36
34
|
|
|
37
|
-
function pop(
|
|
35
|
+
function pop(
|
|
36
|
+
PcArray memory arr
|
|
37
|
+
) internal pure returns (uint32 popped) {
|
|
38
38
|
popped = arr.inner[arr.inner.length - 1];
|
|
39
39
|
uint32[] memory newInner = new uint32[](arr.inner.length - 1);
|
|
40
40
|
for (uint256 i = 0; i < newInner.length; i++) {
|
package/src/state/StackFrame.sol
CHANGED
|
@@ -21,32 +21,39 @@ struct StackFrameWindow {
|
|
|
21
21
|
library StackFrameLib {
|
|
22
22
|
using ValueLib for Value;
|
|
23
23
|
|
|
24
|
-
function hash(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
)
|
|
24
|
+
function hash(
|
|
25
|
+
StackFrame memory frame
|
|
26
|
+
) internal pure returns (bytes32) {
|
|
27
|
+
return keccak256(
|
|
28
|
+
abi.encodePacked(
|
|
29
|
+
"Stack frame:",
|
|
30
|
+
frame.returnPc.hash(),
|
|
31
|
+
frame.localsMerkleRoot,
|
|
32
|
+
frame.callerModule,
|
|
33
|
+
frame.callerModuleInternals
|
|
34
|
+
)
|
|
35
|
+
);
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
function hash(
|
|
38
|
+
function hash(
|
|
39
|
+
StackFrameWindow memory window
|
|
40
|
+
) internal pure returns (bytes32 h) {
|
|
38
41
|
h = window.remainingHash;
|
|
39
42
|
for (uint256 i = 0; i < window.proved.length; i++) {
|
|
40
43
|
h = keccak256(abi.encodePacked("Stack frame stack:", hash(window.proved[i]), h));
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
|
|
44
|
-
function peek(
|
|
47
|
+
function peek(
|
|
48
|
+
StackFrameWindow memory window
|
|
49
|
+
) internal pure returns (StackFrame memory) {
|
|
45
50
|
require(window.proved.length == 1, "BAD_WINDOW_LENGTH");
|
|
46
51
|
return window.proved[0];
|
|
47
52
|
}
|
|
48
53
|
|
|
49
|
-
function pop(
|
|
54
|
+
function pop(
|
|
55
|
+
StackFrameWindow memory window
|
|
56
|
+
) internal pure returns (StackFrame memory frame) {
|
|
50
57
|
require(window.proved.length == 1, "BAD_WINDOW_LENGTH");
|
|
51
58
|
frame = window.proved[0];
|
|
52
59
|
window.proved = new StackFrame[](0);
|
package/src/state/Value.sol
CHANGED
|
@@ -20,7 +20,9 @@ struct Value {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
library ValueLib {
|
|
23
|
-
function hash(
|
|
23
|
+
function hash(
|
|
24
|
+
Value memory val
|
|
25
|
+
) internal pure returns (bytes32) {
|
|
24
26
|
return keccak256(abi.encodePacked("Value:", val.valueType, val.contents));
|
|
25
27
|
}
|
|
26
28
|
|
|
@@ -28,14 +30,18 @@ library ValueLib {
|
|
|
28
30
|
return ValueType.INTERNAL_REF;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
function assumeI32(
|
|
33
|
+
function assumeI32(
|
|
34
|
+
Value memory val
|
|
35
|
+
) internal pure returns (uint32) {
|
|
32
36
|
uint256 uintval = uint256(val.contents);
|
|
33
37
|
require(val.valueType == ValueType.I32, "NOT_I32");
|
|
34
38
|
require(uintval < (1 << 32), "BAD_I32");
|
|
35
39
|
return uint32(uintval);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
function assumeI64(
|
|
42
|
+
function assumeI64(
|
|
43
|
+
Value memory val
|
|
44
|
+
) internal pure returns (uint64) {
|
|
39
45
|
uint256 uintval = uint256(val.contents);
|
|
40
46
|
require(val.valueType == ValueType.I64, "NOT_I64");
|
|
41
47
|
require(uintval < (1 << 64), "BAD_I64");
|
|
@@ -46,15 +52,21 @@ library ValueLib {
|
|
|
46
52
|
return Value({valueType: ValueType.REF_NULL, contents: 0});
|
|
47
53
|
}
|
|
48
54
|
|
|
49
|
-
function newI32(
|
|
55
|
+
function newI32(
|
|
56
|
+
uint32 x
|
|
57
|
+
) internal pure returns (Value memory) {
|
|
50
58
|
return Value({valueType: ValueType.I32, contents: uint256(x)});
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
function newI64(
|
|
61
|
+
function newI64(
|
|
62
|
+
uint64 x
|
|
63
|
+
) internal pure returns (Value memory) {
|
|
54
64
|
return Value({valueType: ValueType.I64, contents: uint256(x)});
|
|
55
65
|
}
|
|
56
66
|
|
|
57
|
-
function newBoolean(
|
|
67
|
+
function newBoolean(
|
|
68
|
+
bool x
|
|
69
|
+
) internal pure returns (Value memory) {
|
|
58
70
|
if (x) {
|
|
59
71
|
return newI32(uint32(1));
|
|
60
72
|
} else {
|
package/src/state/ValueArray.sol
CHANGED
|
@@ -15,15 +15,13 @@ library ValueArrayLib {
|
|
|
15
15
|
return arr.inner[index];
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function set(
|
|
19
|
-
ValueArray memory arr,
|
|
20
|
-
uint256 index,
|
|
21
|
-
Value memory val
|
|
22
|
-
) internal pure {
|
|
18
|
+
function set(ValueArray memory arr, uint256 index, Value memory val) internal pure {
|
|
23
19
|
arr.inner[index] = val;
|
|
24
20
|
}
|
|
25
21
|
|
|
26
|
-
function length(
|
|
22
|
+
function length(
|
|
23
|
+
ValueArray memory arr
|
|
24
|
+
) internal pure returns (uint256) {
|
|
27
25
|
return arr.inner.length;
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -36,7 +34,9 @@ library ValueArrayLib {
|
|
|
36
34
|
arr.inner = newInner;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
function pop(
|
|
37
|
+
function pop(
|
|
38
|
+
ValueArray memory arr
|
|
39
|
+
) internal pure returns (Value memory popped) {
|
|
40
40
|
popped = arr.inner[arr.inner.length - 1];
|
|
41
41
|
Value[] memory newInner = new Value[](arr.inner.length - 1);
|
|
42
42
|
for (uint256 i = 0; i < newInner.length; i++) {
|
package/src/state/ValueStack.sol
CHANGED
|
@@ -16,7 +16,9 @@ library ValueStackLib {
|
|
|
16
16
|
using ValueLib for Value;
|
|
17
17
|
using ValueArrayLib for ValueArray;
|
|
18
18
|
|
|
19
|
-
function hash(
|
|
19
|
+
function hash(
|
|
20
|
+
ValueStack memory stack
|
|
21
|
+
) internal pure returns (bytes32 h) {
|
|
20
22
|
h = stack.remainingHash;
|
|
21
23
|
uint256 len = stack.proved.length();
|
|
22
24
|
for (uint256 i = 0; i < len; i++) {
|
|
@@ -24,12 +26,16 @@ library ValueStackLib {
|
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
function peek(
|
|
29
|
+
function peek(
|
|
30
|
+
ValueStack memory stack
|
|
31
|
+
) internal pure returns (Value memory) {
|
|
28
32
|
uint256 len = stack.proved.length();
|
|
29
33
|
return stack.proved.get(len - 1);
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
function pop(
|
|
36
|
+
function pop(
|
|
37
|
+
ValueStack memory stack
|
|
38
|
+
) internal pure returns (Value memory) {
|
|
33
39
|
return stack.proved.pop();
|
|
34
40
|
}
|
|
35
41
|
|