mirror of https://github.com/ethereum/go-ethereum
core, params, beacon/engine: implement EIP 4788 BeaconRoot (#27849)
This change implements "EIP 4788 : Beacon block root in the EVM". It implements version-2 of EPI-4788, main difference being that the contract is an actual contract rather than a precompile, as in #27289.pull/27974/head
parent
0b4b299099
commit
b8d38e76ef
@ -0,0 +1,16 @@ |
||||
{ |
||||
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { |
||||
"balance" : "0x016345785d8a0000", |
||||
"code" : "0x", |
||||
"nonce" : "0x00", |
||||
"storage" : { |
||||
} |
||||
}, |
||||
"0xbEac00dDB15f3B6d645C48263dC93862413A222D" : { |
||||
"balance" : "0x1", |
||||
"code" : "0x3373fffffffffffffffffffffffffffffffffffffffe14604457602036146024575f5ffd5b620180005f350680545f35146037575f5ffd5b6201800001545f5260205ff35b6201800042064281555f359062018000015500", |
||||
"nonce" : "0x00", |
||||
"storage" : { |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,20 @@ |
||||
{ |
||||
"currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", |
||||
"currentNumber" : "0x01", |
||||
"currentTimestamp" : "0x079e", |
||||
"currentGasLimit" : "0x7fffffffffffffff", |
||||
"previousHash" : "0x3a9b485972e7353edd9152712492f0c58d89ef80623686b6bf947a4a6dce6cb6", |
||||
"currentBlobGasUsed" : "0x00", |
||||
"parentTimestamp" : "0x03b6", |
||||
"parentDifficulty" : "0x00", |
||||
"parentUncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", |
||||
"currentRandom" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", |
||||
"withdrawals" : [ |
||||
], |
||||
"parentBaseFee" : "0x0a", |
||||
"parentGasUsed" : "0x00", |
||||
"parentGasLimit" : "0x7fffffffffffffff", |
||||
"parentExcessBlobGas" : "0x00", |
||||
"parentBlobGasUsed" : "0x00", |
||||
"parentBeaconBlockRoot": "0x0000beac00beac00beac00beac00beac00beac00beac00beac00beac00beac00" |
||||
} |
@ -0,0 +1,45 @@ |
||||
{ |
||||
"alloc": { |
||||
"0xbeac00ddb15f3b6d645c48263dc93862413a222d": { |
||||
"code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604457602036146024575f5ffd5b620180005f350680545f35146037575f5ffd5b6201800001545f5260205ff35b6201800042064281555f359062018000015500", |
||||
"storage": { |
||||
"0x000000000000000000000000000000000000000000000000000000000000079e": "0x000000000000000000000000000000000000000000000000000000000000079e", |
||||
"0x000000000000000000000000000000000000000000000000000000000001879e": "0x0000beac00beac00beac00beac00beac00beac00beac00beac00beac00beac00" |
||||
}, |
||||
"balance": "0x1" |
||||
}, |
||||
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { |
||||
"balance": "0x16345785d871db8", |
||||
"nonce": "0x1" |
||||
} |
||||
}, |
||||
"result": { |
||||
"stateRoot": "0x2db9f6bc233e8fd0af2d8023404493a19b37d9d69ace71f4e73158851fced574", |
||||
"txRoot": "0x248074fabe112f7d93917f292b64932394f835bb98da91f21501574d58ec92ab", |
||||
"receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", |
||||
"logsHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", |
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
||||
"receipts": [ |
||||
{ |
||||
"type": "0x2", |
||||
"root": "0x", |
||||
"status": "0x1", |
||||
"cumulativeGasUsed": "0x5208", |
||||
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
||||
"logs": null, |
||||
"transactionHash": "0x84f70aba406a55628a0620f26d260f90aeb6ccc55fed6ec2ac13dd4f727032ed", |
||||
"contractAddress": "0x0000000000000000000000000000000000000000", |
||||
"gasUsed": "0x5208", |
||||
"effectiveGasPrice": null, |
||||
"blockHash": "0x0000000000000000000000000000000000000000000000000000000000000000", |
||||
"transactionIndex": "0x0" |
||||
} |
||||
], |
||||
"currentDifficulty": null, |
||||
"gasUsed": "0x5208", |
||||
"currentBaseFee": "0x9", |
||||
"withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", |
||||
"currentExcessBlobGas": "0x0", |
||||
"currentBlobGasUsed": "0x0" |
||||
} |
||||
} |
@ -0,0 +1,29 @@ |
||||
## EIP 4788 |
||||
|
||||
This test contains testcases for EIP-4788. The 4788-contract is |
||||
located at address `0xbeac00ddb15f3b6d645c48263dc93862413a222d`, and this test executes a simple transaction. It also |
||||
implicitly invokes the system tx, which sets calls the contract and sets the |
||||
storage values |
||||
``` |
||||
$ dir=./testdata/29/ && go run . t8n --state.fork=Cancun --input.alloc=$dir/alloc.json --input.txs=$dir/txs.json --input.env=$dir/env.json --output.alloc=stdout |
||||
INFO [08-15|20:07:56.335] Trie dumping started root=ecde45..2af8a7 |
||||
INFO [08-15|20:07:56.335] Trie dumping complete accounts=2 elapsed="225.848µs" |
||||
INFO [08-15|20:07:56.335] Wrote file file=result.json |
||||
{ |
||||
"alloc": { |
||||
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { |
||||
"balance": "0x16345785d871db8", |
||||
"nonce": "0x1" |
||||
}, |
||||
"0xbeac00541d49391ed88abf392bfc1f4dea8c4143": { |
||||
"code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604457602036146024575f5ffd5b620180005f350680545f35146037575f5ffd5b6201800001545f5260205ff35b6201800042064281555f359062018000015500", |
||||
"storage": { |
||||
"0x000000000000000000000000000000000000000000000000000000000000079e": "0x000000000000000000000000000000000000000000000000000000000000079e", |
||||
"0x000000000000000000000000000000000000000000000000000000000001879e": "0x0000beac00beac00beac00beac00beac00beac00beac00beac00beac00beac00" |
||||
}, |
||||
"balance": "0x |
||||
} |
||||
} |
||||
} |
||||
|
||||
``` |
@ -0,0 +1,19 @@ |
||||
[ |
||||
{ |
||||
"input" : "0x", |
||||
"gas" : "0x10000000", |
||||
"nonce" : "0x0", |
||||
"to" : "0x1111111111111111111111111111111111111111", |
||||
"value" : "0x0", |
||||
"secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", |
||||
"chainId" : "0x1", |
||||
"type" : "0x2", |
||||
"v": "0x0", |
||||
"r": "0x0", |
||||
"s": "0x0", |
||||
"maxFeePerGas" : "0xfa0", |
||||
"maxPriorityFeePerGas" : "0x0", |
||||
"accessList" : [ |
||||
] |
||||
} |
||||
] |
Loading…
Reference in new issue