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:
Jared Wasinger 2026-03-23 13:01:00 -04:00
parent 2ff40c7484
commit e4f847871b

View file

@ -224,8 +224,7 @@ type extblock struct {
Header *Header
Txs []*Transaction
Uncles []*Header
Withdrawals []*Withdrawal `rlp:"optional"`
AccessList *bal.BlockAccessList `rlp:"optional"`
Withdrawals []*Withdrawal `rlp:"optional"`
}
// 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 {
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))
return nil
}
@ -365,7 +364,6 @@ func (b *Block) EncodeRLP(w io.Writer) error {
Txs: b.transactions,
Uncles: b.uncles,
Withdrawals: b.withdrawals,
AccessList: b.accessList,
})
}
@ -543,8 +541,13 @@ func (b *Block) WithAccessList(accessList *bal.BlockAccessList) *Block {
// embedded. Note that the access list is not deep-copied; use WithAccessList
// if the provided list may be modified by other actors.
func (b *Block) WithAccessListUnsafe(accessList *bal.BlockAccessList) *Block {
headerCopy := CopyHeader(b.header)
if accessList != nil {
alHash := accessList.Hash()
headerCopy.BlockAccessListHash = &alHash
}
return &Block{
header: b.header,
header: headerCopy,
transactions: b.transactions,
uncles: b.uncles,
withdrawals: b.withdrawals,