• Felix Lange's avatar
    core/types: fix immutability guarantees in Block (#27844) · df544350
    Felix Lange authored
    This change rearranges the accessor methods in block.go and fixes some minor issues with
    the copy-on-write logic of block data. Fixed issues:
    
    - Block.WithWithdrawals did not create a shallow copy of the block.
    
    - Block.WithBody copied the header unnecessarily, and did not preserve withdrawals.
    
    However, the bugs did not affect any code in go-ethereum because blocks are *always*
    created using NewBlockWithHeader().WithBody().WithWithdrawals()
    df544350
Name
Last commit
Last update
..
asm Loading commit data...
bloombits Loading commit data...
forkid Loading commit data...
rawdb Loading commit data...
state Loading commit data...
txpool Loading commit data...
types Loading commit data...
vm Loading commit data...
.gitignore Loading commit data...
bench_test.go Loading commit data...
block_validator.go Loading commit data...
block_validator_test.go Loading commit data...
blockchain.go Loading commit data...
blockchain_insert.go Loading commit data...
blockchain_reader.go Loading commit data...
blockchain_repair_test.go Loading commit data...
blockchain_sethead_test.go Loading commit data...
blockchain_snapshot_test.go Loading commit data...
blockchain_test.go Loading commit data...
blocks.go Loading commit data...
bloom_indexer.go Loading commit data...
chain_indexer.go Loading commit data...
chain_indexer_test.go Loading commit data...
chain_makers.go Loading commit data...
chain_makers_test.go Loading commit data...
dao_test.go Loading commit data...
error.go Loading commit data...
events.go Loading commit data...
evm.go Loading commit data...
forkchoice.go Loading commit data...
gaspool.go Loading commit data...
gen_genesis.go Loading commit data...
gen_genesis_account.go Loading commit data...
genesis.go Loading commit data...
genesis_alloc.go Loading commit data...
genesis_test.go Loading commit data...
headerchain.go Loading commit data...
headerchain_test.go Loading commit data...
mkalloc.go Loading commit data...
rlp_test.go Loading commit data...
sender_cacher.go Loading commit data...
state_prefetcher.go Loading commit data...
state_processor.go Loading commit data...
state_processor_test.go Loading commit data...
state_transition.go Loading commit data...
types.go Loading commit data...