@arbitrum/nitro-contracts 3.0.0-alpha.2 → 3.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +3 -3
- 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/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/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- 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/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 +1 -1
- package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +271 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +226 -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/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +294 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +325 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +233 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +10 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +4 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +24 -0
- package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
- 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/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +1 -1
- package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
- package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -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 +2 -2
- package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +2 -2
- package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
- 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/Inbox.sol/Inbox.dbg.json +1 -1
- package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
- package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
- package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
- package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
- package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +1 -1
- package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +1 -1
- package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +1 -1
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.json +10 -0
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +47 -0
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json +10 -0
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +1601 -0
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +1296 -0
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +4 -0
- package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +10 -0
- package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
- package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
- 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/CallerChecker.sol/CallerChecker.dbg.json +1 -1
- package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
- package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
- 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/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
- package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
- package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
- package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
- package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +1 -1
- package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
- package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
- package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
- package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
- package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +1 -1
- package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
- package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
- package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +1 -1
- package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +1 -1
- package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
- 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/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
- package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
- package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
- 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 +1 -1
- package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +84 -32
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +2 -2
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +45 -0
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +1 -1
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +2 -2
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
- package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
- package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
- 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 +10 -0
- package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
- 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/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +12 -2
- package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +12 -2
- package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
- package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +12 -2
- package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
- package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
- package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
- package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
- package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
- package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
- package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
- package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
- package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
- package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
- package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
- package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
- package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
- package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
- package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
- package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
- package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
- package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
- package/package.json +2 -3
- package/src/bridge/AbsBridge.sol +2 -2
- package/src/bridge/ERC20Bridge.sol +6 -2
- package/src/express-lane-auction/Balance.sol +137 -0
- package/src/express-lane-auction/Burner.sol +26 -0
- package/src/express-lane-auction/ELCRound.sol +70 -0
- package/src/express-lane-auction/Errors.sol +31 -0
- package/src/express-lane-auction/ExpressLaneAuction.sol +567 -0
- package/src/express-lane-auction/IExpressLaneAuction.sol +441 -0
- package/src/express-lane-auction/RoundTimingInfo.sol +118 -0
- package/src/rollup/BOLDUpgradeAction.sol +53 -104
- package/src/rollup/BridgeCreator.sol +23 -5
- package/src/rollup/Config.sol +2 -0
- package/src/rollup/RollupAdminLogic.sol +4 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +0 -4
- package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +0 -385
|
@@ -64,6 +64,12 @@ interface IOldRollup {
|
|
|
64
64
|
uint256 inboxMaxCount
|
|
65
65
|
);
|
|
66
66
|
|
|
67
|
+
function paused() external view returns (bool);
|
|
68
|
+
function isZombie(
|
|
69
|
+
address staker
|
|
70
|
+
) external view returns (bool);
|
|
71
|
+
function withdrawStakerFunds() external returns (uint256);
|
|
72
|
+
|
|
67
73
|
function wasmModuleRoot() external view returns (bytes32);
|
|
68
74
|
function latestConfirmed() external view returns (uint64);
|
|
69
75
|
function getNode(
|
|
@@ -136,65 +142,6 @@ contract StateHashPreImageLookup {
|
|
|
136
142
|
}
|
|
137
143
|
}
|
|
138
144
|
|
|
139
|
-
/// @title Forwards calls to the rollup so that they can be interpreted as a user
|
|
140
|
-
/// @notice In the upgrade executor we need to access functions on the rollup
|
|
141
|
-
/// but since the upgrade executor is the admin it will always be forwarded to the
|
|
142
|
-
/// rollup admin logic. We create a separate forwarder contract here that just relays
|
|
143
|
-
/// information, since it's not the admin it can access rollup user logic.
|
|
144
|
-
contract RollupReader is IOldRollup {
|
|
145
|
-
IOldRollup public immutable rollup;
|
|
146
|
-
|
|
147
|
-
constructor(
|
|
148
|
-
IOldRollup _rollup
|
|
149
|
-
) {
|
|
150
|
-
rollup = _rollup;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
function wasmModuleRoot() external view returns (bytes32) {
|
|
154
|
-
return rollup.wasmModuleRoot();
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function latestConfirmed() external view returns (uint64) {
|
|
158
|
-
return rollup.latestConfirmed();
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function getNode(
|
|
162
|
-
uint64 nodeNum
|
|
163
|
-
) external view returns (Node memory) {
|
|
164
|
-
return rollup.getNode(nodeNum);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
function getStakerAddress(
|
|
168
|
-
uint64 stakerNum
|
|
169
|
-
) external view returns (address) {
|
|
170
|
-
return rollup.getStakerAddress(stakerNum);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
function stakerCount() external view returns (uint64) {
|
|
174
|
-
return rollup.stakerCount();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
function getStaker(
|
|
178
|
-
address staker
|
|
179
|
-
) external view returns (OldStaker memory) {
|
|
180
|
-
return rollup.getStaker(staker);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
function isValidator(
|
|
184
|
-
address validator
|
|
185
|
-
) external view returns (bool) {
|
|
186
|
-
return rollup.isValidator(validator);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
function validatorWalletCreator() external view returns (address) {
|
|
190
|
-
return rollup.validatorWalletCreator();
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
function anyTrustFastConfirmer() external view returns (address) {
|
|
194
|
-
return rollup.anyTrustFastConfirmer();
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
145
|
/// @notice Stores an array specified during construction.
|
|
199
146
|
/// Since the BOLDUpgradeAction is not allowed to have storage,
|
|
200
147
|
/// we use this contract so it can keep an immutable pointer to an array.
|
|
@@ -216,6 +163,7 @@ contract ConstantArrayStorage {
|
|
|
216
163
|
/// @notice Requires implementation contracts to be pre-deployed and provided in the constructor
|
|
217
164
|
/// Also requires a lookup contract to be provided that contains the pre-image of the state hash
|
|
218
165
|
/// that is in the latest confirmed assertion in the current rollup.
|
|
166
|
+
/// The old rollup should be on v1.1.0 or later to allow stake withdrawals after the upgrade
|
|
219
167
|
contract BOLDUpgradeAction {
|
|
220
168
|
using AssertionStateLib for AssertionState;
|
|
221
169
|
|
|
@@ -237,6 +185,9 @@ contract BOLDUpgradeAction {
|
|
|
237
185
|
address public immutable STAKE_TOKEN;
|
|
238
186
|
uint256 public immutable STAKE_AMOUNT;
|
|
239
187
|
uint256 public immutable CHAIN_ID;
|
|
188
|
+
uint256 public immutable MINIMUM_ASSERTION_PERIOD;
|
|
189
|
+
uint64 public immutable VALIDATOR_AFK_BLOCKS;
|
|
190
|
+
|
|
240
191
|
bool public immutable DISABLE_VALIDATOR_WHITELIST;
|
|
241
192
|
uint64 public immutable CHALLENGE_GRACE_PERIOD_BLOCKS;
|
|
242
193
|
address public immutable MINI_STAKE_AMOUNTS_STORAGE;
|
|
@@ -255,7 +206,6 @@ contract BOLDUpgradeAction {
|
|
|
255
206
|
ProxyAdmin public immutable PROXY_ADMIN_SEQUENCER_INBOX;
|
|
256
207
|
ProxyAdmin public immutable PROXY_ADMIN_INBOX;
|
|
257
208
|
StateHashPreImageLookup public immutable PREIMAGE_LOOKUP;
|
|
258
|
-
RollupReader public immutable ROLLUP_READER;
|
|
259
209
|
|
|
260
210
|
// new contract implementations
|
|
261
211
|
address public immutable IMPL_BRIDGE;
|
|
@@ -263,8 +213,6 @@ contract BOLDUpgradeAction {
|
|
|
263
213
|
address public immutable IMPL_INBOX;
|
|
264
214
|
address public immutable IMPL_REI;
|
|
265
215
|
address public immutable IMPL_OUTBOX;
|
|
266
|
-
// the old rollup, but with whenNotPaused protection removed from stake withdrawal functions
|
|
267
|
-
address public immutable IMPL_PATCHED_OLD_ROLLUP_USER;
|
|
268
216
|
address public immutable IMPL_NEW_ROLLUP_USER;
|
|
269
217
|
address public immutable IMPL_NEW_ROLLUP_ADMIN;
|
|
270
218
|
address public immutable IMPL_CHALLENGE_MANAGER;
|
|
@@ -278,6 +226,8 @@ contract BOLDUpgradeAction {
|
|
|
278
226
|
uint256 stakeAmt;
|
|
279
227
|
uint256[] miniStakeAmounts;
|
|
280
228
|
uint256 chainId;
|
|
229
|
+
uint256 minimumAssertionPeriod;
|
|
230
|
+
uint64 validatorAfkBlocks;
|
|
281
231
|
bool disableValidatorWhitelist;
|
|
282
232
|
uint256 blockLeafSize;
|
|
283
233
|
uint256 bigStepLeafSize;
|
|
@@ -303,7 +253,6 @@ contract BOLDUpgradeAction {
|
|
|
303
253
|
address inbox;
|
|
304
254
|
address rei;
|
|
305
255
|
address outbox;
|
|
306
|
-
address oldRollupUser;
|
|
307
256
|
address newRollupUser;
|
|
308
257
|
address newRollupAdmin;
|
|
309
258
|
address challengeManager;
|
|
@@ -341,19 +290,19 @@ contract BOLDUpgradeAction {
|
|
|
341
290
|
PROXY_ADMIN_SEQUENCER_INBOX = ProxyAdmin(proxyAdmins.seqInbox);
|
|
342
291
|
PROXY_ADMIN_INBOX = ProxyAdmin(proxyAdmins.inbox);
|
|
343
292
|
PREIMAGE_LOOKUP = new StateHashPreImageLookup();
|
|
344
|
-
ROLLUP_READER = new RollupReader(contracts.rollup);
|
|
345
293
|
|
|
346
294
|
IMPL_BRIDGE = implementations.bridge;
|
|
347
295
|
IMPL_SEQUENCER_INBOX = implementations.seqInbox;
|
|
348
296
|
IMPL_INBOX = implementations.inbox;
|
|
349
297
|
IMPL_REI = implementations.rei;
|
|
350
298
|
IMPL_OUTBOX = implementations.outbox;
|
|
351
|
-
IMPL_PATCHED_OLD_ROLLUP_USER = implementations.oldRollupUser;
|
|
352
299
|
IMPL_NEW_ROLLUP_USER = implementations.newRollupUser;
|
|
353
300
|
IMPL_NEW_ROLLUP_ADMIN = implementations.newRollupAdmin;
|
|
354
301
|
IMPL_CHALLENGE_MANAGER = implementations.challengeManager;
|
|
355
302
|
|
|
356
303
|
CHAIN_ID = settings.chainId;
|
|
304
|
+
MINIMUM_ASSERTION_PERIOD = settings.minimumAssertionPeriod;
|
|
305
|
+
VALIDATOR_AFK_BLOCKS = settings.validatorAfkBlocks;
|
|
357
306
|
CONFIRM_PERIOD_BLOCKS = settings.confirmPeriodBlocks;
|
|
358
307
|
CHALLENGE_PERIOD_BLOCKS = settings.challengePeriodBlocks;
|
|
359
308
|
STAKE_TOKEN = settings.stakeToken;
|
|
@@ -376,15 +325,15 @@ contract BOLDUpgradeAction {
|
|
|
376
325
|
function cleanupOldRollup() private {
|
|
377
326
|
IOldRollupAdmin(address(OLD_ROLLUP)).pause();
|
|
378
327
|
|
|
379
|
-
uint64 stakerCount =
|
|
328
|
+
uint64 stakerCount = OLD_ROLLUP.stakerCount();
|
|
380
329
|
// since we for-loop these stakers we set an arbitrary limit - we dont
|
|
381
330
|
// expect any instances to have close to this number of stakers
|
|
382
331
|
if (stakerCount > 50) {
|
|
383
332
|
stakerCount = 50;
|
|
384
333
|
}
|
|
385
334
|
for (uint64 i = 0; i < stakerCount;) {
|
|
386
|
-
address stakerAddr =
|
|
387
|
-
OldStaker memory staker =
|
|
335
|
+
address stakerAddr = OLD_ROLLUP.getStakerAddress(i);
|
|
336
|
+
OldStaker memory staker = OLD_ROLLUP.getStaker(stakerAddr);
|
|
388
337
|
if (staker.isStaked && staker.currentChallenge == 0) {
|
|
389
338
|
address[] memory stakersToRefund = new address[](1);
|
|
390
339
|
stakersToRefund[0] = stakerAddr;
|
|
@@ -395,11 +344,6 @@ contract BOLDUpgradeAction {
|
|
|
395
344
|
i++;
|
|
396
345
|
}
|
|
397
346
|
}
|
|
398
|
-
|
|
399
|
-
// upgrade the rollup to one that allows validators to withdraw even whilst paused
|
|
400
|
-
DoubleLogicUUPSUpgradeable(address(OLD_ROLLUP)).upgradeSecondaryTo(
|
|
401
|
-
IMPL_PATCHED_OLD_ROLLUP_USER
|
|
402
|
-
);
|
|
403
347
|
}
|
|
404
348
|
|
|
405
349
|
/// @dev Create a config for the new rollup - fetches the latest confirmed
|
|
@@ -407,7 +351,7 @@ contract BOLDUpgradeAction {
|
|
|
407
351
|
function createConfig() private view returns (Config memory) {
|
|
408
352
|
// fetch the assertion associated with the latest confirmed state
|
|
409
353
|
bytes32 latestConfirmedStateHash =
|
|
410
|
-
|
|
354
|
+
OLD_ROLLUP.getNode(OLD_ROLLUP.latestConfirmed()).stateHash;
|
|
411
355
|
(ExecutionState memory genesisExecState, uint256 inboxMaxCount) =
|
|
412
356
|
PREIMAGE_LOOKUP.get(latestConfirmedStateHash);
|
|
413
357
|
|
|
@@ -431,11 +375,13 @@ contract BOLDUpgradeAction {
|
|
|
431
375
|
confirmPeriodBlocks: CONFIRM_PERIOD_BLOCKS,
|
|
432
376
|
stakeToken: STAKE_TOKEN,
|
|
433
377
|
baseStake: STAKE_AMOUNT,
|
|
434
|
-
wasmModuleRoot:
|
|
378
|
+
wasmModuleRoot: OLD_ROLLUP.wasmModuleRoot(),
|
|
435
379
|
owner: address(this), // upgrade executor is the owner
|
|
436
380
|
loserStakeEscrow: EXCESS_STAKE_RECEIVER, // additional funds get sent to the l1 timelock
|
|
437
381
|
chainId: CHAIN_ID,
|
|
438
382
|
chainConfig: "", // we can use an empty chain config it wont be used in the rollup initialization because we check if the rei is already connected there
|
|
383
|
+
minimumAssertionPeriod: MINIMUM_ASSERTION_PERIOD,
|
|
384
|
+
validatorAfkBlocks: VALIDATOR_AFK_BLOCKS,
|
|
439
385
|
miniStakeValues: ConstantArrayStorage(MINI_STAKE_AMOUNTS_STORAGE).array(),
|
|
440
386
|
sequencerInboxMaxTimeVariation: maxTimeVariation,
|
|
441
387
|
layerZeroBlockEdgeHeight: BLOCK_LEAF_SIZE,
|
|
@@ -496,17 +442,6 @@ contract BOLDUpgradeAction {
|
|
|
496
442
|
PROXY_ADMIN_SEQUENCER_INBOX.upgrade(sequencerInbox, IMPL_SEQUENCER_INBOX);
|
|
497
443
|
}
|
|
498
444
|
|
|
499
|
-
// verify
|
|
500
|
-
require(
|
|
501
|
-
PROXY_ADMIN_SEQUENCER_INBOX.getProxyImplementation(sequencerInbox)
|
|
502
|
-
== IMPL_SEQUENCER_INBOX,
|
|
503
|
-
"DelayBuffer: new seq inbox implementation not set"
|
|
504
|
-
);
|
|
505
|
-
require(
|
|
506
|
-
ISequencerInbox(SEQ_INBOX).isDelayBufferable() == IS_DELAY_BUFFERABLE,
|
|
507
|
-
"DelayBuffer: isDelayBufferable not set"
|
|
508
|
-
);
|
|
509
|
-
|
|
510
445
|
(uint256 delayBlocks, uint256 futureBlocks, uint256 delaySeconds, uint256 futureSeconds) =
|
|
511
446
|
ISequencerInbox(SEQ_INBOX).maxTimeVariation();
|
|
512
447
|
|
|
@@ -528,17 +463,31 @@ contract BOLDUpgradeAction {
|
|
|
528
463
|
})
|
|
529
464
|
);
|
|
530
465
|
|
|
531
|
-
// verify
|
|
532
|
-
(uint256 _delayBlocks, uint256 _futureBlocks, uint256 _delaySeconds, uint256 _futureSeconds)
|
|
533
|
-
= ISequencerInbox(SEQ_INBOX).maxTimeVariation();
|
|
534
|
-
require(_delayBlocks == delayBlocks, "DelayBuffer: delayBlocks not set");
|
|
535
|
-
require(_delaySeconds == delaySeconds, "DelayBuffer: delaySeconds not set");
|
|
536
|
-
require(_futureBlocks == futureBlocks, "DelayBuffer: futureBlocks not set");
|
|
537
|
-
require(_futureSeconds == futureSeconds, "DelayBuffer: futureSeconds not set");
|
|
538
|
-
|
|
539
466
|
ISequencerInbox(SEQ_INBOX).updateRollupAddress();
|
|
540
467
|
}
|
|
541
468
|
|
|
469
|
+
function expectedRollupAddress(
|
|
470
|
+
address deployer,
|
|
471
|
+
uint256 chainId
|
|
472
|
+
) public pure returns (address) {
|
|
473
|
+
bytes32 rollupSalt = keccak256(abi.encode(chainId));
|
|
474
|
+
return Create2Upgradeable.computeAddress(
|
|
475
|
+
rollupSalt, keccak256(type(RollupProxy).creationCode), deployer
|
|
476
|
+
);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
function validateRollupDeployedAtAddress(
|
|
480
|
+
address rollupAddress,
|
|
481
|
+
address deployer,
|
|
482
|
+
uint256 chainId
|
|
483
|
+
) external view {
|
|
484
|
+
require(
|
|
485
|
+
(rollupAddress.code.length > 0)
|
|
486
|
+
&& expectedRollupAddress(deployer, chainId) == rollupAddress,
|
|
487
|
+
"ADDR_MISMATCH"
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
|
|
542
491
|
function perform(
|
|
543
492
|
address[] memory validators
|
|
544
493
|
) external {
|
|
@@ -570,18 +519,18 @@ contract BOLDUpgradeAction {
|
|
|
570
519
|
challengeManager: challengeManager,
|
|
571
520
|
rollupAdminLogic: IMPL_NEW_ROLLUP_ADMIN,
|
|
572
521
|
rollupUserLogic: IRollupUser(IMPL_NEW_ROLLUP_USER),
|
|
573
|
-
validatorWalletCreator:
|
|
522
|
+
validatorWalletCreator: OLD_ROLLUP.validatorWalletCreator()
|
|
574
523
|
});
|
|
575
524
|
|
|
576
525
|
// upgrade the surrounding contracts eg bridge, outbox, seq inbox, rollup event inbox
|
|
577
526
|
// to set of the new rollup address
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
upgradeSurroundingContracts(
|
|
527
|
+
// this is different from the typical salt, it is ok because the caller should deploy the upgrade only once for each chainid
|
|
528
|
+
bytes32 rollupSalt = keccak256(abi.encode(config.chainId));
|
|
529
|
+
address _expectedRollupAddress = expectedRollupAddress(address(this), config.chainId);
|
|
530
|
+
upgradeSurroundingContracts(_expectedRollupAddress);
|
|
582
531
|
|
|
583
532
|
challengeManager.initialize({
|
|
584
|
-
_assertionChain: IAssertionChain(
|
|
533
|
+
_assertionChain: IAssertionChain(_expectedRollupAddress),
|
|
585
534
|
_challengePeriodBlocks: CHALLENGE_PERIOD_BLOCKS,
|
|
586
535
|
_oneStepProofEntry: OSP,
|
|
587
536
|
layerZeroBlockEdgeHeight: config.layerZeroBlockEdgeHeight,
|
|
@@ -594,7 +543,7 @@ contract BOLDUpgradeAction {
|
|
|
594
543
|
});
|
|
595
544
|
|
|
596
545
|
RollupProxy rollup = new RollupProxy{salt: rollupSalt}();
|
|
597
|
-
require(address(rollup) ==
|
|
546
|
+
require(address(rollup) == _expectedRollupAddress, "UNEXPCTED_ROLLUP_ADDR");
|
|
598
547
|
|
|
599
548
|
// initialize the rollup with this contract as owner to set batch poster and validators
|
|
600
549
|
// it will transfer the ownership back to the actual owner later
|
|
@@ -606,7 +555,7 @@ contract BOLDUpgradeAction {
|
|
|
606
555
|
if (validators.length != 0) {
|
|
607
556
|
bool[] memory _vals = new bool[](validators.length);
|
|
608
557
|
for (uint256 i = 0; i < validators.length; i++) {
|
|
609
|
-
require(
|
|
558
|
+
require(OLD_ROLLUP.isValidator(validators[i]), "UNEXPECTED_NEW_VALIDATOR");
|
|
610
559
|
_vals[i] = true;
|
|
611
560
|
}
|
|
612
561
|
IRollupAdmin(address(rollup)).setValidator(validators, _vals);
|
|
@@ -616,7 +565,7 @@ contract BOLDUpgradeAction {
|
|
|
616
565
|
}
|
|
617
566
|
|
|
618
567
|
// anyTrustFastConfirmer only exists since v2.0.0, but the old rollup can be on an older version
|
|
619
|
-
try
|
|
568
|
+
try OLD_ROLLUP.anyTrustFastConfirmer() returns (address anyTrustFastConfirmer) {
|
|
620
569
|
if (anyTrustFastConfirmer != address(0)) {
|
|
621
570
|
IRollupAdmin(address(rollup)).setAnyTrustFastConfirmer(anyTrustFastConfirmer);
|
|
622
571
|
}
|
|
@@ -626,6 +575,6 @@ contract BOLDUpgradeAction {
|
|
|
626
575
|
|
|
627
576
|
IRollupAdmin(address(rollup)).setOwner(actualOwner);
|
|
628
577
|
|
|
629
|
-
emit RollupMigrated(
|
|
578
|
+
emit RollupMigrated(_expectedRollupAddress, address(challengeManager));
|
|
630
579
|
}
|
|
631
580
|
}
|
|
@@ -65,17 +65,22 @@ contract BridgeCreator is Ownable {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
function _createBridge(
|
|
68
|
+
bytes32 create2Salt,
|
|
68
69
|
address adminProxy,
|
|
69
70
|
BridgeTemplates memory templates,
|
|
70
71
|
bool isDelayBufferable
|
|
71
72
|
) internal returns (BridgeContracts memory) {
|
|
72
73
|
BridgeContracts memory frame;
|
|
73
74
|
frame.bridge = IBridge(
|
|
74
|
-
address(
|
|
75
|
+
address(
|
|
76
|
+
new TransparentUpgradeableProxy{salt: create2Salt}(
|
|
77
|
+
address(templates.bridge), adminProxy, ""
|
|
78
|
+
)
|
|
79
|
+
)
|
|
75
80
|
);
|
|
76
81
|
frame.sequencerInbox = ISequencerInbox(
|
|
77
82
|
address(
|
|
78
|
-
new TransparentUpgradeableProxy(
|
|
83
|
+
new TransparentUpgradeableProxy{salt: create2Salt}(
|
|
79
84
|
address(
|
|
80
85
|
isDelayBufferable
|
|
81
86
|
? templates.delayBufferableSequencerInbox
|
|
@@ -87,15 +92,25 @@ contract BridgeCreator is Ownable {
|
|
|
87
92
|
)
|
|
88
93
|
);
|
|
89
94
|
frame.inbox = IInboxBase(
|
|
90
|
-
address(
|
|
95
|
+
address(
|
|
96
|
+
new TransparentUpgradeableProxy{salt: create2Salt}(
|
|
97
|
+
address(templates.inbox), adminProxy, ""
|
|
98
|
+
)
|
|
99
|
+
)
|
|
91
100
|
);
|
|
92
101
|
frame.rollupEventInbox = IRollupEventInbox(
|
|
93
102
|
address(
|
|
94
|
-
new TransparentUpgradeableProxy(
|
|
103
|
+
new TransparentUpgradeableProxy{salt: create2Salt}(
|
|
104
|
+
address(templates.rollupEventInbox), adminProxy, ""
|
|
105
|
+
)
|
|
95
106
|
)
|
|
96
107
|
);
|
|
97
108
|
frame.outbox = IOutbox(
|
|
98
|
-
address(
|
|
109
|
+
address(
|
|
110
|
+
new TransparentUpgradeableProxy{salt: create2Salt}(
|
|
111
|
+
address(templates.outbox), adminProxy, ""
|
|
112
|
+
)
|
|
113
|
+
)
|
|
99
114
|
);
|
|
100
115
|
return frame;
|
|
101
116
|
}
|
|
@@ -107,11 +122,14 @@ contract BridgeCreator is Ownable {
|
|
|
107
122
|
ISequencerInbox.MaxTimeVariation calldata maxTimeVariation,
|
|
108
123
|
BufferConfig calldata bufferConfig
|
|
109
124
|
) external returns (BridgeContracts memory) {
|
|
125
|
+
// use create2 salt to ensure deterministic addresses
|
|
126
|
+
bytes32 create2Salt = keccak256(abi.encode(msg.data, msg.sender));
|
|
110
127
|
// create delay bufferable sequencer inbox if threshold is non-zero
|
|
111
128
|
bool isDelayBufferable = bufferConfig.threshold != 0;
|
|
112
129
|
|
|
113
130
|
// create ETH-based bridge if address zero is provided for native token, otherwise create ERC20-based bridge
|
|
114
131
|
BridgeContracts memory frame = _createBridge(
|
|
132
|
+
create2Salt,
|
|
115
133
|
adminProxy,
|
|
116
134
|
nativeToken == address(0) ? ethBasedTemplates : erc20BasedTemplates,
|
|
117
135
|
isDelayBufferable
|
package/src/rollup/Config.sol
CHANGED
|
@@ -23,6 +23,8 @@ struct Config {
|
|
|
23
23
|
address loserStakeEscrow;
|
|
24
24
|
uint256 chainId;
|
|
25
25
|
string chainConfig;
|
|
26
|
+
uint256 minimumAssertionPeriod;
|
|
27
|
+
uint64 validatorAfkBlocks;
|
|
26
28
|
uint256[] miniStakeValues;
|
|
27
29
|
ISequencerInbox.MaxTimeVariation sequencerInboxMaxTimeVariation;
|
|
28
30
|
uint256 layerZeroBlockEdgeHeight;
|
|
@@ -53,12 +53,12 @@ contract RollupAdminLogic is RollupCore, IRollupAdmin, DoubleLogicUUPSUpgradeabl
|
|
|
53
53
|
chainId = config.chainId;
|
|
54
54
|
baseStake = config.baseStake;
|
|
55
55
|
wasmModuleRoot = config.wasmModuleRoot;
|
|
56
|
-
//
|
|
57
|
-
minimumAssertionPeriod =
|
|
58
|
-
// ValidatorAfkBlocks
|
|
56
|
+
// minimumAssertionPeriod was defaulted to 75 which is a little over 15 minutes
|
|
57
|
+
minimumAssertionPeriod = config.minimumAssertionPeriod;
|
|
58
|
+
// ValidatorAfkBlocks was defaulted to 201600 which is 28 days assuming a 12 seconds block time.
|
|
59
59
|
// Since it can take 14 days under normal circumstances to confirm an assertion, this means
|
|
60
60
|
// the validators will have been inactive for a further 14 days before the whitelist is removed.
|
|
61
|
-
validatorAfkBlocks =
|
|
61
|
+
validatorAfkBlocks = config.validatorAfkBlocks;
|
|
62
62
|
challengeGracePeriodBlocks = config.challengeGracePeriodBlocks;
|
|
63
63
|
|
|
64
64
|
// loser stake is now sent directly to loserStakeEscrow, it must not
|