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
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
"timestamp": "0x1ce",
"transactions" : [ "0x01227a99771643168026ed4617f14a903a509b9cb98d9caa3928d36b5082ffe3", "0xe413183c27f9777053272f9846aa8d56f0f9ab119c8bd47b5efac84ab58f3af5" ],
"transactionsRoot": "0x8df9808c2a8348795f8962e3a33684c00c2816033cb354247f5deaa3c23541cc",
"trieLog" : "0xf905b4a06e71e3172e3547c45bec026423067a121f2ebeaa4cccf2ba8783c3f23fd1f09af901439400000961ef480eb55e80d19ad83579a64c007002f895f84880843b9aca01a00ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015aa00345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f50f84880843b9aca01a00ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015aa00345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f508080f894e4a0290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563808080e4a0405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace808080e4a0b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6808080e4a0c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b808080f9013b940000bbddc7ce488642fb579f8b00f3a590007251f88df8448001a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a078c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd60f8448001a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a078c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd608080f894e4a0290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563808080e4a0405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace808080e4a0b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6808080e4a0c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b808080f8ed940000f90827f1c53a10cb7a02335b175320002935f88df8448001a010ce6c8acd71ef11f43b5bfeb3bd3352e70a144330ba3919cf575cd5787ab33da06e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5df8448001a0c0ebc880b835c61f7d6ce818918d562a1e525d97b5498a3dda9a3a5b1ead3cbaa06e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5d8080f846f844a04a2cc91ee622da3bc833a54c37ffcb6f3ec23b7793efc5eaf5e71b7b406c5c0680a0af51811799f22260e5b4e1f95504dae760505f102dcb2e9ca7d897d8a40124a180f8f394000f3df6d732807ef1319fb7b8bb8522d0beac02f88df844802aa0a7d9c22f383b2fc2fb8db92c324f5906c4d999e9e639eb5beae4ce08e85be195a0f57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02cf844802aa0cad64d94c0ab1afebaeed15ffcf3c2e8d0b7b448061f90596bca1ab9d3b08da5a0f57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c8080f84ce6a05d6f015ab75b09997e10f2fa9ea352d95dce65c2d7ce5ac920ae531c9a381e4a808201ce80e4a07099a2fd6f46d39cd1df0f865dd101c17ce8b8a58ab7fe7195abab9e15e0bcea808080f86194c000000000000000000000000000000000000000f84880f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080f86194c100000000000000000000000000000000000000f84880f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080f86394c200000000000000000000000000000000000000f84a80f846808203e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080",
"trieLog" : "0xf9066ea06e71e3172e3547c45bec026423067a121f2ebeaa4cccf2ba8783c3f23fd1f09af8b8940000000000000000000000000000000000000000f89ff84d808907d022dbe49dc859aca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470f84d808907d022dbe49dc859aca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080f901439400000961ef480eb55e80d19ad83579a64c007002f895f84880843b9aca01a00ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015aa00345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f50f84880843b9aca01a00ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015aa00345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f508080f894e4a0290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563808080e4a0405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace808080e4a0b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6808080e4a0c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b808080f9013b940000bbddc7ce488642fb579f8b00f3a590007251f88df8448001a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a078c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd60f8448001a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a078c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd608080f894e4a0290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563808080e4a0405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace808080e4a0b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6808080e4a0c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b808080f8ed940000f90827f1c53a10cb7a02335b175320002935f88df8448001a010ce6c8acd71ef11f43b5bfeb3bd3352e70a144330ba3919cf575cd5787ab33da06e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5df8448001a0c0ebc880b835c61f7d6ce818918d562a1e525d97b5498a3dda9a3a5b1ead3cbaa06e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5d8080f846f844a04a2cc91ee622da3bc833a54c37ffcb6f3ec23b7793efc5eaf5e71b7b406c5c0680a0af51811799f22260e5b4e1f95504dae760505f102dcb2e9ca7d897d8a40124a180f8f394000f3df6d732807ef1319fb7b8bb8522d0beac02f88df844802aa0a7d9c22f383b2fc2fb8db92c324f5906c4d999e9e639eb5beae4ce08e85be195a0f57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02cf844802aa0cad64d94c0ab1afebaeed15ffcf3c2e8d0b7b448061f90596bca1ab9d3b08da5a0f57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c8080f84ce6a05d6f015ab75b09997e10f2fa9ea352d95dce65c2d7ce5ac920ae531c9a381e4a808201ce80e4a07099a2fd6f46d39cd1df0f865dd101c17ce8b8a58ab7fe7195abab9e15e0bcea808080f86194c000000000000000000000000000000000000000f84880f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080f86194c100000000000000000000000000000000000000f84880f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080f86394c200000000000000000000000000000000000000f84a80f846808203e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470808080",
"uncles": [],
"withdrawals": [],
"withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -457,13 +457,13 @@ public TransactionProcessingResult processTransaction(
coinbaseCalculator.price(usedGas, transactionGasPrice, blockHeader.getBaseFee());

operationTracer.traceBeforeRewardTransaction(worldUpdater, transaction, coinbaseWeiDelta);
if (!coinbaseWeiDelta.isZero() || !clearEmptyAccounts) {
final var coinbase = worldState.getOrCreate(miningBeneficiary);
initialFrame
.getEip7928AccessList()
.ifPresent(t -> t.addTouchedAccount(coinbase.getAddress()));

// EIP-158 & EIP-7928: coinbase is considered "touched" even when fees are zero.
// Touching ensures an *empty* coinbase can be deleted during state clearing.
final MutableAccount coinbase = worldState.getOrCreate(miningBeneficiary);
accessLocationTracker.ifPresent(t -> t.addTouchedAccount(miningBeneficiary));
if (!coinbaseWeiDelta.isZero()) {
coinbase.incrementBalance(coinbaseWeiDelta);
accessLocationTracker.ifPresent(t -> t.addTouchedAccount(miningBeneficiary));
}

operationTracer.traceEndTransaction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ void testProcessBlockZeroReward() {

assertBlockAccessListAddresses(
sequentialResult,
coinbase,
Address.fromHexStringStrict(ACCOUNT_2),
Address.fromHexStringStrict(ACCOUNT_3),
Address.fromHexStringStrict(ACCOUNT_GENESIS_1),
Expand All @@ -367,6 +368,7 @@ void testProcessBlockZeroReward() {

assertBlockAccessListAddresses(
parallelResult,
coinbase,
Address.fromHexStringStrict(ACCOUNT_2),
Address.fromHexStringStrict(ACCOUNT_3),
Address.fromHexStringStrict(ACCOUNT_GENESIS_1),
Expand Down