From c582b58f2d91d25f9b729224eb1eecfa9d5061ba Mon Sep 17 00:00:00 2001 From: lau90eth Date: Tue, 12 May 2026 13:34:08 +0200 Subject: [PATCH] fix(batch): use blockhash(block.number - 1) in _tryBlockAndAggregate --- contracts/src/batch/Multicall3From.sol | 2 +- contracts/test/batch/Multicall3From.t.sol | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/src/batch/Multicall3From.sol b/contracts/src/batch/Multicall3From.sol index 16329ef..dce6b81 100644 --- a/contracts/src/batch/Multicall3From.sol +++ b/contracts/src/batch/Multicall3From.sol @@ -163,7 +163,7 @@ contract Multicall3From is IMulticall3From { returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) { blockNumber = block.number; - blockHash = blockhash(block.number); + blockHash = blockhash(block.number - 1); uint256 length = calls.length; returnData = new Result[](length); for (uint256 i = 0; i < length;) { diff --git a/contracts/test/batch/Multicall3From.t.sol b/contracts/test/batch/Multicall3From.t.sol index 59aeaeb..2440ce3 100644 --- a/contracts/test/batch/Multicall3From.t.sol +++ b/contracts/test/batch/Multicall3From.t.sol @@ -340,7 +340,7 @@ contract Multicall3FromTest is Test { multicall.blockAndAggregate(calls); assertEq(blockNumber, block.number); - assertEq(blockHash, blockhash(block.number)); + assertEq(blockHash, blockhash(block.number - 1)); assertEq(results.length, 1); assertTrue(results[0].success); assertEq(target.value(), 33); @@ -370,7 +370,7 @@ contract Multicall3FromTest is Test { multicall.tryBlockAndAggregate(false, calls); assertEq(blockNumber, block.number); - assertEq(blockHash, blockhash(block.number)); + assertEq(blockHash, blockhash(block.number - 1)); assertEq(results.length, 1); assertFalse(results[0].success); }