Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions src/contracts/block-hash-pusher/BaseBuffer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ abstract contract BaseBuffer is IBuffer {
/// @inheritdoc IBuffer
function parentChainBlockHash(uint256 parentChainBlockNumber) external view returns (bytes32) {
bytes32 blockHash = _blockHashes[parentChainBlockNumber];
if (blockHash == 0) {
revert UnknownParentChainBlockHash(parentChainBlockNumber);
}
require(blockHash != 0, UnknownParentChainBlockHash(parentChainBlockNumber));
return blockHash;
}

Expand All @@ -42,9 +40,7 @@ abstract contract BaseBuffer is IBuffer {
function _receiveHashes(uint256 firstBlockNumber, bytes32[] calldata blockHashes) internal {
uint256 blockHashesLength = blockHashes.length;

if (blockHashesLength == 0) {
revert EmptyBlockHashes();
}
require(blockHashesLength != 0, EmptyBlockHashes());

// write the hashes to both the mapping and circular buffer
for (uint256 i; i < blockHashesLength; i++) {
Expand Down
12 changes: 3 additions & 9 deletions src/contracts/block-hash-pusher/BlockHashArrayBuilder.sol
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,9 @@ abstract contract BlockHashArrayBuilder {
view
returns (bytes32[] memory blockHashes)
{
if (batchSize == 0 || batchSize > MAX_BATCH_SIZE()) {
revert IPusher.InvalidBatch(firstBlockNumber, batchSize);
}
require(batchSize != 0 && batchSize <= MAX_BATCH_SIZE(), IPusher.InvalidBatch(firstBlockNumber, batchSize));

if (firstBlockNumber + batchSize > block.number) {
revert IPusher.InvalidBatch(firstBlockNumber, batchSize);
}
require(firstBlockNumber + batchSize <= block.number, IPusher.InvalidBatch(firstBlockNumber, batchSize));

blockHashes = new bytes32[](batchSize);

Expand All @@ -47,9 +43,7 @@ abstract contract BlockHashArrayBuilder {
function _blockHash(uint256 blockNumber) internal view virtual returns (bytes32) {
// Note that this library is only supported on chains that support EIP-2935.
bytes32 blockHash = Blockhash.blockHash(blockNumber);
if (blockHash == 0) {
revert InvalidBlockNumber(blockNumber);
}
require(blockHash != 0, InvalidBlockNumber(blockNumber));
return blockHash;
}

Expand Down
16 changes: 4 additions & 12 deletions src/contracts/block-hash-pusher/linea/LineaBuffer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,8 @@ contract LineaBuffer is BaseBuffer {
error SenderMismatch();

constructor(address l2MessageService_, address pusher_) {
if (l2MessageService_ == address(0)) {
revert InvalidL2MessageServiceAddress();
}
if (pusher_ == address(0)) {
revert InvalidPusherAddress();
}
require(l2MessageService_ != address(0), InvalidL2MessageServiceAddress());
require(pusher_ != address(0), InvalidPusherAddress());

_l2MessageService = l2MessageService_;
_pusher = pusher_;
Expand All @@ -48,12 +44,8 @@ contract LineaBuffer is BaseBuffer {
function receiveHashes(uint256 firstBlockNumber, bytes32[] calldata blockHashes) external {
IMessageService l2MessageServiceCached = IMessageService(l2MessageService());

if (msg.sender != address(l2MessageServiceCached)) {
revert InvalidSender();
}
if (l2MessageServiceCached.sender() != _pusher) {
revert SenderMismatch();
}
require(msg.sender == address(l2MessageServiceCached), InvalidSender());
require(l2MessageServiceCached.sender() == _pusher, SenderMismatch());

_receiveHashes(firstBlockNumber, blockHashes);
}
Expand Down
4 changes: 1 addition & 3 deletions src/contracts/block-hash-pusher/linea/LineaPusher.sol
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ contract LineaPusher is BlockHashArrayBuilder, IPusher {
external
payable
{
if (buffer == address(0)) {
revert InvalidBuffer(buffer);
}
require(buffer != address(0), InvalidBuffer(buffer));

bytes32[] memory blockHashes = _buildBlockHashArray(firstBlockNumber, batchSize);
bytes memory l2Calldata = abi.encodeCall(IBuffer.receiveHashes, (firstBlockNumber, blockHashes));
Expand Down
16 changes: 4 additions & 12 deletions src/contracts/block-hash-pusher/scroll/ScrollBuffer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,8 @@ contract ScrollBuffer is BaseBuffer {
error InvalidSender();

constructor(address l2ScrollMessenger_, address pusher_) {
if (l2ScrollMessenger_ == address(0)) {
revert InvalidL2ScrollMessengerAddress();
}
if (pusher_ == address(0)) {
revert InvalidPusherAddress();
}
require(l2ScrollMessenger_ != address(0), InvalidL2ScrollMessengerAddress());
require(pusher_ != address(0), InvalidPusherAddress());

_l2ScrollMessenger = l2ScrollMessenger_;
_pusher = pusher_;
Expand All @@ -45,12 +41,8 @@ contract ScrollBuffer is BaseBuffer {
function receiveHashes(uint256 firstBlockNumber, bytes32[] calldata blockHashes) external {
IL2ScrollMessenger l2ScrollMessengerCached = IL2ScrollMessenger(l2ScrollMessenger());

if (msg.sender != address(l2ScrollMessengerCached)) {
revert InvalidSender();
}
if (l2ScrollMessengerCached.xDomainMessageSender() != _pusher) {
revert DomainMessageSenderMismatch();
}
require(msg.sender == address(l2ScrollMessengerCached), InvalidSender());
require(l2ScrollMessengerCached.xDomainMessageSender() == _pusher, DomainMessageSenderMismatch());

_receiveHashes(firstBlockNumber, blockHashes);
}
Expand Down
4 changes: 1 addition & 3 deletions src/contracts/block-hash-pusher/scroll/ScrollPusher.sol
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@ contract ScrollPusher is BlockHashArrayBuilder, IPusher {
external
payable
{
if (buffer == address(0)) {
revert InvalidBuffer(buffer);
}
require(buffer != address(0), InvalidBuffer(buffer));

bytes32[] memory blockHashes = _buildBlockHashArray(firstBlockNumber, batchSize);
bytes memory l2Calldata = abi.encodeCall(IBuffer.receiveHashes, (firstBlockNumber, blockHashes));
Expand Down
8 changes: 2 additions & 6 deletions src/contracts/block-hash-pusher/zksync/ZkSyncBuffer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,14 @@ contract ZkSyncBuffer is BaseBuffer {
error InvalidPusherAddress();

constructor(address pusher_) {
require(pusher_ != address(0), InvalidPusherAddress());
_pusher = pusher_;

if (pusher_ == address(0)) {
revert InvalidPusherAddress();
}
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.

/// @inheritdoc IBuffer
function receiveHashes(uint256 firstBlockNumber, bytes32[] calldata blockHashes) external {
if (msg.sender != aliasedPusher()) {
revert NotPusher();
}
require(msg.sender == aliasedPusher(), NotPusher());

_receiveHashes(firstBlockNumber, blockHashes);
}
Expand Down
8 changes: 2 additions & 6 deletions src/contracts/block-hash-pusher/zksync/ZkSyncPusher.sol
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ contract ZkSyncPusher is BlockHashArrayBuilder, IPusher {
external
payable
{
if (buffer == address(0)) {
revert InvalidBuffer(buffer);
}
require(buffer != address(0), InvalidBuffer(buffer));

bytes32[] memory blockHashes = _buildBlockHashArray(firstBlockNumber, batchSize);
bytes memory l2Calldata = abi.encodeCall(IBuffer.receiveHashes, (firstBlockNumber, blockHashes));
Expand All @@ -77,9 +75,7 @@ contract ZkSyncPusher is BlockHashArrayBuilder, IPusher {
l2Transaction.refundRecipient != address(0) ? l2Transaction.refundRecipient : msg.sender
);

if (canonicalTxHash == bytes32(0)) {
revert FailedToPushHashes();
}
require(canonicalTxHash != bytes32(0), FailedToPushHashes());

emit BlockHashesPushed(firstBlockNumber, firstBlockNumber + batchSize - 1);
}
Expand Down
Loading