Skip to content

Commit

Permalink
feat: throw RollupNotChanged
Browse files Browse the repository at this point in the history
  • Loading branch information
gzeoneth committed Oct 24, 2023
1 parent ca6e8ef commit e8aac68
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 6 deletions.
7 changes: 5 additions & 2 deletions src/bridge/AbsOutbox.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import {
AlreadySpent,
BridgeCallFailed,
HadZeroInit,
BadPostUpgradeInit
BadPostUpgradeInit,
RollupNotChanged
} from "../libraries/Error.sol";
import "./IBridge.sol";
import "./IOutbox.sol";
Expand Down Expand Up @@ -94,7 +95,9 @@ abstract contract AbsOutbox is DelegateCallAware, IOutbox {
function updateRollupAddress() external {
if (msg.sender != IOwnable(rollup).owner())
revert NotOwner(msg.sender, IOwnable(rollup).owner());
rollup = address(bridge.rollup());
address newRollup = address(bridge.rollup());
if (rollup == newRollup) revert RollupNotChanged();
rollup = newRollup;
}

function updateSendRoot(bytes32 root, bytes32 l2BlockHash) external {
Expand Down
7 changes: 5 additions & 2 deletions src/bridge/SequencerInbox.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import {
DataNotAuthenticated,
AlreadyValidDASKeyset,
NoSuchKeyset,
NotForked
NotForked,
RollupNotChanged
} from "../libraries/Error.sol";
import "./IBridge.sol";
import "./IInboxBase.sol";
Expand Down Expand Up @@ -95,7 +96,9 @@ contract SequencerInbox is DelegateCallAware, GasRefundEnabled, ISequencerInbox
function updateRollupAddress() external {
if (msg.sender != IOwnable(rollup).owner())
revert NotOwner(msg.sender, IOwnable(rollup).owner());
rollup = bridge.rollup();
IOwnable newRollup = bridge.rollup();
if (rollup == newRollup) revert RollupNotChanged();
rollup = newRollup;
}

function getTimeBounds() internal view virtual returns (TimeBounds memory) {
Expand Down
3 changes: 3 additions & 0 deletions src/libraries/Error.sol
Original file line number Diff line number Diff line change
Expand Up @@ -175,3 +175,6 @@ error AlreadyValidDASKeyset(bytes32);

/// @dev Tried to use or invalidate an already invalid Data Availability Service keyset
error NoSuchKeyset(bytes32);

/// @dev Thrown when rollup is not updated with updateRollupAddress
error RollupNotChanged();
6 changes: 4 additions & 2 deletions src/rollup/AbsRollupEventInbox.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import "../libraries/ArbitrumChecker.sol";
import "../bridge/IDelayedMessageProvider.sol";
import "../libraries/DelegateCallAware.sol";
import {INITIALIZATION_MSG_TYPE} from "../libraries/MessageTypes.sol";
import {AlreadyInit, HadZeroInit} from "../libraries/Error.sol";
import {AlreadyInit, HadZeroInit, RollupNotChanged} from "../libraries/Error.sol";

/**
* @title The inbox for rollup protocol events
Expand Down Expand Up @@ -41,7 +41,9 @@ abstract contract AbsRollupEventInbox is
function updateRollupAddress() external {
if (msg.sender != IOwnable(rollup).owner())
revert NotOwner(msg.sender, IOwnable(rollup).owner());
rollup = address(bridge.rollup());
address newRollup = address(bridge.rollup());
if (rollup == newRollup) revert RollupNotChanged();
rollup = newRollup;
}

function rollupInitialized(uint256 chainId, string calldata chainConfig)
Expand Down

0 comments on commit e8aac68

Please sign in to comment.