@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
|
@@ -39,19 +39,6 @@
|
|
|
39
39
|
"stateMutability": "view",
|
|
40
40
|
"type": "function"
|
|
41
41
|
},
|
|
42
|
-
{
|
|
43
|
-
"inputs": [
|
|
44
|
-
{
|
|
45
|
-
"internalType": "uint256",
|
|
46
|
-
"name": "",
|
|
47
|
-
"type": "uint256"
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
"name": "removeOldZombies",
|
|
51
|
-
"outputs": [],
|
|
52
|
-
"stateMutability": "nonpayable",
|
|
53
|
-
"type": "function"
|
|
54
|
-
},
|
|
55
42
|
{
|
|
56
43
|
"inputs": [],
|
|
57
44
|
"name": "withdrawStakerFunds",
|
|
@@ -66,8 +53,8 @@
|
|
|
66
53
|
"type": "function"
|
|
67
54
|
}
|
|
68
55
|
],
|
|
69
|
-
"bytecode": "
|
|
70
|
-
"deployedBytecode": "
|
|
56
|
+
"bytecode": "0x608060405234801561001057600080fd5b5060405161018c38038061018c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b60fa806100926000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063613739191460375780638da5cb5b146050575b600080fd5b603d6093565b6040519081526020015b60405180910390f35b600054606f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016047565b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a15060009056fea2646970667358221220f4b1513ca5abf58d293f601c58e29463b3b3e2f59fa61564b295a0478b004c5864736f6c63430008110033",
|
|
57
|
+
"deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c8063613739191460375780638da5cb5b146050575b600080fd5b603d6093565b6040519081526020015b60405180910390f35b600054606f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016047565b6040516000907f1c09fbbf7cfd024f5e4e5472dd87afd5d67ee5db6a0ca715bf508d96abce309f908290a15060009056fea2646970667358221220f4b1513ca5abf58d293f601c58e29463b3b3e2f59fa61564b295a0478b004c5864736f6c63430008110033",
|
|
71
58
|
"linkReferences": {},
|
|
72
59
|
"deployedLinkReferences": {}
|
|
73
60
|
}
|
|
@@ -285,8 +285,8 @@
|
|
|
285
285
|
"type": "function"
|
|
286
286
|
}
|
|
287
287
|
],
|
|
288
|
-
"bytecode": "
|
|
289
|
-
"deployedBytecode": "
|
|
288
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162000d4238038062000d4283398101604081905262000034916200019a565b604051806040016040528060098152602001682a32b9ba2a37b5b2b760b91b81525060405180604001604052806002815260200161151560f21b815250816003908162000082919062000258565b50600462000091828262000258565b505050620000a63382620000ad60201b60201c565b506200034c565b6001600160a01b038216620001085760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200011c919062000324565b90915550506001600160a01b038216600090815260208190526040812080548392906200014b90849062000324565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b600060208284031215620001ad57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001df57607f821691505b6020821081036200020057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019557600081815260208120601f850160051c810160208610156200022f5750805b601f850160051c820191505b8181101562000250578281556001016200023b565b505050505050565b81516001600160401b03811115620002745762000274620001b4565b6200028c81620002858454620001ca565b8462000206565b602080601f831160018114620002c45760008415620002ab5750858301515b600019600386901b1c1916600185901b17855562000250565b600085815260208120601f198616915b82811015620002f557888601518255948401946001909101908401620002d4565b5085821015620003145787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200034657634e487b7160e01b600052601160045260246000fd5b92915050565b6109e6806200035c6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107e0565b60405180910390f35b6100ff6100fa366004610868565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610892565b610292565b604051601281526020016100e3565b6100ff610151366004610868565b6102b6565b6101136101643660046108ce565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610868565b610304565b6100ff6101a8366004610868565b6103b3565b6101136101bb3660046108f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f590610923565b80601f016020809104026020016040519081016040528092919081815260200182805461022190610923565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f0908790610976565b6103c1565b6060600480546101f590610923565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105c9565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c357818110156105b65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105c384848484036103c1565b50505050565b6001600160a01b0383166106455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610787908490610976565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d391815260200190565b60405180910390a36105c3565b600060208083528351808285015260005b8181101561080d578581018301518582016040015282016107f1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b80356001600160a01b038116811461086357600080fd5b919050565b6000806040838503121561087b57600080fd5b6108848361084c565b946020939093013593505050565b6000806000606084860312156108a757600080fd5b6108b08461084c565b92506108be6020850161084c565b9150604084013590509250925092565b6000602082840312156108e057600080fd5b6108e98261084c565b9392505050565b6000806040838503121561090357600080fd5b61090c8361084c565b915061091a6020840161084c565b90509250929050565b600181811c9082168061093757607f821691505b602082108103610970577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f72518a5168c403bb15eabe1a908d0fa67efbbf89f6f1cbedc6623e6c28eb7fb64736f6c63430008110033",
|
|
289
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107e0565b60405180910390f35b6100ff6100fa366004610868565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610892565b610292565b604051601281526020016100e3565b6100ff610151366004610868565b6102b6565b6101136101643660046108ce565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610868565b610304565b6100ff6101a8366004610868565b6103b3565b6101136101bb3660046108f0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f590610923565b80601f016020809104026020016040519081016040528092919081815260200182805461022190610923565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105c9565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f0908790610976565b6103c1565b6060600480546101f590610923565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105c9565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c357818110156105b65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105c384848484036103c1565b50505050565b6001600160a01b0383166106455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610787908490610976565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d391815260200190565b60405180910390a36105c3565b600060208083528351808285015260005b8181101561080d578581018301518582016040015282016107f1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b80356001600160a01b038116811461086357600080fd5b919050565b6000806040838503121561087b57600080fd5b6108848361084c565b946020939093013593505050565b6000806000606084860312156108a757600080fd5b6108b08461084c565b92506108be6020850161084c565b9150604084013590509250925092565b6000602082840312156108e057600080fd5b6108e98261084c565b9392505050565b6000806040838503121561090357600080fd5b61090c8361084c565b915061091a6020840161084c565b90509250929050565b600181811c9082168061093757607f821691505b602082108103610970577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f72518a5168c403bb15eabe1a908d0fa67efbbf89f6f1cbedc6623e6c28eb7fb64736f6c63430008110033",
|
|
290
290
|
"linkReferences": {},
|
|
291
291
|
"deployedLinkReferences": {}
|
|
292
292
|
}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"type": "function"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
|
-
"bytecode": "
|
|
15
|
-
"deployedBytecode": "
|
|
14
|
+
"bytecode": "0x608060405234801561001057600080fd5b5061080a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100d85760405162461bcd60e51b815260206004820152600960248201527f53544152545f4c454e000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051808201825260008082526020918201819052825180840190935280835260019183019190915261010f915b8391906104b9565b604080518082018252600080825260209182018190528251808401909352825260029082015261014190600190610107565b60408051808201825260008082526020918201819052825180840190935282526003908201526101729082906104e0565b8051516003146101c45760405162461bcd60e51b815260206004820152600860248201527f505553485f4c454e00000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8151518110156102b15760006101dd83836105d4565b90506000815160068111156101f4576101f4610734565b146102415760405162461bcd60e51b815260206004820152600d60248201527f505553485f56414c5f545950450000000000000000000000000000000000000060448201526064016100cf565b61024c826001610760565b81602001511461029e5760405162461bcd60e51b815260206004820152601160248201527f505553485f56414c5f434f4e54454e545300000000000000000000000000000060448201526064016100cf565b50806102a981610773565b9150506101c7565b5060006102bd8261060d565b90506000815160068111156102d4576102d4610734565b146103215760405162461bcd60e51b815260206004820152600c60248201527f504f505f5245545f54595045000000000000000000000000000000000000000060448201526064016100cf565b80602001516003146103755760405162461bcd60e51b815260206004820152601060248201527f504f505f5245545f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b8151516002146103c75760405162461bcd60e51b815260206004820152600760248201527f504f505f4c454e0000000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8251518110156104b45760006103e084836105d4565b90506000815160068111156103f7576103f7610734565b146104445760405162461bcd60e51b815260206004820152600c60248201527f504f505f56414c5f54595045000000000000000000000000000000000000000060448201526064016100cf565b61044f826001610760565b8160200151146104a15760405162461bcd60e51b815260206004820152601060248201527f504f505f56414c5f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b50806104ac81610773565b9150506103ca565b505050565b80836000015183815181106104d0576104d06107ab565b6020026020010181905250505050565b8151516000906104f1906001610760565b67ffffffffffffffff8111156105095761050961071e565b60405190808252806020026020018201604052801561054e57816020015b60408051808201909152600080825260208201528152602001906001900390816105275790505b50905060005b8351518110156105aa578351805182908110610572576105726107ab565b602002602001015182828151811061058c5761058c6107ab565b602002602001018190525080806105a290610773565b915050610554565b508181846000015151815181106105c3576105c36107ab565b602090810291909101015290915250565b604080518082019091526000808252602082015282518051839081106105fc576105fc6107ab565b602002602001015190505b92915050565b604080518082019091526000808252602082015281518051610631906001906107c1565b81518110610641576106416107ab565b602002602001015190506000600183600001515161065f91906107c1565b67ffffffffffffffff8111156106775761067761071e565b6040519080825280602002602001820160405280156106bc57816020015b60408051808201909152600080825260208201528152602001906001900390816106955790505b50905060005b81518110156107175783518051829081106106df576106df6107ab565b60200260200101518282815181106106f9576106f96107ab565b6020026020010181905250808061070f90610773565b9150506106c2565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106075761060761074a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107a4576107a461074a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b818103818111156106075761060761074a56fea2646970667358221220c91fc927240ed2cc6dd35c9d82c300294c873da46a2d45e5fee8b3f4461a7d1864736f6c63430008110033",
|
|
15
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861003a565b005b6040805160026020820181815260808301845260009383929083015b604080518082019091526000808252602082015281526020019060019003908161005657505090528051519091506002146100d85760405162461bcd60e51b815260206004820152600960248201527f53544152545f4c454e000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051808201825260008082526020918201819052825180840190935280835260019183019190915261010f915b8391906104b9565b604080518082018252600080825260209182018190528251808401909352825260029082015261014190600190610107565b60408051808201825260008082526020918201819052825180840190935282526003908201526101729082906104e0565b8051516003146101c45760405162461bcd60e51b815260206004820152600860248201527f505553485f4c454e00000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8151518110156102b15760006101dd83836105d4565b90506000815160068111156101f4576101f4610734565b146102415760405162461bcd60e51b815260206004820152600d60248201527f505553485f56414c5f545950450000000000000000000000000000000000000060448201526064016100cf565b61024c826001610760565b81602001511461029e5760405162461bcd60e51b815260206004820152601160248201527f505553485f56414c5f434f4e54454e545300000000000000000000000000000060448201526064016100cf565b50806102a981610773565b9150506101c7565b5060006102bd8261060d565b90506000815160068111156102d4576102d4610734565b146103215760405162461bcd60e51b815260206004820152600c60248201527f504f505f5245545f54595045000000000000000000000000000000000000000060448201526064016100cf565b80602001516003146103755760405162461bcd60e51b815260206004820152601060248201527f504f505f5245545f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b8151516002146103c75760405162461bcd60e51b815260206004820152600760248201527f504f505f4c454e0000000000000000000000000000000000000000000000000060448201526064016100cf565b60005b8251518110156104b45760006103e084836105d4565b90506000815160068111156103f7576103f7610734565b146104445760405162461bcd60e51b815260206004820152600c60248201527f504f505f56414c5f54595045000000000000000000000000000000000000000060448201526064016100cf565b61044f826001610760565b8160200151146104a15760405162461bcd60e51b815260206004820152601060248201527f504f505f56414c5f434f4e54454e54530000000000000000000000000000000060448201526064016100cf565b50806104ac81610773565b9150506103ca565b505050565b80836000015183815181106104d0576104d06107ab565b6020026020010181905250505050565b8151516000906104f1906001610760565b67ffffffffffffffff8111156105095761050961071e565b60405190808252806020026020018201604052801561054e57816020015b60408051808201909152600080825260208201528152602001906001900390816105275790505b50905060005b8351518110156105aa578351805182908110610572576105726107ab565b602002602001015182828151811061058c5761058c6107ab565b602002602001018190525080806105a290610773565b915050610554565b508181846000015151815181106105c3576105c36107ab565b602090810291909101015290915250565b604080518082019091526000808252602082015282518051839081106105fc576105fc6107ab565b602002602001015190505b92915050565b604080518082019091526000808252602082015281518051610631906001906107c1565b81518110610641576106416107ab565b602002602001015190506000600183600001515161065f91906107c1565b67ffffffffffffffff8111156106775761067761071e565b6040519080825280602002602001820160405280156106bc57816020015b60408051808201909152600080825260208201528152602001906001900390816106955790505b50905060005b81518110156107175783518051829081106106df576106df6107ab565b60200260200101518282815181106106f9576106f96107ab565b6020026020010181905250808061070f90610773565b9150506106c2565b5090915290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106075761060761074a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107a4576107a461074a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b818103818111156106075761060761074a56fea2646970667358221220c91fc927240ed2cc6dd35c9d82c300294c873da46a2d45e5fee8b3f4461a7d1864736f6c63430008110033",
|
|
16
16
|
"linkReferences": {},
|
|
17
17
|
"deployedLinkReferences": {}
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":null,"bytecode":{"object":"
|
|
1
|
+
{"abi":null,"bytecode":{"object":"0x605b80600c6000396000f3fe346056576000803560e01c8063e83a2d8214602857631f6d6ef71460205780fd5b6020904a8152f35b50805b804990811560435760019160408260051b015201602b565b60409150602083528060205260051b0190f35b600080fd","sourceMap":"76:19:0:-:0;53:21;;50:1;41:55;50:1;105:30","linkReferences":{}},"deployedBytecode":{"object":"0x346056576000803560e01c8063e83a2d8214602857631f6d6ef71460205780fd5b6020904a8152f35b50805b804990811560435760019160408260051b015201602b565b60409150602083528060205260051b0190f35b600080fd","sourceMap":"250:11:0:-:0;247:31;;400:1;387:15;;381:4;377:26;465:486;470:10;465:486;;;1019:10;1014:216;;;1294:12;;1030:200;1213:2;1124:23;;1164:22;;1203:13;481:470;499:10;;559:271;651:26;;701:12;;;698:25;;810:1;755:10;767:2;755:10;;;751:19;744:33;803:9;539:3;;714:9;767:2;716:5;;762:2;847:13;;877;762:2;877:13;755:10;921;917:19;907:30;;262:16;274:1;264:12;","linkReferences":{}},"methodIdentifiers":{}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbitrum/nitro-contracts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.0",
|
|
4
4
|
"description": "Layer 2 precompiles and rollup for Arbitrum Nitro",
|
|
5
5
|
"author": "Offchain Labs, Inc.",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"audit:ci": "audit-ci --config ./audit-ci.jsonc",
|
|
22
22
|
"audit:fix": "yarn-audit-fix",
|
|
23
23
|
"prepublishOnly": "hardhat clean && forge clean && hardhat compile && yarn build:forge:yul",
|
|
24
|
+
"coverage": "forge coverage --report lcov --ir-minimum && lcov --remove lcov.info 'node_modules/*' 'test/*' 'script/*' 'src/test-helpers/*' 'challenge/*' --ignore-errors unused -o lcov.info && genhtml lcov.info --branch-coverage --output-dir coverage",
|
|
24
25
|
"build:all": "yarn build && yarn build:forge",
|
|
25
26
|
"build": "hardhat compile",
|
|
26
27
|
"build:forge:sol": "forge build --skip *.yul",
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
"lint:test": "eslint ./test",
|
|
31
32
|
"solhint": "solhint -f table src/**/*.sol",
|
|
32
33
|
"prettier:solidity": "prettier --write src/**/*.sol",
|
|
33
|
-
"format": "prettier './**/*.{js,json,ts,yml
|
|
34
|
+
"format": "forge fmt && prettier './**/*.{js,json,md,ts,yml}' --write && yarn run lint:test --fix",
|
|
34
35
|
"build:0.6": "INTERFACE_TESTER_SOLC_VERSION=0.6.9 yarn run build",
|
|
35
36
|
"build:0.7": "INTERFACE_TESTER_SOLC_VERSION=0.7.0 yarn run build",
|
|
36
37
|
"test": "DISABLE_GAS_REPORTER=true hardhat --network hardhat test test/contract/*.spec.ts",
|
|
@@ -39,26 +40,35 @@
|
|
|
39
40
|
"test:storage": "./test/storage/test.bash",
|
|
40
41
|
"test:signatures": "./test/signatures/test-sigs.bash",
|
|
41
42
|
"test:e2e": "hardhat test test/e2e/*.ts",
|
|
43
|
+
"test:upgrade": "./scripts/testUpgrade.bash",
|
|
44
|
+
"test:foundry": "forge test --gas-limit 10000000000",
|
|
45
|
+
"test:update": "yarn run test:signatures || yarn run test:storage",
|
|
46
|
+
"metadatahash": "yarn build:all && hardhat run scripts/printMetadataHashes.ts",
|
|
47
|
+
"upload-4bytes": "forge build && find ./out -type f -name \"*.json\" -exec cast upload-signature {} + | grep -v Duplicated:",
|
|
42
48
|
"postinstall": "patch-package",
|
|
43
49
|
"deploy-factory": "hardhat run scripts/deployment.ts",
|
|
44
50
|
"deploy-eth-rollup": "hardhat run scripts/createEthRollup.ts",
|
|
45
51
|
"deploy-erc20-rollup": "hardhat run scripts/createERC20Rollup.ts",
|
|
46
52
|
"create-rollup-testnode": "hardhat run scripts/local-deployment/deployCreatorAndCreateRollup.ts",
|
|
53
|
+
"script:bold-prepare": "hardhat run ./scripts/prepareBoldUpgrade.ts",
|
|
54
|
+
"script:bold-populate-lookup": "hardhat run ./scripts/populateLookup.ts",
|
|
55
|
+
"script:bold-local-execute": "hardhat run ./scripts/testLocalExecuteBoldUpgrade.ts",
|
|
47
56
|
"deploy-cachemanager-testnode": "hardhat run scripts/local-deployment/deployCacheManager.ts"
|
|
48
57
|
},
|
|
49
58
|
"dependencies": {
|
|
50
59
|
"@offchainlabs/upgrade-executor": "1.1.0-beta.0",
|
|
51
|
-
"@openzeppelin/contracts": "4.
|
|
52
|
-
"@openzeppelin/contracts-upgradeable": "4.
|
|
60
|
+
"@openzeppelin/contracts": "4.7.3",
|
|
61
|
+
"@openzeppelin/contracts-upgradeable": "4.7.3",
|
|
53
62
|
"patch-package": "^6.4.7",
|
|
54
63
|
"solady": "0.0.182"
|
|
55
64
|
},
|
|
56
65
|
"private": false,
|
|
57
66
|
"devDependencies": {
|
|
67
|
+
"@arbitrum/nitro-contracts-2.0.0": "npm:@arbitrum/nitro-contracts@2.0.0-beta.0",
|
|
58
68
|
"@arbitrum/sdk": "^3.4.1",
|
|
59
69
|
"@ethersproject/providers": "^5.7.2",
|
|
70
|
+
"@nomicfoundation/hardhat-verify": "^2.0.9",
|
|
60
71
|
"@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.3.0-beta.13",
|
|
61
|
-
"@nomiclabs/hardhat-etherscan": "^3.1.0",
|
|
62
72
|
"@nomiclabs/hardhat-waffle": "^2.0.1",
|
|
63
73
|
"@tovarishfin/hardhat-yul": "^3.0.5",
|
|
64
74
|
"@typechain/ethers-v5": "^10.0.0",
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
8
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
9
|
+
import {IAbsBoldStakingPool} from "./interfaces/IAbsBoldStakingPool.sol";
|
|
10
|
+
|
|
11
|
+
/// @notice Abstract contract for handling deposits and withdrawals of trustless edge/assertion staking pools.
|
|
12
|
+
/// @dev The total deposited amount can exceed the required stake amount.
|
|
13
|
+
/// If the total deposited amount exceeds the required amount, any depositor can withdraw some stake early even after the protocol move has been made.
|
|
14
|
+
/// This is okay because the protocol move will still be created once the required stake amount is reached,
|
|
15
|
+
/// and all depositors will still be eventually refunded.
|
|
16
|
+
abstract contract AbsBoldStakingPool is IAbsBoldStakingPool {
|
|
17
|
+
using SafeERC20 for IERC20;
|
|
18
|
+
|
|
19
|
+
/// @inheritdoc IAbsBoldStakingPool
|
|
20
|
+
address public immutable stakeToken;
|
|
21
|
+
/// @inheritdoc IAbsBoldStakingPool
|
|
22
|
+
mapping(address => uint256) public depositBalance;
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
address _stakeToken
|
|
26
|
+
) {
|
|
27
|
+
stakeToken = _stakeToken;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// @inheritdoc IAbsBoldStakingPool
|
|
31
|
+
function depositIntoPool(
|
|
32
|
+
uint256 amount
|
|
33
|
+
) external {
|
|
34
|
+
if (amount == 0) {
|
|
35
|
+
revert ZeroAmount();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
depositBalance[msg.sender] += amount;
|
|
39
|
+
IERC20(stakeToken).safeTransferFrom(msg.sender, address(this), amount);
|
|
40
|
+
|
|
41
|
+
emit StakeDeposited(msg.sender, amount);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// @inheritdoc IAbsBoldStakingPool
|
|
45
|
+
function withdrawFromPool(
|
|
46
|
+
uint256 amount
|
|
47
|
+
) public {
|
|
48
|
+
if (amount == 0) {
|
|
49
|
+
revert ZeroAmount();
|
|
50
|
+
}
|
|
51
|
+
uint256 balance = depositBalance[msg.sender];
|
|
52
|
+
if (amount > balance) {
|
|
53
|
+
revert AmountExceedsBalance(msg.sender, amount, balance);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
depositBalance[msg.sender] = balance - amount;
|
|
57
|
+
IERC20(stakeToken).safeTransfer(msg.sender, amount);
|
|
58
|
+
|
|
59
|
+
emit StakeWithdrawn(msg.sender, amount);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// @inheritdoc IAbsBoldStakingPool
|
|
63
|
+
function withdrawFromPool() external {
|
|
64
|
+
withdrawFromPool(depositBalance[msg.sender]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
8
|
+
import "../rollup/IRollupLogic.sol";
|
|
9
|
+
import "./AbsBoldStakingPool.sol";
|
|
10
|
+
import "./interfaces/IAssertionStakingPool.sol";
|
|
11
|
+
|
|
12
|
+
/// @notice Staking pool contract for target assertion.
|
|
13
|
+
///
|
|
14
|
+
/// Allows users to deposit stake, create assertion once required stake amount is reached,
|
|
15
|
+
/// and reclaim their stake when and if the assertion is confirmed.
|
|
16
|
+
///
|
|
17
|
+
/// Tokens sent directly to this contract will be lost.
|
|
18
|
+
/// It is assumed that the rollup will not return more tokens than the amount deposited by the pool.
|
|
19
|
+
/// Any tokens exceeding the deposited amount to the pool will be stuck in the pool forever.
|
|
20
|
+
contract AssertionStakingPool is AbsBoldStakingPool, IAssertionStakingPool {
|
|
21
|
+
using SafeERC20 for IERC20;
|
|
22
|
+
|
|
23
|
+
/// @inheritdoc IAssertionStakingPool
|
|
24
|
+
address public immutable rollup;
|
|
25
|
+
/// @inheritdoc IAssertionStakingPool
|
|
26
|
+
bytes32 public immutable assertionHash;
|
|
27
|
+
|
|
28
|
+
/// @param _rollup Rollup contract of target chain
|
|
29
|
+
/// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
|
|
30
|
+
constructor(
|
|
31
|
+
address _rollup,
|
|
32
|
+
bytes32 _assertionHash
|
|
33
|
+
) AbsBoldStakingPool(IRollupCore(_rollup).stakeToken()) {
|
|
34
|
+
if (_assertionHash == bytes32(0)) {
|
|
35
|
+
revert EmptyAssertionId();
|
|
36
|
+
}
|
|
37
|
+
rollup = _rollup;
|
|
38
|
+
assertionHash = _assertionHash;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// @inheritdoc IAssertionStakingPool
|
|
42
|
+
function createAssertion(
|
|
43
|
+
AssertionInputs calldata assertionInputs
|
|
44
|
+
) external {
|
|
45
|
+
uint256 requiredStake = assertionInputs.beforeStateData.configData.requiredStake;
|
|
46
|
+
// approve spending from rollup for newStakeOnNewAssertion call
|
|
47
|
+
IERC20(stakeToken).safeIncreaseAllowance(rollup, requiredStake);
|
|
48
|
+
// reverts if pool doesn't have enough stake and if assertion has already been asserted
|
|
49
|
+
IRollupUser(rollup).newStakeOnNewAssertion(
|
|
50
|
+
requiredStake, assertionInputs, assertionHash, address(this)
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/// @inheritdoc IAssertionStakingPool
|
|
55
|
+
function makeStakeWithdrawable() public {
|
|
56
|
+
// this checks for active staker
|
|
57
|
+
IRollupUser(rollup).returnOldDeposit();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/// @inheritdoc IAssertionStakingPool
|
|
61
|
+
function withdrawStakeBackIntoPool() public {
|
|
62
|
+
IRollupUser(rollup).withdrawStakerFunds();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/// @inheritdoc IAssertionStakingPool
|
|
66
|
+
function makeStakeWithdrawableAndWithdrawBackIntoPool() external {
|
|
67
|
+
makeStakeWithdrawable();
|
|
68
|
+
withdrawStakeBackIntoPool();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "./AssertionStakingPool.sol";
|
|
8
|
+
import "./StakingPoolCreatorUtils.sol";
|
|
9
|
+
import "./interfaces/IAssertionStakingPoolCreator.sol";
|
|
10
|
+
|
|
11
|
+
/// @notice Creates staking pool contract for a target assertion. Can be used for any child Arbitrum chain running on top of the deployed AssertionStakingPoolCreator's chain.
|
|
12
|
+
contract AssertionStakingPoolCreator is IAssertionStakingPoolCreator {
|
|
13
|
+
/// @inheritdoc IAssertionStakingPoolCreator
|
|
14
|
+
function createPool(
|
|
15
|
+
address _rollup,
|
|
16
|
+
bytes32 _assertionHash
|
|
17
|
+
) external returns (IAssertionStakingPool) {
|
|
18
|
+
AssertionStakingPool assertionPool =
|
|
19
|
+
new AssertionStakingPool{salt: 0}(_rollup, _assertionHash);
|
|
20
|
+
emit NewAssertionPoolCreated(_rollup, _assertionHash, address(assertionPool));
|
|
21
|
+
return assertionPool;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/// @inheritdoc IAssertionStakingPoolCreator
|
|
25
|
+
function getPool(
|
|
26
|
+
address _rollup,
|
|
27
|
+
bytes32 _assertionHash
|
|
28
|
+
) public view returns (IAssertionStakingPool) {
|
|
29
|
+
return IAssertionStakingPool(
|
|
30
|
+
StakingPoolCreatorUtils.getPool(
|
|
31
|
+
type(AssertionStakingPool).creationCode, abi.encode(_rollup, _assertionHash)
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "./AbsBoldStakingPool.sol";
|
|
8
|
+
import "./interfaces/IEdgeStakingPool.sol";
|
|
9
|
+
import "../challengeV2/EdgeChallengeManager.sol";
|
|
10
|
+
|
|
11
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
12
|
+
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
13
|
+
|
|
14
|
+
/// @notice Trustless staking pool contract for creating layer zero edges.
|
|
15
|
+
///
|
|
16
|
+
/// Allows users to deposit stake, create an edge once required stake amount is reached,
|
|
17
|
+
/// and reclaim their stake when and if the edge is confirmed.
|
|
18
|
+
///
|
|
19
|
+
/// Tokens sent directly to this contract will be lost.
|
|
20
|
+
/// It is assumed that the challenge manager will not return more tokens than the amount deposited by the pool.
|
|
21
|
+
/// Any tokens exceeding the deposited amount to the pool will be stuck in the pool forever.
|
|
22
|
+
///
|
|
23
|
+
/// @dev Unlike the assertion staking pool, there is no need for a function to claim the stake back into the pool.
|
|
24
|
+
/// (see `EdgeChallengeManager.refundStake(bytes32 edgeId)`)
|
|
25
|
+
contract EdgeStakingPool is AbsBoldStakingPool, IEdgeStakingPool {
|
|
26
|
+
using SafeERC20 for IERC20;
|
|
27
|
+
|
|
28
|
+
/// @inheritdoc IEdgeStakingPool
|
|
29
|
+
address public immutable challengeManager;
|
|
30
|
+
/// @inheritdoc IEdgeStakingPool
|
|
31
|
+
bytes32 public immutable edgeId;
|
|
32
|
+
|
|
33
|
+
/// @param _challengeManager EdgeChallengeManager contract
|
|
34
|
+
/// @param _edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
|
|
35
|
+
constructor(
|
|
36
|
+
address _challengeManager,
|
|
37
|
+
bytes32 _edgeId
|
|
38
|
+
) AbsBoldStakingPool(address(EdgeChallengeManager(_challengeManager).stakeToken())) {
|
|
39
|
+
if (_edgeId == bytes32(0)) {
|
|
40
|
+
revert EmptyEdgeId();
|
|
41
|
+
}
|
|
42
|
+
challengeManager = _challengeManager;
|
|
43
|
+
edgeId = _edgeId;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/// @inheritdoc IEdgeStakingPool
|
|
47
|
+
function createEdge(
|
|
48
|
+
CreateEdgeArgs calldata args
|
|
49
|
+
) external {
|
|
50
|
+
uint256 requiredStake = EdgeChallengeManager(challengeManager).stakeAmounts(args.level);
|
|
51
|
+
IERC20(stakeToken).safeIncreaseAllowance(address(challengeManager), requiredStake);
|
|
52
|
+
bytes32 newEdgeId = EdgeChallengeManager(challengeManager).createLayerZeroEdge(args);
|
|
53
|
+
if (newEdgeId != edgeId) {
|
|
54
|
+
revert IncorrectEdgeId(newEdgeId, edgeId);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "./EdgeStakingPool.sol";
|
|
8
|
+
import "./StakingPoolCreatorUtils.sol";
|
|
9
|
+
import "./interfaces/IEdgeStakingPoolCreator.sol";
|
|
10
|
+
|
|
11
|
+
/// @notice Creates EdgeStakingPool contracts.
|
|
12
|
+
contract EdgeStakingPoolCreator is IEdgeStakingPoolCreator {
|
|
13
|
+
/// @inheritdoc IEdgeStakingPoolCreator
|
|
14
|
+
function createPool(
|
|
15
|
+
address challengeManager,
|
|
16
|
+
bytes32 edgeId
|
|
17
|
+
) external returns (IEdgeStakingPool) {
|
|
18
|
+
EdgeStakingPool pool = new EdgeStakingPool{salt: 0}(challengeManager, edgeId);
|
|
19
|
+
emit NewEdgeStakingPoolCreated(challengeManager, edgeId);
|
|
20
|
+
return pool;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// @inheritdoc IEdgeStakingPoolCreator
|
|
24
|
+
function getPool(
|
|
25
|
+
address challengeManager,
|
|
26
|
+
bytes32 edgeId
|
|
27
|
+
) public view returns (IEdgeStakingPool) {
|
|
28
|
+
return IEdgeStakingPool(
|
|
29
|
+
StakingPoolCreatorUtils.getPool(
|
|
30
|
+
type(EdgeStakingPool).creationCode, abi.encode(challengeManager, edgeId)
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
//
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "@openzeppelin/contracts/utils/Create2.sol";
|
|
8
|
+
import "@openzeppelin/contracts/utils/Address.sol";
|
|
9
|
+
|
|
10
|
+
library StakingPoolCreatorUtils {
|
|
11
|
+
error PoolDoesntExist();
|
|
12
|
+
|
|
13
|
+
function getPool(
|
|
14
|
+
bytes memory creationCode,
|
|
15
|
+
bytes memory args
|
|
16
|
+
) internal view returns (address) {
|
|
17
|
+
bytes32 bytecodeHash = keccak256(abi.encodePacked(creationCode, args));
|
|
18
|
+
address pool = Create2.computeAddress(0, bytecodeHash, address(this));
|
|
19
|
+
if (Address.isContract(pool)) {
|
|
20
|
+
return pool;
|
|
21
|
+
} else {
|
|
22
|
+
revert PoolDoesntExist();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
interface IAbsBoldStakingPool {
|
|
8
|
+
/// @notice Emitted when stake is deposited
|
|
9
|
+
event StakeDeposited(address indexed sender, uint256 amount);
|
|
10
|
+
/// @notice Emitted when stake is withdrawn
|
|
11
|
+
event StakeWithdrawn(address indexed sender, uint256 amount);
|
|
12
|
+
|
|
13
|
+
/// @notice Cannot deposit or withdraw zero amount
|
|
14
|
+
error ZeroAmount();
|
|
15
|
+
/// @notice Withdraw amount exceeds balance
|
|
16
|
+
error AmountExceedsBalance(address account, uint256 amount, uint256 balance);
|
|
17
|
+
|
|
18
|
+
/// @notice Deposit stake into pool contract.
|
|
19
|
+
/// @param amount amount of stake token to deposit
|
|
20
|
+
function depositIntoPool(
|
|
21
|
+
uint256 amount
|
|
22
|
+
) external;
|
|
23
|
+
|
|
24
|
+
/// @notice Send supplied amount of stake from this contract back to its depositor.
|
|
25
|
+
/// @param amount stake amount to withdraw
|
|
26
|
+
function withdrawFromPool(
|
|
27
|
+
uint256 amount
|
|
28
|
+
) external;
|
|
29
|
+
|
|
30
|
+
/// @notice Send full balance of stake from this contract back to its depositor.
|
|
31
|
+
function withdrawFromPool() external;
|
|
32
|
+
|
|
33
|
+
/// @notice The token that is used for staking
|
|
34
|
+
function stakeToken() external view returns (address);
|
|
35
|
+
|
|
36
|
+
/// @notice The balance of the given account
|
|
37
|
+
/// @param account The account to check the balance of
|
|
38
|
+
function depositBalance(
|
|
39
|
+
address account
|
|
40
|
+
) external view returns (uint256);
|
|
41
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "../../rollup/IRollupLogic.sol";
|
|
8
|
+
import "./IAbsBoldStakingPool.sol";
|
|
9
|
+
|
|
10
|
+
interface IAssertionStakingPool is IAbsBoldStakingPool {
|
|
11
|
+
/// @notice Thrown when assertion id is empty
|
|
12
|
+
error EmptyAssertionId();
|
|
13
|
+
|
|
14
|
+
/// @notice Create assertion. Callable only if required stake has been reached and assertion has not been asserted yet.
|
|
15
|
+
function createAssertion(
|
|
16
|
+
AssertionInputs calldata assertionInputs
|
|
17
|
+
) external;
|
|
18
|
+
|
|
19
|
+
/// @notice Make stake withdrawable.
|
|
20
|
+
/// @dev Separate call from withdrawStakeBackIntoPool since returnOldDeposit reverts with 0 balance (in e.g., case of admin forceRefundStaker)
|
|
21
|
+
function makeStakeWithdrawable() external;
|
|
22
|
+
|
|
23
|
+
/// @notice Move stake back from rollup contract to this contract.
|
|
24
|
+
/// Callable only if this contract has already created an assertion and it's now inactive.
|
|
25
|
+
/// @dev Separate call from makeStakeWithdrawable since returnOldDeposit reverts with 0 balance (in e.g., case of admin forceRefundStaker)
|
|
26
|
+
function withdrawStakeBackIntoPool() external;
|
|
27
|
+
|
|
28
|
+
/// @notice Combines makeStakeWithdrawable and withdrawStakeBackIntoPool into single call
|
|
29
|
+
function makeStakeWithdrawableAndWithdrawBackIntoPool() external;
|
|
30
|
+
|
|
31
|
+
/// @notice The targeted rollup contract
|
|
32
|
+
function rollup() external view returns (address);
|
|
33
|
+
|
|
34
|
+
/// @notice The assertion hash that this pool creates
|
|
35
|
+
function assertionHash() external view returns (bytes32);
|
|
36
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "../../rollup/IRollupLogic.sol";
|
|
8
|
+
import "./IAssertionStakingPool.sol";
|
|
9
|
+
|
|
10
|
+
interface IAssertionStakingPoolCreator {
|
|
11
|
+
/// @notice Event emitted when a new staking pool is created
|
|
12
|
+
event NewAssertionPoolCreated(
|
|
13
|
+
address indexed rollup, bytes32 indexed _assertionHash, address assertionPool
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
/// @notice Create a staking pool contract
|
|
17
|
+
/// @param _rollup Rollup contract of target chain
|
|
18
|
+
/// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
|
|
19
|
+
function createPool(
|
|
20
|
+
address _rollup,
|
|
21
|
+
bytes32 _assertionHash
|
|
22
|
+
) external returns (IAssertionStakingPool);
|
|
23
|
+
|
|
24
|
+
/// @notice get staking pool deployed with provided inputs; reverts if pool contract doesn't exist.
|
|
25
|
+
/// @param _rollup Rollup contract of target chain
|
|
26
|
+
/// @param _assertionHash Assertion hash to be passed into Rollup.stakeOnNewAssertion
|
|
27
|
+
function getPool(
|
|
28
|
+
address _rollup,
|
|
29
|
+
bytes32 _assertionHash
|
|
30
|
+
) external view returns (IAssertionStakingPool);
|
|
31
|
+
}
|