@arbitrum/nitro-contracts 2.0.0 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -494
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -530
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +16 -6
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -12
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +36 -69
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -642
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1327
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1461
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1609
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1743
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -0,0 +1,27 @@
|
|
|
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 "../../challengeV2/EdgeChallengeManager.sol";
|
|
8
|
+
import "./IAbsBoldStakingPool.sol";
|
|
9
|
+
|
|
10
|
+
interface IEdgeStakingPool is IAbsBoldStakingPool {
|
|
11
|
+
/// @notice The resulting edge does not match the expected edge
|
|
12
|
+
error IncorrectEdgeId(bytes32 actual, bytes32 expected);
|
|
13
|
+
|
|
14
|
+
/// @notice Thrown when edge id is empty
|
|
15
|
+
error EmptyEdgeId();
|
|
16
|
+
|
|
17
|
+
/// @notice Create the edge. Callable only if required stake has been reached and edge has not been created yet.
|
|
18
|
+
function createEdge(
|
|
19
|
+
CreateEdgeArgs calldata args
|
|
20
|
+
) external;
|
|
21
|
+
|
|
22
|
+
/// @notice The targeted challenge manager contract
|
|
23
|
+
function challengeManager() external view returns (address);
|
|
24
|
+
|
|
25
|
+
/// @notice The edge that this pool will create
|
|
26
|
+
function edgeId() external view returns (bytes32);
|
|
27
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 "./IEdgeStakingPool.sol";
|
|
8
|
+
|
|
9
|
+
interface IEdgeStakingPoolCreator {
|
|
10
|
+
/// @notice Event emitted when a new staking pool is created
|
|
11
|
+
event NewEdgeStakingPoolCreated(address indexed challengeManager, bytes32 indexed edgeId);
|
|
12
|
+
|
|
13
|
+
/// @notice Create an edge staking pool contract
|
|
14
|
+
/// @param challengeManager EdgeChallengeManager contract
|
|
15
|
+
/// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
|
|
16
|
+
function createPool(
|
|
17
|
+
address challengeManager,
|
|
18
|
+
bytes32 edgeId
|
|
19
|
+
) external returns (IEdgeStakingPool);
|
|
20
|
+
|
|
21
|
+
/// @notice get staking pool deployed with provided inputs; reverts if pool contract doesn't exist.
|
|
22
|
+
/// @param challengeManager EdgeChallengeManager contract
|
|
23
|
+
/// @param edgeId The ID of the edge to be created (see ChallengeEdgeLib.id)
|
|
24
|
+
function getPool(
|
|
25
|
+
address challengeManager,
|
|
26
|
+
bytes32 edgeId
|
|
27
|
+
) external view returns (IEdgeStakingPool);
|
|
28
|
+
}
|
package/src/bridge/AbsBridge.sol
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/nitro/blob/
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.4;
|
|
@@ -68,7 +68,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/// @notice Allows the rollup owner to set another rollup address
|
|
71
|
-
function updateRollupAddress(
|
|
71
|
+
function updateRollupAddress(
|
|
72
|
+
IOwnable _rollup
|
|
73
|
+
) external onlyRollupOrOwner {
|
|
72
74
|
rollup = _rollup;
|
|
73
75
|
emit RollupUpdated(address(_rollup));
|
|
74
76
|
}
|
|
@@ -84,11 +86,15 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
84
86
|
return outbox;
|
|
85
87
|
}
|
|
86
88
|
|
|
87
|
-
function allowedDelayedInboxes(
|
|
89
|
+
function allowedDelayedInboxes(
|
|
90
|
+
address inbox
|
|
91
|
+
) public view returns (bool) {
|
|
88
92
|
return allowedDelayedInboxesMap[inbox].allowed;
|
|
89
93
|
}
|
|
90
94
|
|
|
91
|
-
function allowedOutboxes(
|
|
95
|
+
function allowedOutboxes(
|
|
96
|
+
address outbox
|
|
97
|
+
) public view returns (bool) {
|
|
92
98
|
return allowedOutboxesMap[outbox].allowed;
|
|
93
99
|
}
|
|
94
100
|
|
|
@@ -105,17 +111,11 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
105
111
|
)
|
|
106
112
|
external
|
|
107
113
|
onlySequencerInbox
|
|
108
|
-
returns (
|
|
109
|
-
uint256 seqMessageIndex,
|
|
110
|
-
bytes32 beforeAcc,
|
|
111
|
-
bytes32 delayedAcc,
|
|
112
|
-
bytes32 acc
|
|
113
|
-
)
|
|
114
|
+
returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc)
|
|
114
115
|
{
|
|
115
116
|
if (
|
|
116
|
-
sequencerReportedSubMessageCount != prevMessageCount &&
|
|
117
|
-
|
|
118
|
-
sequencerReportedSubMessageCount != 0
|
|
117
|
+
sequencerReportedSubMessageCount != prevMessageCount && prevMessageCount != 0
|
|
118
|
+
&& sequencerReportedSubMessageCount != 0
|
|
119
119
|
) {
|
|
120
120
|
revert BadSequencerMessageNumber(sequencerReportedSubMessageCount, prevMessageCount);
|
|
121
121
|
}
|
|
@@ -132,20 +132,18 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
/// @inheritdoc IBridge
|
|
135
|
-
function submitBatchSpendingReport(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
messageDataHash
|
|
148
|
-
);
|
|
135
|
+
function submitBatchSpendingReport(
|
|
136
|
+
address sender,
|
|
137
|
+
bytes32 messageDataHash
|
|
138
|
+
) external onlySequencerInbox returns (uint256) {
|
|
139
|
+
return addMessageToDelayedAccumulator(
|
|
140
|
+
L1MessageType_batchPostingReport,
|
|
141
|
+
sender,
|
|
142
|
+
uint64(block.number),
|
|
143
|
+
uint64(block.timestamp), // solhint-disable-line not-rely-on-time,
|
|
144
|
+
block.basefee,
|
|
145
|
+
messageDataHash
|
|
146
|
+
);
|
|
149
147
|
}
|
|
150
148
|
|
|
151
149
|
function _enqueueDelayedMessage(
|
|
@@ -180,13 +178,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
180
178
|
) internal returns (uint256) {
|
|
181
179
|
uint256 count = delayedInboxAccs.length;
|
|
182
180
|
bytes32 messageHash = Messages.messageHash(
|
|
183
|
-
kind,
|
|
184
|
-
sender,
|
|
185
|
-
blockNumber,
|
|
186
|
-
blockTimestamp,
|
|
187
|
-
count,
|
|
188
|
-
baseFeeL1,
|
|
189
|
-
messageDataHash
|
|
181
|
+
kind, sender, blockNumber, blockTimestamp, count, baseFeeL1, messageDataHash
|
|
190
182
|
);
|
|
191
183
|
bytes32 prevAcc = 0;
|
|
192
184
|
if (count > 0) {
|
|
@@ -194,14 +186,7 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
194
186
|
}
|
|
195
187
|
delayedInboxAccs.push(Messages.accumulateInboxMessage(prevAcc, messageHash));
|
|
196
188
|
emit MessageDelivered(
|
|
197
|
-
count,
|
|
198
|
-
prevAcc,
|
|
199
|
-
msg.sender,
|
|
200
|
-
kind,
|
|
201
|
-
sender,
|
|
202
|
-
messageDataHash,
|
|
203
|
-
baseFeeL1,
|
|
204
|
-
blockTimestamp
|
|
189
|
+
count, prevAcc, msg.sender, kind, sender, messageDataHash, baseFeeL1, blockTimestamp
|
|
205
190
|
);
|
|
206
191
|
return count;
|
|
207
192
|
}
|
|
@@ -226,7 +211,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
226
211
|
emit BridgeCallTriggered(msg.sender, to, value, data);
|
|
227
212
|
}
|
|
228
213
|
|
|
229
|
-
function setSequencerInbox(
|
|
214
|
+
function setSequencerInbox(
|
|
215
|
+
address _sequencerInbox
|
|
216
|
+
) external onlyRollupOrOwner {
|
|
230
217
|
sequencerInbox = _sequencerInbox;
|
|
231
218
|
emit SequencerInboxUpdated(_sequencerInbox);
|
|
232
219
|
}
|
|
@@ -242,9 +229,8 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
242
229
|
allowedDelayedInboxesMap[inbox] = InOutInfo(allowedDelayedInboxList.length, true);
|
|
243
230
|
allowedDelayedInboxList.push(inbox);
|
|
244
231
|
} else {
|
|
245
|
-
allowedDelayedInboxList[info.index] =
|
|
246
|
-
allowedDelayedInboxList.length - 1
|
|
247
|
-
];
|
|
232
|
+
allowedDelayedInboxList[info.index] =
|
|
233
|
+
allowedDelayedInboxList[allowedDelayedInboxList.length - 1];
|
|
248
234
|
allowedDelayedInboxesMap[allowedDelayedInboxList[info.index]].index = info.index;
|
|
249
235
|
allowedDelayedInboxList.pop();
|
|
250
236
|
delete allowedDelayedInboxesMap[inbox];
|
|
@@ -271,7 +257,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
271
257
|
}
|
|
272
258
|
}
|
|
273
259
|
|
|
274
|
-
function setSequencerReportedSubMessageCount(
|
|
260
|
+
function setSequencerReportedSubMessageCount(
|
|
261
|
+
uint256 newMsgCount
|
|
262
|
+
) external onlyRollupOrOwner {
|
|
275
263
|
sequencerReportedSubMessageCount = newMsgCount;
|
|
276
264
|
}
|
|
277
265
|
|
|
@@ -287,7 +275,9 @@ abstract contract AbsBridge is Initializable, DelegateCallAware, IBridge {
|
|
|
287
275
|
function acceptFundsFromOldBridge() external payable {}
|
|
288
276
|
|
|
289
277
|
/// @dev transfer funds provided to pay for crosschain msg
|
|
290
|
-
function _transferFunds(
|
|
278
|
+
function _transferFunds(
|
|
279
|
+
uint256 amount
|
|
280
|
+
) internal virtual;
|
|
291
281
|
|
|
292
282
|
function _executeLowLevelCall(
|
|
293
283
|
address to,
|
package/src/bridge/AbsInbox.sol
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/nitro/blob/
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.4;
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
DataTooLarge,
|
|
9
|
+
Deprecated,
|
|
9
10
|
GasLimitTooLarge,
|
|
10
11
|
InsufficientValue,
|
|
11
12
|
InsufficientSubmissionCost,
|
|
12
13
|
L1Forked,
|
|
13
14
|
NotAllowedOrigin,
|
|
14
|
-
NotOrigin,
|
|
15
15
|
NotRollupOrOwner,
|
|
16
16
|
RetryableData
|
|
17
17
|
} from "../libraries/Error.sol";
|
|
@@ -68,7 +68,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/// @inheritdoc IInboxBase
|
|
71
|
-
function setAllowListEnabled(
|
|
71
|
+
function setAllowListEnabled(
|
|
72
|
+
bool _allowListEnabled
|
|
73
|
+
) external onlyRollupOrOwner {
|
|
72
74
|
require(_allowListEnabled != allowListEnabled, "ALREADY_SET");
|
|
73
75
|
allowListEnabled = _allowListEnabled;
|
|
74
76
|
emit AllowListEnabledUpdated(_allowListEnabled);
|
|
@@ -101,7 +103,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
101
103
|
uint256 public immutable maxDataSize;
|
|
102
104
|
uint256 internal immutable deployTimeChainId = block.chainid;
|
|
103
105
|
|
|
104
|
-
constructor(
|
|
106
|
+
constructor(
|
|
107
|
+
uint256 _maxDataSize
|
|
108
|
+
) {
|
|
105
109
|
maxDataSize = _maxDataSize;
|
|
106
110
|
}
|
|
107
111
|
|
|
@@ -120,10 +124,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
/* solhint-disable func-name-mixedcase */
|
|
123
|
-
function __AbsInbox_init(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{
|
|
127
|
+
function __AbsInbox_init(
|
|
128
|
+
IBridge _bridge,
|
|
129
|
+
ISequencerInbox _sequencerInbox
|
|
130
|
+
) internal onlyInitializing {
|
|
127
131
|
bridge = _bridge;
|
|
128
132
|
sequencerInbox = _sequencerInbox;
|
|
129
133
|
allowListEnabled = false;
|
|
@@ -131,28 +135,16 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
131
135
|
}
|
|
132
136
|
|
|
133
137
|
/// @inheritdoc IInboxBase
|
|
134
|
-
function sendL2MessageFromOrigin(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
returns (uint256)
|
|
139
|
-
{
|
|
140
|
-
if (_chainIdChanged()) revert L1Forked();
|
|
141
|
-
// solhint-disable-next-line avoid-tx-origin
|
|
142
|
-
if (msg.sender != tx.origin) revert NotOrigin();
|
|
143
|
-
if (messageData.length > maxDataSize) revert DataTooLarge(messageData.length, maxDataSize);
|
|
144
|
-
uint256 msgNum = _deliverToBridge(L2_MSG, msg.sender, keccak256(messageData), 0);
|
|
145
|
-
emit InboxMessageDeliveredFromOrigin(msgNum);
|
|
146
|
-
return msgNum;
|
|
138
|
+
function sendL2MessageFromOrigin(
|
|
139
|
+
bytes calldata
|
|
140
|
+
) external pure returns (uint256) {
|
|
141
|
+
revert Deprecated();
|
|
147
142
|
}
|
|
148
143
|
|
|
149
144
|
/// @inheritdoc IInboxBase
|
|
150
|
-
function sendL2Message(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
onlyAllowed
|
|
154
|
-
returns (uint256)
|
|
155
|
-
{
|
|
145
|
+
function sendL2Message(
|
|
146
|
+
bytes calldata messageData
|
|
147
|
+
) external whenNotPaused onlyAllowed returns (uint256) {
|
|
156
148
|
if (_chainIdChanged()) revert L1Forked();
|
|
157
149
|
return _deliverMessage(L2_MSG, msg.sender, messageData, 0);
|
|
158
150
|
}
|
|
@@ -170,21 +162,20 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
170
162
|
if (gasLimit > type(uint64).max) {
|
|
171
163
|
revert GasLimitTooLarge();
|
|
172
164
|
}
|
|
173
|
-
return
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
);
|
|
165
|
+
return _deliverMessage(
|
|
166
|
+
L2_MSG,
|
|
167
|
+
msg.sender,
|
|
168
|
+
abi.encodePacked(
|
|
169
|
+
L2MessageType_unsignedEOATx,
|
|
170
|
+
gasLimit,
|
|
171
|
+
maxFeePerGas,
|
|
172
|
+
nonce,
|
|
173
|
+
uint256(uint160(to)),
|
|
174
|
+
value,
|
|
175
|
+
data
|
|
176
|
+
),
|
|
177
|
+
0
|
|
178
|
+
);
|
|
188
179
|
}
|
|
189
180
|
|
|
190
181
|
/// @inheritdoc IInboxBase
|
|
@@ -199,20 +190,19 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
199
190
|
if (gasLimit > type(uint64).max) {
|
|
200
191
|
revert GasLimitTooLarge();
|
|
201
192
|
}
|
|
202
|
-
return
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
);
|
|
193
|
+
return _deliverMessage(
|
|
194
|
+
L2_MSG,
|
|
195
|
+
msg.sender,
|
|
196
|
+
abi.encodePacked(
|
|
197
|
+
L2MessageType_unsignedContractTx,
|
|
198
|
+
gasLimit,
|
|
199
|
+
maxFeePerGas,
|
|
200
|
+
uint256(uint160(to)),
|
|
201
|
+
value,
|
|
202
|
+
data
|
|
203
|
+
),
|
|
204
|
+
0
|
|
205
|
+
);
|
|
216
206
|
}
|
|
217
207
|
|
|
218
208
|
/// @inheritdoc IInboxBase
|
|
@@ -237,8 +227,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
237
227
|
uint256 amountToBeMintedOnL2 = _fromNativeTo18Decimals(amount);
|
|
238
228
|
if (amountToBeMintedOnL2 < (maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas)) {
|
|
239
229
|
revert InsufficientValue(
|
|
240
|
-
maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas,
|
|
241
|
-
amountToBeMintedOnL2
|
|
230
|
+
maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, amountToBeMintedOnL2
|
|
242
231
|
);
|
|
243
232
|
}
|
|
244
233
|
|
|
@@ -254,18 +243,17 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
254
243
|
}
|
|
255
244
|
|
|
256
245
|
// gas limit is validated to be within uint64 in unsafeCreateRetryableTicket
|
|
257
|
-
return
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
);
|
|
246
|
+
return _unsafeCreateRetryableTicket(
|
|
247
|
+
to,
|
|
248
|
+
l2CallValue,
|
|
249
|
+
maxSubmissionCost,
|
|
250
|
+
excessFeeRefundAddress,
|
|
251
|
+
callValueRefundAddress,
|
|
252
|
+
gasLimit,
|
|
253
|
+
maxFeePerGas,
|
|
254
|
+
amount,
|
|
255
|
+
data
|
|
256
|
+
);
|
|
269
257
|
}
|
|
270
258
|
|
|
271
259
|
function _unsafeCreateRetryableTicket(
|
|
@@ -281,7 +269,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
281
269
|
) internal returns (uint256) {
|
|
282
270
|
// gas price and limit of 1 should never be a valid input, so instead they are used as
|
|
283
271
|
// magic values to trigger a revert in eth calls that surface data without requiring a tx trace
|
|
284
|
-
if (gasLimit == 1 || maxFeePerGas == 1)
|
|
272
|
+
if (gasLimit == 1 || maxFeePerGas == 1) {
|
|
285
273
|
revert RetryableData(
|
|
286
274
|
msg.sender,
|
|
287
275
|
to,
|
|
@@ -294,6 +282,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
294
282
|
maxFeePerGas,
|
|
295
283
|
data
|
|
296
284
|
);
|
|
285
|
+
}
|
|
297
286
|
|
|
298
287
|
// arbos will discard retryable with gas limit too large
|
|
299
288
|
if (gasLimit > type(uint64).max) {
|
|
@@ -301,27 +290,27 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
301
290
|
}
|
|
302
291
|
|
|
303
292
|
uint256 submissionFee = calculateRetryableSubmissionFee(data.length, block.basefee);
|
|
304
|
-
if (maxSubmissionCost < submissionFee)
|
|
293
|
+
if (maxSubmissionCost < submissionFee) {
|
|
305
294
|
revert InsufficientSubmissionCost(submissionFee, maxSubmissionCost);
|
|
295
|
+
}
|
|
306
296
|
|
|
307
|
-
return
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
);
|
|
297
|
+
return _deliverMessage(
|
|
298
|
+
L1MessageType_submitRetryableTx,
|
|
299
|
+
msg.sender,
|
|
300
|
+
abi.encodePacked(
|
|
301
|
+
uint256(uint160(to)),
|
|
302
|
+
l2CallValue,
|
|
303
|
+
_fromNativeTo18Decimals(amount),
|
|
304
|
+
maxSubmissionCost,
|
|
305
|
+
uint256(uint160(excessFeeRefundAddress)),
|
|
306
|
+
uint256(uint160(callValueRefundAddress)),
|
|
307
|
+
gasLimit,
|
|
308
|
+
maxFeePerGas,
|
|
309
|
+
data.length,
|
|
310
|
+
data
|
|
311
|
+
),
|
|
312
|
+
amount
|
|
313
|
+
);
|
|
325
314
|
}
|
|
326
315
|
|
|
327
316
|
function _deliverMessage(
|
|
@@ -330,8 +319,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
330
319
|
bytes memory _messageData,
|
|
331
320
|
uint256 amount
|
|
332
321
|
) internal returns (uint256) {
|
|
333
|
-
if (_messageData.length > maxDataSize)
|
|
322
|
+
if (_messageData.length > maxDataSize) {
|
|
334
323
|
revert DataTooLarge(_messageData.length, maxDataSize);
|
|
324
|
+
}
|
|
335
325
|
uint256 msgNum = _deliverToBridge(_kind, _sender, keccak256(_messageData), amount);
|
|
336
326
|
emit InboxMessageDelivered(msgNum, _messageData);
|
|
337
327
|
return msgNum;
|
|
@@ -344,11 +334,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
344
334
|
uint256 amount
|
|
345
335
|
) internal virtual returns (uint256);
|
|
346
336
|
|
|
347
|
-
function calculateRetryableSubmissionFee(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
returns (uint256);
|
|
337
|
+
function calculateRetryableSubmissionFee(
|
|
338
|
+
uint256 dataLength,
|
|
339
|
+
uint256 baseFee
|
|
340
|
+
) public view virtual returns (uint256);
|
|
352
341
|
|
|
353
342
|
/// @notice get amount of ETH/token to mint on child chain based on provided value.
|
|
354
343
|
/// In case of ETH-based rollup this amount will always equal the provided
|
|
@@ -357,7 +346,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
357
346
|
/// decimals used for native currency on child chain.
|
|
358
347
|
/// @dev provided value has to be less than 'type(uint256).max/10**(18-decimalsIn)'
|
|
359
348
|
/// or otherwise it will overflow.
|
|
360
|
-
function _fromNativeTo18Decimals(
|
|
349
|
+
function _fromNativeTo18Decimals(
|
|
350
|
+
uint256 value
|
|
351
|
+
) internal view virtual returns (uint256);
|
|
361
352
|
|
|
362
353
|
/**
|
|
363
354
|
* @dev This empty reserved space is put in place to allow future versions to add new
|
package/src/bridge/AbsOutbox.sol
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright 2021-2022, Offchain Labs, Inc.
|
|
2
|
-
// For license information, see https://github.com/nitro/blob/
|
|
2
|
+
// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE
|
|
3
3
|
// SPDX-License-Identifier: BUSL-1.1
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.4;
|
|
@@ -60,7 +60,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
60
60
|
|
|
61
61
|
uint128 public constant OUTBOX_VERSION = 2;
|
|
62
62
|
|
|
63
|
-
function initialize(
|
|
63
|
+
function initialize(
|
|
64
|
+
IBridge _bridge
|
|
65
|
+
) external onlyDelegated {
|
|
64
66
|
if (address(_bridge) == address(0)) revert HadZeroInit();
|
|
65
67
|
if (address(bridge) != address(0)) revert AlreadyInit();
|
|
66
68
|
// address zero is returned if no context is set, but the values used in storage
|
|
@@ -93,8 +95,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
93
95
|
|
|
94
96
|
/// @notice Allows the rollup owner to sync the rollup address
|
|
95
97
|
function updateRollupAddress() external {
|
|
96
|
-
if (msg.sender != IOwnable(rollup).owner())
|
|
98
|
+
if (msg.sender != IOwnable(rollup).owner()) {
|
|
97
99
|
revert NotOwner(msg.sender, IOwnable(rollup).owner());
|
|
100
|
+
}
|
|
98
101
|
address newRollup = address(bridge.rollup());
|
|
99
102
|
if (rollup == newRollup) revert RollupNotChanged();
|
|
100
103
|
rollup = newRollup;
|
|
@@ -163,15 +166,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
163
166
|
uint256 value,
|
|
164
167
|
bytes calldata data
|
|
165
168
|
) external {
|
|
166
|
-
bytes32 userTx = calculateItemHash(
|
|
167
|
-
l2Sender,
|
|
168
|
-
to,
|
|
169
|
-
l2Block,
|
|
170
|
-
l1Block,
|
|
171
|
-
l2Timestamp,
|
|
172
|
-
value,
|
|
173
|
-
data
|
|
174
|
-
);
|
|
169
|
+
bytes32 userTx = calculateItemHash(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data);
|
|
175
170
|
|
|
176
171
|
recordOutputAsSpent(proof, index, userTx);
|
|
177
172
|
|
|
@@ -228,15 +223,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
228
223
|
context = prevContext;
|
|
229
224
|
}
|
|
230
225
|
|
|
231
|
-
function _calcSpentIndexOffset(
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
returns (
|
|
235
|
-
uint256,
|
|
236
|
-
uint256,
|
|
237
|
-
bytes32
|
|
238
|
-
)
|
|
239
|
-
{
|
|
226
|
+
function _calcSpentIndexOffset(
|
|
227
|
+
uint256 index
|
|
228
|
+
) internal view returns (uint256, uint256, bytes32) {
|
|
240
229
|
uint256 spentIndex = index / 255; // Note: Reserves the MSB.
|
|
241
230
|
uint256 bitOffset = index % 255;
|
|
242
231
|
bytes32 replay = spent[spentIndex];
|
|
@@ -248,18 +237,16 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
248
237
|
}
|
|
249
238
|
|
|
250
239
|
/// @inheritdoc IOutbox
|
|
251
|
-
function isSpent(
|
|
240
|
+
function isSpent(
|
|
241
|
+
uint256 index
|
|
242
|
+
) external view returns (bool) {
|
|
252
243
|
(, uint256 bitOffset, bytes32 replay) = _calcSpentIndexOffset(index);
|
|
253
244
|
return _isSpent(bitOffset, replay);
|
|
254
245
|
}
|
|
255
246
|
|
|
256
|
-
function recordOutputAsSpent(
|
|
257
|
-
bytes32[] memory proof,
|
|
258
|
-
uint256 index,
|
|
259
|
-
bytes32 item
|
|
260
|
-
) internal {
|
|
247
|
+
function recordOutputAsSpent(bytes32[] memory proof, uint256 index, bytes32 item) internal {
|
|
261
248
|
if (proof.length >= 256) revert ProofTooLong(proof.length);
|
|
262
|
-
if (index >= 2**proof.length) revert PathNotMinimal(index, 2**proof.length);
|
|
249
|
+
if (index >= 2 ** proof.length) revert PathNotMinimal(index, 2 ** proof.length);
|
|
263
250
|
|
|
264
251
|
// Hash the leaf an extra time to prove it's a leaf
|
|
265
252
|
bytes32 calcRoot = calculateMerkleRoot(proof, index, item);
|
|
@@ -271,11 +258,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
271
258
|
spent[spentIndex] = (replay | bytes32(1 << bitOffset));
|
|
272
259
|
}
|
|
273
260
|
|
|
274
|
-
function executeBridgeCall(
|
|
275
|
-
address to,
|
|
276
|
-
uint256 value,
|
|
277
|
-
bytes memory data
|
|
278
|
-
) internal {
|
|
261
|
+
function executeBridgeCall(address to, uint256 value, bytes memory data) internal {
|
|
279
262
|
(bool success, bytes memory returndata) = bridge.executeCall(to, value, data);
|
|
280
263
|
if (!success) {
|
|
281
264
|
if (returndata.length > 0) {
|
|
@@ -299,8 +282,7 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
299
282
|
uint256 value,
|
|
300
283
|
bytes calldata data
|
|
301
284
|
) public pure returns (bytes32) {
|
|
302
|
-
return
|
|
303
|
-
keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
|
|
285
|
+
return keccak256(abi.encodePacked(l2Sender, to, l2Block, l1Block, l2Timestamp, value, data));
|
|
304
286
|
}
|
|
305
287
|
|
|
306
288
|
function calculateMerkleRoot(
|
|
@@ -318,13 +300,17 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
|
|
|
318
300
|
/// @notice based on provided value, get amount of ETH/token to unlock. In case of ETH-based rollup this amount
|
|
319
301
|
/// will always equal the provided value. In case of ERC20-based rollup, amount will be re-adjusted to
|
|
320
302
|
/// reflect the number of decimals used by native token, in case it is different than 18.
|
|
321
|
-
function _getAmountToUnlock(
|
|
303
|
+
function _getAmountToUnlock(
|
|
304
|
+
uint256 value
|
|
305
|
+
) internal view virtual returns (uint256);
|
|
322
306
|
|
|
323
307
|
/// @notice value to be set for 'amount' field in L2ToL1Context during L2 to L1 transaction execution.
|
|
324
308
|
/// In case of ERC20-based rollup this is the amount of native token being withdrawn. In case of standard ETH-based
|
|
325
309
|
/// rollup this amount shall always be 0, because amount of ETH being withdrawn can be read from msg.value.
|
|
326
310
|
/// @return amount of native token being withdrawn in case of ERC20-based rollup, or 0 in case of ETH-based rollup
|
|
327
|
-
function _amountToSetInContext(
|
|
311
|
+
function _amountToSetInContext(
|
|
312
|
+
uint256 value
|
|
313
|
+
) internal pure virtual returns (uint256);
|
|
328
314
|
|
|
329
315
|
/**
|
|
330
316
|
* @dev This empty reserved space is put in place to allow future versions to add new
|
package/src/bridge/Bridge.sol
CHANGED
|
@@ -11,8 +11,6 @@ import "./IEthBridge.sol";
|
|
|
11
11
|
import "./Messages.sol";
|
|
12
12
|
import "../libraries/DelegateCallAware.sol";
|
|
13
13
|
|
|
14
|
-
import {L1MessageType_batchPostingReport} from "../libraries/MessageTypes.sol";
|
|
15
|
-
|
|
16
14
|
/**
|
|
17
15
|
* @title Staging ground for incoming and outgoing messages
|
|
18
16
|
* @notice It is also the ETH escrow for value sent with these messages.
|
|
@@ -21,7 +19,9 @@ contract Bridge is AbsBridge, IEthBridge {
|
|
|
21
19
|
using AddressUpgradeable for address;
|
|
22
20
|
|
|
23
21
|
/// @inheritdoc IEthBridge
|
|
24
|
-
function initialize(
|
|
22
|
+
function initialize(
|
|
23
|
+
IOwnable rollup_
|
|
24
|
+
) external initializer onlyDelegated {
|
|
25
25
|
_activeOutbox = EMPTY_ACTIVEOUTBOX;
|
|
26
26
|
rollup = rollup_;
|
|
27
27
|
}
|
|
@@ -35,7 +35,9 @@ contract Bridge is AbsBridge, IEthBridge {
|
|
|
35
35
|
return _enqueueDelayedMessage(kind, sender, messageDataHash, msg.value);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function _transferFunds(
|
|
38
|
+
function _transferFunds(
|
|
39
|
+
uint256
|
|
40
|
+
) internal override {
|
|
39
41
|
// do nothing as Eth transfer is part of TX execution
|
|
40
42
|
}
|
|
41
43
|
|