@arbitrum/nitro-contracts 2.1.1-beta.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +14 -1
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +16 -3
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
- package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +11 -4
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +89 -92
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +16 -8
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +134 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +343 -279
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +559 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/Structs.sol +176 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CallerChecker.sol +18 -0
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +21 -3
- package/src/libraries/GasRefundEnabled.sol +5 -6
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/CreateTest.sol +3 -1
- package/src/mocks/HostioTest.sol +20 -16
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +84 -71
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/express-lane-auction/Balance.sol +0 -142
- package/src/express-lane-auction/Burner.sol +0 -25
- package/src/express-lane-auction/ELCRound.sol +0 -73
- package/src/express-lane-auction/Errors.sol +0 -31
- package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
- package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
- package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
|
@@ -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,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;
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
InsufficientSubmissionCost,
|
|
12
12
|
L1Forked,
|
|
13
13
|
NotAllowedOrigin,
|
|
14
|
-
|
|
14
|
+
NotCodelessOrigin,
|
|
15
15
|
NotRollupOrOwner,
|
|
16
16
|
RetryableData
|
|
17
17
|
} from "../libraries/Error.sol";
|
|
@@ -19,6 +19,7 @@ import "./IInboxBase.sol";
|
|
|
19
19
|
import "./ISequencerInbox.sol";
|
|
20
20
|
import "./IBridge.sol";
|
|
21
21
|
import "../libraries/AddressAliasHelper.sol";
|
|
22
|
+
import "../libraries/CallerChecker.sol";
|
|
22
23
|
import "../libraries/DelegateCallAware.sol";
|
|
23
24
|
import {
|
|
24
25
|
L1MessageType_submitRetryableTx,
|
|
@@ -68,7 +69,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
/// @inheritdoc IInboxBase
|
|
71
|
-
function setAllowListEnabled(
|
|
72
|
+
function setAllowListEnabled(
|
|
73
|
+
bool _allowListEnabled
|
|
74
|
+
) external onlyRollupOrOwner {
|
|
72
75
|
require(_allowListEnabled != allowListEnabled, "ALREADY_SET");
|
|
73
76
|
allowListEnabled = _allowListEnabled;
|
|
74
77
|
emit AllowListEnabledUpdated(_allowListEnabled);
|
|
@@ -101,7 +104,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
101
104
|
uint256 public immutable maxDataSize;
|
|
102
105
|
uint256 internal immutable deployTimeChainId = block.chainid;
|
|
103
106
|
|
|
104
|
-
constructor(
|
|
107
|
+
constructor(
|
|
108
|
+
uint256 _maxDataSize
|
|
109
|
+
) {
|
|
105
110
|
maxDataSize = _maxDataSize;
|
|
106
111
|
}
|
|
107
112
|
|
|
@@ -120,10 +125,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
/* solhint-disable func-name-mixedcase */
|
|
123
|
-
function __AbsInbox_init(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{
|
|
128
|
+
function __AbsInbox_init(
|
|
129
|
+
IBridge _bridge,
|
|
130
|
+
ISequencerInbox _sequencerInbox
|
|
131
|
+
) internal onlyInitializing {
|
|
127
132
|
bridge = _bridge;
|
|
128
133
|
sequencerInbox = _sequencerInbox;
|
|
129
134
|
allowListEnabled = false;
|
|
@@ -131,15 +136,11 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
/// @inheritdoc IInboxBase
|
|
134
|
-
function sendL2MessageFromOrigin(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
onlyAllowed
|
|
138
|
-
returns (uint256)
|
|
139
|
-
{
|
|
139
|
+
function sendL2MessageFromOrigin(
|
|
140
|
+
bytes calldata messageData
|
|
141
|
+
) external whenNotPaused onlyAllowed returns (uint256) {
|
|
140
142
|
if (_chainIdChanged()) revert L1Forked();
|
|
141
|
-
|
|
142
|
-
if (msg.sender != tx.origin) revert NotOrigin();
|
|
143
|
+
if (!CallerChecker.isCallerCodelessOrigin()) revert NotCodelessOrigin();
|
|
143
144
|
if (messageData.length > maxDataSize) revert DataTooLarge(messageData.length, maxDataSize);
|
|
144
145
|
uint256 msgNum = _deliverToBridge(L2_MSG, msg.sender, keccak256(messageData), 0);
|
|
145
146
|
emit InboxMessageDeliveredFromOrigin(msgNum);
|
|
@@ -147,12 +148,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
/// @inheritdoc IInboxBase
|
|
150
|
-
function sendL2Message(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
onlyAllowed
|
|
154
|
-
returns (uint256)
|
|
155
|
-
{
|
|
151
|
+
function sendL2Message(
|
|
152
|
+
bytes calldata messageData
|
|
153
|
+
) external whenNotPaused onlyAllowed returns (uint256) {
|
|
156
154
|
if (_chainIdChanged()) revert L1Forked();
|
|
157
155
|
return _deliverMessage(L2_MSG, msg.sender, messageData, 0);
|
|
158
156
|
}
|
|
@@ -170,21 +168,20 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
170
168
|
if (gasLimit > type(uint64).max) {
|
|
171
169
|
revert GasLimitTooLarge();
|
|
172
170
|
}
|
|
173
|
-
return
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
);
|
|
171
|
+
return _deliverMessage(
|
|
172
|
+
L2_MSG,
|
|
173
|
+
msg.sender,
|
|
174
|
+
abi.encodePacked(
|
|
175
|
+
L2MessageType_unsignedEOATx,
|
|
176
|
+
gasLimit,
|
|
177
|
+
maxFeePerGas,
|
|
178
|
+
nonce,
|
|
179
|
+
uint256(uint160(to)),
|
|
180
|
+
value,
|
|
181
|
+
data
|
|
182
|
+
),
|
|
183
|
+
0
|
|
184
|
+
);
|
|
188
185
|
}
|
|
189
186
|
|
|
190
187
|
/// @inheritdoc IInboxBase
|
|
@@ -199,20 +196,19 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
199
196
|
if (gasLimit > type(uint64).max) {
|
|
200
197
|
revert GasLimitTooLarge();
|
|
201
198
|
}
|
|
202
|
-
return
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
);
|
|
199
|
+
return _deliverMessage(
|
|
200
|
+
L2_MSG,
|
|
201
|
+
msg.sender,
|
|
202
|
+
abi.encodePacked(
|
|
203
|
+
L2MessageType_unsignedContractTx,
|
|
204
|
+
gasLimit,
|
|
205
|
+
maxFeePerGas,
|
|
206
|
+
uint256(uint160(to)),
|
|
207
|
+
value,
|
|
208
|
+
data
|
|
209
|
+
),
|
|
210
|
+
0
|
|
211
|
+
);
|
|
216
212
|
}
|
|
217
213
|
|
|
218
214
|
/// @inheritdoc IInboxBase
|
|
@@ -237,8 +233,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
237
233
|
uint256 amountToBeMintedOnL2 = _fromNativeTo18Decimals(amount);
|
|
238
234
|
if (amountToBeMintedOnL2 < (maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas)) {
|
|
239
235
|
revert InsufficientValue(
|
|
240
|
-
maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas,
|
|
241
|
-
amountToBeMintedOnL2
|
|
236
|
+
maxSubmissionCost + l2CallValue + gasLimit * maxFeePerGas, amountToBeMintedOnL2
|
|
242
237
|
);
|
|
243
238
|
}
|
|
244
239
|
|
|
@@ -254,18 +249,17 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
254
249
|
}
|
|
255
250
|
|
|
256
251
|
// gas limit is validated to be within uint64 in unsafeCreateRetryableTicket
|
|
257
|
-
return
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
);
|
|
252
|
+
return _unsafeCreateRetryableTicket(
|
|
253
|
+
to,
|
|
254
|
+
l2CallValue,
|
|
255
|
+
maxSubmissionCost,
|
|
256
|
+
excessFeeRefundAddress,
|
|
257
|
+
callValueRefundAddress,
|
|
258
|
+
gasLimit,
|
|
259
|
+
maxFeePerGas,
|
|
260
|
+
amount,
|
|
261
|
+
data
|
|
262
|
+
);
|
|
269
263
|
}
|
|
270
264
|
|
|
271
265
|
function _unsafeCreateRetryableTicket(
|
|
@@ -281,7 +275,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
281
275
|
) internal returns (uint256) {
|
|
282
276
|
// gas price and limit of 1 should never be a valid input, so instead they are used as
|
|
283
277
|
// magic values to trigger a revert in eth calls that surface data without requiring a tx trace
|
|
284
|
-
if (gasLimit == 1 || maxFeePerGas == 1)
|
|
278
|
+
if (gasLimit == 1 || maxFeePerGas == 1) {
|
|
285
279
|
revert RetryableData(
|
|
286
280
|
msg.sender,
|
|
287
281
|
to,
|
|
@@ -294,6 +288,7 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
294
288
|
maxFeePerGas,
|
|
295
289
|
data
|
|
296
290
|
);
|
|
291
|
+
}
|
|
297
292
|
|
|
298
293
|
// arbos will discard retryable with gas limit too large
|
|
299
294
|
if (gasLimit > type(uint64).max) {
|
|
@@ -301,27 +296,27 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
301
296
|
}
|
|
302
297
|
|
|
303
298
|
uint256 submissionFee = calculateRetryableSubmissionFee(data.length, block.basefee);
|
|
304
|
-
if (maxSubmissionCost < submissionFee)
|
|
299
|
+
if (maxSubmissionCost < submissionFee) {
|
|
305
300
|
revert InsufficientSubmissionCost(submissionFee, maxSubmissionCost);
|
|
301
|
+
}
|
|
306
302
|
|
|
307
|
-
return
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
);
|
|
303
|
+
return _deliverMessage(
|
|
304
|
+
L1MessageType_submitRetryableTx,
|
|
305
|
+
msg.sender,
|
|
306
|
+
abi.encodePacked(
|
|
307
|
+
uint256(uint160(to)),
|
|
308
|
+
l2CallValue,
|
|
309
|
+
_fromNativeTo18Decimals(amount),
|
|
310
|
+
maxSubmissionCost,
|
|
311
|
+
uint256(uint160(excessFeeRefundAddress)),
|
|
312
|
+
uint256(uint160(callValueRefundAddress)),
|
|
313
|
+
gasLimit,
|
|
314
|
+
maxFeePerGas,
|
|
315
|
+
data.length,
|
|
316
|
+
data
|
|
317
|
+
),
|
|
318
|
+
amount
|
|
319
|
+
);
|
|
325
320
|
}
|
|
326
321
|
|
|
327
322
|
function _deliverMessage(
|
|
@@ -330,8 +325,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
330
325
|
bytes memory _messageData,
|
|
331
326
|
uint256 amount
|
|
332
327
|
) internal returns (uint256) {
|
|
333
|
-
if (_messageData.length > maxDataSize)
|
|
328
|
+
if (_messageData.length > maxDataSize) {
|
|
334
329
|
revert DataTooLarge(_messageData.length, maxDataSize);
|
|
330
|
+
}
|
|
335
331
|
uint256 msgNum = _deliverToBridge(_kind, _sender, keccak256(_messageData), amount);
|
|
336
332
|
emit InboxMessageDelivered(msgNum, _messageData);
|
|
337
333
|
return msgNum;
|
|
@@ -344,11 +340,10 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
344
340
|
uint256 amount
|
|
345
341
|
) internal virtual returns (uint256);
|
|
346
342
|
|
|
347
|
-
function calculateRetryableSubmissionFee(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
returns (uint256);
|
|
343
|
+
function calculateRetryableSubmissionFee(
|
|
344
|
+
uint256 dataLength,
|
|
345
|
+
uint256 baseFee
|
|
346
|
+
) public view virtual returns (uint256);
|
|
352
347
|
|
|
353
348
|
/// @notice get amount of ETH/token to mint on child chain based on provided value.
|
|
354
349
|
/// In case of ETH-based rollup this amount will always equal the provided
|
|
@@ -357,7 +352,9 @@ abstract contract AbsInbox is DelegateCallAware, PausableUpgradeable, IInboxBase
|
|
|
357
352
|
/// decimals used for native currency on child chain.
|
|
358
353
|
/// @dev provided value has to be less than 'type(uint256).max/10**(18-decimalsIn)'
|
|
359
354
|
/// or otherwise it will overflow.
|
|
360
|
-
function _fromNativeTo18Decimals(
|
|
355
|
+
function _fromNativeTo18Decimals(
|
|
356
|
+
uint256 value
|
|
357
|
+
) internal view virtual returns (uint256);
|
|
361
358
|
|
|
362
359
|
/**
|
|
363
360
|
* @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
|