mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-01 20:48:38 +00:00
core/types: copy optional block hash accessors
This commit is contained in:
parent
8a0223e8da
commit
fc65c7f016
2 changed files with 45 additions and 2 deletions
|
|
@ -413,8 +413,21 @@ func (b *Block) BaseFee() *big.Int {
|
||||||
return new(big.Int).Set(b.header.BaseFee)
|
return new(big.Int).Set(b.header.BaseFee)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Block) BeaconRoot() *common.Hash { return b.header.ParentBeaconRoot }
|
func (b *Block) BeaconRoot() *common.Hash {
|
||||||
func (b *Block) RequestsHash() *common.Hash { return b.header.RequestsHash }
|
if b.header.ParentBeaconRoot == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
root := *b.header.ParentBeaconRoot
|
||||||
|
return &root
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *Block) RequestsHash() *common.Hash {
|
||||||
|
if b.header.RequestsHash == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
hash := *b.header.RequestsHash
|
||||||
|
return &hash
|
||||||
|
}
|
||||||
|
|
||||||
func (b *Block) ExcessBlobGas() *uint64 {
|
func (b *Block) ExcessBlobGas() *uint64 {
|
||||||
var excessBlobGas *uint64
|
var excessBlobGas *uint64
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,36 @@ func TestBlockEncoding(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBlockHashAccessorsReturnCopies(t *testing.T) {
|
||||||
|
beaconRoot := common.HexToHash("0x01")
|
||||||
|
requestsHash := common.HexToHash("0x02")
|
||||||
|
block := NewBlockWithHeader(&Header{
|
||||||
|
Difficulty: big.NewInt(1),
|
||||||
|
Number: big.NewInt(1),
|
||||||
|
ParentBeaconRoot: &beaconRoot,
|
||||||
|
RequestsHash: &requestsHash,
|
||||||
|
})
|
||||||
|
|
||||||
|
gotBeaconRoot := block.BeaconRoot()
|
||||||
|
if gotBeaconRoot == nil || *gotBeaconRoot != beaconRoot {
|
||||||
|
t.Fatalf("unexpected beacon root: got %v, want %v", gotBeaconRoot, beaconRoot)
|
||||||
|
}
|
||||||
|
gotRequestsHash := block.RequestsHash()
|
||||||
|
if gotRequestsHash == nil || *gotRequestsHash != requestsHash {
|
||||||
|
t.Fatalf("unexpected requests hash: got %v, want %v", gotRequestsHash, requestsHash)
|
||||||
|
}
|
||||||
|
*gotBeaconRoot = common.HexToHash("0x03")
|
||||||
|
*gotRequestsHash = common.HexToHash("0x04")
|
||||||
|
|
||||||
|
header := block.Header()
|
||||||
|
if *header.ParentBeaconRoot != beaconRoot {
|
||||||
|
t.Fatalf("beacon root accessor mutated block header: got %v, want %v", *header.ParentBeaconRoot, beaconRoot)
|
||||||
|
}
|
||||||
|
if *header.RequestsHash != requestsHash {
|
||||||
|
t.Fatalf("requests hash accessor mutated block header: got %v, want %v", *header.RequestsHash, requestsHash)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestEIP1559BlockEncoding(t *testing.T) {
|
func TestEIP1559BlockEncoding(t *testing.T) {
|
||||||
blockEnc := common.FromHex("f9030bf901fea083cafc574e1f51ba9dc0568fc617a08ea2429fb384059c972f13b19fa1c8dd55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a05fe50b260da6308036625b850b5d6ced6d0a9f814c0688bc91ffb7b7a3a54b67a0bc37d79753ad738a6dac4921e57392f145d8887476de3f783dfa7edae9283e52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefd8825208845506eb0780a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4843b9aca00f90106f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1b8a302f8a0018080843b9aca008301e24194095e7baea6a6c7c4c2dfeb977efac326af552d878080f838f7940000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000000000080a0fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b0a06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a8c0")
|
blockEnc := common.FromHex("f9030bf901fea083cafc574e1f51ba9dc0568fc617a08ea2429fb384059c972f13b19fa1c8dd55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a05fe50b260da6308036625b850b5d6ced6d0a9f814c0688bc91ffb7b7a3a54b67a0bc37d79753ad738a6dac4921e57392f145d8887476de3f783dfa7edae9283e52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefd8825208845506eb0780a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4843b9aca00f90106f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1b8a302f8a0018080843b9aca008301e24194095e7baea6a6c7c4c2dfeb977efac326af552d878080f838f7940000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000000000080a0fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b0a06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a8c0")
|
||||||
var block Block
|
var block Block
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue