mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-18 13:59:26 +00:00
core/types: don't include BAL in rlp encoding of full block. Set access list hash on block header when calling 'Block.WithAccessList'
This commit is contained in:
parent
d1f0ab79ba
commit
418d8207b3
1 changed files with 4 additions and 5 deletions
|
|
@ -224,8 +224,7 @@ type extblock struct {
|
||||||
Header *Header
|
Header *Header
|
||||||
Txs []*Transaction
|
Txs []*Transaction
|
||||||
Uncles []*Header
|
Uncles []*Header
|
||||||
Withdrawals []*Withdrawal `rlp:"optional"`
|
Withdrawals []*Withdrawal `rlp:"optional"`
|
||||||
AccessList *bal.BlockAccessList `rlp:"optional"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBlock creates a new block. The input data is copied, changes to header and to the
|
// NewBlock creates a new block. The input data is copied, changes to header and to the
|
||||||
|
|
@ -353,7 +352,7 @@ func (b *Block) DecodeRLP(s *rlp.Stream) error {
|
||||||
if err := s.Decode(&eb); err != nil {
|
if err := s.Decode(&eb); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
b.header, b.uncles, b.transactions, b.withdrawals, b.accessList = eb.Header, eb.Uncles, eb.Txs, eb.Withdrawals, eb.AccessList
|
b.header, b.uncles, b.transactions, b.withdrawals = eb.Header, eb.Uncles, eb.Txs, eb.Withdrawals
|
||||||
b.size.Store(rlp.ListSize(size))
|
b.size.Store(rlp.ListSize(size))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -365,7 +364,6 @@ func (b *Block) EncodeRLP(w io.Writer) error {
|
||||||
Txs: b.transactions,
|
Txs: b.transactions,
|
||||||
Uncles: b.uncles,
|
Uncles: b.uncles,
|
||||||
Withdrawals: b.withdrawals,
|
Withdrawals: b.withdrawals,
|
||||||
AccessList: b.accessList,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -536,9 +534,10 @@ func (b *Block) WithBody(body Body) *Block {
|
||||||
|
|
||||||
// WithAccessList returns a copy of the block with the access list embedded.
|
// WithAccessList returns a copy of the block with the access list embedded.
|
||||||
// It does not set the access list hash in the header of the returned block.
|
// It does not set the access list hash in the header of the returned block.
|
||||||
// TODO: ^ when support for --experimental.bal is removed, this function should set the access list hash in the header
|
|
||||||
func (b *Block) WithAccessList(accessList *bal.BlockAccessList) *Block {
|
func (b *Block) WithAccessList(accessList *bal.BlockAccessList) *Block {
|
||||||
alCopy := accessList.Copy()
|
alCopy := accessList.Copy()
|
||||||
|
alHash := accessList.Hash()
|
||||||
|
b.header.BlockAccessListHash = &alHash
|
||||||
block := &Block{
|
block := &Block{
|
||||||
header: b.header,
|
header: b.header,
|
||||||
transactions: slices.Clone(b.transactions),
|
transactions: slices.Clone(b.transactions),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue