@arbitrum/nitro-contracts 2.1.0 → 3.0.0-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
- package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +10 -0
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
- package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json +232 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +20 -7
- package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +22 -9
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
- package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.json +1 -1
- package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IInbox.sol/IInbox.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.json +1 -1
- package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
- package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
- package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Inbox.sol/Inbox.json +22 -4
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +564 -7
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
- package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json +10 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
- package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
- package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
- package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
- package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
- package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
- package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
- package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +28 -2
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +564 -7
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
- package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
- package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
- package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
- package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
- package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
- package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
- package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
- package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
- package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
- package/out/yul/Reader4844.yul/Reader4844.json +1 -1
- package/package.json +15 -5
- package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
- package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
- package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
- package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
- package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
- package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
- package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
- package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
- package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
- package/src/bridge/AbsBridge.sol +38 -48
- package/src/bridge/AbsInbox.sol +88 -97
- package/src/bridge/AbsOutbox.sol +23 -37
- package/src/bridge/Bridge.sol +6 -4
- package/src/bridge/DelayBuffer.sol +123 -0
- package/src/bridge/DelayBufferTypes.sol +38 -0
- package/src/bridge/ERC20Bridge.sol +8 -4
- package/src/bridge/ERC20Inbox.sol +46 -53
- package/src/bridge/ERC20Outbox.sol +7 -3
- package/src/bridge/GasRefunder.sol +38 -24
- package/src/bridge/IBridge.sol +30 -21
- package/src/bridge/IERC20Bridge.sol +1 -1
- package/src/bridge/IERC20Inbox.sol +4 -2
- package/src/bridge/IEthBridge.sol +4 -2
- package/src/bridge/IInbox.sol +4 -2
- package/src/bridge/IInboxBase.sol +17 -13
- package/src/bridge/IOutbox.sol +13 -8
- package/src/bridge/ISequencerInbox.sol +118 -13
- package/src/bridge/Inbox.sol +131 -151
- package/src/bridge/Messages.sol +48 -18
- package/src/bridge/Outbox.sol +6 -2
- package/src/bridge/SequencerInbox.sol +339 -274
- package/src/chain/CacheManager.sol +49 -18
- package/src/challengeV2/EdgeChallengeManager.sol +783 -0
- package/src/challengeV2/IAssertionChain.sol +39 -0
- package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
- package/src/challengeV2/libraries/ChallengeEdgeLib.sol +333 -0
- package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
- package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +930 -0
- package/src/challengeV2/libraries/Enums.sol +26 -0
- package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
- package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
- package/src/libraries/AddressAliasHelper.sol +6 -2
- package/src/libraries/AdminFallbackProxy.sol +8 -4
- package/src/libraries/ArbitrumChecker.sol +3 -4
- package/src/libraries/CryptographyPrimitives.sol +39 -46
- package/src/libraries/DecimalsConverterHelper.sol +2 -4
- package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
- package/src/libraries/Error.sol +18 -3
- package/src/libraries/GasRefundEnabled.sol +3 -4
- package/src/libraries/MerkleLib.sol +6 -5
- package/src/libraries/UUPSNotUpgradeable.sol +2 -4
- package/src/mocks/BridgeStub.sol +50 -48
- package/src/mocks/BridgeUnproxied.sol +2 -0
- package/src/mocks/InboxStub.sol +22 -17
- package/src/mocks/MerkleTreeAccess.sol +72 -0
- package/src/mocks/MockRollupEventInbox.sol +59 -0
- package/src/mocks/MultiCallTest.sol +3 -1
- package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
- package/src/mocks/Program.sol +9 -7
- package/src/mocks/SequencerInboxBlobMock.sol +38 -0
- package/src/mocks/SequencerInboxStub.sol +9 -12
- package/src/mocks/Simple.sol +13 -25
- package/src/mocks/SimpleCacheManager.sol +10 -3
- package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
- package/src/mocks/SimpleProxy.sol +3 -1
- package/src/mocks/TestWETH9.sol +30 -0
- package/src/mocks/UpgradeExecutorMock.sol +10 -17
- package/src/node-interface/NodeInterface.sol +23 -22
- package/src/node-interface/NodeInterfaceDebug.sol +5 -3
- package/src/osp/HashProofHelper.sol +9 -10
- package/src/osp/IOneStepProofEntry.sol +14 -9
- package/src/osp/IOneStepProver.sol +1 -0
- package/src/osp/OneStepProofEntry.sol +63 -54
- package/src/osp/OneStepProver0.sol +14 -27
- package/src/osp/OneStepProverHostIo.sol +31 -58
- package/src/osp/OneStepProverMath.sol +15 -23
- package/src/osp/OneStepProverMemory.sol +9 -23
- package/src/precompiles/ArbAddressTable.sol +19 -9
- package/src/precompiles/ArbAggregator.sol +12 -4
- package/src/precompiles/ArbBLS.sol +1 -3
- package/src/precompiles/ArbDebug.sol +5 -11
- package/src/precompiles/ArbFunctionTable.sol +7 -10
- package/src/precompiles/ArbGasInfo.sol +9 -43
- package/src/precompiles/ArbInfo.sol +6 -2
- package/src/precompiles/ArbOwner.sol +101 -34
- package/src/precompiles/ArbOwnerPublic.sol +6 -2
- package/src/precompiles/ArbRetryableTx.sol +15 -5
- package/src/precompiles/ArbStatistics.sol +1 -8
- package/src/precompiles/ArbSys.sol +16 -18
- package/src/precompiles/ArbWasm.sol +24 -14
- package/src/precompiles/ArbWasmCache.sol +15 -5
- package/src/precompiles/ArbosTest.sol +3 -1
- package/src/rollup/AbsRollupEventInbox.sol +15 -16
- package/src/rollup/Assertion.sol +100 -0
- package/src/rollup/AssertionState.sol +29 -0
- package/src/rollup/BOLDUpgradeAction.sol +631 -0
- package/src/rollup/BridgeCreator.sol +42 -15
- package/src/rollup/Config.sol +15 -7
- package/src/rollup/DeployHelper.sol +12 -31
- package/src/rollup/ERC20RollupEventInbox.sol +8 -9
- package/src/rollup/FactoryDeployerHelper.sol +8 -10
- package/src/rollup/IRollupAdmin.sol +127 -45
- package/src/rollup/IRollupCore.sol +64 -84
- package/src/rollup/IRollupEventInbox.sol +3 -1
- package/src/rollup/IRollupLogic.sol +35 -72
- package/src/rollup/RollupAdminLogic.sol +224 -203
- package/src/rollup/RollupCore.sol +407 -428
- package/src/rollup/RollupCreator.sol +88 -75
- package/src/rollup/RollupEventInbox.sol +7 -7
- package/src/rollup/RollupLib.sol +50 -86
- package/src/rollup/RollupProxy.sol +8 -12
- package/src/rollup/RollupUserLogic.sol +279 -644
- package/src/rollup/ValidatorUtils.sol +0 -242
- package/src/rollup/ValidatorWallet.sol +22 -38
- package/src/rollup/ValidatorWalletCreator.sol +8 -8
- package/src/state/Deserialize.sol +74 -96
- package/src/state/GlobalState.sol +74 -20
- package/src/state/Instructions.sol +4 -3
- package/src/state/Machine.sol +18 -19
- package/src/state/Module.sol +14 -13
- package/src/state/ModuleMemory.sol +6 -25
- package/src/state/ModuleMemoryCompact.sol +3 -1
- package/src/state/MultiStack.sol +16 -20
- package/src/state/PcArray.sol +7 -7
- package/src/state/StackFrame.sol +21 -14
- package/src/state/Value.sol +18 -6
- package/src/state/ValueArray.sol +7 -7
- package/src/state/ValueStack.sol +9 -3
- package/src/test-helpers/BridgeTester.sol +32 -42
- package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
- package/src/test-helpers/EthVault.sol +4 -2
- package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
- package/src/test-helpers/MessageTester.sol +3 -10
- package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
- package/src/test-helpers/RollupMock.sol +3 -7
- package/src/test-helpers/TestToken.sol +4 -2
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
- package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
- package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
- package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
- package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
- package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
- package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
- package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
- package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
- package/src/challenge/ChallengeLib.sol +0 -88
- package/src/challenge/ChallengeManager.sol +0 -375
- package/src/challenge/IChallengeManager.sol +0 -86
- package/src/challenge/IChallengeResultReceiver.sol +0 -13
- package/src/mocks/MockResultReceiver.sol +0 -59
- package/src/mocks/SingleExecutionChallenge.sol +0 -41
- package/src/mocks/TimedOutChallengeManager.sol +0 -13
- package/src/rollup/Node.sol +0 -113
@@ -0,0 +1,123 @@
|
|
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 "./Messages.sol";
|
8
|
+
import "./DelayBufferTypes.sol";
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @title Manages the delay buffer for the sequencer (SequencerInbox.sol)
|
12
|
+
* @notice Messages are expected to be delayed up to a threshold, beyond which they are unexpected
|
13
|
+
* and deplete a delay buffer. Buffer depletion is preveneted from decreasing too quickly by only
|
14
|
+
* depleting by as many blocks as elapsed in the delayed message queue.
|
15
|
+
*/
|
16
|
+
library DelayBuffer {
|
17
|
+
uint256 public constant BASIS = 10000;
|
18
|
+
|
19
|
+
/// @dev Depletion is limited by the elapsed blocks in the delayed message queue to avoid double counting and potential L2 reorgs.
|
20
|
+
/// Eg. 2 simultaneous batches sequencing multiple delayed messages with the same 100 blocks delay each
|
21
|
+
/// should count once as a single 100 block delay, not twice as a 200 block delay. This also prevents L2 reorg risk in edge cases.
|
22
|
+
/// Eg. If the buffer is 300 blocks, decrementing the buffer when processing the first batch would allow the second delay message to be force included before the sequencer could add the second batch.
|
23
|
+
/// Buffer depletion also saturates at the threshold instead of zero to allow a recovery margin.
|
24
|
+
/// Eg. when the sequencer recovers from an outage, it is able to wait threshold > finality time before queueing delayed messages to avoid L1 reorgs.
|
25
|
+
/// @notice Conditionally updates the buffer. Replenishes the buffer and depletes if delay is unexpected.
|
26
|
+
/// @param start The beginning reference point
|
27
|
+
/// @param end The ending reference point
|
28
|
+
/// @param buffer The buffer to be updated
|
29
|
+
/// @param sequenced The reference point when messages were sequenced
|
30
|
+
/// @param threshold The threshold to saturate at
|
31
|
+
/// @param max The maximum buffer
|
32
|
+
/// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
|
33
|
+
function calcBuffer(
|
34
|
+
uint256 start,
|
35
|
+
uint256 end,
|
36
|
+
uint256 buffer,
|
37
|
+
uint256 sequenced,
|
38
|
+
uint256 threshold,
|
39
|
+
uint256 max,
|
40
|
+
uint256 replenishRateInBasis
|
41
|
+
) internal pure returns (uint256) {
|
42
|
+
uint256 elapsed = end > start ? end - start : 0;
|
43
|
+
uint256 delay = sequenced > start ? sequenced - start : 0;
|
44
|
+
// replenishment rounds down and will not overflow since all inputs including
|
45
|
+
// replenishRateInBasis are cast from uint64 in calcPendingBuffer
|
46
|
+
buffer += (elapsed * replenishRateInBasis) / BASIS;
|
47
|
+
|
48
|
+
uint256 unexpectedDelay = delay > threshold ? delay - threshold : 0;
|
49
|
+
if (unexpectedDelay > elapsed) {
|
50
|
+
unexpectedDelay = elapsed;
|
51
|
+
}
|
52
|
+
|
53
|
+
// decrease the buffer
|
54
|
+
if (buffer > unexpectedDelay) {
|
55
|
+
buffer -= unexpectedDelay;
|
56
|
+
if (buffer > threshold) {
|
57
|
+
// saturating above at the max
|
58
|
+
return buffer > max ? max : buffer;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
// saturating below at the threshold
|
62
|
+
return threshold;
|
63
|
+
}
|
64
|
+
|
65
|
+
/// @notice Applies update to buffer data
|
66
|
+
/// @param self The delay buffer data
|
67
|
+
/// @param blockNumber The update block number
|
68
|
+
function update(BufferData storage self, uint64 blockNumber) internal {
|
69
|
+
self.bufferBlocks = calcPendingBuffer(self, blockNumber);
|
70
|
+
|
71
|
+
// store a new starting reference point
|
72
|
+
// any buffer updates will be applied retroactively in the next batch post
|
73
|
+
self.prevBlockNumber = blockNumber;
|
74
|
+
self.prevSequencedBlockNumber = uint64(block.number);
|
75
|
+
}
|
76
|
+
|
77
|
+
/// @dev The delay buffer can change due to pending depletion / replenishment due to previous delays.
|
78
|
+
/// This function applies pending buffer changes to calculate buffer updates.
|
79
|
+
/// @notice Calculates the buffer changes up to the requested block number
|
80
|
+
/// @param self The delay buffer data
|
81
|
+
/// @param blockNumber The block number to process the delay up to
|
82
|
+
function calcPendingBuffer(
|
83
|
+
BufferData storage self,
|
84
|
+
uint64 blockNumber
|
85
|
+
) internal view returns (uint64) {
|
86
|
+
// bufferUpdate will not overflow since inputs are uint64
|
87
|
+
return uint64(
|
88
|
+
calcBuffer({
|
89
|
+
start: self.prevBlockNumber,
|
90
|
+
end: blockNumber,
|
91
|
+
buffer: self.bufferBlocks,
|
92
|
+
threshold: self.threshold,
|
93
|
+
sequenced: self.prevSequencedBlockNumber,
|
94
|
+
max: self.max,
|
95
|
+
replenishRateInBasis: self.replenishRateInBasis
|
96
|
+
})
|
97
|
+
);
|
98
|
+
}
|
99
|
+
|
100
|
+
/// @dev This is the `sync validity window` during which no proofs are required.
|
101
|
+
/// @notice Returns true if the inbox is in a synced state (no unexpected delays are possible)
|
102
|
+
function isSynced(
|
103
|
+
BufferData storage self
|
104
|
+
) internal view returns (bool) {
|
105
|
+
return block.number - self.prevBlockNumber <= self.threshold;
|
106
|
+
}
|
107
|
+
|
108
|
+
function isUpdatable(
|
109
|
+
BufferData storage self
|
110
|
+
) internal view returns (bool) {
|
111
|
+
// if synced, the buffer can't be depleted
|
112
|
+
// if full, the buffer can't be replenished
|
113
|
+
// if neither synced nor full, the buffer updatable (depletable / replenishable)
|
114
|
+
return !isSynced(self) || self.bufferBlocks < self.max;
|
115
|
+
}
|
116
|
+
|
117
|
+
function isValidBufferConfig(
|
118
|
+
BufferConfig memory config
|
119
|
+
) internal pure returns (bool) {
|
120
|
+
return config.threshold != 0 && config.max != 0 && config.replenishRateInBasis <= BASIS
|
121
|
+
&& config.threshold <= config.max;
|
122
|
+
}
|
123
|
+
}
|
@@ -0,0 +1,38 @@
|
|
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
|
+
import "./Messages.sol";
|
6
|
+
|
7
|
+
pragma solidity >=0.6.9 <0.9.0;
|
8
|
+
|
9
|
+
/// @notice Delay buffer and delay threshold settings
|
10
|
+
/// @param threshold The maximum amount of blocks that a message is expected to be delayed
|
11
|
+
/// @param max The maximum buffer in blocks
|
12
|
+
/// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
|
13
|
+
struct BufferConfig {
|
14
|
+
uint64 threshold;
|
15
|
+
uint64 max;
|
16
|
+
uint64 replenishRateInBasis;
|
17
|
+
}
|
18
|
+
|
19
|
+
/// @notice The delay buffer data.
|
20
|
+
/// @param bufferBlocks The buffer in blocks.
|
21
|
+
/// @param max The maximum buffer in blocks
|
22
|
+
/// @param threshold The maximum amount of blocks that a message is expected to be delayed
|
23
|
+
/// @param prevBlockNumber The blocknumber of the last included delay message.
|
24
|
+
/// @param replenishRateInBasis The amount to replenish the buffer per block in basis points.
|
25
|
+
/// @param prevSequencedBlockNumber The blocknumber when last included delay message was sequenced.
|
26
|
+
struct BufferData {
|
27
|
+
uint64 bufferBlocks;
|
28
|
+
uint64 max;
|
29
|
+
uint64 threshold;
|
30
|
+
uint64 prevBlockNumber;
|
31
|
+
uint64 replenishRateInBasis;
|
32
|
+
uint64 prevSequencedBlockNumber;
|
33
|
+
}
|
34
|
+
|
35
|
+
struct DelayProof {
|
36
|
+
bytes32 beforeDelayedAcc;
|
37
|
+
Messages.Message delayedMessage;
|
38
|
+
}
|
@@ -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;
|
@@ -13,7 +13,6 @@ import {
|
|
13
13
|
CallNotAllowed,
|
14
14
|
NativeTokenDecimalsTooLarge
|
15
15
|
} from "../libraries/Error.sol";
|
16
|
-
import {DecimalsConverterHelper} from "../libraries/DecimalsConverterHelper.sol";
|
17
16
|
import {MAX_ALLOWED_NATIVE_TOKEN_DECIMALS} from "../libraries/Constants.sol";
|
18
17
|
|
19
18
|
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
@@ -42,7 +41,10 @@ contract ERC20Bridge is AbsBridge, IERC20Bridge {
|
|
42
41
|
uint8 public nativeTokenDecimals;
|
43
42
|
|
44
43
|
/// @inheritdoc IERC20Bridge
|
45
|
-
function initialize(
|
44
|
+
function initialize(
|
45
|
+
IOwnable rollup_,
|
46
|
+
address nativeToken_
|
47
|
+
) external initializer onlyDelegated {
|
46
48
|
if (nativeToken_ == address(0)) revert InvalidTokenSet(nativeToken_);
|
47
49
|
nativeToken = nativeToken_;
|
48
50
|
_activeOutbox = EMPTY_ACTIVEOUTBOX;
|
@@ -72,7 +74,9 @@ contract ERC20Bridge is AbsBridge, IERC20Bridge {
|
|
72
74
|
return _enqueueDelayedMessage(kind, sender, messageDataHash, tokenFeeAmount);
|
73
75
|
}
|
74
76
|
|
75
|
-
function _transferFunds(
|
77
|
+
function _transferFunds(
|
78
|
+
uint256 amount
|
79
|
+
) internal override {
|
76
80
|
// fetch native token from Inbox
|
77
81
|
IERC20(nativeToken).safeTransferFrom(msg.sender, address(this), amount);
|
78
82
|
}
|
@@ -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;
|
@@ -26,14 +26,15 @@ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
|
|
26
26
|
contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
27
27
|
using SafeERC20 for IERC20;
|
28
28
|
|
29
|
-
constructor(
|
29
|
+
constructor(
|
30
|
+
uint256 _maxDataSize
|
31
|
+
) AbsInbox(_maxDataSize) {}
|
30
32
|
|
31
33
|
/// @inheritdoc IInboxBase
|
32
|
-
function initialize(
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
{
|
34
|
+
function initialize(
|
35
|
+
IBridge _bridge,
|
36
|
+
ISequencerInbox _sequencerInbox
|
37
|
+
) external initializer onlyDelegated {
|
37
38
|
__AbsInbox_init(_bridge, _sequencerInbox);
|
38
39
|
|
39
40
|
// inbox holds native token in transit used to pay for retryable tickets, approve bridge to use it
|
@@ -42,7 +43,9 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
|
42
43
|
}
|
43
44
|
|
44
45
|
/// @inheritdoc IERC20Inbox
|
45
|
-
function depositERC20(
|
46
|
+
function depositERC20(
|
47
|
+
uint256 amount
|
48
|
+
) public whenNotPaused onlyAllowed returns (uint256) {
|
46
49
|
address dest = msg.sender;
|
47
50
|
|
48
51
|
// solhint-disable-next-line avoid-tx-origin
|
@@ -52,13 +55,9 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
|
52
55
|
}
|
53
56
|
|
54
57
|
uint256 amountToMintOnL2 = _fromNativeTo18Decimals(amount);
|
55
|
-
return
|
56
|
-
|
57
|
-
|
58
|
-
msg.sender,
|
59
|
-
abi.encodePacked(dest, amountToMintOnL2),
|
60
|
-
amount
|
61
|
-
);
|
58
|
+
return _deliverMessage(
|
59
|
+
L1MessageType_ethDeposit, msg.sender, abi.encodePacked(dest, amountToMintOnL2), amount
|
60
|
+
);
|
62
61
|
}
|
63
62
|
|
64
63
|
/// @inheritdoc IERC20Inbox
|
@@ -73,18 +72,17 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
|
73
72
|
uint256 tokenTotalFeeAmount,
|
74
73
|
bytes calldata data
|
75
74
|
) external whenNotPaused onlyAllowed returns (uint256) {
|
76
|
-
return
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
);
|
75
|
+
return _createRetryableTicket(
|
76
|
+
to,
|
77
|
+
l2CallValue,
|
78
|
+
maxSubmissionCost,
|
79
|
+
excessFeeRefundAddress,
|
80
|
+
callValueRefundAddress,
|
81
|
+
gasLimit,
|
82
|
+
maxFeePerGas,
|
83
|
+
tokenTotalFeeAmount,
|
84
|
+
data
|
85
|
+
);
|
88
86
|
}
|
89
87
|
|
90
88
|
/// @inheritdoc IERC20Inbox
|
@@ -99,27 +97,24 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
|
99
97
|
uint256 tokenTotalFeeAmount,
|
100
98
|
bytes calldata data
|
101
99
|
) public whenNotPaused onlyAllowed returns (uint256) {
|
102
|
-
return
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
);
|
100
|
+
return _unsafeCreateRetryableTicket(
|
101
|
+
to,
|
102
|
+
l2CallValue,
|
103
|
+
maxSubmissionCost,
|
104
|
+
excessFeeRefundAddress,
|
105
|
+
callValueRefundAddress,
|
106
|
+
gasLimit,
|
107
|
+
maxFeePerGas,
|
108
|
+
tokenTotalFeeAmount,
|
109
|
+
data
|
110
|
+
);
|
114
111
|
}
|
115
112
|
|
116
113
|
/// @inheritdoc IInboxBase
|
117
|
-
function calculateRetryableSubmissionFee(
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
returns (uint256)
|
122
|
-
{
|
114
|
+
function calculateRetryableSubmissionFee(
|
115
|
+
uint256,
|
116
|
+
uint256
|
117
|
+
) public pure override(AbsInbox, IInboxBase) returns (uint256) {
|
123
118
|
// retryable ticket's submission fee is not charged when ERC20 token is used to pay for fees
|
124
119
|
return 0;
|
125
120
|
}
|
@@ -139,17 +134,15 @@ contract ERC20Inbox is AbsInbox, IERC20Inbox {
|
|
139
134
|
IERC20(nativeToken).safeTransferFrom(msg.sender, address(this), diff);
|
140
135
|
}
|
141
136
|
|
142
|
-
return
|
143
|
-
|
144
|
-
|
145
|
-
AddressAliasHelper.applyL1ToL2Alias(sender),
|
146
|
-
messageDataHash,
|
147
|
-
tokenAmount
|
148
|
-
);
|
137
|
+
return IERC20Bridge(address(bridge)).enqueueDelayedMessage(
|
138
|
+
kind, AddressAliasHelper.applyL1ToL2Alias(sender), messageDataHash, tokenAmount
|
139
|
+
);
|
149
140
|
}
|
150
141
|
|
151
142
|
/// @inheritdoc AbsInbox
|
152
|
-
function _fromNativeTo18Decimals(
|
143
|
+
function _fromNativeTo18Decimals(
|
144
|
+
uint256 value
|
145
|
+
) internal view override returns (uint256) {
|
153
146
|
// In order to keep compatibility of child chain's native currency with external 3rd party tooling we
|
154
147
|
// expect 18 decimals to be always used for native currency. If native token uses different number of
|
155
148
|
// decimals then here it will be normalized to 18. Keep in mind, when withdrawing from child chain back
|
@@ -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;
|
@@ -25,14 +25,18 @@ contract ERC20Outbox is AbsOutbox {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
/// @inheritdoc AbsOutbox
|
28
|
-
function _getAmountToUnlock(
|
28
|
+
function _getAmountToUnlock(
|
29
|
+
uint256 value
|
30
|
+
) internal view override returns (uint256) {
|
29
31
|
uint8 nativeTokenDecimals = IERC20Bridge(address(bridge)).nativeTokenDecimals();
|
30
32
|
// this might revert due to overflow, but we assume the token supply is less than 2^256
|
31
33
|
return DecimalsConverterHelper.adjustDecimals(value, 18, nativeTokenDecimals);
|
32
34
|
}
|
33
35
|
|
34
36
|
/// @inheritdoc AbsOutbox
|
35
|
-
function _amountToSetInContext(
|
37
|
+
function _amountToSetInContext(
|
38
|
+
uint256 value
|
39
|
+
) internal pure override returns (uint256) {
|
36
40
|
// native token withdrawal amount which can be fetched from context
|
37
41
|
return value;
|
38
42
|
}
|
@@ -90,16 +90,22 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
90
90
|
});
|
91
91
|
}
|
92
92
|
|
93
|
-
function setDisallower(
|
93
|
+
function setDisallower(
|
94
|
+
address addr
|
95
|
+
) external onlyOwner {
|
94
96
|
disallower = addr;
|
95
97
|
emit DisallowerSet(addr);
|
96
98
|
}
|
97
99
|
|
98
|
-
function allowContracts(
|
100
|
+
function allowContracts(
|
101
|
+
address[] calldata addresses
|
102
|
+
) external onlyOwner {
|
99
103
|
setContractsAllowedImpl(addresses, true);
|
100
104
|
}
|
101
105
|
|
102
|
-
function disallowContracts(
|
106
|
+
function disallowContracts(
|
107
|
+
address[] calldata addresses
|
108
|
+
) external {
|
103
109
|
require(msg.sender == owner() || msg.sender == disallower, "NOT_AUTHORIZED");
|
104
110
|
setContractsAllowedImpl(addresses, false);
|
105
111
|
}
|
@@ -112,11 +118,15 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
112
118
|
}
|
113
119
|
}
|
114
120
|
|
115
|
-
function allowRefundees(
|
121
|
+
function allowRefundees(
|
122
|
+
address[] calldata addresses
|
123
|
+
) external onlyOwner {
|
116
124
|
setRefundeesAllowedImpl(addresses, true);
|
117
125
|
}
|
118
126
|
|
119
|
-
function disallowRefundees(
|
127
|
+
function disallowRefundees(
|
128
|
+
address[] calldata addresses
|
129
|
+
) external {
|
120
130
|
require(msg.sender == owner() || msg.sender == disallower, "NOT_AUTHORIZED");
|
121
131
|
setRefundeesAllowedImpl(addresses, false);
|
122
132
|
}
|
@@ -129,32 +139,44 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
129
139
|
}
|
130
140
|
}
|
131
141
|
|
132
|
-
function setMaxRefundeeBalance(
|
142
|
+
function setMaxRefundeeBalance(
|
143
|
+
uint128 newValue
|
144
|
+
) external onlyOwner {
|
133
145
|
commonParams.maxRefundeeBalance = newValue;
|
134
146
|
emit CommonParameterSet(CommonParameterKey.MAX_REFUNDEE_BALANCE, newValue);
|
135
147
|
}
|
136
148
|
|
137
|
-
function setExtraGasMargin(
|
149
|
+
function setExtraGasMargin(
|
150
|
+
uint32 newValue
|
151
|
+
) external onlyOwner {
|
138
152
|
commonParams.extraGasMargin = newValue;
|
139
153
|
emit CommonParameterSet(CommonParameterKey.EXTRA_GAS_MARGIN, newValue);
|
140
154
|
}
|
141
155
|
|
142
|
-
function setCalldataCost(
|
156
|
+
function setCalldataCost(
|
157
|
+
uint8 newValue
|
158
|
+
) external onlyOwner {
|
143
159
|
commonParams.calldataCost = newValue;
|
144
160
|
emit CommonParameterSet(CommonParameterKey.CALLDATA_COST, newValue);
|
145
161
|
}
|
146
162
|
|
147
|
-
function setMaxGasTip(
|
163
|
+
function setMaxGasTip(
|
164
|
+
uint64 newValue
|
165
|
+
) external onlyOwner {
|
148
166
|
commonParams.maxGasTip = newValue;
|
149
167
|
emit CommonParameterSet(CommonParameterKey.MAX_GAS_TIP, newValue);
|
150
168
|
}
|
151
169
|
|
152
|
-
function setMaxGasCost(
|
170
|
+
function setMaxGasCost(
|
171
|
+
uint64 newValue
|
172
|
+
) external onlyOwner {
|
153
173
|
commonParams.maxGasCost = newValue;
|
154
174
|
emit CommonParameterSet(CommonParameterKey.MAX_GAS_COST, newValue);
|
155
175
|
}
|
156
176
|
|
157
|
-
function setMaxSingleGasUsage(
|
177
|
+
function setMaxSingleGasUsage(
|
178
|
+
uint32 newValue
|
179
|
+
) external onlyOwner {
|
158
180
|
commonParams.maxSingleGasUsage = newValue;
|
159
181
|
emit CommonParameterSet(CommonParameterKey.MAX_SINGLE_GAS_USAGE, newValue);
|
160
182
|
}
|
@@ -166,7 +188,7 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
166
188
|
function withdraw(address payable destination, uint256 amount) external onlyOwner {
|
167
189
|
// It's expected that destination is an EOA
|
168
190
|
// solhint-disable-next-line avoid-low-level-calls
|
169
|
-
(bool success,
|
191
|
+
(bool success,) = destination.call{value: amount}("");
|
170
192
|
require(success, "WITHDRAW_FAILED");
|
171
193
|
emit Withdrawn(msg.sender, destination, amount);
|
172
194
|
}
|
@@ -187,19 +209,13 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
187
209
|
|
188
210
|
if (!allowedContracts[msg.sender]) {
|
189
211
|
emit RefundGasCostsDenied(
|
190
|
-
refundee,
|
191
|
-
msg.sender,
|
192
|
-
RefundDenyReason.CONTRACT_NOT_ALLOWED,
|
193
|
-
gasUsed
|
212
|
+
refundee, msg.sender, RefundDenyReason.CONTRACT_NOT_ALLOWED, gasUsed
|
194
213
|
);
|
195
214
|
return false;
|
196
215
|
}
|
197
216
|
if (!allowedRefundees[refundee]) {
|
198
217
|
emit RefundGasCostsDenied(
|
199
|
-
refundee,
|
200
|
-
msg.sender,
|
201
|
-
RefundDenyReason.REFUNDEE_NOT_ALLOWED,
|
202
|
-
gasUsed
|
218
|
+
refundee, msg.sender, RefundDenyReason.REFUNDEE_NOT_ALLOWED, gasUsed
|
203
219
|
);
|
204
220
|
return false;
|
205
221
|
}
|
@@ -219,9 +235,7 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
219
235
|
|
220
236
|
// Add in a bit of a buffer for the tx costs not measured with gasleft
|
221
237
|
gasUsed +=
|
222
|
-
startGasLeft +
|
223
|
-
commonParams.extraGasMargin +
|
224
|
-
(calldataSize * commonParams.calldataCost);
|
238
|
+
startGasLeft + commonParams.extraGasMargin + (calldataSize * commonParams.calldataCost);
|
225
239
|
// Split this up into two statements so that gasleft() comes after the storage loads
|
226
240
|
gasUsed -= gasleft();
|
227
241
|
|
@@ -251,7 +265,7 @@ contract GasRefunder is IGasRefunder, Ownable {
|
|
251
265
|
|
252
266
|
// It's expected that refundee is an EOA
|
253
267
|
// solhint-disable-next-line avoid-low-level-calls
|
254
|
-
(success,
|
268
|
+
(success,) = refundee.call{value: refundAmount}("");
|
255
269
|
emit RefundedGasCosts(refundee, msg.sender, success, gasUsed, estGasPrice, refundAmount);
|
256
270
|
}
|
257
271
|
}
|
package/src/bridge/IBridge.sol
CHANGED
@@ -42,10 +42,7 @@ interface IBridge {
|
|
42
42
|
);
|
43
43
|
|
44
44
|
event BridgeCallTriggered(
|
45
|
-
address indexed outbox,
|
46
|
-
address indexed to,
|
47
|
-
uint256 value,
|
48
|
-
bytes data
|
45
|
+
address indexed outbox, address indexed to, uint256 value, bytes data
|
49
46
|
);
|
50
47
|
|
51
48
|
event InboxToggle(address indexed inbox, bool enabled);
|
@@ -56,15 +53,23 @@ interface IBridge {
|
|
56
53
|
|
57
54
|
event RollupUpdated(address rollup);
|
58
55
|
|
59
|
-
function allowedDelayedInboxList(
|
56
|
+
function allowedDelayedInboxList(
|
57
|
+
uint256
|
58
|
+
) external returns (address);
|
60
59
|
|
61
|
-
function allowedOutboxList(
|
60
|
+
function allowedOutboxList(
|
61
|
+
uint256
|
62
|
+
) external returns (address);
|
62
63
|
|
63
64
|
/// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
|
64
|
-
function delayedInboxAccs(
|
65
|
+
function delayedInboxAccs(
|
66
|
+
uint256
|
67
|
+
) external view returns (bytes32);
|
65
68
|
|
66
69
|
/// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
|
67
|
-
function sequencerInboxAccs(
|
70
|
+
function sequencerInboxAccs(
|
71
|
+
uint256
|
72
|
+
) external view returns (bytes32);
|
68
73
|
|
69
74
|
function rollup() external view returns (IOwnable);
|
70
75
|
|
@@ -72,9 +77,13 @@ interface IBridge {
|
|
72
77
|
|
73
78
|
function activeOutbox() external view returns (address);
|
74
79
|
|
75
|
-
function allowedDelayedInboxes(
|
80
|
+
function allowedDelayedInboxes(
|
81
|
+
address inbox
|
82
|
+
) external view returns (bool);
|
76
83
|
|
77
|
-
function allowedOutboxes(
|
84
|
+
function allowedOutboxes(
|
85
|
+
address outbox
|
86
|
+
) external view returns (bool);
|
78
87
|
|
79
88
|
function sequencerReportedSubMessageCount() external view returns (uint256);
|
80
89
|
|
@@ -97,12 +106,7 @@ interface IBridge {
|
|
97
106
|
uint256 newMessageCount
|
98
107
|
)
|
99
108
|
external
|
100
|
-
returns (
|
101
|
-
uint256 seqMessageIndex,
|
102
|
-
bytes32 beforeAcc,
|
103
|
-
bytes32 delayedAcc,
|
104
|
-
bytes32 acc
|
105
|
-
);
|
109
|
+
returns (uint256 seqMessageIndex, bytes32 beforeAcc, bytes32 delayedAcc, bytes32 acc);
|
106
110
|
|
107
111
|
/**
|
108
112
|
* @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type
|
@@ -110,17 +114,22 @@ interface IBridge {
|
|
110
114
|
* to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either
|
111
115
|
* every delayed inbox or every sequencer inbox call.
|
112
116
|
*/
|
113
|
-
function submitBatchSpendingReport(
|
114
|
-
|
115
|
-
|
117
|
+
function submitBatchSpendingReport(
|
118
|
+
address batchPoster,
|
119
|
+
bytes32 dataHash
|
120
|
+
) external returns (uint256 msgNum);
|
116
121
|
|
117
122
|
// ---------- onlyRollupOrOwner functions ----------
|
118
123
|
|
119
|
-
function setSequencerInbox(
|
124
|
+
function setSequencerInbox(
|
125
|
+
address _sequencerInbox
|
126
|
+
) external;
|
120
127
|
|
121
128
|
function setDelayedInbox(address inbox, bool enabled) external;
|
122
129
|
|
123
130
|
function setOutbox(address inbox, bool enabled) external;
|
124
131
|
|
125
|
-
function updateRollupAddress(
|
132
|
+
function updateRollupAddress(
|
133
|
+
IOwnable _rollup
|
134
|
+
) external;
|
126
135
|
}
|
@@ -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
|
// solhint-disable-next-line compiler-version
|
@@ -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
|
// solhint-disable-next-line compiler-version
|
@@ -14,7 +14,9 @@ interface IERC20Inbox is IInboxBase {
|
|
14
14
|
* Look into retryable tickets if you are interested in this functionality.
|
15
15
|
* @dev This function should not be called inside contract constructors
|
16
16
|
*/
|
17
|
-
function depositERC20(
|
17
|
+
function depositERC20(
|
18
|
+
uint256 amount
|
19
|
+
) external returns (uint256);
|
18
20
|
|
19
21
|
/**
|
20
22
|
* @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts
|
@@ -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
|
// solhint-disable-next-line compiler-version
|
@@ -22,5 +22,7 @@ interface IEthBridge is IBridge {
|
|
22
22
|
|
23
23
|
// ---------- initializer ----------
|
24
24
|
|
25
|
-
function initialize(
|
25
|
+
function initialize(
|
26
|
+
IOwnable rollup_
|
27
|
+
) external;
|
26
28
|
}
|