From 9f3bd7368341ba1fb1a38d290e6fc914094e913e Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 12:23:09 +0800 Subject: [PATCH 01/14] fix(p2p/enode): fix endpoint determination for IPv6 #29801 --- cmd/devp2p/discv4cmd.go | 2 +- p2p/enode/idscheme.go | 2 +- p2p/enode/node.go | 148 +++++++++++++++++++++++++-------- p2p/enode/node_test.go | 178 ++++++++++++++++++++++++++++++++++++++++ p2p/enode/nodedb.go | 12 +-- p2p/enode/urlv4.go | 2 +- p2p/enr/entries.go | 56 +++++++++++++ 7 files changed, 359 insertions(+), 41 deletions(-) diff --git a/cmd/devp2p/discv4cmd.go b/cmd/devp2p/discv4cmd.go index d14755e9e684..ffef2cb71286 100644 --- a/cmd/devp2p/discv4cmd.go +++ b/cmd/devp2p/discv4cmd.go @@ -396,7 +396,7 @@ func pingUntil(disc *discover.UDPv4, n *enode.Node, timeout time.Duration) (time } func nodeEndpoint(n *enode.Node) string { - if n.Incomplete() { + if !n.IPAddr().IsValid() { return n.ID().String() } if n.UDP() == n.TCP() { diff --git a/p2p/enode/idscheme.go b/p2p/enode/idscheme.go index 04edbed0994f..9fad2357673d 100644 --- a/p2p/enode/idscheme.go +++ b/p2p/enode/idscheme.go @@ -156,5 +156,5 @@ func SignNull(r *enr.Record, id ID) *Node { if err := r.SetSig(NullID{}, []byte{}); err != nil { panic(err) } - return &Node{r: *r, id: id} + return newNodeWithID(r, id) } diff --git a/p2p/enode/node.go b/p2p/enode/node.go index 574abaf874b1..2889cedd9e02 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -24,6 +24,7 @@ import ( "fmt" "math/bits" "net" + "net/netip" "strings" "github.com/XinFinOrg/XDPoSChain/p2p/enr" @@ -36,6 +37,11 @@ var errMissingPrefix = errors.New("missing 'enr:' prefix for base64-encoded reco type Node struct { r enr.Record id ID + + // endpoint information + ip netip.Addr + udp uint16 + tcp uint16 } // New wraps a node record. The record must be valid according to the given @@ -44,11 +50,86 @@ func New(validSchemes enr.IdentityScheme, r *enr.Record) (*Node, error) { if err := r.VerifySignature(validSchemes); err != nil { return nil, err } - node := &Node{r: *r} - if n := copy(node.id[:], validSchemes.NodeAddr(&node.r)); n != len(ID{}) { - return nil, fmt.Errorf("invalid node ID length %d, need %d", n, len(ID{})) + var id ID + if n := copy(id[:], validSchemes.NodeAddr(r)); n != len(id) { + return nil, fmt.Errorf("invalid node ID length %d, need %d", n, len(id)) + } + return newNodeWithID(r, id), nil +} + +func newNodeWithID(r *enr.Record, id ID) *Node { + n := &Node{r: *r, id: id} + // Set the preferred endpoint. + // Here we decide between IPv4 and IPv6, choosing the 'most global' address. + var ip4 netip.Addr + var ip6 netip.Addr + n.Load((*enr.IPv4Addr)(&ip4)) + n.Load((*enr.IPv6Addr)(&ip6)) + valid4 := validIP(ip4) + valid6 := validIP(ip6) + switch { + case valid4 && valid6: + if localityScore(ip4) >= localityScore(ip6) { + n.setIP4(ip4) + } else { + n.setIP6(ip6) + } + case valid4: + n.setIP4(ip4) + case valid6: + n.setIP6(ip6) + default: + n.setIPv4Ports() + } + return n +} + +// validIP reports whether 'ip' is a valid node endpoint IP address. +func validIP(ip netip.Addr) bool { + return ip.IsValid() && !ip.IsMulticast() +} + +func localityScore(ip netip.Addr) int { + switch { + case ip.IsUnspecified(): + return 0 + case ip.IsLoopback(): + return 1 + case ip.IsLinkLocalUnicast(): + return 2 + case ip.IsPrivate(): + return 3 + default: + return 4 + } +} + +func (n *Node) setIP4(ip netip.Addr) { + n.ip = ip + n.setIPv4Ports() +} + +func (n *Node) setIPv4Ports() { + if err := n.Load((*enr.UDP)(&n.udp)); err != nil { + n.Load((*enr.UDP6)(&n.udp)) + } + if err := n.Load((*enr.TCP)(&n.tcp)); err != nil { + n.Load((*enr.TCP6)(&n.tcp)) + } +} + +func (n *Node) setIP6(ip netip.Addr) { + if ip.Is4In6() { + n.setIP4(ip) + return + } + n.ip = ip + if err := n.Load((*enr.UDP6)(&n.udp)); err != nil { + n.Load((*enr.UDP)(&n.udp)) + } + if err := n.Load((*enr.TCP6)(&n.tcp)); err != nil { + n.Load((*enr.TCP)(&n.tcp)) } - return node, nil } // MustParse parses a node record or enode:// URL. It panics if the input is invalid. @@ -89,43 +170,45 @@ func (n *Node) Seq() uint64 { return n.r.Seq() } -// Incomplete returns true for nodes with no IP address. -func (n *Node) Incomplete() bool { - return n.IP() == nil -} - // Load retrieves an entry from the underlying record. func (n *Node) Load(k enr.Entry) error { return n.r.Load(k) } -// IP returns the IP address of the node. This prefers IPv4 addresses. +// IP returns the IP address of the node. func (n *Node) IP() net.IP { - var ( - ip4 enr.IPv4 - ip6 enr.IPv6 - ) - if n.Load(&ip4) == nil { - return net.IP(ip4) - } - if n.Load(&ip6) == nil { - return net.IP(ip6) - } - return nil + return net.IP(n.ip.AsSlice()) +} + +// IPAddr returns the IP address of the node. +func (n *Node) IPAddr() netip.Addr { + return n.ip } // UDP returns the UDP port of the node. func (n *Node) UDP() int { - var port enr.UDP - n.Load(&port) - return int(port) + return int(n.udp) } // TCP returns the TCP port of the node. func (n *Node) TCP() int { - var port enr.TCP - n.Load(&port) - return int(port) + return int(n.tcp) +} + +// UDPEndpoint returns the announced UDP endpoint. +func (n *Node) UDPEndpoint() (netip.AddrPort, bool) { + if !n.ip.IsValid() || n.ip.IsUnspecified() || n.udp == 0 { + return netip.AddrPort{}, false + } + return netip.AddrPortFrom(n.ip, n.udp), true +} + +// TCPEndpoint returns the announced TCP endpoint. +func (n *Node) TCPEndpoint() (netip.AddrPort, bool) { + if !n.ip.IsValid() || n.ip.IsUnspecified() || n.tcp == 0 { + return netip.AddrPort{}, false + } + return netip.AddrPortFrom(n.ip, n.tcp), true } // Pubkey returns the secp256k1 public key of the node, if present. @@ -147,16 +230,15 @@ func (n *Node) Record() *enr.Record { // ValidateComplete checks whether n has a valid IP and UDP port. // Deprecated: don't use this method. func (n *Node) ValidateComplete() error { - if n.Incomplete() { + if !n.ip.IsValid() { return errors.New("missing IP address") } - if n.UDP() == 0 { - return errors.New("missing UDP port") - } - ip := n.IP() - if ip.IsMulticast() || ip.IsUnspecified() { + if n.ip.IsMulticast() || n.ip.IsUnspecified() { return errors.New("invalid IP (multicast/unspecified)") } + if n.udp == 0 { + return errors.New("missing UDP port") + } // Validate the node key (on curve, etc.). var key Secp256k1 return n.Load(&key) diff --git a/p2p/enode/node_test.go b/p2p/enode/node_test.go index 4876f4ce0650..2749b8450044 100644 --- a/p2p/enode/node_test.go +++ b/p2p/enode/node_test.go @@ -21,6 +21,7 @@ import ( "encoding/hex" "fmt" "math/big" + "net/netip" "testing" "testing/quick" @@ -64,6 +65,183 @@ func TestPythonInterop(t *testing.T) { } } +func TestNodeEndpoints(t *testing.T) { + id := HexID("00000000000000806ad9b61fa5ae014307ebdc964253adcd9f2c0a392aa11abc") + type endpointTest struct { + name string + node *Node + wantIP netip.Addr + wantUDP int + wantTCP int + } + tests := []endpointTest{ + { + name: "no-addr", + node: func() *Node { + var r enr.Record + return SignNull(&r, id) + }(), + }, + { + name: "udp-only", + node: func() *Node { + var r enr.Record + r.Set(enr.UDP(9000)) + return SignNull(&r, id) + }(), + wantUDP: 9000, + }, + { + name: "tcp-only", + node: func() *Node { + var r enr.Record + r.Set(enr.TCP(9000)) + return SignNull(&r, id) + }(), + wantTCP: 9000, + }, + { + name: "ipv4-only-loopback", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("127.0.0.1"))) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("127.0.0.1"), + }, + { + name: "ipv4-only-unspecified", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("0.0.0.0"))) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("0.0.0.0"), + }, + { + name: "ipv4-only", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("99.22.33.1"))) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("99.22.33.1"), + }, + { + name: "ipv6-only", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329"))) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("2001::ff00:0042:8329"), + }, + { + name: "ipv4-loopback-and-ipv6-global", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("127.0.0.1"))) + r.Set(enr.UDP(30304)) + r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329"))) + r.Set(enr.UDP6(30306)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("2001::ff00:0042:8329"), + wantUDP: 30306, + }, + { + name: "ipv4-unspecified-and-ipv6-loopback", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("0.0.0.0"))) + r.Set(enr.IPv6Addr(netip.MustParseAddr("::1"))) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("::1"), + }, + { + name: "ipv4-private-and-ipv6-global", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("192.168.2.2"))) + r.Set(enr.UDP(30304)) + r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329"))) + r.Set(enr.UDP6(30306)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("2001::ff00:0042:8329"), + wantUDP: 30306, + }, + { + name: "ipv4-local-and-ipv6-global", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("169.254.2.6"))) + r.Set(enr.UDP(30304)) + r.Set(enr.IPv6Addr(netip.MustParseAddr("2001::ff00:0042:8329"))) + r.Set(enr.UDP6(30306)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("2001::ff00:0042:8329"), + wantUDP: 30306, + }, + { + name: "ipv4-private-and-ipv6-private", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("192.168.2.2"))) + r.Set(enr.UDP(30304)) + r.Set(enr.IPv6Addr(netip.MustParseAddr("fd00::abcd:1"))) + r.Set(enr.UDP6(30306)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("192.168.2.2"), + wantUDP: 30304, + }, + { + name: "ipv4-private-and-ipv6-link-local", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("192.168.2.2"))) + r.Set(enr.UDP(30304)) + r.Set(enr.IPv6Addr(netip.MustParseAddr("fe80::1"))) + r.Set(enr.UDP6(30306)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("192.168.2.2"), + wantUDP: 30304, + }, + { + name: "ipv4-selected-falls-back-to-ipv6-family-ports", + node: func() *Node { + var r enr.Record + r.Set(enr.IPv4Addr(netip.MustParseAddr("99.22.33.1"))) + r.Set(enr.IPv6Addr(netip.MustParseAddr("fd00::abcd:1"))) + r.Set(enr.UDP6(30306)) + r.Set(enr.TCP6(30307)) + return SignNull(&r, id) + }(), + wantIP: netip.MustParseAddr("99.22.33.1"), + wantUDP: 30306, + wantTCP: 30307, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + if test.wantIP != test.node.IPAddr() { + t.Errorf("node has wrong IP %v, want %v", test.node.IPAddr(), test.wantIP) + } + if test.wantUDP != test.node.UDP() { + t.Errorf("node has wrong UDP port %d, want %d", test.node.UDP(), test.wantUDP) + } + if test.wantTCP != test.node.TCP() { + t.Errorf("node has wrong TCP port %d, want %d", test.node.TCP(), test.wantTCP) + } + }) + } +} + func TestHexID(t *testing.T) { ref := ID{0, 0, 0, 0, 0, 0, 0, 128, 106, 217, 182, 31, 165, 174, 1, 67, 7, 235, 220, 150, 66, 83, 173, 205, 159, 44, 10, 57, 42, 161, 26, 188} id1 := HexID("0x00000000000000806ad9b61fa5ae014307ebdc964253adcd9f2c0a392aa11abc") diff --git a/p2p/enode/nodedb.go b/p2p/enode/nodedb.go index 147b0508e43f..4c8a468fa0d2 100644 --- a/p2p/enode/nodedb.go +++ b/p2p/enode/nodedb.go @@ -26,6 +26,7 @@ import ( "sync" "time" + "github.com/XinFinOrg/XDPoSChain/p2p/enr" "github.com/XinFinOrg/XDPoSChain/rlp" "github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb/errors" @@ -238,13 +239,14 @@ func (db *DB) Node(id ID) *Node { } func mustDecodeNode(id, data []byte) *Node { - node := new(Node) - if err := rlp.DecodeBytes(data, &node.r); err != nil { + var r enr.Record + if err := rlp.DecodeBytes(data, &r); err != nil { panic(fmt.Errorf("p2p/enode: can't decode node %x in DB: %v", id, err)) } - // Restore node id cache. - copy(node.id[:], id) - return node + if len(id) != len(ID{}) { + panic(fmt.Errorf("invalid id length %d", len(id))) + } + return newNodeWithID(&r, ID(id)) } // UpdateNode inserts - potentially overwriting - a node into the peer database. diff --git a/p2p/enode/urlv4.go b/p2p/enode/urlv4.go index ad3b8d26f1b2..cba5a78646e5 100644 --- a/p2p/enode/urlv4.go +++ b/p2p/enode/urlv4.go @@ -181,7 +181,7 @@ func (n *Node) URLv4() string { nodeid = fmt.Sprintf("%s.%x", scheme, n.id[:]) } u := url.URL{Scheme: "enode"} - if n.Incomplete() { + if !n.ip.IsValid() { u.Host = nodeid } else { addr := net.TCPAddr{IP: n.IP(), Port: n.TCP()} diff --git a/p2p/enr/entries.go b/p2p/enr/entries.go index 3c1c64a53286..34df83cd66d9 100644 --- a/p2p/enr/entries.go +++ b/p2p/enr/entries.go @@ -17,9 +17,11 @@ package enr import ( + "errors" "fmt" "io" "net" + "net/netip" "github.com/XinFinOrg/XDPoSChain/rlp" ) @@ -166,6 +168,60 @@ func (v *IPv6) DecodeRLP(s *rlp.Stream) error { return nil } +// IPv4Addr is the "ip" key, which holds the IP address of the node. +type IPv4Addr netip.Addr + +func (v IPv4Addr) ENRKey() string { return "ip" } + +// EncodeRLP implements rlp.Encoder. +func (v IPv4Addr) EncodeRLP(w io.Writer) error { + addr := netip.Addr(v) + if !addr.Is4() { + return errors.New("address is not IPv4") + } + enc := rlp.NewEncoderBuffer(w) + bytes := addr.As4() + enc.WriteBytes(bytes[:]) + return enc.Flush() +} + +// DecodeRLP implements rlp.Decoder. +func (v *IPv4Addr) DecodeRLP(s *rlp.Stream) error { + var bytes [4]byte + if err := s.ReadBytes(bytes[:]); err != nil { + return err + } + *v = IPv4Addr(netip.AddrFrom4(bytes)) + return nil +} + +// IPv6Addr is the "ip6" key, which holds the IP address of the node. +type IPv6Addr netip.Addr + +func (v IPv6Addr) ENRKey() string { return "ip6" } + +// EncodeRLP implements rlp.Encoder. +func (v IPv6Addr) EncodeRLP(w io.Writer) error { + addr := netip.Addr(v) + if !addr.Is6() { + return errors.New("address is not IPv6") + } + enc := rlp.NewEncoderBuffer(w) + bytes := addr.As16() + enc.WriteBytes(bytes[:]) + return enc.Flush() +} + +// DecodeRLP implements rlp.Decoder. +func (v *IPv6Addr) DecodeRLP(s *rlp.Stream) error { + var bytes [16]byte + if err := s.ReadBytes(bytes[:]); err != nil { + return err + } + *v = IPv6Addr(netip.AddrFrom16(bytes)) + return nil +} + // KeyError is an error related to a key. type KeyError struct { Key string From b9d8e1f289264a8de74c5bfe3be3ce149969e0b0 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 09:28:23 +0800 Subject: [PATCH 02/14] refactor(cmd/devp2p): improve enrdump command --- cmd/devp2p/enrcmd.go | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/cmd/devp2p/enrcmd.go b/cmd/devp2p/enrcmd.go index e56506c61def..3550d54773b1 100644 --- a/cmd/devp2p/enrcmd.go +++ b/cmd/devp2p/enrcmd.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/base64" "encoding/hex" + "errors" "fmt" "io" "net" @@ -48,7 +49,7 @@ func enrdump(ctx *cli.Context) error { var source string if file := ctx.String(fileFlag.Name); file != "" { if ctx.NArg() != 0 { - return fmt.Errorf("can't dump record from command-line argument in -file mode") + return errors.New("can't dump record from command-line argument in -file mode") } var b []byte var err error @@ -64,29 +65,37 @@ func enrdump(ctx *cli.Context) error { } else if ctx.NArg() == 1 { source = ctx.Args().First() } else { - return fmt.Errorf("need record as argument") + return errors.New("need record as argument") } r, err := parseRecord(source) if err != nil { return fmt.Errorf("INVALID: %v", err) } - fmt.Print(dumpRecord(r)) + dumpRecord(os.Stdout, r) return nil } // dumpRecord creates a human-readable description of the given node record. -func dumpRecord(r *enr.Record) string { - out := new(bytes.Buffer) - if n, err := enode.New(enode.ValidSchemes, r); err != nil { +func dumpRecord(out io.Writer, r *enr.Record) { + n, err := enode.New(enode.ValidSchemes, r) + if err != nil { fmt.Fprintf(out, "INVALID: %v\n", err) } else { fmt.Fprintf(out, "Node ID: %v\n", n.ID()) + dumpNodeURL(out, n) } kv := r.AppendElements(nil)[1:] fmt.Fprintf(out, "Record has sequence number %d and %d key/value pairs.\n", r.Seq(), len(kv)/2) fmt.Fprint(out, dumpRecordKV(kv, 2)) - return out.String() +} + +func dumpNodeURL(out io.Writer, n *enode.Node) { + var key enode.Secp256k1 + if n.Load(&key) != nil { + return // no secp256k1 public key + } + fmt.Fprintf(out, "URLv4: %s\n", n.URLv4()) } func dumpRecordKV(kv []interface{}, indent int) string { @@ -174,8 +183,8 @@ var attrFormatters = map[string]func(rlp.RawValue) (string, bool){ } func formatAttrRaw(v rlp.RawValue) (string, bool) { - s := hex.EncodeToString(v) - return s, true + content, _, err := rlp.SplitString(v) + return hex.EncodeToString(content), err == nil } func formatAttrString(v rlp.RawValue) (string, bool) { @@ -185,7 +194,7 @@ func formatAttrString(v rlp.RawValue) (string, bool) { func formatAttrIP(v rlp.RawValue) (string, bool) { content, _, err := rlp.SplitString(v) - if err != nil || len(content) != 4 && len(content) != 6 { + if err != nil || len(content) != 4 && len(content) != 16 { return "", false } return net.IP(content).String(), true From 74d7a456ae2fdfe682221014209ab966ad7a2416 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 09:30:48 +0800 Subject: [PATCH 03/14] feat(cmd/devp2p): implement key command --- cmd/devp2p/keycmd.go | 163 +++++++++++++++++++++++++++++++++++++++++++ cmd/devp2p/main.go | 1 + 2 files changed, 164 insertions(+) create mode 100644 cmd/devp2p/keycmd.go diff --git a/cmd/devp2p/keycmd.go b/cmd/devp2p/keycmd.go new file mode 100644 index 000000000000..3ae5226cd07d --- /dev/null +++ b/cmd/devp2p/keycmd.go @@ -0,0 +1,163 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "errors" + "fmt" + "net" + + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/enr" + "github.com/urfave/cli/v2" +) + +var ( + keyCommand = &cli.Command{ + Name: "key", + Usage: "Operations on node keys", + Subcommands: []*cli.Command{ + keyGenerateCommand, + keyToIDCommand, + keyToNodeCommand, + keyToRecordCommand, + }, + } + keyGenerateCommand = &cli.Command{ + Name: "generate", + Usage: "Generates node key files", + ArgsUsage: "keyfile", + Action: genkey, + } + keyToIDCommand = &cli.Command{ + Name: "to-id", + Usage: "Creates a node ID from a node key file", + ArgsUsage: "keyfile", + Action: keyToID, + Flags: []cli.Flag{}, + } + keyToNodeCommand = &cli.Command{ + Name: "to-enode", + Usage: "Creates an enode URL from a node key file", + ArgsUsage: "keyfile", + Action: keyToURL, + Flags: []cli.Flag{hostFlag, tcpPortFlag, udpPortFlag}, + } + keyToRecordCommand = &cli.Command{ + Name: "to-enr", + Usage: "Creates an ENR from a node key file", + ArgsUsage: "keyfile", + Action: keyToRecord, + Flags: []cli.Flag{hostFlag, tcpPortFlag, udpPortFlag}, + } +) + +var ( + hostFlag = &cli.StringFlag{ + Name: "ip", + Usage: "IP address of the node", + Value: "127.0.0.1", + } + tcpPortFlag = &cli.IntFlag{ + Name: "tcp", + Usage: "TCP port of the node", + Value: 30303, + } + udpPortFlag = &cli.IntFlag{ + Name: "udp", + Usage: "UDP port of the node", + Value: 30303, + } +) + +func genkey(ctx *cli.Context) error { + if ctx.NArg() != 1 { + return errors.New("need key file as argument") + } + file := ctx.Args().Get(0) + + key, err := crypto.GenerateKey() + if err != nil { + return fmt.Errorf("could not generate key: %v", err) + } + return crypto.SaveECDSA(file, key) +} + +func keyToID(ctx *cli.Context) error { + n, err := makeRecord(ctx) + if err != nil { + return err + } + fmt.Println(n.ID()) + return nil +} + +func keyToURL(ctx *cli.Context) error { + n, err := makeRecord(ctx) + if err != nil { + return err + } + fmt.Println(n.URLv4()) + return nil +} + +func keyToRecord(ctx *cli.Context) error { + n, err := makeRecord(ctx) + if err != nil { + return err + } + fmt.Println(n.String()) + return nil +} + +func makeRecord(ctx *cli.Context) (*enode.Node, error) { + if ctx.NArg() != 1 { + return nil, errors.New("need key file as argument") + } + + var ( + file = ctx.Args().Get(0) + host = ctx.String(hostFlag.Name) + tcp = ctx.Int(tcpPortFlag.Name) + udp = ctx.Int(udpPortFlag.Name) + ) + key, err := crypto.LoadECDSA(file) + if err != nil { + return nil, err + } + + var r enr.Record + if host != "" { + ip := net.ParseIP(host) + if ip == nil { + return nil, fmt.Errorf("invalid IP address %q", host) + } + r.Set(enr.IP(ip)) + } + if udp != 0 { + r.Set(enr.UDP(udp)) + } + if tcp != 0 { + r.Set(enr.TCP(tcp)) + } + + if err := enode.SignV4(&r, key); err != nil { + return nil, err + } + return enode.New(enode.ValidSchemes, &r) +} diff --git a/cmd/devp2p/main.go b/cmd/devp2p/main.go index 0980a7637068..99589f89045e 100644 --- a/cmd/devp2p/main.go +++ b/cmd/devp2p/main.go @@ -46,6 +46,7 @@ func init() { // Add subcommands. app.Commands = []*cli.Command{ enrdumpCommand, + keyCommand, discv4Command, discv5Command, dnsCommand, From 3e7414a2b9524ca4d8410c759fd782dbaf42846d Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 10:12:11 +0800 Subject: [PATCH 04/14] feat(cmd/devp2p): upgrade crawl --- cmd/devp2p/crawl.go | 101 ++++++++++++++++++++++++++++++++++------ cmd/devp2p/discv4cmd.go | 47 +++++++++++-------- cmd/devp2p/discv5cmd.go | 20 ++++---- 3 files changed, 125 insertions(+), 43 deletions(-) diff --git a/cmd/devp2p/crawl.go b/cmd/devp2p/crawl.go index 98c310374c75..b6bc0c73106d 100644 --- a/cmd/devp2p/crawl.go +++ b/cmd/devp2p/crawl.go @@ -17,6 +17,9 @@ package main import ( + "errors" + "sync" + "sync/atomic" "time" "github.com/XinFinOrg/XDPoSChain/log" @@ -34,13 +37,29 @@ type crawler struct { // settings revalidateInterval time.Duration + mu sync.RWMutex } +const ( + nodeRemoved = iota + nodeSkipRecent + nodeSkipIncompat + nodeAdded + nodeUpdated +) + type resolver interface { RequestENR(*enode.Node) (*enode.Node, error) } -func newCrawler(input nodeSet, disc resolver, iters ...enode.Iterator) *crawler { +func newCrawler(input nodeSet, bootnodes []*enode.Node, disc resolver, iters ...enode.Iterator) (*crawler, error) { + if len(input) == 0 { + input.add(bootnodes...) + } + if len(input) == 0 { + return nil, errors.New("no input nodes to start crawling") + } + c := &crawler{ input: input, output: make(nodeSet, len(input)), @@ -56,25 +75,62 @@ func newCrawler(input nodeSet, disc resolver, iters ...enode.Iterator) *crawler for id, n := range input { c.output[id] = n } - return c + return c, nil } -func (c *crawler) run(timeout time.Duration) nodeSet { +func (c *crawler) run(timeout time.Duration, nthreads int) nodeSet { var ( timeoutTimer = time.NewTimer(timeout) timeoutCh <-chan time.Time + statusTicker = time.NewTicker(time.Second * 8) doneCh = make(chan enode.Iterator, len(c.iters)) liveIters = len(c.iters) ) + if nthreads < 1 { + nthreads = 1 + } + defer timeoutTimer.Stop() + defer statusTicker.Stop() for _, it := range c.iters { go c.runIterator(doneCh, it) } + var ( + added atomic.Uint64 + updated atomic.Uint64 + skipped atomic.Uint64 + recent atomic.Uint64 + removed atomic.Uint64 + wg sync.WaitGroup + ) + wg.Add(nthreads) + for i := 0; i < nthreads; i++ { + go func() { + defer wg.Done() + for { + select { + case n := <-c.ch: + switch c.updateNode(n) { + case nodeSkipIncompat: + skipped.Add(1) + case nodeSkipRecent: + recent.Add(1) + case nodeRemoved: + removed.Add(1) + case nodeAdded: + added.Add(1) + default: + updated.Add(1) + } + case <-c.closed: + return + } + } + }() + } loop: for { select { - case n := <-c.ch: - c.updateNode(n) case it := <-doneCh: if it == c.inputIter { // Enable timeout when we're done revalidating the input nodes. @@ -88,6 +144,13 @@ loop: } case <-timeoutCh: break loop + case <-statusTicker.C: + log.Info("Crawling in progress", + "added", added.Load(), + "updated", updated.Load(), + "removed", removed.Load(), + "ignored(recent)", recent.Load(), + "ignored(incompatible)", skipped.Load()) } } @@ -98,6 +161,7 @@ loop: for ; liveIters > 0; liveIters-- { <-doneCh } + wg.Wait() return c.output } @@ -112,22 +176,26 @@ func (c *crawler) runIterator(done chan<- enode.Iterator, it enode.Iterator) { } } -func (c *crawler) updateNode(n *enode.Node) { +// updateNode updates the info about the given node, and returns a status +// about what changed +func (c *crawler) updateNode(n *enode.Node) int { + c.mu.RLock() node, ok := c.output[n.ID()] + c.mu.RUnlock() // Skip validation of recently-seen nodes. if ok && time.Since(node.LastCheck) < c.revalidateInterval { - return + return nodeSkipRecent } // Request the node record. - nn, err := c.disc.RequestENR(n) + status := nodeUpdated node.LastCheck = truncNow() - if err != nil { + if nn, err := c.disc.RequestENR(n); err != nil { if node.Score == 0 { // Node doesn't implement EIP-868. log.Debug("Skipping node", "id", n.ID()) - return + return nodeSkipIncompat } node.Score /= 2 } else { @@ -136,18 +204,21 @@ func (c *crawler) updateNode(n *enode.Node) { node.Score++ if node.FirstResponse.IsZero() { node.FirstResponse = node.LastCheck + status = nodeAdded } node.LastResponse = node.LastCheck } - // Store/update node in output set. + c.mu.Lock() + defer c.mu.Unlock() if node.Score <= 0 { - log.Info("Removing node", "id", n.ID()) + log.Debug("Removing node", "id", n.ID()) delete(c.output, n.ID()) - } else { - log.Info("Updating node", "id", n.ID(), "seq", n.Seq(), "score", node.Score) - c.output[n.ID()] = node + return nodeRemoved } + log.Debug("Updating node", "id", n.ID(), "seq", n.Seq(), "score", node.Score) + c.output[n.ID()] = node + return status } func truncNow() time.Time { diff --git a/cmd/devp2p/discv4cmd.go b/cmd/devp2p/discv4cmd.go index ffef2cb71286..86edb3a4baa1 100644 --- a/cmd/devp2p/discv4cmd.go +++ b/cmd/devp2p/discv4cmd.go @@ -60,7 +60,7 @@ var ( Usage: "Ping every enode listed in a file and report UDP reachability", Action: discv4Check, ArgsUsage: "", - Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{pingTimeoutFlag, checkParallelFlag, checkOutputFlag}), + Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{pingTimeoutFlag, crawlParallelismFlag, checkOutputFlag}), } discv4RequestRecordCommand = &cli.Command{ Name: "requestenr", @@ -113,16 +113,16 @@ var ( Usage: "Time limit for the crawl.", Value: 30 * time.Minute, } + crawlParallelismFlag = &cli.IntFlag{ + Name: "parallel", + Usage: "How many parallel discoveries to attempt.", + Value: 16, + } pingTimeoutFlag = &cli.DurationFlag{ Name: "ping-timeout", Usage: "Total time to wait for a pong reply", Value: 3 * time.Second, } - checkParallelFlag = &cli.IntFlag{ - Name: "parallel", - Usage: "Number of concurrent ping checks", - Value: 8, - } checkOutputFlag = &cli.StringFlag{ Name: "output", Usage: "Write results to this file (stdout if unset)", @@ -138,7 +138,7 @@ var discoveryNodeFlags = []cli.Flag{ func discv4Ping(ctx *cli.Context) error { n := getNodeArg(ctx) - disc := startV4(ctx) + disc, _ := startV4(ctx) defer disc.Close() start := time.Now() @@ -165,7 +165,7 @@ func discv4Check(ctx *cli.Context) error { if timeout <= 0 { return errors.New("ping-timeout must be greater than 0") } - parallel := ctx.Int(checkParallelFlag.Name) + parallel := ctx.Int(crawlParallelismFlag.Name) if parallel < 1 { return errors.New("parallel must be at least 1") } @@ -201,7 +201,7 @@ func discv4Check(ctx *cli.Context) error { discs := make([]*discover.UDPv4, parallel) for i := 0; i < parallel; i++ { - discs[i] = startV4(ctx) + discs[i], _ = startV4(ctx) } defer func() { for _, disc := range discs { @@ -273,7 +273,7 @@ func discv4Check(ctx *cli.Context) error { func discv4RequestRecord(ctx *cli.Context) error { n := getNodeArg(ctx) - disc := startV4(ctx) + disc, _ := startV4(ctx) defer disc.Close() respN, err := disc.RequestENR(n) @@ -286,7 +286,7 @@ func discv4RequestRecord(ctx *cli.Context) error { func discv4Resolve(ctx *cli.Context) error { n := getNodeArg(ctx) - disc := startV4(ctx) + disc, _ := startV4(ctx) defer disc.Close() resolved := disc.Resolve(n) @@ -318,12 +318,15 @@ func discv4ResolveJSON(ctx *cli.Context) error { nodeargs = append(nodeargs, n) } - // Run the crawler. - disc := startV4(ctx) + disc, config := startV4(ctx) defer disc.Close() - c := newCrawler(inputSet, disc, enode.IterNodes(nodeargs)) + + c, err := newCrawler(inputSet, config.Bootnodes, disc, enode.IterNodes(nodeargs)) + if err != nil { + return err + } c.revalidateInterval = 0 - output := c.run(0) + output := c.run(0, 1) writeNodesJSON(nodesFile, output) return nil } @@ -338,11 +341,15 @@ func discv4Crawl(ctx *cli.Context) error { inputSet = loadNodesJSON(nodesFile) } - disc := startV4(ctx) + disc, config := startV4(ctx) defer disc.Close() - c := newCrawler(inputSet, disc, disc.RandomNodes()) + + c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) + if err != nil { + return err + } c.revalidateInterval = 10 * time.Minute - output := c.run(ctx.Duration(crawlTimeoutFlag.Name)) + output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) writeNodesJSON(nodesFile, output) return nil } @@ -414,14 +421,14 @@ func formatCheckLine(index int, n *enode.Node, status string, elapsed time.Durat } // startV4 starts an ephemeral discovery V4 node. -func startV4(ctx *cli.Context) *discover.UDPv4 { +func startV4(ctx *cli.Context) (*discover.UDPv4, discover.Config) { ln, config := makeDiscoveryConfig(ctx) socket := listen(ln, ctx.String(listenAddrFlag.Name)) disc, err := discover.ListenV4(socket, ln, config) if err != nil { exit(err) } - return disc + return disc, config } func makeDiscoveryConfig(ctx *cli.Context) (*enode.LocalNode, discover.Config) { diff --git a/cmd/devp2p/discv5cmd.go b/cmd/devp2p/discv5cmd.go index 05169a18534c..2720e7c5d434 100644 --- a/cmd/devp2p/discv5cmd.go +++ b/cmd/devp2p/discv5cmd.go @@ -68,7 +68,7 @@ var ( func discv5Ping(ctx *cli.Context) error { n := getNodeArg(ctx) - disc := startV5(ctx) + disc, _ := startV5(ctx) defer disc.Close() fmt.Println(disc.Ping(n)) @@ -77,7 +77,7 @@ func discv5Ping(ctx *cli.Context) error { func discv5Resolve(ctx *cli.Context) error { n := getNodeArg(ctx) - disc := startV5(ctx) + disc, _ := startV5(ctx) defer disc.Close() fmt.Println(disc.Resolve(n)) @@ -94,17 +94,21 @@ func discv5Crawl(ctx *cli.Context) error { inputSet = loadNodesJSON(nodesFile) } - disc := startV5(ctx) + disc, config := startV5(ctx) defer disc.Close() - c := newCrawler(inputSet, disc, disc.RandomNodes()) + + c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) + if err != nil { + return err + } c.revalidateInterval = 10 * time.Minute - output := c.run(ctx.Duration(crawlTimeoutFlag.Name)) + output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) writeNodesJSON(nodesFile, output) return nil } func discv5Listen(ctx *cli.Context) error { - disc := startV5(ctx) + disc, _ := startV5(ctx) defer disc.Close() fmt.Println(disc.Self()) @@ -112,12 +116,12 @@ func discv5Listen(ctx *cli.Context) error { } // startV5 starts an ephemeral discovery v5 node. -func startV5(ctx *cli.Context) *discover.UDPv5 { +func startV5(ctx *cli.Context) (*discover.UDPv5, discover.Config) { ln, config := makeDiscoveryConfig(ctx) socket := listen(ln, ctx.String(listenAddrFlag.Name)) disc, err := discover.ListenV5(socket, ln, config) if err != nil { exit(err) } - return disc + return disc, config } From 043cd496c68fbf50b85ad09de55186fa41500580 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 09:55:10 +0800 Subject: [PATCH 05/14] feat(cmd/devp2p): upgrade discv4 command --- cmd/devp2p/discv4cmd.go | 459 ++++++++++++++++++++++++++-------------- cmd/devp2p/discv5cmd.go | 2 +- 2 files changed, 297 insertions(+), 164 deletions(-) diff --git a/cmd/devp2p/discv4cmd.go b/cmd/devp2p/discv4cmd.go index 86edb3a4baa1..8934c0cbd864 100644 --- a/cmd/devp2p/discv4cmd.go +++ b/cmd/devp2p/discv4cmd.go @@ -21,14 +21,18 @@ import ( "errors" "fmt" "net" + "net/http" + "net/rpc" "os" "slices" + "strconv" "strings" "sync" "time" "github.com/XinFinOrg/XDPoSChain/common" "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/log" "github.com/XinFinOrg/XDPoSChain/p2p/discover" "github.com/XinFinOrg/XDPoSChain/p2p/enode" "github.com/XinFinOrg/XDPoSChain/params" @@ -46,6 +50,7 @@ var ( discv4ResolveCommand, discv4ResolveJSONCommand, discv4CrawlCommand, + discv4ListenCommand, }, } discv4PingCommand = &cli.Command{ @@ -83,11 +88,19 @@ var ( Flags: discoveryNodeFlags, ArgsUsage: "", } + discv4ListenCommand = &cli.Command{ + Name: "listen", + Usage: "Runs a discovery node", + Action: discv4Listen, + Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{ + httpAddrFlag, + }), + } discv4CrawlCommand = &cli.Command{ Name: "crawl", Usage: "Updates a nodes.json file with random nodes found in the DHT", Action: discv4Crawl, - Flags: []cli.Flag{bootnodesFlag, crawlTimeoutFlag}, + Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{crawlTimeoutFlag, crawlParallelismFlag}), } ) @@ -108,6 +121,10 @@ var ( Name: "addr", Usage: "Listening address", } + extAddrFlag = &cli.StringFlag{ + Name: "extaddr", + Usage: "UDP endpoint announced in ENR. You can provide a bare IP address or IP:port as the value of this flag. Provide a comma-separated pair to announce both an IPv4 and an IPv6 endpoint.", + } crawlTimeoutFlag = &cli.DurationFlag{ Name: "timeout", Usage: "Time limit for the crawl.", @@ -118,6 +135,15 @@ var ( Usage: "How many parallel discoveries to attempt.", Value: 16, } + remoteEnodeFlag = &cli.StringFlag{ + Name: "remote", + Usage: "Enode of the remote node under test", + EnvVars: []string{"REMOTE_ENODE"}, + } + httpAddrFlag = &cli.StringFlag{ + Name: "rpc", + Usage: "HTTP server listening address", + } pingTimeoutFlag = &cli.DurationFlag{ Name: "ping-timeout", Usage: "Total time to wait for a pong reply", @@ -134,6 +160,7 @@ var discoveryNodeFlags = []cli.Flag{ nodekeyFlag, nodedbFlag, listenAddrFlag, + extAddrFlag, } func discv4Ping(ctx *cli.Context) error { @@ -149,6 +176,274 @@ func discv4Ping(ctx *cli.Context) error { return nil } +func discv4Listen(ctx *cli.Context) error { + disc, _ := startV4(ctx) + defer disc.Close() + + fmt.Println(disc.Self()) + + httpAddr := ctx.String(httpAddrFlag.Name) + if httpAddr == "" { + // Non-HTTP mode. + select {} + } + + api := &discv4API{disc} + log.Info("Starting RPC API server", "addr", httpAddr) + srv := rpc.NewServer() + srv.RegisterName("discv4", api) + http.DefaultServeMux.Handle("/", srv) + httpsrv := http.Server{Addr: httpAddr, Handler: http.DefaultServeMux} + return httpsrv.ListenAndServe() +} + +func discv4RequestRecord(ctx *cli.Context) error { + n := getNodeArg(ctx) + disc, _ := startV4(ctx) + defer disc.Close() + + respN, err := disc.RequestENR(n) + if err != nil { + return fmt.Errorf("can't retrieve record: %v", err) + } + fmt.Println(respN.String()) + return nil +} + +func discv4Resolve(ctx *cli.Context) error { + n := getNodeArg(ctx) + disc, _ := startV4(ctx) + defer disc.Close() + + resolved := disc.Resolve(n) + if resolved == nil { + fmt.Println("unresolved") + return fmt.Errorf("could not resolve node %s", n.ID()) + } + fmt.Println(resolved.String()) + return nil +} + +func discv4ResolveJSON(ctx *cli.Context) error { + if ctx.NArg() < 1 { + return errors.New("need nodes file as argument") + } + nodesFile := ctx.Args().Get(0) + inputSet := make(nodeSet) + if common.FileExist(nodesFile) { + inputSet = loadNodesJSON(nodesFile) + } + + // Add extra nodes from command line arguments. + var nodeargs []*enode.Node + for i := 1; i < ctx.NArg(); i++ { + n, err := parseNode(ctx.Args().Get(i)) + if err != nil { + exit(err) + } + nodeargs = append(nodeargs, n) + } + + disc, config := startV4(ctx) + defer disc.Close() + + c, err := newCrawler(inputSet, config.Bootnodes, disc, enode.IterNodes(nodeargs)) + if err != nil { + return err + } + c.revalidateInterval = 0 + output := c.run(0, 1) + writeNodesJSON(nodesFile, output) + return nil +} + +func discv4Crawl(ctx *cli.Context) error { + if ctx.NArg() < 1 { + return errors.New("need nodes file as argument") + } + nodesFile := ctx.Args().First() + inputSet := make(nodeSet) + if common.FileExist(nodesFile) { + inputSet = loadNodesJSON(nodesFile) + } + + disc, config := startV4(ctx) + defer disc.Close() + + c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) + if err != nil { + return err + } + c.revalidateInterval = 10 * time.Minute + output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) + writeNodesJSON(nodesFile, output) + return nil +} + +// startV4 starts an ephemeral discovery V4 node. +func startV4(ctx *cli.Context) (*discover.UDPv4, discover.Config) { + ln, config := makeDiscoveryConfig(ctx) + socket := listen(ctx, ln) + disc, err := discover.ListenV4(socket, ln, config) + if err != nil { + exit(err) + } + return disc, config +} + +func makeDiscoveryConfig(ctx *cli.Context) (*enode.LocalNode, discover.Config) { + var cfg discover.Config + + if ctx.IsSet(nodekeyFlag.Name) { + key, err := crypto.HexToECDSA(ctx.String(nodekeyFlag.Name)) + if err != nil { + exit(fmt.Errorf("-%s: %v", nodekeyFlag.Name, err)) + } + cfg.PrivateKey = key + } else { + var err error + cfg.PrivateKey, err = crypto.GenerateKey() + if err != nil { + exit(err) + } + } + + if commandHasFlag(ctx, bootnodesFlag) { + bn, err := parseBootnodes(ctx) + if err != nil { + exit(err) + } + cfg.Bootnodes = bn + } + + dbpath := ctx.String(nodedbFlag.Name) + db, err := enode.OpenDB(dbpath) + if err != nil { + exit(err) + } + ln := enode.NewLocalNode(db, cfg.PrivateKey) + return ln, cfg +} + +func parseExtAddr(spec string) (ip net.IP, port int, ok bool) { + ip = net.ParseIP(spec) + if ip != nil { + return ip, 0, true + } + host, portstr, err := net.SplitHostPort(spec) + if err != nil { + return nil, 0, false + } + ip = net.ParseIP(host) + if ip == nil { + return nil, 0, false + } + port, err = strconv.Atoi(portstr) + if err != nil { + return nil, 0, false + } + return ip, port, true +} + +func listen(ctx *cli.Context, ln *enode.LocalNode) *net.UDPConn { + addr := ctx.String(listenAddrFlag.Name) + extAddr := ctx.String(extAddrFlag.Name) + var ( + socket net.PacketConn + err error + ) + if addr == "" { + // Dual-stack socket, falling back to IPv4-only where IPv6 is unavailable. + if socket, err = net.ListenPacket("udp", "[::]:0"); err != nil { + socket, err = net.ListenPacket("udp", "0.0.0.0:0") + } + } else { + socket, err = net.ListenPacket("udp", addr) + } + if err != nil { + exit(err) + } + + // Configure the ENR endpoint from the listener address, but only without an + // explicit -extaddr: otherwise we'd announce a fallback IP for an address + // family the user didn't specify (e.g. loopback IPv4 on an IPv6-only node). + usocket := socket.(*net.UDPConn) + uaddr := socket.LocalAddr().(*net.UDPAddr) + if extAddr == "" { + if uaddr.IP.IsUnspecified() { + ln.SetFallbackIP(net.IP{127, 0, 0, 1}) + } else { + ln.SetFallbackIP(uaddr.IP) + } + } + ln.SetFallbackUDP(uaddr.Port) + + // Override with explicit -extaddr address(es). A static IP is set per family, + // and all specs share one UDP port because the node has a single socket. + if extAddr != "" { + var extPort int + for spec := range strings.SplitSeq(extAddr, ",") { + spec = strings.TrimSpace(spec) + if spec == "" { + continue + } + ip, port, ok := parseExtAddr(spec) + if !ok { + exit(fmt.Errorf("-%s: invalid external address %q", extAddrFlag.Name, spec)) + } + ln.SetStaticIP(ip) + if port != 0 { + if extPort != 0 && port != extPort { + exit(fmt.Errorf("-%s: all addresses must announce the same UDP port, got %d and %d", extAddrFlag.Name, extPort, port)) + } + extPort = port + } + } + if extPort != 0 { + ln.SetFallbackUDP(extPort) + } + } + + return usocket +} + +func parseBootnodes(ctx *cli.Context) ([]*enode.Node, error) { + s := params.MainnetBootnodes + if ctx.IsSet(bootnodesFlag.Name) { + input := ctx.String(bootnodesFlag.Name) + if input == "" { + return nil, nil + } + s = strings.Split(input, ",") + } + nodes := make([]*enode.Node, len(s)) + var err error + for i, record := range s { + nodes[i], err = parseNode(record) + if err != nil { + return nil, fmt.Errorf("invalid bootstrap node: %v", err) + } + } + return nodes, nil +} + +type discv4API struct { + host *discover.UDPv4 +} + +func (api *discv4API) LookupRandom(n int) (ns []*enode.Node) { + it := api.host.RandomNodes() + defer it.Close() + for len(ns) < n && it.Next() { + ns = append(ns, it.Node()) + } + return ns +} + +func (api *discv4API) Self() *enode.Node { + return api.host.Self() +} + func discv4Check(ctx *cli.Context) error { if ctx.NArg() < 1 { return errors.New("need nodes file as argument") @@ -271,89 +566,6 @@ func discv4Check(ctx *cli.Context) error { return nil } -func discv4RequestRecord(ctx *cli.Context) error { - n := getNodeArg(ctx) - disc, _ := startV4(ctx) - defer disc.Close() - - respN, err := disc.RequestENR(n) - if err != nil { - return fmt.Errorf("can't retrieve record: %v", err) - } - fmt.Println(respN.String()) - return nil -} - -func discv4Resolve(ctx *cli.Context) error { - n := getNodeArg(ctx) - disc, _ := startV4(ctx) - defer disc.Close() - - resolved := disc.Resolve(n) - if resolved == nil { - fmt.Println("unresolved") - return fmt.Errorf("could not resolve node %s", n.ID()) - } - fmt.Println(resolved.String()) - return nil -} - -func discv4ResolveJSON(ctx *cli.Context) error { - if ctx.NArg() < 1 { - return fmt.Errorf("need nodes file as argument") - } - nodesFile := ctx.Args().Get(0) - inputSet := make(nodeSet) - if common.FileExist(nodesFile) { - inputSet = loadNodesJSON(nodesFile) - } - - // Add extra nodes from command line arguments. - var nodeargs []*enode.Node - for i := 1; i < ctx.NArg(); i++ { - n, err := parseNode(ctx.Args().Get(i)) - if err != nil { - exit(err) - } - nodeargs = append(nodeargs, n) - } - - disc, config := startV4(ctx) - defer disc.Close() - - c, err := newCrawler(inputSet, config.Bootnodes, disc, enode.IterNodes(nodeargs)) - if err != nil { - return err - } - c.revalidateInterval = 0 - output := c.run(0, 1) - writeNodesJSON(nodesFile, output) - return nil -} - -func discv4Crawl(ctx *cli.Context) error { - if ctx.NArg() < 1 { - return fmt.Errorf("need nodes file as argument") - } - nodesFile := ctx.Args().First() - var inputSet nodeSet - if common.FileExist(nodesFile) { - inputSet = loadNodesJSON(nodesFile) - } - - disc, config := startV4(ctx) - defer disc.Close() - - c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) - if err != nil { - return err - } - c.revalidateInterval = 10 * time.Minute - output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) - writeNodesJSON(nodesFile, output) - return nil -} - func loadNodeFile(path string) ([]*enode.Node, error) { f, err := os.Open(path) if err != nil { @@ -419,82 +631,3 @@ func formatCheckLine(index int, n *enode.Node, status string, elapsed time.Durat } return fmt.Sprintf("%02d|%s|%s|%s|%s", index, nodeEndpoint(n), status, elapsed.Round(time.Millisecond), msg) } - -// startV4 starts an ephemeral discovery V4 node. -func startV4(ctx *cli.Context) (*discover.UDPv4, discover.Config) { - ln, config := makeDiscoveryConfig(ctx) - socket := listen(ln, ctx.String(listenAddrFlag.Name)) - disc, err := discover.ListenV4(socket, ln, config) - if err != nil { - exit(err) - } - return disc, config -} - -func makeDiscoveryConfig(ctx *cli.Context) (*enode.LocalNode, discover.Config) { - var cfg discover.Config - - if ctx.IsSet(nodekeyFlag.Name) { - key, err := crypto.HexToECDSA(ctx.String(nodekeyFlag.Name)) - if err != nil { - exit(fmt.Errorf("-%s: %v", nodekeyFlag.Name, err)) - } - cfg.PrivateKey = key - } else { - cfg.PrivateKey, _ = crypto.GenerateKey() - } - - if commandHasFlag(ctx, bootnodesFlag) { - bn, err := parseBootnodes(ctx) - if err != nil { - exit(err) - } - cfg.Bootnodes = bn - } - - dbpath := ctx.String(nodedbFlag.Name) - db, err := enode.OpenDB(dbpath) - if err != nil { - exit(err) - } - ln := enode.NewLocalNode(db, cfg.PrivateKey) - return ln, cfg -} - -func listen(ln *enode.LocalNode, addr string) *net.UDPConn { - if addr == "" { - addr = "0.0.0.0:0" - } - udpAddr, err := net.ResolveUDPAddr("udp4", addr) - if err != nil { - exit(err) - } - socket, err := net.ListenUDP("udp4", udpAddr) - if err != nil { - exit(err) - } - uaddr := socket.LocalAddr().(*net.UDPAddr) - ln.SetFallbackIP(net.IP{127, 0, 0, 1}) - ln.SetFallbackUDP(uaddr.Port) - return socket -} - -func parseBootnodes(ctx *cli.Context) ([]*enode.Node, error) { - s := params.MainnetBootnodes - if ctx.IsSet(bootnodesFlag.Name) { - input := ctx.String(bootnodesFlag.Name) - if input == "" { - return nil, nil - } - s = strings.Split(input, ",") - } - nodes := make([]*enode.Node, len(s)) - var err error - for i, record := range s { - nodes[i], err = parseNode(record) - if err != nil { - return nil, fmt.Errorf("invalid bootstrap node: %v", err) - } - } - return nodes, nil -} diff --git a/cmd/devp2p/discv5cmd.go b/cmd/devp2p/discv5cmd.go index 2720e7c5d434..2de8dff3e43c 100644 --- a/cmd/devp2p/discv5cmd.go +++ b/cmd/devp2p/discv5cmd.go @@ -118,7 +118,7 @@ func discv5Listen(ctx *cli.Context) error { // startV5 starts an ephemeral discovery v5 node. func startV5(ctx *cli.Context) (*discover.UDPv5, discover.Config) { ln, config := makeDiscoveryConfig(ctx) - socket := listen(ln, ctx.String(listenAddrFlag.Name)) + socket := listen(ctx, ln) disc, err := discover.ListenV5(socket, ln, config) if err != nil { exit(err) From 663408251982fb2ffb577507306493e410ddac88 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 11:03:13 +0800 Subject: [PATCH 06/14] feat(cmd/devp2p): upgrade discv5 command --- cmd/devp2p/discv5cmd.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/cmd/devp2p/discv5cmd.go b/cmd/devp2p/discv5cmd.go index 2de8dff3e43c..4293eda3aea7 100644 --- a/cmd/devp2p/discv5cmd.go +++ b/cmd/devp2p/discv5cmd.go @@ -1,4 +1,4 @@ -// Copyright 2019 The go-ethereum Authors +// Copyright 2020 The go-ethereum Authors // This file is part of go-ethereum. // // go-ethereum is free software: you can redistribute it and/or modify @@ -17,7 +17,9 @@ package main import ( + "errors" "fmt" + "slices" "time" "github.com/XinFinOrg/XDPoSChain/common" @@ -40,29 +42,28 @@ var ( Name: "ping", Usage: "Sends ping to a node", Action: discv5Ping, + Flags: discoveryNodeFlags, } discv5ResolveCommand = &cli.Command{ Name: "resolve", Usage: "Finds a node in the DHT", Action: discv5Resolve, - Flags: []cli.Flag{bootnodesFlag}, + Flags: discoveryNodeFlags, } discv5CrawlCommand = &cli.Command{ Name: "crawl", Usage: "Updates a nodes.json file with random nodes found in the DHT", Action: discv5Crawl, - Flags: []cli.Flag{bootnodesFlag, crawlTimeoutFlag}, + Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{ + crawlTimeoutFlag, + crawlParallelismFlag, + }), } discv5ListenCommand = &cli.Command{ Name: "listen", Usage: "Runs a node", Action: discv5Listen, - Flags: []cli.Flag{ - bootnodesFlag, - nodekeyFlag, - nodedbFlag, - listenAddrFlag, - }, + Flags: discoveryNodeFlags, } ) @@ -71,7 +72,8 @@ func discv5Ping(ctx *cli.Context) error { disc, _ := startV5(ctx) defer disc.Close() - fmt.Println(disc.Ping(n)) + err := disc.Ping(n) + fmt.Println(err) return nil } @@ -86,10 +88,10 @@ func discv5Resolve(ctx *cli.Context) error { func discv5Crawl(ctx *cli.Context) error { if ctx.NArg() < 1 { - return fmt.Errorf("need nodes file as argument") + return errors.New("need nodes file as argument") } nodesFile := ctx.Args().First() - var inputSet nodeSet + inputSet := make(nodeSet) if common.FileExist(nodesFile) { inputSet = loadNodesJSON(nodesFile) } From 8defbe2ac34e368175106a42127dd2f4d6090068 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 11:26:43 +0800 Subject: [PATCH 07/14] feat(cmd/devp2p): implement DNS TXT records to Amazon Route53 --- cmd/devp2p/dns_route53.go | 426 +++++++++++++++++++++++++++++++++ cmd/devp2p/dns_route53_test.go | 192 +++++++++++++++ cmd/devp2p/dnscmd.go | 48 ++++ go.mod | 15 ++ go.sum | 30 +++ 5 files changed, 711 insertions(+) create mode 100644 cmd/devp2p/dns_route53.go create mode 100644 cmd/devp2p/dns_route53_test.go diff --git a/cmd/devp2p/dns_route53.go b/cmd/devp2p/dns_route53.go new file mode 100644 index 000000000000..81e8c0368c0a --- /dev/null +++ b/cmd/devp2p/dns_route53.go @@ -0,0 +1,426 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "cmp" + "context" + "errors" + "fmt" + "slices" + "strconv" + "strings" + "time" + + "github.com/XinFinOrg/XDPoSChain/log" + "github.com/XinFinOrg/XDPoSChain/p2p/dnsdisc" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/credentials" + "github.com/aws/aws-sdk-go-v2/service/route53" + "github.com/aws/aws-sdk-go-v2/service/route53/types" + "github.com/urfave/cli/v2" +) + +const ( + // Route53 limits change sets to 32k of 'RDATA size'. Change sets are also limited to + // 1000 items. UPSERTs count double. + // https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests-changeresourcerecordsets + route53ChangeSizeLimit = 32000 + route53ChangeCountLimit = 1000 + maxRetryLimit = 60 +) + +var ( + route53AccessKeyFlag = &cli.StringFlag{ + Name: "access-key-id", + Usage: "AWS Access Key ID", + EnvVars: []string{"AWS_ACCESS_KEY_ID"}, + } + route53AccessSecretFlag = &cli.StringFlag{ + Name: "access-key-secret", + Usage: "AWS Access Key Secret", + EnvVars: []string{"AWS_SECRET_ACCESS_KEY"}, + } + route53ZoneIDFlag = &cli.StringFlag{ + Name: "zone-id", + Usage: "Route53 Zone ID", + } + route53RegionFlag = &cli.StringFlag{ + Name: "aws-region", + Usage: "AWS Region", + Value: "eu-central-1", + } +) + +type route53Client struct { + api *route53.Client + zoneID string +} + +type recordSet struct { + values []string + ttl int64 +} + +// newRoute53Client sets up a Route53 API client from command line flags. +func newRoute53Client(ctx *cli.Context) *route53Client { + akey := ctx.String(route53AccessKeyFlag.Name) + asec := ctx.String(route53AccessSecretFlag.Name) + if akey == "" || asec == "" { + exit(errors.New("need Route53 Access Key ID and secret to proceed")) + } + creds := aws.NewCredentialsCache(credentials.NewStaticCredentialsProvider(akey, asec, "")) + cfg, err := config.LoadDefaultConfig(context.Background(), config.WithCredentialsProvider(creds)) + if err != nil { + exit(fmt.Errorf("can't initialize AWS configuration: %v", err)) + } + cfg.Region = ctx.String(route53RegionFlag.Name) + return &route53Client{ + api: route53.NewFromConfig(cfg), + zoneID: ctx.String(route53ZoneIDFlag.Name), + } +} + +// deploy uploads the given tree to Route53. +func (c *route53Client) deploy(name string, t *dnsdisc.Tree) error { + if err := c.checkZone(name); err != nil { + return err + } + + // Compute DNS changes. + existing, err := c.collectRecords(name) + if err != nil { + return err + } + log.Info(fmt.Sprintf("Found %d TXT records", len(existing))) + records := t.ToTXT(name) + changes := c.computeChanges(name, records, existing) + + // Submit to API. + comment := fmt.Sprintf("enrtree update of %s at seq %d", name, t.Seq()) + return c.submitChanges(changes, comment) +} + +// deleteDomain removes all TXT records of the given domain. +func (c *route53Client) deleteDomain(name string) error { + if err := c.checkZone(name); err != nil { + return err + } + + // Compute DNS changes. + existing, err := c.collectRecords(name) + if err != nil { + return err + } + log.Info(fmt.Sprintf("Found %d TXT records", len(existing))) + changes := makeDeletionChanges(existing, nil) + + // Submit to API. + comment := "enrtree delete of " + name + return c.submitChanges(changes, comment) +} + +// submitChanges submits the given DNS changes to Route53. +func (c *route53Client) submitChanges(changes []types.Change, comment string) error { + if len(changes) == 0 { + log.Info("No DNS changes needed") + return nil + } + + var err error + batches := splitChanges(changes, route53ChangeSizeLimit, route53ChangeCountLimit) + changesToCheck := make([]*route53.ChangeResourceRecordSetsOutput, len(batches)) + for i, changes := range batches { + log.Info(fmt.Sprintf("Submitting %d changes to Route53", len(changes))) + batch := &types.ChangeBatch{ + Changes: changes, + Comment: aws.String(fmt.Sprintf("%s (%d/%d)", comment, i+1, len(batches))), + } + req := &route53.ChangeResourceRecordSetsInput{HostedZoneId: &c.zoneID, ChangeBatch: batch} + changesToCheck[i], err = c.api.ChangeResourceRecordSets(context.TODO(), req) + if err != nil { + return err + } + } + + // Wait for all change batches to propagate. + for _, change := range changesToCheck { + log.Info(fmt.Sprintf("Waiting for change request %s", *change.ChangeInfo.Id)) + wreq := &route53.GetChangeInput{Id: change.ChangeInfo.Id} + var count int + for { + wresp, err := c.api.GetChange(context.TODO(), wreq) + if err != nil { + return err + } + + count++ + + if wresp.ChangeInfo.Status == types.ChangeStatusInsync || count >= maxRetryLimit { + break + } + + time.Sleep(30 * time.Second) + } + } + return nil +} + +// checkZone verifies zone information for the given domain. +func (c *route53Client) checkZone(name string) (err error) { + if c.zoneID == "" { + c.zoneID, err = c.findZoneID(name) + } + return err +} + +// findZoneID searches for the Zone ID containing the given domain. +func (c *route53Client) findZoneID(name string) (string, error) { + log.Info(fmt.Sprintf("Finding Route53 Zone ID for %s", name)) + var req route53.ListHostedZonesByNameInput + for { + resp, err := c.api.ListHostedZonesByName(context.TODO(), &req) + if err != nil { + return "", err + } + for _, zone := range resp.HostedZones { + if isSubdomain(name, *zone.Name) { + return *zone.Id, nil + } + } + if !resp.IsTruncated { + break + } + req.DNSName = resp.NextDNSName + req.HostedZoneId = resp.NextHostedZoneId + } + return "", errors.New("can't find zone ID for " + name) +} + +// computeChanges creates DNS changes for the given set of DNS discovery records. +// The 'existing' arg is the set of records that already exist on Route53. +func (c *route53Client) computeChanges(name string, records map[string]string, existing map[string]recordSet) []types.Change { + // Convert all names to lowercase. + lrecords := make(map[string]string, len(records)) + for name, r := range records { + lrecords[strings.ToLower(name)] = r + } + records = lrecords + + var ( + changes []types.Change + inserts int + upserts int + skips int + ) + + for path, newValue := range records { + prevRecords, exists := existing[path] + prevValue := strings.Join(prevRecords.values, "") + + // prevValue contains quoted strings, encode newValue to compare. + newValue = splitTXT(newValue) + + // Assign TTL. + ttl := int64(rootTTL) + if path != name { + ttl = int64(treeNodeTTL) + } + + if !exists { + // Entry is unknown, push a new one + log.Debug(fmt.Sprintf("Creating %s = %s", path, newValue)) + changes = append(changes, newTXTChange("CREATE", path, ttl, newValue)) + inserts++ + } else if prevValue != newValue || prevRecords.ttl != ttl { + // Entry already exists, only change its content. + log.Info(fmt.Sprintf("Updating %s from %s to %s", path, prevValue, newValue)) + changes = append(changes, newTXTChange("UPSERT", path, ttl, newValue)) + upserts++ + } else { + log.Debug(fmt.Sprintf("Skipping %s = %s", path, newValue)) + skips++ + } + } + + // Iterate over the old records and delete anything stale. + deletions := makeDeletionChanges(existing, records) + changes = append(changes, deletions...) + + log.Info("Computed DNS changes", + "changes", len(changes), + "inserts", inserts, + "skips", skips, + "deleted", len(deletions), + "upserts", upserts) + // Ensure changes are in the correct order. + sortChanges(changes) + return changes +} + +// makeDeletionChanges creates record changes which delete all records not contained in 'keep'. +func makeDeletionChanges(records map[string]recordSet, keep map[string]string) []types.Change { + var changes []types.Change + for path, set := range records { + if _, ok := keep[path]; ok { + continue + } + log.Debug(fmt.Sprintf("Deleting %s = %s", path, strings.Join(set.values, ""))) + changes = append(changes, newTXTChange("DELETE", path, set.ttl, set.values...)) + } + return changes +} + +// sortChanges ensures DNS changes are in leaf-added -> root-changed -> leaf-deleted order. +func sortChanges(changes []types.Change) { + score := map[string]int{"CREATE": 1, "UPSERT": 2, "DELETE": 3} + slices.SortFunc(changes, func(a, b types.Change) int { + if a.Action == b.Action { + return strings.Compare(*a.ResourceRecordSet.Name, *b.ResourceRecordSet.Name) + } + return cmp.Compare(score[string(a.Action)], score[string(b.Action)]) + }) +} + +// splitChanges splits up DNS changes such that each change batch +// is smaller than the given RDATA limit. +func splitChanges(changes []types.Change, sizeLimit, countLimit int) [][]types.Change { + var ( + batches [][]types.Change + batchSize int + batchCount int + ) + for _, ch := range changes { + // Start new batch if this change pushes the current one over the limit. + count := changeCount(ch) + size := changeSize(ch) * count + overSize := batchSize+size > sizeLimit + overCount := batchCount+count > countLimit + if len(batches) == 0 || overSize || overCount { + batches = append(batches, nil) + batchSize = 0 + batchCount = 0 + } + batches[len(batches)-1] = append(batches[len(batches)-1], ch) + batchSize += size + batchCount += count + } + return batches +} + +// changeSize returns the RDATA size of a DNS change. +func changeSize(ch types.Change) int { + size := 0 + for _, rr := range ch.ResourceRecordSet.ResourceRecords { + if rr.Value != nil { + size += len(*rr.Value) + } + } + return size +} + +func changeCount(ch types.Change) int { + if ch.Action == types.ChangeActionUpsert { + return 2 + } + return 1 +} + +// collectRecords collects all TXT records below the given name. +func (c *route53Client) collectRecords(name string) (map[string]recordSet, error) { + var req route53.ListResourceRecordSetsInput + req.HostedZoneId = &c.zoneID + existing := make(map[string]recordSet) + log.Info("Loading existing TXT records", "name", name, "zone", c.zoneID) + for page := 0; ; page++ { + log.Debug("Loading existing TXT records", "name", name, "zone", c.zoneID, "page", page) + resp, err := c.api.ListResourceRecordSets(context.TODO(), &req) + if err != nil { + return existing, err + } + for _, set := range resp.ResourceRecordSets { + if !isSubdomain(*set.Name, name) || set.Type != types.RRTypeTxt { + continue + } + s := recordSet{ttl: *set.TTL} + for _, rec := range set.ResourceRecords { + s.values = append(s.values, *rec.Value) + } + name := strings.TrimSuffix(*set.Name, ".") + existing[name] = s + } + + if !resp.IsTruncated { + break + } + // Set the cursor to the next batch. From the AWS docs: + // + // To display the next page of results, get the values of NextRecordName, + // NextRecordType, and NextRecordIdentifier (if any) from the response. Then submit + // another ListResourceRecordSets request, and specify those values for + // StartRecordName, StartRecordType, and StartRecordIdentifier. + req.StartRecordIdentifier = resp.NextRecordIdentifier + req.StartRecordName = resp.NextRecordName + req.StartRecordType = resp.NextRecordType + } + log.Info("Loaded existing TXT records", "name", name, "zone", c.zoneID, "records", len(existing)) + return existing, nil +} + +// newTXTChange creates a change to a TXT record. +func newTXTChange(action, name string, ttl int64, values ...string) types.Change { + r := types.ResourceRecordSet{ + Type: types.RRTypeTxt, + Name: &name, + TTL: &ttl, + } + var rrs []types.ResourceRecord + for _, val := range values { + var rr types.ResourceRecord + rr.Value = aws.String(val) + rrs = append(rrs, rr) + } + + r.ResourceRecords = rrs + + return types.Change{ + Action: types.ChangeAction(action), + ResourceRecordSet: &r, + } +} + +// isSubdomain returns true if name is a subdomain of domain. +func isSubdomain(name, domain string) bool { + domain = strings.TrimSuffix(domain, ".") + name = strings.TrimSuffix(name, ".") + return strings.HasSuffix("."+name, "."+domain) +} + +// splitTXT splits value into a list of quoted 255-character strings. +func splitTXT(value string) string { + var result strings.Builder + for len(value) > 0 { + rlen := len(value) + if rlen > 253 { + rlen = 253 + } + result.WriteString(strconv.Quote(value[:rlen])) + value = value[rlen:] + } + return result.String() +} diff --git a/cmd/devp2p/dns_route53_test.go b/cmd/devp2p/dns_route53_test.go new file mode 100644 index 000000000000..af39c70a3631 --- /dev/null +++ b/cmd/devp2p/dns_route53_test.go @@ -0,0 +1,192 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "reflect" + "testing" + + "github.com/aws/aws-sdk-go-v2/service/route53/types" +) + +// This test checks that computeChanges/splitChanges create DNS changes in +// leaf-added -> root-changed -> leaf-deleted order. +func TestRoute53ChangeSort(t *testing.T) { + t.Parallel() + testTree0 := map[string]recordSet{ + "2kfjogvxdqtxxugbh7gs7naaai.n": {ttl: 3333, values: []string{ + `"enr:-HW4QO1ml1DdXLeZLsUxewnthhUy8eROqkDyoMTyavfks9JlYQIlMFEUoM78PovJDPQrAkrb3LRJ-""vtrymDguKCOIAWAgmlkgnY0iXNlY3AyNTZrMaEDffaGfJzgGhUif1JqFruZlYmA31HzathLSWxfbq_QoQ4"`, + }}, + "fdxn3sn67na5dka4j2gok7bvqi.n": {ttl: treeNodeTTL, values: []string{`"enrtree-branch:"`}}, + "n": {ttl: rootTTL, values: []string{`"enrtree-root:v1 e=2KFJOGVXDQTXXUGBH7GS7NAAAI l=FDXN3SN67NA5DKA4J2GOK7BVQI seq=0 sig=v_-J_q_9ICQg5ztExFvLQhDBGMb0lZPJLhe3ts9LAcgqhOhtT3YFJsl8BWNDSwGtamUdR-9xl88_w-X42SVpjwE"`}}, + } + + testTree1 := map[string]string{ + "n": "enrtree-root:v1 e=JWXYDBPXYWG6FX3GMDIBFA6CJ4 l=C7HRFPF3BLGF3YR4DY5KX3SMBE seq=1 sig=o908WmNp7LibOfPsr4btQwatZJ5URBr2ZAuxvK4UWHlsB9sUOTJQaGAlLPVAhM__XJesCHxLISo94z5Z2a463gA", + "C7HRFPF3BLGF3YR4DY5KX3SMBE.n": "enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org", + "JWXYDBPXYWG6FX3GMDIBFA6CJ4.n": "enrtree-branch:2XS2367YHAXJFGLZHVAWLQD4ZY,H4FHT4B454P6UXFD7JCYQ5PWDY,MHTDO6TMUBRIA2XWG5LUDACK24", + "2XS2367YHAXJFGLZHVAWLQD4ZY.n": "enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA", + "H4FHT4B454P6UXFD7JCYQ5PWDY.n": "enr:-HW4QAggRauloj2SDLtIHN1XBkvhFZ1vtf1raYQp9TBW2RD5EEawDzbtSmlXUfnaHcvwOizhVYLtr7e6vw7NAf6mTuoCgmlkgnY0iXNlY3AyNTZrMaECjrXI8TLNXU0f8cthpAMxEshUyQlK-AM0PW2wfrnacNI", + "MHTDO6TMUBRIA2XWG5LUDACK24.n": "enr:-HW4QLAYqmrwllBEnzWWs7I5Ev2IAs7x_dZlbYdRdMUx5EyKHDXp7AV5CkuPGUPdvbv1_Ms1CPfhcGCvSElSosZmyoqAgmlkgnY0iXNlY3AyNTZrMaECriawHKWdDRk2xeZkrOXBQ0dfMFLHY4eENZwdufn1S1o", + } + + wantChanges := []types.Change{ + { + Action: "CREATE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("2xs2367yhaxjfglzhvawlqd4zy.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + { + Action: "CREATE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("c7hrfpf3blgf3yr4dy5kx3smbe.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + { + Action: "CREATE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("h4fht4b454p6uxfd7jcyq5pwdy.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enr:-HW4QAggRauloj2SDLtIHN1XBkvhFZ1vtf1raYQp9TBW2RD5EEawDzbtSmlXUfnaHcvwOizhVYLtr7e6vw7NAf6mTuoCgmlkgnY0iXNlY3AyNTZrMaECjrXI8TLNXU0f8cthpAMxEshUyQlK-AM0PW2wfrnacNI"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + { + Action: "CREATE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("jwxydbpxywg6fx3gmdibfa6cj4.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enrtree-branch:2XS2367YHAXJFGLZHVAWLQD4ZY,H4FHT4B454P6UXFD7JCYQ5PWDY,MHTDO6TMUBRIA2XWG5LUDACK24"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + { + Action: "CREATE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("mhtdo6tmubria2xwg5ludack24.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enr:-HW4QLAYqmrwllBEnzWWs7I5Ev2IAs7x_dZlbYdRdMUx5EyKHDXp7AV5CkuPGUPdvbv1_Ms1CPfhcGCvSElSosZmyoqAgmlkgnY0iXNlY3AyNTZrMaECriawHKWdDRk2xeZkrOXBQ0dfMFLHY4eENZwdufn1S1o"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + { + Action: "UPSERT", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enrtree-root:v1 e=JWXYDBPXYWG6FX3GMDIBFA6CJ4 l=C7HRFPF3BLGF3YR4DY5KX3SMBE seq=1 sig=o908WmNp7LibOfPsr4btQwatZJ5URBr2ZAuxvK4UWHlsB9sUOTJQaGAlLPVAhM__XJesCHxLISo94z5Z2a463gA"`), + }}, + TTL: ip(rootTTL), + Type: "TXT", + }, + }, + { + Action: "DELETE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("2kfjogvxdqtxxugbh7gs7naaai.n"), + ResourceRecords: []types.ResourceRecord{ + {Value: sp(`"enr:-HW4QO1ml1DdXLeZLsUxewnthhUy8eROqkDyoMTyavfks9JlYQIlMFEUoM78PovJDPQrAkrb3LRJ-""vtrymDguKCOIAWAgmlkgnY0iXNlY3AyNTZrMaEDffaGfJzgGhUif1JqFruZlYmA31HzathLSWxfbq_QoQ4"`)}, + }, + TTL: ip(3333), + Type: "TXT", + }, + }, + { + Action: "DELETE", + ResourceRecordSet: &types.ResourceRecordSet{ + Name: sp("fdxn3sn67na5dka4j2gok7bvqi.n"), + ResourceRecords: []types.ResourceRecord{{ + Value: sp(`"enrtree-branch:"`), + }}, + TTL: ip(treeNodeTTL), + Type: "TXT", + }, + }, + } + + var client route53Client + changes := client.computeChanges("n", testTree1, testTree0) + if !reflect.DeepEqual(changes, wantChanges) { + t.Fatalf("wrong changes (got %d, want %d)", len(changes), len(wantChanges)) + } + + // Check splitting according to size. + wantSplit := [][]types.Change{ + wantChanges[:4], + wantChanges[4:6], + wantChanges[6:], + } + split := splitChanges(changes, 600, 4000) + if !reflect.DeepEqual(split, wantSplit) { + t.Fatalf("wrong split batches: got %d, want %d", len(split), len(wantSplit)) + } + + // Check splitting according to count. + wantSplit = [][]types.Change{ + wantChanges[:5], + wantChanges[5:], + } + split = splitChanges(changes, 10000, 6) + if !reflect.DeepEqual(split, wantSplit) { + t.Fatalf("wrong split batches: got %d, want %d", len(split), len(wantSplit)) + } +} + +// This test checks that computeChanges compares the quoted value of the records correctly. +func TestRoute53NoChange(t *testing.T) { + t.Parallel() + // Existing record set. + testTree0 := map[string]recordSet{ + "n": {ttl: rootTTL, values: []string{ + `"enrtree-root:v1 e=JWXYDBPXYWG6FX3GMDIBFA6CJ4 l=C7HRFPF3BLGF3YR4DY5KX3SMBE seq=1 sig=o908WmNp7LibOfPsr4btQwatZJ5URBr2ZAuxvK4UWHlsB9sUOTJQaGAlLPVAhM__XJesCHxLISo94z5Z2a463gA"`, + }}, + "2xs2367yhaxjfglzhvawlqd4zy.n": {ttl: treeNodeTTL, values: []string{ + `"enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA"`, + }}, + } + // New set. + testTree1 := map[string]string{ + "n": "enrtree-root:v1 e=JWXYDBPXYWG6FX3GMDIBFA6CJ4 l=C7HRFPF3BLGF3YR4DY5KX3SMBE seq=1 sig=o908WmNp7LibOfPsr4btQwatZJ5URBr2ZAuxvK4UWHlsB9sUOTJQaGAlLPVAhM__XJesCHxLISo94z5Z2a463gA", + "2XS2367YHAXJFGLZHVAWLQD4ZY.n": "enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA", + } + + var client route53Client + changes := client.computeChanges("n", testTree1, testTree0) + if len(changes) > 0 { + t.Fatalf("wrong changes (got %d, want 0)", len(changes)) + } +} + +func sp(s string) *string { return &s } +func ip(i int64) *int64 { return &i } diff --git a/cmd/devp2p/dnscmd.go b/cmd/devp2p/dnscmd.go index 859d03f6d261..771684d65904 100644 --- a/cmd/devp2p/dnscmd.go +++ b/cmd/devp2p/dnscmd.go @@ -42,6 +42,8 @@ var ( dnsSignCommand, dnsTXTCommand, dnsCloudflareCommand, + dnsRoute53Command, + dnsRoute53NukeCommand, }, } dnsSyncCommand = &cli.Command{ @@ -71,6 +73,30 @@ var ( Action: dnsToCloudflare, Flags: []cli.Flag{cloudflareTokenFlag, cloudflareZoneIDFlag}, } + dnsRoute53Command = &cli.Command{ + Name: "to-route53", + Usage: "Deploy DNS TXT records to Amazon Route53", + ArgsUsage: "", + Action: dnsToRoute53, + Flags: []cli.Flag{ + route53AccessKeyFlag, + route53AccessSecretFlag, + route53ZoneIDFlag, + route53RegionFlag, + }, + } + dnsRoute53NukeCommand = &cli.Command{ + Name: "nuke-route53", + Usage: "Deletes DNS TXT records of a subdomain on Amazon Route53", + ArgsUsage: "", + Action: dnsNukeRoute53, + Flags: []cli.Flag{ + route53AccessKeyFlag, + route53AccessSecretFlag, + route53ZoneIDFlag, + route53RegionFlag, + }, + } ) var ( @@ -203,6 +229,28 @@ func dnsToCloudflare(ctx *cli.Context) error { return client.deploy(domain, t) } +// dnsToRoute53 performs dnsRoute53Command. +func dnsToRoute53(ctx *cli.Context) error { + if ctx.NArg() != 1 { + return errors.New("need tree definition directory as argument") + } + domain, t, err := loadTreeDefinitionForExport(ctx.Args().Get(0)) + if err != nil { + return err + } + client := newRoute53Client(ctx) + return client.deploy(domain, t) +} + +// dnsNukeRoute53 performs dnsRoute53NukeCommand. +func dnsNukeRoute53(ctx *cli.Context) error { + if ctx.NArg() != 1 { + return errors.New("need domain name as argument") + } + client := newRoute53Client(ctx) + return client.deleteDomain(ctx.Args().First()) +} + // loadSigningKey loads a private key in Ethereum keystore format. func loadSigningKey(keyfile string) *ecdsa.PrivateKey { keyjson, err := os.ReadFile(keyfile) diff --git a/go.mod b/go.mod index c34ae4c975b6..e43166b2983e 100644 --- a/go.mod +++ b/go.mod @@ -33,6 +33,10 @@ require ( require ( github.com/Microsoft/go-winio v0.6.2 + github.com/aws/aws-sdk-go-v2 v1.42.1 + github.com/aws/aws-sdk-go-v2/config v1.32.30 + github.com/aws/aws-sdk-go-v2/credentials v1.19.29 + github.com/aws/aws-sdk-go-v2/service/route53 v1.64.1 github.com/btcsuite/btcd/btcec/v2 v2.2.0 github.com/cloudflare/cloudflare-go v0.117.0 github.com/consensys/gnark-crypto v0.10.0 @@ -68,6 +72,17 @@ require ( require ( github.com/StackExchange/wmi v1.2.1 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.4.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.32.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.44.1 // indirect + github.com/aws/smithy-go v1.27.3 // indirect github.com/bits-and-blooms/bitset v1.5.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/consensys/bavard v0.1.13 // indirect diff --git a/go.sum b/go.sum index 313315ea2bbd..1d1e7f8ee0a5 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,36 @@ github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjC github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/aws/aws-sdk-go-v2 v1.42.1 h1:9eOTgu1z/dVtYpNZ3/8/XbbaX0x/BqE3HUzAzs6K0ek= +github.com/aws/aws-sdk-go-v2 v1.42.1/go.mod h1:5pKeft2eJj+gElQ38Jqg4ibCqh+/AK33/0X3hip7IjM= +github.com/aws/aws-sdk-go-v2/config v1.32.30 h1:XwsEzpTJfQYJbFicz/QMLwAZdyeNVVoOEkbF7R3gPJk= +github.com/aws/aws-sdk-go-v2/config v1.32.30/go.mod h1:Ud32SuMc+/9BGxfpSVld7HrE2o05JwKmXY4M3jOQNZU= +github.com/aws/aws-sdk-go-v2/credentials v1.19.29 h1:WHZGssHH887cO0ox07SIQZsFx3MKD4ps6w0xUEmnKYQ= +github.com/aws/aws-sdk-go-v2/credentials v1.19.29/go.mod h1:Mhl0xR6zjguiuj00XRx2wMx22sAltk7oya39sT7fdg8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30 h1:/hi1JADLEW9YYryEz1w4GQu0EtP23pP553Cf9KgsDV4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30/go.mod h1:/3AOgy4K17Dm4ucMZVC/MJkzy5kmfKUcINRHZyo0koQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30 h1:xM/Is9cKMHa8Jj8zkvWhvrFkZsXJV9E+BB4g0HW0duQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30/go.mod h1:WueJeNDZvK1fMYEWJIkcivBfEzUkTpBhzlrUKKY8EuA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30 h1:jn46zC9LdsVR/ZpMIJqMqb8hHv31BlLx3ulVqNspUOk= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30/go.mod h1:1hTMsAgbdS/AtUi4bw8+gUuh1pceo+eXRLfpSuSQj3M= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31 h1:3GUprIsfmGcC5SACIyB0e7E0BM1O1b3Erl5CePYIAeQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31/go.mod h1:7PuV1yl5e2xnUbm+RqvVg5i2iBM8EyijZNoI9wsOoOc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13 h1:mbRIur/BiHK6SKPjoBIXSE/hJ6g6JGRLuxQy1jGjlN4= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13/go.mod h1:ITg9em2KbJx1s0y4aqRX5OYWG6HBZ5TVR//OdpEZ2CQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30 h1:/Z5jmNrKsSD7EmDjzAPsm/3L9IuOkzaynklJZ1qX7S4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30/go.mod h1:lEzEZnOosE7zi8Z6royW1cFJTD9fpab4Ul1SBrllewk= +github.com/aws/aws-sdk-go-v2/service/route53 v1.64.1 h1:qL5ELChQ1o1ZbzHvsl8gzQfAZdbQtrDbUyzJkjkMKcg= +github.com/aws/aws-sdk-go-v2/service/route53 v1.64.1/go.mod h1:0hIRXFez1bZsDFMGkLZvNJbByTSVZ4sFZWpxZ39NPuM= +github.com/aws/aws-sdk-go-v2/service/signin v1.4.1 h1:V7ZZ300WPXGjvkyore5DGe0ljVPOxCXie/thWdtSBXE= +github.com/aws/aws-sdk-go-v2/service/signin v1.4.1/go.mod h1:mxC0nT/C8wMMS97DemZPzvUZxvIt+2Iq+eS3JdFZGgg= +github.com/aws/aws-sdk-go-v2/service/sso v1.32.1 h1:gYFYh4iLLcAOJRLNPY2aD2g9DIhKn4eof8UkIrr1rTk= +github.com/aws/aws-sdk-go-v2/service/sso v1.32.1/go.mod h1:u8af9Nqkmqnr96f7v9nHqzZT9XBwbXEkTiqT4ROuJSE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.1 h1:arjT9Cm3/WYbGmD5TUZHk4UQn4Lle1fUNZs5FC6CtF0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.1/go.mod h1:DMPWJBjYs6+3+f/qhBFEFPPlQ6NlhWjai3dJNvipJ84= +github.com/aws/aws-sdk-go-v2/service/sts v1.44.1 h1:RvfHDg+xvAeZ+5741vUEjpOVtYSIm93W2zhx10Xtydw= +github.com/aws/aws-sdk-go-v2/service/sts v1.44.1/go.mod h1:9gdl4RrflIdpDb2TlXshWgR1F9TeCkvqDx77Vpr4Z/Q= +github.com/aws/smithy-go v1.27.3 h1:F3Zb497UhhskkfpJmfkXswyo+t0sh9OTBnIHjogWbVY= +github.com/aws/smithy-go v1.27.3/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bits-and-blooms/bitset v1.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8= github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= From aebad501ae8496b045a0ba3d5c5c9b00ad1b2795 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 11:48:18 +0800 Subject: [PATCH 08/14] feat(cmd/devp2p): upgrade nodeset command --- cmd/devp2p/nodeset.go | 21 ++++++++ cmd/devp2p/nodesetcmd.go | 106 ++++++++++++++++++++++++++++++++++----- core/forkid/forkid.go | 3 ++ 3 files changed, 117 insertions(+), 13 deletions(-) diff --git a/cmd/devp2p/nodeset.go b/cmd/devp2p/nodeset.go index cb3b59d7893b..b6762442eea5 100644 --- a/cmd/devp2p/nodeset.go +++ b/cmd/devp2p/nodeset.go @@ -18,6 +18,7 @@ package main import ( "bytes" + "cmp" "encoding/json" "fmt" "os" @@ -93,6 +94,26 @@ func (ns nodeSet) add(nodes ...*enode.Node) { } } +// topN returns the top n nodes by score as a new set. +func (ns nodeSet) topN(n int) nodeSet { + if n >= len(ns) { + return ns + } + + byscore := make([]nodeJSON, 0, len(ns)) + for _, v := range ns { + byscore = append(byscore, v) + } + slices.SortFunc(byscore, func(a, b nodeJSON) int { + return cmp.Compare(b.Score, a.Score) + }) + result := make(nodeSet, n) + for _, v := range byscore[:n] { + result[v.N.ID()] = v + } + return result +} + // verify performs integrity checks on the node set. func (ns nodeSet) verify() error { for id, n := range ns { diff --git a/cmd/devp2p/nodesetcmd.go b/cmd/devp2p/nodesetcmd.go index 5efe2b4c93ac..7dd2d71bf66b 100644 --- a/cmd/devp2p/nodesetcmd.go +++ b/cmd/devp2p/nodesetcmd.go @@ -17,8 +17,12 @@ package main import ( + "errors" "fmt" - "net" + "net/netip" + "sort" + "strconv" + "strings" "time" "github.com/XinFinOrg/XDPoSChain/core/forkid" @@ -55,30 +59,69 @@ var ( func nodesetInfo(ctx *cli.Context) error { if ctx.NArg() < 1 { - return fmt.Errorf("need nodes file as argument") + return errors.New("need nodes file as argument") } ns := loadNodesJSON(ctx.Args().First()) fmt.Printf("Set contains %d nodes.\n", len(ns)) + showAttributeCounts(ns) return nil } +// showAttributeCounts prints the distribution of ENR attributes in a node set. +func showAttributeCounts(ns nodeSet) { + attrcount := make(map[string]int) + var attrlist []interface{} + for _, n := range ns { + r := n.N.Record() + attrlist = r.AppendElements(attrlist[:0])[1:] + for i := 0; i < len(attrlist); i += 2 { + key := attrlist[i].(string) + attrcount[key]++ + } + } + + var keys []string + var maxlength int + for key := range attrcount { + keys = append(keys, key) + if len(key) > maxlength { + maxlength = len(key) + } + } + sort.Strings(keys) + fmt.Println("ENR attribute counts:") + for _, key := range keys { + fmt.Printf("%s%s: %d\n", strings.Repeat(" ", maxlength-len(key)+1), key, attrcount[key]) + } +} + func nodesetFilter(ctx *cli.Context) error { if ctx.NArg() < 1 { - return fmt.Errorf("need nodes file as argument") + return errors.New("need nodes file as argument") } - ns := loadNodesJSON(ctx.Args().First()) + // Parse -limit. + limit, err := parseFilterLimit(ctx.Args().Tail()) + if err != nil { + return err + } + // Parse the filters. filter, err := andFilter(ctx.Args().Tail()) if err != nil { return err } + // Load nodes and apply filters. + ns := loadNodesJSON(ctx.Args().First()) result := make(nodeSet) for id, n := range ns { if filter(n) { result[id] = n } } + if limit >= 0 { + result = result.topN(limit) + } writeNodesJSON("-", result) return nil } @@ -91,12 +134,15 @@ type nodeFilterC struct { } var filterFlags = map[string]nodeFilterC{ + "-limit": {1, trueFilter}, // needed to skip over -limit "-ip": {1, ipFilter}, "-min-age": {1, minAgeFilter}, "-eth-network": {1, ethFilter}, "-les-server": {0, lesFilter}, + "-snap": {0, snapFilter}, } +// parseFilters parses nodeFilters from args. func parseFilters(args []string) ([]nodeFilter, error) { var filters []nodeFilter for len(args) > 0 { @@ -104,19 +150,39 @@ func parseFilters(args []string) ([]nodeFilter, error) { if !ok { return nil, fmt.Errorf("invalid filter %q", args[0]) } - if len(args) < fc.narg { - return nil, fmt.Errorf("filter %q wants %d arguments, have %d", args[0], fc.narg, len(args)) + if len(args)-1 < fc.narg { + return nil, fmt.Errorf("filter %q wants %d arguments, have %d", args[0], fc.narg, len(args)-1) } - filter, err := fc.fn(args[1:]) + filter, err := fc.fn(args[1 : 1+fc.narg]) if err != nil { return nil, fmt.Errorf("%s: %v", args[0], err) } filters = append(filters, filter) - args = args[fc.narg+1:] + args = args[1+fc.narg:] } return filters, nil } +// parseFilterLimit parses the -limit option in args. It returns -1 if there is no limit. +func parseFilterLimit(args []string) (int, error) { + limit := -1 + for i, arg := range args { + if arg == "-limit" { + if i == len(args)-1 { + return -1, errors.New("-limit requires an argument") + } + n, err := strconv.Atoi(args[i+1]) + if err != nil { + return -1, fmt.Errorf("invalid -limit %q", args[i+1]) + } + limit = n + } + } + return limit, nil +} + +// andFilter parses node filters in args and returns a single filter that requires all +// of them to match. func andFilter(args []string) (nodeFilter, error) { checks, err := parseFilters(args) if err != nil { @@ -133,12 +199,16 @@ func andFilter(args []string) (nodeFilter, error) { return f, nil } +func trueFilter(args []string) (nodeFilter, error) { + return func(n nodeJSON) bool { return true }, nil +} + func ipFilter(args []string) (nodeFilter, error) { - _, cidr, err := net.ParseCIDR(args[0]) + prefix, err := netip.ParsePrefix(args[0]) if err != nil { return nil, err } - f := func(n nodeJSON) bool { return cidr.Contains(n.N.IP()) } + f := func(n nodeJSON) bool { return prefix.Contains(n.N.IPAddr()) } return f, nil } @@ -155,7 +225,7 @@ func minAgeFilter(args []string) (nodeFilter, error) { } func ethFilter(args []string) (nodeFilter, error) { - var filter func(forkid.ID) error + var filter forkid.Filter switch args[0] { case "mainnet", "xinfin": filter = forkid.NewStaticFilter(params.MainnetChainConfig, params.MainnetGenesisHash) @@ -170,7 +240,7 @@ func ethFilter(args []string) (nodeFilter, error) { f := func(n nodeJSON) bool { var eth struct { ForkID forkid.ID - _ []rlp.RawValue `rlp:"tail"` + Tail []rlp.RawValue `rlp:"tail"` } if n.N.Load(enr.WithEntry("eth", ð)) != nil { return false @@ -183,9 +253,19 @@ func ethFilter(args []string) (nodeFilter, error) { func lesFilter(args []string) (nodeFilter, error) { f := func(n nodeJSON) bool { var les struct { - _ []rlp.RawValue `rlp:"tail"` + Tail []rlp.RawValue `rlp:"tail"` } return n.N.Load(enr.WithEntry("les", &les)) == nil } return f, nil } + +func snapFilter(args []string) (nodeFilter, error) { + f := func(n nodeJSON) bool { + var snap struct { + Tail []rlp.RawValue `rlp:"tail"` + } + return n.N.Load(enr.WithEntry("snap", &snap)) == nil + } + return f, nil +} diff --git a/core/forkid/forkid.go b/core/forkid/forkid.go index a3eb261034fa..94228412dc8f 100644 --- a/core/forkid/forkid.go +++ b/core/forkid/forkid.go @@ -59,6 +59,9 @@ type ID struct { Next uint64 // Block number of the next upcoming fork, or 0 if no forks are known } +// Filter is a fork id filter to validate a remotely advertised ID. +type Filter func(id ID) error + // NewID calculates the XDC fork ID from the chain config, genesis hash, head. func NewID(config *params.ChainConfig, genesis *types.Block, head uint64) ID { // Calculate the starting checksum from the genesis hash From a313387660b32047a833dcd4eab7836d5cabd9b0 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 16:06:20 +0800 Subject: [PATCH 09/14] feat(cmd/devp2p): upgrade rlpx command --- cmd/devp2p/internal/ethtest/protocol.go | 34 +++++++++++ cmd/devp2p/rlpxcmd.go | 73 +++++++++++++++--------- cmd/devp2p/rlpxcmd_test.go | 75 +++++++++++++++++++++++++ 3 files changed, 154 insertions(+), 28 deletions(-) create mode 100644 cmd/devp2p/internal/ethtest/protocol.go create mode 100644 cmd/devp2p/rlpxcmd_test.go diff --git a/cmd/devp2p/internal/ethtest/protocol.go b/cmd/devp2p/internal/ethtest/protocol.go new file mode 100644 index 000000000000..e7eb62477a37 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/protocol.go @@ -0,0 +1,34 @@ +// Copyright 2023 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package ethtest + +import ( + "github.com/XinFinOrg/XDPoSChain/p2p" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +// Unexported handshake structure from p2p/peer.go. +type protoHandshake struct { + Version uint64 + Name string + Caps []p2p.Cap + ListenPort uint64 + ID []byte + Rest []rlp.RawValue `rlp:"tail"` +} + +type Hello = protoHandshake diff --git a/cmd/devp2p/rlpxcmd.go b/cmd/devp2p/rlpxcmd.go index 55e22a66e4ac..d074e949a639 100644 --- a/cmd/devp2p/rlpxcmd.go +++ b/cmd/devp2p/rlpxcmd.go @@ -17,10 +17,12 @@ package main import ( + "bytes" + "errors" "fmt" "net" - "github.com/XinFinOrg/XDPoSChain/common/hexutil" + "github.com/XinFinOrg/XDPoSChain/cmd/devp2p/internal/ethtest" "github.com/XinFinOrg/XDPoSChain/crypto" "github.com/XinFinOrg/XDPoSChain/p2p" "github.com/XinFinOrg/XDPoSChain/p2p/rlpx" @@ -37,66 +39,81 @@ var ( }, } rlpxPingCommand = &cli.Command{ - Name: "ping", - Usage: "Perform a RLPx handshake", - ArgsUsage: "", - Action: rlpxPing, + Name: "ping", + Usage: "Perform a RLPx handshake", + Action: rlpxPing, } ) func rlpxPing(ctx *cli.Context) error { n := getNodeArg(ctx) - - fd, err := net.Dial("tcp", fmt.Sprintf("%v:%d", n.IP(), n.TCP())) + tcpEndpoint, ok := n.TCPEndpoint() + if !ok { + return errors.New("node has no TCP endpoint") + } + fd, err := net.Dial("tcp", tcpEndpoint.String()) if err != nil { return err } defer fd.Close() - conn := rlpx.NewConn(fd, n.Pubkey()) + conn := rlpx.NewConn(fd, n.Pubkey()) ourKey, err := crypto.GenerateKey() if err != nil { return err } - _, err = conn.Handshake(ourKey) if err != nil { return err } - code, data, _, err := conn.Read() if err != nil { return err } switch code { case 0: - var h devp2pHandshake + var h ethtest.Hello if err := rlp.DecodeBytes(data, &h); err != nil { return fmt.Errorf("invalid handshake: %v", err) } fmt.Printf("%+v\n", h) case 1: - var msg []p2p.DiscReason - if err := rlp.DecodeBytes(data, &msg); err != nil { - return fmt.Errorf("invalid disconnect message: %v", err) - } - if len(msg) == 0 { - return fmt.Errorf("invalid disconnect message") + // The disconnect message is specified as a list containing the reason, + // but some implementations (including older geth) send the reason as a + // single byte. Handle both forms, and on failure include the raw payload + // so the operator can see what was actually sent. + reason, decErr := decodeRLPxDisconnect(data) + if decErr != nil { + return fmt.Errorf("invalid disconnect message: %v (raw=0x%x)", decErr, data) } - return fmt.Errorf("received disconnect message: %v", msg[0]) + return fmt.Errorf("received disconnect message: %v", reason) default: - return fmt.Errorf("invalid message code %d, expected handshake (code zero)", code) + return fmt.Errorf("invalid message code %d, expected handshake (code zero) or disconnect (code one)", code) } return nil } -// devp2pHandshake is the RLP structure of the devp2p protocol handshake. -type devp2pHandshake struct { - Version uint64 - Name string - Caps []p2p.Cap - ListenPort uint64 - ID hexutil.Bytes // secp256k1 public key - // Ignore additional fields (for forward compatibility). - Rest []rlp.RawValue `rlp:"tail"` +// decodeRLPxDisconnect parses a disconnect message payload. Per the RLPx spec +// the payload is a list containing a single reason, but some implementations +// (including older geth) sent the reason as a bare byte. Accept both forms. +func decodeRLPxDisconnect(data []byte) (p2p.DiscReason, error) { + s := rlp.NewStream(bytes.NewReader(data), uint64(len(data))) + k, _, err := s.Kind() + if err != nil { + return 0, err + } + var reason p2p.DiscReason + if k == rlp.List { + if _, err := s.List(); err != nil { + return 0, err + } + if err := s.Decode(&reason); err != nil { + return 0, err + } + return reason, nil + } + if err := s.Decode(&reason); err != nil { + return 0, err + } + return reason, nil } diff --git a/cmd/devp2p/rlpxcmd_test.go b/cmd/devp2p/rlpxcmd_test.go new file mode 100644 index 000000000000..c1a2b32627f7 --- /dev/null +++ b/cmd/devp2p/rlpxcmd_test.go @@ -0,0 +1,75 @@ +// Copyright 2026 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "testing" + + "github.com/XinFinOrg/XDPoSChain/p2p" +) + +func TestDecodeRLPxDisconnect(t *testing.T) { + tests := []struct { + name string + payload []byte + want p2p.DiscReason + wantErr bool + }{ + { + name: "list form (spec-compliant)", + payload: []byte{0xc1, 0x04}, // [4] = TooManyPeers + want: p2p.DiscTooManyPeers, + }, + { + name: "list form with reason zero", + payload: []byte{0xc1, 0x80}, // [0] = Requested + want: p2p.DiscRequested, + }, + { + name: "bare byte form (legacy geth)", + payload: []byte{0x04}, // 4 = TooManyPeers + want: p2p.DiscTooManyPeers, + }, + { + name: "bare byte form zero", + payload: []byte{0x80}, // 0 = Requested + want: p2p.DiscRequested, + }, + { + name: "empty payload", + payload: []byte{}, + wantErr: true, + }, + } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + got, err := decodeRLPxDisconnect(tc.payload) + if tc.wantErr { + if err == nil { + t.Fatalf("expected error, got reason=%v", got) + } + return + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if got != tc.want { + t.Fatalf("got reason %v, want %v", got, tc.want) + } + }) + } +} From 5f18d9ff99db9aa8a77cc84af43ac0d8a902267c Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 16:16:31 +0800 Subject: [PATCH 10/14] docs(cmd/devp2p): add README.md --- cmd/devp2p/README.md | 140 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 cmd/devp2p/README.md diff --git a/cmd/devp2p/README.md b/cmd/devp2p/README.md new file mode 100644 index 000000000000..2b091b830c58 --- /dev/null +++ b/cmd/devp2p/README.md @@ -0,0 +1,140 @@ +# The devp2p command + +The devp2p command line tool is a utility for low-level peer-to-peer debugging and +protocol development purposes. It can do many things. + +## ENR Decoding + +Use `devp2p enrdump ` to verify and display an Ethereum Node Record. + +## Node Key Management + +The `devp2p key ...` command family deals with node key files. + +Run `devp2p key generate mynode.key` to create a new node key in the `mynode.key` file. + +Run `devp2p key to-enode mynode.key -ip 127.0.0.1 -tcp 30303` to create an enode:// URL +corresponding to the given node key and address information. + +## Maintaining DNS Discovery Node Lists + +The devp2p command can create and publish DNS discovery node lists. + +Run `devp2p dns sign ` to update the signature of a DNS discovery tree. + +Run `devp2p dns sync ` to download a complete DNS discovery tree. + +Run `devp2p dns to-cloudflare ` to publish a tree to CloudFlare DNS. + +Run `devp2p dns to-route53 ` to publish a tree to Amazon Route53. + +You can find more information about these commands in the [DNS Discovery Setup Guide][dns-tutorial]. + +## Node Set Utilities + +There are several commands for working with JSON node set files. These files are generated +by the discovery crawlers and DNS client commands. Node sets also used as the input of the +DNS deployer commands. + +Run `devp2p nodeset info ` to display statistics of a node set. + +Run `devp2p nodeset filter ` to write a new, filtered node +set to standard output. The following filters are supported: + +- `-limit ` limits the output set to N entries, taking the top N nodes by score +- `-ip ` filters nodes by IP subnet +- `-min-age ` filters nodes by 'first seen' time +- `-eth-network ` filters nodes by "eth" ENR entry +- `-les-server` filters nodes by LES server support +- `-snap` filters nodes by snap protocol support + +For example, given a node set in `nodes.json`, you could create a filtered set containing +up to 20 eth mainnet nodes which also support snap sync using this command: + + devp2p nodeset filter nodes.json -eth-network mainnet -snap -limit 20 + +## Discovery v4 Utilities + +The `devp2p discv4 ...` command family deals with the [Node Discovery v4][discv4] +protocol. + +Run `devp2p discv4 ping ` to ping a node. + +Run `devp2p discv4 resolve ` to find the most recent node record of a node in +the DHT. + +Run `devp2p discv4 crawl ` to create or update a JSON node set. + +## Discovery v5 Utilities + +The `devp2p discv5 ...` command family deals with the [Node Discovery v5][discv5] +protocol. This protocol is currently under active development. + +Run `devp2p discv5 ping ` to ping a node. + +Run `devp2p discv5 resolve ` to find the most recent node record of a node in +the discv5 DHT. + +Run `devp2p discv5 listen` to run a Discovery v5 node. + +Run `devp2p discv5 crawl ` to create or update a JSON node set containing +discv5 nodes. + +## Discovery Test Suites + +The devp2p command also contains interactive test suites for Discovery v4 and Discovery +v5. + +To run these tests against your implementation, you need to set up a networking +environment where two separate UDP listening addresses are available on the same machine. +The two listening addresses must also be routed such that they are able to reach the node +you want to test. + +For example, if you want to run the test on your local host, and the node under test is +also on the local host, you need to assign two IP addresses (or a larger range) to your +loopback interface. On macOS, this can be done by executing the following command: + + sudo ifconfig lo0 add 127.0.0.2 + +You can now run either test suite as follows: Start the node under test first, ensuring +that it won't talk to the Internet (i.e. disable bootstrapping). An easy way to prevent +unintended connections to the global DHT is listening on `127.0.0.1`. + +Now get the ENR of your node and store it in the `NODE` environment variable. + +Start the test by running `devp2p discv5 test -listen1 127.0.0.1 -listen2 127.0.0.2 $NODE`. + +## Eth Protocol Test Suite + +The Eth Protocol test suite is a conformance test suite for the [eth protocol][eth]. + +To run the eth protocol test suite against your implementation, the node needs to be initialized +with our test chain. The chain files are located in `./cmd/devp2p/internal/ethtest/testdata`. + +1. initialize the geth node with the `genesis.json` file +2. import blocks from `chain.rlp` +3. run the client using the resulting database. For geth, use a command like the one below: + + geth \ + --datadir \ + --nodiscover \ + --nat=none \ + --networkid 3503995874084926 \ + --verbosity 5 \ + --authrpc.jwtsecret jwt.secret + +Note that the tests also require access to the engine API. +The test suite can now be executed using the devp2p tool. + + devp2p rlpx eth-test \ + --chain internal/ethtest/testdata \ + --node enode://.... \ + --engineapi http://127.0.0.1:8551 \ + --jwtsecret $(cat jwt.secret) + +Repeat the above process (re-initialising the node) in order to run the Eth Protocol test suite again. + +[eth]: https://github.com/ethereum/devp2p/blob/master/caps/eth.md +[dns-tutorial]: https://geth.ethereum.org/docs/developers/geth-developer/dns-discovery-setup +[discv4]: https://github.com/ethereum/devp2p/tree/master/discv4.md +[discv5]: https://github.com/ethereum/devp2p/tree/master/discv5/discv5.md From efbe0e6c6a63eefda697e6aa6c408c8bcbb667eb Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 17:05:23 +0800 Subject: [PATCH 11/14] feat(internal/utesting): port test suite from geth --- internal/utesting/utesting.go | 339 +++++++++++++++++++++++++++++ internal/utesting/utesting_test.go | 145 ++++++++++++ 2 files changed, 484 insertions(+) create mode 100644 internal/utesting/utesting.go create mode 100644 internal/utesting/utesting_test.go diff --git a/internal/utesting/utesting.go b/internal/utesting/utesting.go new file mode 100644 index 000000000000..8260de1d7603 --- /dev/null +++ b/internal/utesting/utesting.go @@ -0,0 +1,339 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +// Package utesting provides a standalone replacement for package testing. +// +// This package exists because package testing cannot easily be embedded into a +// standalone go program. It provides an API that mirrors the standard library +// testing API. +package utesting + +import ( + "bytes" + "fmt" + "io" + "regexp" + "runtime" + "sync" + "time" +) + +// Test represents a single test. +type Test struct { + Name string + Fn func(*T) + Slow bool +} + +// Result is the result of a test execution. +type Result struct { + Name string + Failed bool + Output string + Duration time.Duration +} + +// MatchTests returns the tests whose name matches a regular expression. +func MatchTests(tests []Test, expr string) []Test { + var results []Test + re, err := regexp.Compile(expr) + if err != nil { + return nil + } + for _, test := range tests { + if re.MatchString(test.Name) { + results = append(results, test) + } + } + return results +} + +// RunTests executes all given tests in order and returns their results. +// If the report writer is non-nil, a test report is written to it in real time. +func RunTests(tests []Test, report io.Writer) []Result { + if report == nil { + report = io.Discard + } + results := run(tests, newConsoleOutput(report)) + fails := CountFailures(results) + fmt.Fprintf(report, "%v/%v tests passed.\n", len(tests)-fails, len(tests)) + return results +} + +// RunTAP runs the given tests and writes Test Anything Protocol output +// to the report writer. +func RunTAP(tests []Test, report io.Writer) []Result { + return run(tests, newTAP(report, len(tests))) +} + +func run(tests []Test, output testOutput) []Result { + var results = make([]Result, len(tests)) + for i, test := range tests { + buffer := new(bytes.Buffer) + logOutput := io.MultiWriter(buffer, output) + + output.testStart(test.Name) + start := time.Now() + results[i].Name = test.Name + results[i].Failed = runTest(test, logOutput) + results[i].Duration = time.Since(start) + results[i].Output = buffer.String() + output.testResult(results[i]) + } + return results +} + +// testOutput is implemented by output formats. +type testOutput interface { + testStart(name string) + Write([]byte) (int, error) + testResult(Result) +} + +// consoleOutput prints test results similarly to go test. +type consoleOutput struct { + out io.Writer + indented *indentWriter + curTest string + wroteHeader bool +} + +func newConsoleOutput(w io.Writer) *consoleOutput { + return &consoleOutput{ + out: w, + indented: newIndentWriter(" ", w), + } +} + +// testStart signals the start of a new test. +func (c *consoleOutput) testStart(name string) { + c.curTest = name + c.wroteHeader = false +} + +// Write handles test log output. +func (c *consoleOutput) Write(b []byte) (int, error) { + if !c.wroteHeader { + // This is the first output line from the test. Print a "-- RUN" header. + fmt.Fprintln(c.out, "-- RUN", c.curTest) + c.wroteHeader = true + } + return c.indented.Write(b) +} + +// testResult prints the final test result line. +func (c *consoleOutput) testResult(r Result) { + c.indented.flush() + pd := r.Duration.Truncate(100 * time.Microsecond) + if r.Failed { + fmt.Fprintf(c.out, "-- FAIL %s (%v)\n", r.Name, pd) + } else { + fmt.Fprintf(c.out, "-- OK %s (%v)\n", r.Name, pd) + } +} + +// tapOutput produces Test Anything Protocol v13 output. +type tapOutput struct { + out io.Writer + indented *indentWriter + counter int +} + +func newTAP(out io.Writer, numTests int) *tapOutput { + fmt.Fprintf(out, "1..%d\n", numTests) + return &tapOutput{ + out: out, + indented: newIndentWriter("# ", out), + } +} + +func (t *tapOutput) testStart(name string) { + t.counter++ +} + +// Write does nothing for TAP because there is no real-time output of test logs. +func (t *tapOutput) Write(b []byte) (int, error) { + return len(b), nil +} + +func (t *tapOutput) testResult(r Result) { + status := "ok" + if r.Failed { + status = "not ok" + } + fmt.Fprintln(t.out, status, t.counter, r.Name) + t.indented.Write([]byte(r.Output)) + t.indented.flush() +} + +// indentWriter indents all written text. +type indentWriter struct { + out io.Writer + indent string + inLine bool +} + +func newIndentWriter(indent string, out io.Writer) *indentWriter { + return &indentWriter{out: out, indent: indent} +} + +func (w *indentWriter) Write(b []byte) (n int, err error) { + for len(b) > 0 { + if !w.inLine { + if _, err = io.WriteString(w.out, w.indent); err != nil { + return n, err + } + w.inLine = true + } + + end := bytes.IndexByte(b, '\n') + if end == -1 { + nn, err := w.out.Write(b) + n += nn + return n, err + } + + line := b[:end+1] + nn, err := w.out.Write(line) + n += nn + if err != nil { + return n, err + } + b = b[end+1:] + w.inLine = false + } + return n, err +} + +// flush ensures the current line is terminated. +func (w *indentWriter) flush() { + if w.inLine { + fmt.Println(w.out) + w.inLine = false + } +} + +// CountFailures returns the number of failed tests in the result slice. +func CountFailures(rr []Result) int { + count := 0 + for _, r := range rr { + if r.Failed { + count++ + } + } + return count +} + +// Run executes a single test. +func Run(test Test) (bool, string) { + output := new(bytes.Buffer) + failed := runTest(test, output) + return failed, output.String() +} + +func runTest(test Test, output io.Writer) bool { + t := &T{output: output} + done := make(chan struct{}) + go func() { + defer close(done) + defer func() { + if err := recover(); err != nil { + buf := make([]byte, 4096) + i := runtime.Stack(buf, false) + t.Logf("panic: %v\n\n%s", err, buf[:i]) + t.Fail() + } + }() + test.Fn(t) + }() + <-done + return t.failed +} + +// T is the value given to the test function. The test can signal failures +// and log output by calling methods on this object. +type T struct { + mu sync.Mutex + failed bool + output io.Writer +} + +// Helper exists for compatibility with testing.T. +func (t *T) Helper() {} + +// FailNow marks the test as having failed and stops its execution by calling +// runtime.Goexit (which then runs all deferred calls in the current goroutine). +func (t *T) FailNow() { + t.Fail() + runtime.Goexit() +} + +// Fail marks the test as having failed but continues execution. +func (t *T) Fail() { + t.mu.Lock() + defer t.mu.Unlock() + t.failed = true +} + +// Failed reports whether the test has failed. +func (t *T) Failed() bool { + t.mu.Lock() + defer t.mu.Unlock() + return t.failed +} + +// Log formats its arguments using default formatting, analogous to Println, and records +// the text in the error log. +func (t *T) Log(vs ...interface{}) { + t.mu.Lock() + defer t.mu.Unlock() + fmt.Fprintln(t.output, vs...) +} + +// Logf formats its arguments according to the format, analogous to Printf, and records +// the text in the error log. A final newline is added if not provided. +func (t *T) Logf(format string, vs ...interface{}) { + t.mu.Lock() + defer t.mu.Unlock() + if len(format) == 0 || format[len(format)-1] != '\n' { + format += "\n" + } + fmt.Fprintf(t.output, format, vs...) +} + +// Error is equivalent to Log followed by Fail. +func (t *T) Error(vs ...interface{}) { + t.Log(vs...) + t.Fail() +} + +// Errorf is equivalent to Logf followed by Fail. +func (t *T) Errorf(format string, vs ...interface{}) { + t.Logf(format, vs...) + t.Fail() +} + +// Fatal is equivalent to Log followed by FailNow. +func (t *T) Fatal(vs ...interface{}) { + t.Log(vs...) + t.FailNow() +} + +// Fatalf is equivalent to Logf followed by FailNow. +func (t *T) Fatalf(format string, vs ...interface{}) { + t.Logf(format, vs...) + t.FailNow() +} diff --git a/internal/utesting/utesting_test.go b/internal/utesting/utesting_test.go new file mode 100644 index 000000000000..526d36bab1e3 --- /dev/null +++ b/internal/utesting/utesting_test.go @@ -0,0 +1,145 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package utesting + +import ( + "bytes" + "regexp" + "strings" + "testing" +) + +func TestTest(t *testing.T) { + t.Parallel() + + tests := []Test{ + { + Name: "successful test", + Fn: func(t *T) {}, + }, + { + Name: "failing test", + Fn: func(t *T) { + t.Log("output") + t.Error("failed") + }, + }, + { + Name: "panicking test", + Fn: func(t *T) { + panic("oh no") + }, + }, + } + results := RunTests(tests, nil) + + if results[0].Failed || results[0].Output != "" { + t.Fatalf("wrong result for successful test: %#v", results[0]) + } + if !results[1].Failed || results[1].Output != "output\nfailed\n" { + t.Fatalf("wrong result for failing test: %#v", results[1]) + } + if !results[2].Failed || !strings.HasPrefix(results[2].Output, "panic: oh no\n") { + t.Fatalf("wrong result for panicking test: %#v", results[2]) + } +} + +var outputTests = []Test{ + { + Name: "TestWithLogs", + Fn: func(t *T) { + t.Log("output line 1") + t.Log("output line 2\noutput line 3") + }, + }, + { + Name: "TestNoLogs", + Fn: func(t *T) {}, + }, + { + Name: "FailWithLogs", + Fn: func(t *T) { + t.Log("output line 1") + t.Error("failed 1") + }, + }, + { + Name: "FailMessage", + Fn: func(t *T) { + t.Error("failed 2") + }, + }, + { + Name: "FailNoOutput", + Fn: func(t *T) { + t.Fail() + }, + }, +} + +func TestOutput(t *testing.T) { + t.Parallel() + + var buf bytes.Buffer + RunTests(outputTests, &buf) + + want := regexp.MustCompile(` +^-- RUN TestWithLogs + output line 1 + output line 2 + output line 3 +-- OK TestWithLogs \([^)]+\) +-- OK TestNoLogs \([^)]+\) +-- RUN FailWithLogs + output line 1 + failed 1 +-- FAIL FailWithLogs \([^)]+\) +-- RUN FailMessage + failed 2 +-- FAIL FailMessage \([^)]+\) +-- FAIL FailNoOutput \([^)]+\) +2/5 tests passed. +$`[1:]) + if !want.MatchString(buf.String()) { + t.Fatalf("output does not match: %q", buf.String()) + } +} + +func TestOutputTAP(t *testing.T) { + t.Parallel() + + var buf bytes.Buffer + RunTAP(outputTests, &buf) + + want := ` +1..5 +ok 1 TestWithLogs +# output line 1 +# output line 2 +# output line 3 +ok 2 TestNoLogs +not ok 3 FailWithLogs +# output line 1 +# failed 1 +not ok 4 FailMessage +# failed 2 +not ok 5 FailNoOutput +` + if buf.String() != want[1:] { + t.Fatalf("output does not match: %q", buf.String()) + } +} From 83649adc83f25cc39e0fca30c7f0a960e62b6a4e Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 14 Oct 2020 12:28:17 +0200 Subject: [PATCH 12/14] feat(p2p/discover): implement v5.1 wire protocol #21647 This change implements the Discovery v5.1 wire protocol and also adds an interactive test suite for this protocol. --- cmd/devp2p/internal/v5test/discv5tests.go | 377 ++++++++++ cmd/devp2p/internal/v5test/framework.go | 263 +++++++ p2p/discover/node.go | 5 +- p2p/discover/table_util_test.go | 17 +- p2p/discover/v4_lookup_test.go | 16 +- p2p/discover/v5_encoding.go | 659 ------------------ p2p/discover/v5_encoding_test.go | 373 ---------- p2p/discover/v5_udp.go | 463 ++++++------ p2p/discover/v5_udp_test.go | 331 ++++++--- p2p/discover/v5wire/crypto.go | 180 +++++ p2p/discover/v5wire/crypto_test.go | 124 ++++ p2p/discover/v5wire/encoding.go | 648 +++++++++++++++++ p2p/discover/v5wire/encoding_test.go | 635 +++++++++++++++++ p2p/discover/v5wire/msg.go | 249 +++++++ .../{v5_session.go => v5wire/session.go} | 81 ++- .../testdata/v5.1-ping-handshake-enr.txt | 27 + .../v5wire/testdata/v5.1-ping-handshake.txt | 23 + .../v5wire/testdata/v5.1-ping-message.txt | 10 + .../v5wire/testdata/v5.1-whoareyou.txt | 9 + p2p/netutil/error.go | 10 + p2p/netutil/error_test.go | 30 + 21 files changed, 3121 insertions(+), 1409 deletions(-) create mode 100644 cmd/devp2p/internal/v5test/discv5tests.go create mode 100644 cmd/devp2p/internal/v5test/framework.go delete mode 100644 p2p/discover/v5_encoding.go delete mode 100644 p2p/discover/v5_encoding_test.go create mode 100644 p2p/discover/v5wire/crypto.go create mode 100644 p2p/discover/v5wire/crypto_test.go create mode 100644 p2p/discover/v5wire/encoding.go create mode 100644 p2p/discover/v5wire/encoding_test.go create mode 100644 p2p/discover/v5wire/msg.go rename p2p/discover/{v5_session.go => v5wire/session.go} (58%) create mode 100644 p2p/discover/v5wire/testdata/v5.1-ping-handshake-enr.txt create mode 100644 p2p/discover/v5wire/testdata/v5.1-ping-handshake.txt create mode 100644 p2p/discover/v5wire/testdata/v5.1-ping-message.txt create mode 100644 p2p/discover/v5wire/testdata/v5.1-whoareyou.txt diff --git a/cmd/devp2p/internal/v5test/discv5tests.go b/cmd/devp2p/internal/v5test/discv5tests.go new file mode 100644 index 000000000000..f622b080766d --- /dev/null +++ b/cmd/devp2p/internal/v5test/discv5tests.go @@ -0,0 +1,377 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package v5test + +import ( + "bytes" + "net" + "sync" + "time" + + "github.com/XinFinOrg/XDPoSChain/internal/utesting" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v5wire" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/netutil" +) + +// Suite is the discv5 test suite. +type Suite struct { + Dest *enode.Node + Listen1, Listen2 string // listening addresses +} + +func (s *Suite) listen1(log logger) (*conn, net.PacketConn) { + c := newConn(s.Dest, log) + l := c.listen(s.Listen1) + return c, l +} + +func (s *Suite) listen2(log logger) (*conn, net.PacketConn, net.PacketConn) { + c := newConn(s.Dest, log) + l1, l2 := c.listen(s.Listen1), c.listen(s.Listen2) + return c, l1, l2 +} + +func (s *Suite) AllTests() []utesting.Test { + return []utesting.Test{ + {Name: "Ping", Fn: s.TestPing}, + {Name: "PingLargeRequestID", Fn: s.TestPingLargeRequestID}, + {Name: "PingMultiIP", Fn: s.TestPingMultiIP}, + {Name: "PingHandshakeInterrupted", Fn: s.TestPingHandshakeInterrupted}, + {Name: "TalkRequest", Fn: s.TestTalkRequest}, + {Name: "FindnodeZeroDistance", Fn: s.TestFindnodeZeroDistance}, + {Name: "FindnodeResults", Fn: s.TestFindnodeResults}, + } +} + +// This test sends PING and expects a PONG response. +func (s *Suite) TestPing(t *utesting.T) { + conn, l1 := s.listen1(t) + defer conn.close() + + ping := &v5wire.Ping{ReqID: conn.nextReqID()} + switch resp := conn.reqresp(l1, ping).(type) { + case *v5wire.Pong: + checkPong(t, resp, ping, l1) + default: + t.Fatal("expected PONG, got", resp.Name()) + } +} + +func checkPong(t *utesting.T, pong *v5wire.Pong, ping *v5wire.Ping, c net.PacketConn) { + if !bytes.Equal(pong.ReqID, ping.ReqID) { + t.Fatalf("wrong request ID %x in PONG, want %x", pong.ReqID, ping.ReqID) + } + if !pong.ToIP.Equal(laddr(c).IP) { + t.Fatalf("wrong destination IP %v in PONG, want %v", pong.ToIP, laddr(c).IP) + } + if int(pong.ToPort) != laddr(c).Port { + t.Fatalf("wrong destination port %v in PONG, want %v", pong.ToPort, laddr(c).Port) + } +} + +// This test sends PING with a 9-byte request ID, which isn't allowed by the spec. +// The remote node should not respond. +func (s *Suite) TestPingLargeRequestID(t *utesting.T) { + conn, l1 := s.listen1(t) + defer conn.close() + + ping := &v5wire.Ping{ReqID: make([]byte, 9)} + switch resp := conn.reqresp(l1, ping).(type) { + case *v5wire.Pong: + t.Errorf("PONG response with unknown request ID %x", resp.ReqID) + case *readError: + if resp.err == v5wire.ErrInvalidReqID { + t.Error("response with oversized request ID") + } else if !netutil.IsTimeout(resp.err) { + t.Error(resp) + } + } +} + +// In this test, a session is established from one IP as usual. The session is then reused +// on another IP, which shouldn't work. The remote node should respond with WHOAREYOU for +// the attempt from a different IP. +func (s *Suite) TestPingMultiIP(t *utesting.T) { + conn, l1, l2 := s.listen2(t) + defer conn.close() + + // Create the session on l1. + ping := &v5wire.Ping{ReqID: conn.nextReqID()} + resp := conn.reqresp(l1, ping) + if resp.Kind() != v5wire.PongMsg { + t.Fatal("expected PONG, got", resp) + } + checkPong(t, resp.(*v5wire.Pong), ping, l1) + + // Send on l2. This reuses the session because there is only one codec. + ping2 := &v5wire.Ping{ReqID: conn.nextReqID()} + conn.write(l2, ping2, nil) + switch resp := conn.read(l2).(type) { + case *v5wire.Pong: + t.Fatalf("remote responded to PING from %v for session on IP %v", laddr(l2).IP, laddr(l1).IP) + case *v5wire.Whoareyou: + t.Logf("got WHOAREYOU for new session as expected") + resp.Node = s.Dest + conn.write(l2, ping2, resp) + default: + t.Fatal("expected WHOAREYOU, got", resp) + } + + // Catch the PONG on l2. + switch resp := conn.read(l2).(type) { + case *v5wire.Pong: + checkPong(t, resp, ping2, l2) + default: + t.Fatal("expected PONG, got", resp) + } + + // Try on l1 again. + ping3 := &v5wire.Ping{ReqID: conn.nextReqID()} + conn.write(l1, ping3, nil) + switch resp := conn.read(l1).(type) { + case *v5wire.Pong: + t.Fatalf("remote responded to PING from %v for session on IP %v", laddr(l1).IP, laddr(l2).IP) + case *v5wire.Whoareyou: + t.Logf("got WHOAREYOU for new session as expected") + default: + t.Fatal("expected WHOAREYOU, got", resp) + } +} + +// This test starts a handshake, but doesn't finish it and sends a second ordinary message +// packet instead of a handshake message packet. The remote node should respond with +// another WHOAREYOU challenge for the second packet. +func (s *Suite) TestPingHandshakeInterrupted(t *utesting.T) { + conn, l1 := s.listen1(t) + defer conn.close() + + // First PING triggers challenge. + ping := &v5wire.Ping{ReqID: conn.nextReqID()} + conn.write(l1, ping, nil) + switch resp := conn.read(l1).(type) { + case *v5wire.Whoareyou: + t.Logf("got WHOAREYOU for PING") + default: + t.Fatal("expected WHOAREYOU, got", resp) + } + + // Send second PING. + ping2 := &v5wire.Ping{ReqID: conn.nextReqID()} + switch resp := conn.reqresp(l1, ping2).(type) { + case *v5wire.Pong: + checkPong(t, resp, ping2, l1) + default: + t.Fatal("expected WHOAREYOU, got", resp) + } +} + +// This test sends TALKREQ and expects an empty TALKRESP response. +func (s *Suite) TestTalkRequest(t *utesting.T) { + conn, l1 := s.listen1(t) + defer conn.close() + + // Non-empty request ID. + id := conn.nextReqID() + resp := conn.reqresp(l1, &v5wire.TalkRequest{ReqID: id, Protocol: "test-protocol"}) + switch resp := resp.(type) { + case *v5wire.TalkResponse: + if !bytes.Equal(resp.ReqID, id) { + t.Fatalf("wrong request ID %x in TALKRESP, want %x", resp.ReqID, id) + } + if len(resp.Message) > 0 { + t.Fatalf("non-empty message %x in TALKRESP", resp.Message) + } + default: + t.Fatal("expected TALKRESP, got", resp.Name()) + } + + // Empty request ID. + resp = conn.reqresp(l1, &v5wire.TalkRequest{Protocol: "test-protocol"}) + switch resp := resp.(type) { + case *v5wire.TalkResponse: + if len(resp.ReqID) > 0 { + t.Fatalf("wrong request ID %x in TALKRESP, want empty byte array", resp.ReqID) + } + if len(resp.Message) > 0 { + t.Fatalf("non-empty message %x in TALKRESP", resp.Message) + } + default: + t.Fatal("expected TALKRESP, got", resp.Name()) + } +} + +// This test checks that the remote node returns itself for FINDNODE with distance zero. +func (s *Suite) TestFindnodeZeroDistance(t *utesting.T) { + conn, l1 := s.listen1(t) + defer conn.close() + + nodes, err := conn.findnode(l1, []uint{0}) + if err != nil { + t.Fatal(err) + } + if len(nodes) != 1 { + t.Fatalf("remote returned more than one node for FINDNODE [0]") + } + if nodes[0].ID() != conn.remote.ID() { + t.Errorf("ID of response node is %v, want %v", nodes[0].ID(), conn.remote.ID()) + } +} + +// In this test, multiple nodes ping the node under test. After waiting for them to be +// accepted into the remote table, the test checks that they are returned by FINDNODE. +func (s *Suite) TestFindnodeResults(t *utesting.T) { + // Create bystanders. + nodes := make([]*bystander, 5) + added := make(chan enode.ID, len(nodes)) + for i := range nodes { + nodes[i] = newBystander(t, s, added) + defer nodes[i].close() + } + + // Get them added to the remote table. + timeout := 60 * time.Second + timeoutCh := time.After(timeout) + for count := 0; count < len(nodes); { + select { + case id := <-added: + t.Logf("bystander node %v added to remote table", id) + count++ + case <-timeoutCh: + t.Errorf("remote added %d bystander nodes in %v, need %d to continue", count, timeout, len(nodes)) + t.Logf("this can happen if the node has a non-empty table from previous runs") + return + } + } + t.Logf("all %d bystander nodes were added", len(nodes)) + + // Collect our nodes by distance. + var dists []uint + expect := make(map[enode.ID]*enode.Node) + for _, bn := range nodes { + n := bn.conn.localNode.Node() + expect[n.ID()] = n + d := uint(enode.LogDist(n.ID(), s.Dest.ID())) + if !containsUint(dists, d) { + dists = append(dists, d) + } + } + + // Send FINDNODE for all distances. + conn, l1 := s.listen1(t) + defer conn.close() + foundNodes, err := conn.findnode(l1, dists) + if err != nil { + t.Fatal(err) + } + t.Logf("remote returned %d nodes for distance list %v", len(foundNodes), dists) + for _, n := range foundNodes { + delete(expect, n.ID()) + } + if len(expect) > 0 { + t.Errorf("missing %d nodes in FINDNODE result", len(expect)) + t.Logf("this can happen if the test is run multiple times in quick succession") + t.Logf("and the remote node hasn't removed dead nodes from previous runs yet") + } else { + t.Logf("all %d expected nodes were returned", len(nodes)) + } +} + +// A bystander is a node whose only purpose is filling a spot in the remote table. +type bystander struct { + dest *enode.Node + conn *conn + l net.PacketConn + + addedCh chan enode.ID + done sync.WaitGroup +} + +func newBystander(t *utesting.T, s *Suite, added chan enode.ID) *bystander { + conn, l := s.listen1(t) + conn.setEndpoint(l) // bystander nodes need IP/port to get pinged + bn := &bystander{ + conn: conn, + l: l, + dest: s.Dest, + addedCh: added, + } + bn.done.Add(1) + go bn.loop() + return bn +} + +// id returns the node ID of the bystander. +func (bn *bystander) id() enode.ID { + return bn.conn.localNode.ID() +} + +// close shuts down loop. +func (bn *bystander) close() { + bn.conn.close() + bn.done.Wait() +} + +// loop answers packets from the remote node until quit. +func (bn *bystander) loop() { + defer bn.done.Done() + + var ( + lastPing time.Time + wasAdded bool + ) + for { + // Ping the remote node. + if !wasAdded && time.Since(lastPing) > 10*time.Second { + bn.conn.reqresp(bn.l, &v5wire.Ping{ + ReqID: bn.conn.nextReqID(), + ENRSeq: bn.dest.Seq(), + }) + lastPing = time.Now() + } + // Answer packets. + switch p := bn.conn.read(bn.l).(type) { + case *v5wire.Ping: + bn.conn.write(bn.l, &v5wire.Pong{ + ReqID: p.ReqID, + ENRSeq: bn.conn.localNode.Seq(), + ToIP: bn.dest.IP(), + ToPort: uint16(bn.dest.UDP()), + }, nil) + wasAdded = true + bn.notifyAdded() + case *v5wire.Findnode: + bn.conn.write(bn.l, &v5wire.Nodes{ReqID: p.ReqID, Total: 1}, nil) + wasAdded = true + bn.notifyAdded() + case *v5wire.TalkRequest: + bn.conn.write(bn.l, &v5wire.TalkResponse{ReqID: p.ReqID}, nil) + case *readError: + if !netutil.IsTemporaryError(p.err) { + bn.conn.logf("shutting down: %v", p.err) + return + } + } + } +} + +func (bn *bystander) notifyAdded() { + if bn.addedCh != nil { + bn.addedCh <- bn.id() + bn.addedCh = nil + } +} diff --git a/cmd/devp2p/internal/v5test/framework.go b/cmd/devp2p/internal/v5test/framework.go new file mode 100644 index 000000000000..6467b3a8bc48 --- /dev/null +++ b/cmd/devp2p/internal/v5test/framework.go @@ -0,0 +1,263 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package v5test + +import ( + "bytes" + "crypto/ecdsa" + "encoding/binary" + "fmt" + "net" + "time" + + "github.com/XinFinOrg/XDPoSChain/common/mclock" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v5wire" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/enr" +) + +// readError represents an error during packet reading. +// This exists to facilitate type-switching on the result of conn.read. +type readError struct { + err error +} + +func (p *readError) Kind() byte { return 99 } +func (p *readError) Name() string { return fmt.Sprintf("error: %v", p.err) } +func (p *readError) Error() string { return p.err.Error() } +func (p *readError) Unwrap() error { return p.err } +func (p *readError) RequestID() []byte { return nil } +func (p *readError) SetRequestID([]byte) {} + +// readErrorf creates a readError with the given text. +func readErrorf(format string, args ...interface{}) *readError { + return &readError{fmt.Errorf(format, args...)} +} + +// This is the response timeout used in tests. +const waitTime = 300 * time.Millisecond + +// conn is a connection to the node under test. +type conn struct { + localNode *enode.LocalNode + localKey *ecdsa.PrivateKey + remote *enode.Node + remoteAddr *net.UDPAddr + listeners []net.PacketConn + + log logger + codec *v5wire.Codec + lastRequest v5wire.Packet + lastChallenge *v5wire.Whoareyou + idCounter uint32 +} + +type logger interface { + Logf(string, ...interface{}) +} + +// newConn sets up a connection to the given node. +func newConn(dest *enode.Node, log logger) *conn { + key, err := crypto.GenerateKey() + if err != nil { + panic(err) + } + db, err := enode.OpenDB("") + if err != nil { + panic(err) + } + ln := enode.NewLocalNode(db, key) + + return &conn{ + localKey: key, + localNode: ln, + remote: dest, + remoteAddr: &net.UDPAddr{IP: dest.IP(), Port: dest.UDP()}, + codec: v5wire.NewCodec(ln, key, mclock.System{}), + log: log, + } +} + +func (tc *conn) setEndpoint(c net.PacketConn) { + tc.localNode.SetStaticIP(laddr(c).IP) + tc.localNode.SetFallbackUDP(laddr(c).Port) +} + +func (tc *conn) listen(ip string) net.PacketConn { + l, err := net.ListenPacket("udp", fmt.Sprintf("%v:0", ip)) + if err != nil { + panic(err) + } + tc.listeners = append(tc.listeners, l) + return l +} + +// close shuts down all listeners and the local node. +func (tc *conn) close() { + for _, l := range tc.listeners { + l.Close() + } + tc.localNode.Database().Close() +} + +// nextReqID creates a request id. +func (tc *conn) nextReqID() []byte { + id := make([]byte, 4) + tc.idCounter++ + binary.BigEndian.PutUint32(id, tc.idCounter) + return id +} + +// reqresp performs a request/response interaction on the given connection. +// The request is retried if a handshake is requested. +func (tc *conn) reqresp(c net.PacketConn, req v5wire.Packet) v5wire.Packet { + reqnonce := tc.write(c, req, nil) + switch resp := tc.read(c).(type) { + case *v5wire.Whoareyou: + if resp.Nonce != reqnonce { + return readErrorf("wrong nonce %x in WHOAREYOU (want %x)", resp.Nonce[:], reqnonce[:]) + } + resp.Node = tc.remote + tc.write(c, req, resp) + return tc.read(c) + default: + return resp + } +} + +// findnode sends a FINDNODE request and waits for its responses. +func (tc *conn) findnode(c net.PacketConn, dists []uint) ([]*enode.Node, error) { + var ( + findnode = &v5wire.Findnode{ReqID: tc.nextReqID(), Distances: dists} + reqnonce = tc.write(c, findnode, nil) + first = true + total uint8 + results []*enode.Node + ) + for n := 1; n > 0; { + switch resp := tc.read(c).(type) { + case *v5wire.Whoareyou: + // Handle handshake. + if resp.Nonce == reqnonce { + resp.Node = tc.remote + tc.write(c, findnode, resp) + } else { + return nil, fmt.Errorf("unexpected WHOAREYOU (nonce %x), waiting for NODES", resp.Nonce[:]) + } + case *v5wire.Ping: + // Handle ping from remote. + tc.write(c, &v5wire.Pong{ + ReqID: resp.ReqID, + ENRSeq: tc.localNode.Seq(), + }, nil) + case *v5wire.Nodes: + // Got NODES! Check request ID. + if !bytes.Equal(resp.ReqID, findnode.ReqID) { + return nil, fmt.Errorf("NODES response has wrong request id %x", resp.ReqID) + } + // Check total count. It should be greater than one + // and needs to be the same across all responses. + if first { + if resp.Total == 0 || resp.Total > 6 { + return nil, fmt.Errorf("invalid NODES response 'total' %d (not in (0,7))", resp.Total) + } + total = resp.Total + n = int(total) - 1 + first = false + } else { + n-- + if resp.Total != total { + return nil, fmt.Errorf("invalid NODES response 'total' %d (!= %d)", resp.Total, total) + } + } + // Check nodes. + nodes, err := checkRecords(resp.Nodes) + if err != nil { + return nil, fmt.Errorf("invalid node in NODES response: %v", err) + } + results = append(results, nodes...) + default: + return nil, fmt.Errorf("expected NODES, got %v", resp) + } + } + return results, nil +} + +// write sends a packet on the given connection. +func (tc *conn) write(c net.PacketConn, p v5wire.Packet, challenge *v5wire.Whoareyou) v5wire.Nonce { + packet, nonce, err := tc.codec.Encode(tc.remote.ID(), tc.remoteAddr.String(), p, challenge) + if err != nil { + panic(fmt.Errorf("can't encode %v packet: %v", p.Name(), err)) + } + if _, err := c.WriteTo(packet, tc.remoteAddr); err != nil { + tc.logf("Can't send %s: %v", p.Name(), err) + } else { + tc.logf(">> %s", p.Name()) + } + return nonce +} + +// read waits for an incoming packet on the given connection. +func (tc *conn) read(c net.PacketConn) v5wire.Packet { + buf := make([]byte, 1280) + if err := c.SetReadDeadline(time.Now().Add(waitTime)); err != nil { + return &readError{err} + } + n, fromAddr, err := c.ReadFrom(buf) + if err != nil { + return &readError{err} + } + _, _, p, err := tc.codec.Decode(buf[:n], fromAddr.String()) + if err != nil { + return &readError{err} + } + tc.logf("<< %s", p.Name()) + return p +} + +// logf prints to the test log. +func (tc *conn) logf(format string, args ...interface{}) { + if tc.log != nil { + tc.log.Logf("(%s) %s", tc.localNode.ID().TerminalString(), fmt.Sprintf(format, args...)) + } +} + +func laddr(c net.PacketConn) *net.UDPAddr { + return c.LocalAddr().(*net.UDPAddr) +} + +func checkRecords(records []*enr.Record) ([]*enode.Node, error) { + nodes := make([]*enode.Node, len(records)) + for i := range records { + n, err := enode.New(enode.ValidSchemes, records[i]) + if err != nil { + return nil, err + } + nodes[i] = n + } + return nodes, nil +} + +func containsUint(ints []uint, x uint) bool { + for i := range ints { + if ints[i] == x { + return true + } + } + return false +} diff --git a/p2p/discover/node.go b/p2p/discover/node.go index ac118149f5d7..727a11ed3135 100644 --- a/p2p/discover/node.go +++ b/p2p/discover/node.go @@ -46,7 +46,10 @@ func encodePubkey(key *ecdsa.PublicKey) encPubkey { return e } -func decodePubkey(curve elliptic.Curve, e encPubkey) (*ecdsa.PublicKey, error) { +func decodePubkey(curve elliptic.Curve, e []byte) (*ecdsa.PublicKey, error) { + if len(e) != len(encPubkey{}) { + return nil, errors.New("wrong size public key data") + } p := &ecdsa.PublicKey{Curve: curve, X: new(big.Int), Y: new(big.Int)} half := len(e) / 2 p.X.SetBytes(e[:half]) diff --git a/p2p/discover/table_util_test.go b/p2p/discover/table_util_test.go index e241733f3960..a0138cb254d8 100644 --- a/p2p/discover/table_util_test.go +++ b/p2p/discover/table_util_test.go @@ -146,7 +146,6 @@ func (t *pingRecorder) updateRecord(n *enode.Node) { func (t *pingRecorder) Self() *enode.Node { return nullNode } func (t *pingRecorder) lookupSelf() []*enode.Node { return nil } func (t *pingRecorder) lookupRandom() []*enode.Node { return nil } -func (t *pingRecorder) close() {} // ping simulates a ping request. func (t *pingRecorder) ping(n *enode.Node) (seq uint64, err error) { @@ -188,15 +187,17 @@ func hasDuplicates(slice []*node) bool { return false } +// checkNodesEqual checks whether the two given node lists contain the same nodes. func checkNodesEqual(got, want []*enode.Node) error { - if len(got) == len(want) { - for i := range got { - if !nodeEqual(got[i], want[i]) { - goto NotEqual - } - return nil + if len(got) != len(want) { + goto NotEqual + } + for i := range got { + if !nodeEqual(got[i], want[i]) { + goto NotEqual } } + return nil NotEqual: output := new(bytes.Buffer) @@ -227,6 +228,7 @@ func sortedByDistanceTo(distbase enode.ID, slice []*node) bool { }) } +// hexEncPrivkey decodes h as a private key. func hexEncPrivkey(h string) *ecdsa.PrivateKey { b, err := hex.DecodeString(h) if err != nil { @@ -239,6 +241,7 @@ func hexEncPrivkey(h string) *ecdsa.PrivateKey { return key } +// hexEncPubkey decodes h as a public key. func hexEncPubkey(h string) (ret encPubkey) { b, err := hex.DecodeString(h) if err != nil { diff --git a/p2p/discover/v4_lookup_test.go b/p2p/discover/v4_lookup_test.go index 530e449192ef..278dff9673a2 100644 --- a/p2p/discover/v4_lookup_test.go +++ b/p2p/discover/v4_lookup_test.go @@ -34,7 +34,7 @@ func TestUDPv4_Lookup(t *testing.T) { test := newUDPTest(t) // Lookup on empty table returns no nodes. - targetKey, _ := decodePubkey(crypto.S256(), lookupTestnet.target) + targetKey, _ := decodePubkey(crypto.S256(), lookupTestnet.target[:]) if results := test.udp.LookupPubkey(targetKey); len(results) > 0 { t.Fatalf("lookup on empty table returned %d results: %#v", len(results), results) } @@ -279,17 +279,21 @@ func (tn *preminedTestnet) nodesAtDistance(dist int) []v4wire.Node { return result } -func (tn *preminedTestnet) neighborsAtDistance(base *enode.Node, distance uint, elems int) []*enode.Node { - nodes := nodesByDistance{target: base.ID()} +func (tn *preminedTestnet) neighborsAtDistances(base *enode.Node, distances []uint, elems int) []*enode.Node { + var result []*enode.Node for d := range lookupTestnet.dists { for i := range lookupTestnet.dists[d] { n := lookupTestnet.node(d, i) - if uint(enode.LogDist(n.ID(), base.ID())) == distance { - nodes.push(wrapNode(n), elems) + d := enode.LogDist(base.ID(), n.ID()) + if containsUint(uint(d), distances) { + result = append(result, n) + if len(result) >= elems { + return result + } } } } - return unwrapNodes(nodes.entries) + return result } func (tn *preminedTestnet) closest(n int) (nodes []*enode.Node) { diff --git a/p2p/discover/v5_encoding.go b/p2p/discover/v5_encoding.go deleted file mode 100644 index 17c4c977c861..000000000000 --- a/p2p/discover/v5_encoding.go +++ /dev/null @@ -1,659 +0,0 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package discover - -import ( - "bytes" - "crypto/aes" - "crypto/cipher" - "crypto/ecdsa" - "crypto/elliptic" - crand "crypto/rand" - "crypto/sha256" - "errors" - "fmt" - "hash" - "net" - "time" - - "github.com/XinFinOrg/XDPoSChain/common/math" - "github.com/XinFinOrg/XDPoSChain/common/mclock" - "github.com/XinFinOrg/XDPoSChain/crypto" - "github.com/XinFinOrg/XDPoSChain/p2p/enode" - "github.com/XinFinOrg/XDPoSChain/p2p/enr" - "github.com/XinFinOrg/XDPoSChain/rlp" - "golang.org/x/crypto/hkdf" -) - -// TODO concurrent WHOAREYOU tie-breaker -// TODO deal with WHOAREYOU amplification factor (min packet size?) -// TODO add counter to nonce -// TODO rehandshake after X packets - -// Discovery v5 packet types. -const ( - p_pingV5 byte = iota + 1 - p_pongV5 - p_findnodeV5 - p_nodesV5 - p_requestTicketV5 - p_ticketV5 - p_regtopicV5 - p_regconfirmationV5 - p_topicqueryV5 - p_unknownV5 = byte(255) // any non-decryptable packet - p_whoareyouV5 = byte(254) // the WHOAREYOU packet -) - -// Discovery v5 packet structures. -type ( - // unknownV5 represents any packet that can't be decrypted. - unknownV5 struct { - AuthTag []byte - } - - // WHOAREYOU contains the handshake challenge. - whoareyouV5 struct { - AuthTag []byte - IDNonce [32]byte // To be signed by recipient. - RecordSeq uint64 // ENR sequence number of recipient - - node *enode.Node - sent mclock.AbsTime - } - - // PING is sent during liveness checks. - pingV5 struct { - ReqID []byte - ENRSeq uint64 - } - - // PONG is the reply to PING. - pongV5 struct { - ReqID []byte - ENRSeq uint64 - ToIP net.IP // These fields should mirror the UDP envelope address of the ping - ToPort uint16 // packet, which provides a way to discover the the external address (after NAT). - } - - // FINDNODE is a query for nodes in the given bucket. - findnodeV5 struct { - ReqID []byte - Distance uint - } - - // NODES is the reply to FINDNODE and TOPICQUERY. - nodesV5 struct { - ReqID []byte - Total uint8 - Nodes []*enr.Record - } - - // REQUESTTICKET requests a ticket for a topic queue. - requestTicketV5 struct { - ReqID []byte - Topic []byte - } - - // TICKET is the response to REQUESTTICKET. - ticketV5 struct { - ReqID []byte - Ticket []byte - } - - // REGTOPIC registers the sender in a topic queue using a ticket. - regtopicV5 struct { - ReqID []byte - Ticket []byte - ENR *enr.Record - } - - // REGCONFIRMATION is the reply to REGTOPIC. - regconfirmationV5 struct { - ReqID []byte - Registered bool - } - - // TOPICQUERY asks for nodes with the given topic. - topicqueryV5 struct { - ReqID []byte - Topic []byte - } -) - -const ( - // Encryption/authentication parameters. - authSchemeName = "gcm" - aesKeySize = 16 - gcmNonceSize = 12 - idNoncePrefix = "discovery-id-nonce" - handshakeTimeout = time.Second -) - -var ( - errTooShort = errors.New("packet too short") - errUnexpectedHandshake = errors.New("unexpected auth response, not in handshake") - errHandshakeNonceMismatch = errors.New("wrong nonce in auth response") - errInvalidAuthKey = errors.New("invalid ephemeral pubkey") - errUnknownAuthScheme = errors.New("unknown auth scheme in handshake") - errNoRecord = errors.New("expected ENR in handshake but none sent") - errInvalidNonceSig = errors.New("invalid ID nonce signature") - zeroNonce = make([]byte, gcmNonceSize) -) - -// wireCodec encodes and decodes discovery v5 packets. -type wireCodec struct { - sha256 hash.Hash - localnode *enode.LocalNode - privkey *ecdsa.PrivateKey - myChtagHash enode.ID - myWhoareyouMagic []byte - - sc *sessionCache -} - -type handshakeSecrets struct { - writeKey, readKey, authRespKey []byte -} - -type authHeader struct { - authHeaderList - isHandshake bool -} - -type authHeaderList struct { - Auth []byte // authentication info of packet - IDNonce [32]byte // IDNonce of WHOAREYOU - Scheme string // name of encryption/authentication scheme - EphemeralKey []byte // ephemeral public key - Response []byte // encrypted authResponse -} - -type authResponse struct { - Version uint - Signature []byte - Record *enr.Record `rlp:"nil"` // sender's record -} - -func (h *authHeader) DecodeRLP(r *rlp.Stream) error { - k, _, err := r.Kind() - if err != nil { - return err - } - if k == rlp.Byte || k == rlp.String { - return r.Decode(&h.Auth) - } - h.isHandshake = true - return r.Decode(&h.authHeaderList) -} - -// ephemeralKey decodes the ephemeral public key in the header. -func (h *authHeaderList) ephemeralKey(curve elliptic.Curve) *ecdsa.PublicKey { - var key encPubkey - copy(key[:], h.EphemeralKey) - pubkey, _ := decodePubkey(curve, key) - return pubkey -} - -// newWireCodec creates a wire codec. -func newWireCodec(ln *enode.LocalNode, key *ecdsa.PrivateKey, clock mclock.Clock) *wireCodec { - c := &wireCodec{ - sha256: sha256.New(), - localnode: ln, - privkey: key, - sc: newSessionCache(1024, clock), - } - // Create magic strings for packet matching. - self := ln.ID() - c.myWhoareyouMagic = c.sha256sum(self[:], []byte("WHOAREYOU")) - copy(c.myChtagHash[:], c.sha256sum(self[:])) - return c -} - -// encode encodes a packet to a node. 'id' and 'addr' specify the destination node. The -// 'challenge' parameter should be the most recently received WHOAREYOU packet from that -// node. -func (c *wireCodec) encode(id enode.ID, addr string, packet packetV5, challenge *whoareyouV5) ([]byte, []byte, error) { - if packet.kind() == p_whoareyouV5 { - p := packet.(*whoareyouV5) - enc, err := c.encodeWhoareyou(id, p) - if err == nil { - c.sc.storeSentHandshake(id, addr, p) - } - return enc, nil, err - } - // Ensure calling code sets node if needed. - if challenge != nil && challenge.node == nil { - panic("BUG: missing challenge.node in encode") - } - writeKey := c.sc.writeKey(id, addr) - if writeKey != nil || challenge != nil { - return c.encodeEncrypted(id, addr, packet, writeKey, challenge) - } - return c.encodeRandom(id) -} - -// encodeRandom encodes a random packet. -func (c *wireCodec) encodeRandom(toID enode.ID) ([]byte, []byte, error) { - tag := xorTag(c.sha256sum(toID[:]), c.localnode.ID()) - r := make([]byte, 44) // TODO randomize size - if _, err := crand.Read(r); err != nil { - return nil, nil, err - } - nonce := make([]byte, gcmNonceSize) - if _, err := crand.Read(nonce); err != nil { - return nil, nil, fmt.Errorf("can't get random data: %v", err) - } - b := new(bytes.Buffer) - b.Write(tag[:]) - rlp.Encode(b, nonce) - b.Write(r) - return b.Bytes(), nonce, nil -} - -// encodeWhoareyou encodes WHOAREYOU. -func (c *wireCodec) encodeWhoareyou(toID enode.ID, packet *whoareyouV5) ([]byte, error) { - // Sanity check node field to catch misbehaving callers. - if packet.RecordSeq > 0 && packet.node == nil { - panic("BUG: missing node in whoareyouV5 with non-zero seq") - } - b := new(bytes.Buffer) - b.Write(c.sha256sum(toID[:], []byte("WHOAREYOU"))) - err := rlp.Encode(b, packet) - return b.Bytes(), err -} - -// encodeEncrypted encodes an encrypted packet. -func (c *wireCodec) encodeEncrypted(toID enode.ID, toAddr string, packet packetV5, writeKey []byte, challenge *whoareyouV5) (enc []byte, authTag []byte, err error) { - nonce := make([]byte, gcmNonceSize) - if _, err := crand.Read(nonce); err != nil { - return nil, nil, fmt.Errorf("can't get random data: %v", err) - } - - var headEnc []byte - if challenge == nil { - // Regular packet, use existing key and simply encode nonce. - headEnc, _ = rlp.EncodeToBytes(nonce) - } else { - // We're answering WHOAREYOU, generate new keys and encrypt with those. - header, sec, err := c.makeAuthHeader(nonce, challenge) - if err != nil { - return nil, nil, err - } - if headEnc, err = rlp.EncodeToBytes(header); err != nil { - return nil, nil, err - } - c.sc.storeNewSession(toID, toAddr, sec.readKey, sec.writeKey) - writeKey = sec.writeKey - } - - // Encode the packet. - body := new(bytes.Buffer) - body.WriteByte(packet.kind()) - if err := rlp.Encode(body, packet); err != nil { - return nil, nil, err - } - tag := xorTag(c.sha256sum(toID[:]), c.localnode.ID()) - headsize := len(tag) + len(headEnc) - headbuf := make([]byte, headsize) - copy(headbuf[:], tag[:]) - copy(headbuf[len(tag):], headEnc) - - // Encrypt the body. - enc, err = encryptGCM(headbuf, writeKey, nonce, body.Bytes(), tag[:]) - return enc, nonce, err -} - -// encodeAuthHeader creates the auth header on a call packet following WHOAREYOU. -func (c *wireCodec) makeAuthHeader(nonce []byte, challenge *whoareyouV5) (*authHeaderList, *handshakeSecrets, error) { - resp := &authResponse{Version: 5} - - // Add our record to response if it's newer than what remote - // side has. - ln := c.localnode.Node() - if challenge.RecordSeq < ln.Seq() { - resp.Record = ln.Record() - } - - // Create the ephemeral key. This needs to be first because the - // key is part of the ID nonce signature. - var remotePubkey = new(ecdsa.PublicKey) - if err := challenge.node.Load((*enode.Secp256k1)(remotePubkey)); err != nil { - return nil, nil, fmt.Errorf("can't find secp256k1 key for recipient") - } - ephkey, err := crypto.GenerateKey() - if err != nil { - return nil, nil, fmt.Errorf("can't generate ephemeral key") - } - ephpubkey := encodePubkey(&ephkey.PublicKey) - - // Add ID nonce signature to response. - idsig, err := c.signIDNonce(challenge.IDNonce[:], ephpubkey[:]) - if err != nil { - return nil, nil, fmt.Errorf("can't sign: %v", err) - } - resp.Signature = idsig - - // Create session keys. - sec := c.deriveKeys(c.localnode.ID(), challenge.node.ID(), ephkey, remotePubkey, challenge) - if sec == nil { - return nil, nil, fmt.Errorf("key derivation failed") - } - - // Encrypt the authentication response and assemble the auth header. - respRLP, err := rlp.EncodeToBytes(resp) - if err != nil { - return nil, nil, fmt.Errorf("can't encode auth response: %v", err) - } - respEnc, err := encryptGCM(nil, sec.authRespKey, zeroNonce, respRLP, nil) - if err != nil { - return nil, nil, fmt.Errorf("can't encrypt auth response: %v", err) - } - head := &authHeaderList{ - Auth: nonce, - Scheme: authSchemeName, - IDNonce: challenge.IDNonce, - EphemeralKey: ephpubkey[:], - Response: respEnc, - } - return head, sec, err -} - -// deriveKeys generates session keys using elliptic-curve Diffie-Hellman key agreement. -func (c *wireCodec) deriveKeys(n1, n2 enode.ID, priv *ecdsa.PrivateKey, pub *ecdsa.PublicKey, challenge *whoareyouV5) *handshakeSecrets { - eph := ecdh(priv, pub) - if eph == nil { - return nil - } - - info := []byte("discovery v5 key agreement") - info = append(info, n1[:]...) - info = append(info, n2[:]...) - kdf := hkdf.New(sha256.New, eph, challenge.IDNonce[:], info) - sec := handshakeSecrets{ - writeKey: make([]byte, aesKeySize), - readKey: make([]byte, aesKeySize), - authRespKey: make([]byte, aesKeySize), - } - kdf.Read(sec.writeKey) - kdf.Read(sec.readKey) - kdf.Read(sec.authRespKey) - for i := range eph { - eph[i] = 0 - } - return &sec -} - -// signIDNonce creates the ID nonce signature. -func (c *wireCodec) signIDNonce(nonce, ephkey []byte) ([]byte, error) { - idsig, err := crypto.Sign(c.idNonceHash(nonce, ephkey), c.privkey) - if err != nil { - return nil, fmt.Errorf("can't sign: %v", err) - } - return idsig[:len(idsig)-1], nil // remove recovery ID -} - -// idNonceHash computes the hash of id nonce with prefix. -func (c *wireCodec) idNonceHash(nonce, ephkey []byte) []byte { - h := c.sha256reset() - h.Write([]byte(idNoncePrefix)) - h.Write(nonce) - h.Write(ephkey) - return h.Sum(nil) -} - -// decode decodes a discovery packet. -func (c *wireCodec) decode(input []byte, addr string) (enode.ID, *enode.Node, packetV5, error) { - // Delete timed-out handshakes. This must happen before decoding to avoid - // processing the same handshake twice. - c.sc.handshakeGC() - - if len(input) < 32 { - return enode.ID{}, nil, nil, errTooShort - } - if bytes.HasPrefix(input, c.myWhoareyouMagic) { - p, err := c.decodeWhoareyou(input) - return enode.ID{}, nil, p, err - } - sender := xorTag(input[:32], c.myChtagHash) - p, n, err := c.decodeEncrypted(sender, addr, input) - return sender, n, p, err -} - -// decodeWhoareyou decode a WHOAREYOU packet. -func (c *wireCodec) decodeWhoareyou(input []byte) (packetV5, error) { - packet := new(whoareyouV5) - err := rlp.DecodeBytes(input[32:], packet) - return packet, err -} - -// decodeEncrypted decodes an encrypted discovery packet. -func (c *wireCodec) decodeEncrypted(fromID enode.ID, fromAddr string, input []byte) (packetV5, *enode.Node, error) { - // Decode packet header. - var head authHeader - r := bytes.NewReader(input[32:]) - err := rlp.Decode(r, &head) - if err != nil { - return nil, nil, err - } - - // Decrypt and process auth response. - readKey, node, err := c.decodeAuth(fromID, fromAddr, &head) - if err != nil { - return nil, nil, err - } - - // Decrypt and decode the packet body. - headsize := len(input) - r.Len() - bodyEnc := input[headsize:] - body, err := decryptGCM(readKey, head.Auth, bodyEnc, input[:32]) - if err != nil { - if !head.isHandshake { - // Can't decrypt, start handshake. - return &unknownV5{AuthTag: head.Auth}, nil, nil - } - return nil, nil, fmt.Errorf("handshake failed: %v", err) - } - if len(body) == 0 { - return nil, nil, errTooShort - } - p, err := decodePacketBodyV5(body[0], body[1:]) - return p, node, err -} - -// decodeAuth processes an auth header. -func (c *wireCodec) decodeAuth(fromID enode.ID, fromAddr string, head *authHeader) ([]byte, *enode.Node, error) { - if !head.isHandshake { - return c.sc.readKey(fromID, fromAddr), nil, nil - } - - // Remote is attempting handshake. Verify against our last WHOAREYOU. - challenge := c.sc.getHandshake(fromID, fromAddr) - if challenge == nil { - return nil, nil, errUnexpectedHandshake - } - if head.IDNonce != challenge.IDNonce { - return nil, nil, errHandshakeNonceMismatch - } - sec, n, err := c.decodeAuthResp(fromID, fromAddr, &head.authHeaderList, challenge) - if err != nil { - return nil, n, err - } - // Swap keys to match remote. - sec.readKey, sec.writeKey = sec.writeKey, sec.readKey - c.sc.storeNewSession(fromID, fromAddr, sec.readKey, sec.writeKey) - c.sc.deleteHandshake(fromID, fromAddr) - return sec.readKey, n, err -} - -// decodeAuthResp decodes and verifies an authentication response. -func (c *wireCodec) decodeAuthResp(fromID enode.ID, fromAddr string, head *authHeaderList, challenge *whoareyouV5) (*handshakeSecrets, *enode.Node, error) { - // Decrypt / decode the response. - if head.Scheme != authSchemeName { - return nil, nil, errUnknownAuthScheme - } - ephkey := head.ephemeralKey(c.privkey.Curve) - if ephkey == nil { - return nil, nil, errInvalidAuthKey - } - sec := c.deriveKeys(fromID, c.localnode.ID(), c.privkey, ephkey, challenge) - respPT, err := decryptGCM(sec.authRespKey, zeroNonce, head.Response, nil) - if err != nil { - return nil, nil, fmt.Errorf("can't decrypt auth response header: %v", err) - } - var resp authResponse - if err := rlp.DecodeBytes(respPT, &resp); err != nil { - return nil, nil, fmt.Errorf("invalid auth response: %v", err) - } - - // Verify response node record. The remote node should include the record - // if we don't have one or if ours is older than the latest version. - node := challenge.node - if resp.Record != nil { - if node == nil || node.Seq() < resp.Record.Seq() { - n, err := enode.New(enode.ValidSchemes, resp.Record) - if err != nil { - return nil, nil, fmt.Errorf("invalid node record: %v", err) - } - if n.ID() != fromID { - return nil, nil, fmt.Errorf("record in auth respose has wrong ID: %v", n.ID()) - } - node = n - } - } - if node == nil { - return nil, nil, errNoRecord - } - - // Verify ID nonce signature. - err = c.verifyIDSignature(challenge.IDNonce[:], head.EphemeralKey, resp.Signature, node) - if err != nil { - return nil, nil, err - } - return sec, node, nil -} - -// verifyIDSignature checks that signature over idnonce was made by the node with given record. -func (c *wireCodec) verifyIDSignature(nonce, ephkey, sig []byte, n *enode.Node) error { - switch idscheme := n.Record().IdentityScheme(); idscheme { - case "v4": - var pk ecdsa.PublicKey - n.Load((*enode.Secp256k1)(&pk)) // cannot fail because record is valid - if !crypto.VerifySignature(crypto.FromECDSAPub(&pk), c.idNonceHash(nonce, ephkey), sig) { - return errInvalidNonceSig - } - return nil - default: - return fmt.Errorf("can't verify ID nonce signature against scheme %q", idscheme) - } -} - -// decodePacketBody decodes the body of an encrypted discovery packet. -func decodePacketBodyV5(ptype byte, body []byte) (packetV5, error) { - var dec packetV5 - switch ptype { - case p_pingV5: - dec = new(pingV5) - case p_pongV5: - dec = new(pongV5) - case p_findnodeV5: - dec = new(findnodeV5) - case p_nodesV5: - dec = new(nodesV5) - case p_requestTicketV5: - dec = new(requestTicketV5) - case p_ticketV5: - dec = new(ticketV5) - case p_regtopicV5: - dec = new(regtopicV5) - case p_regconfirmationV5: - dec = new(regconfirmationV5) - case p_topicqueryV5: - dec = new(topicqueryV5) - default: - return nil, fmt.Errorf("unknown packet type %d", ptype) - } - if err := rlp.DecodeBytes(body, dec); err != nil { - return nil, err - } - return dec, nil -} - -// sha256reset returns the shared hash instance. -func (c *wireCodec) sha256reset() hash.Hash { - c.sha256.Reset() - return c.sha256 -} - -// sha256sum computes sha256 on the concatenation of inputs. -func (c *wireCodec) sha256sum(inputs ...[]byte) []byte { - c.sha256.Reset() - for _, b := range inputs { - c.sha256.Write(b) - } - return c.sha256.Sum(nil) -} - -func xorTag(a []byte, b enode.ID) enode.ID { - var r enode.ID - for i := range r { - r[i] = a[i] ^ b[i] - } - return r -} - -// ecdh creates a shared secret. -func ecdh(privkey *ecdsa.PrivateKey, pubkey *ecdsa.PublicKey) []byte { - secX, secY := pubkey.ScalarMult(pubkey.X, pubkey.Y, privkey.D.Bytes()) - if secX == nil { - return nil - } - sec := make([]byte, 33) - sec[0] = 0x02 | byte(secY.Bit(0)) - math.ReadBits(secX, sec[1:]) - return sec -} - -// encryptGCM encrypts pt using AES-GCM with the given key and nonce. -func encryptGCM(dest, key, nonce, pt, authData []byte) ([]byte, error) { - block, err := aes.NewCipher(key) - if err != nil { - panic(fmt.Errorf("can't create block cipher: %v", err)) - } - aesgcm, err := cipher.NewGCMWithNonceSize(block, gcmNonceSize) - if err != nil { - panic(fmt.Errorf("can't create GCM: %v", err)) - } - return aesgcm.Seal(dest, nonce, pt, authData), nil -} - -// decryptGCM decrypts ct using AES-GCM with the given key and nonce. -func decryptGCM(key, nonce, ct, authData []byte) ([]byte, error) { - block, err := aes.NewCipher(key) - if err != nil { - return nil, fmt.Errorf("can't create block cipher: %v", err) - } - if len(nonce) != gcmNonceSize { - return nil, fmt.Errorf("invalid GCM nonce size: %d", len(nonce)) - } - aesgcm, err := cipher.NewGCMWithNonceSize(block, gcmNonceSize) - if err != nil { - return nil, fmt.Errorf("can't create GCM: %v", err) - } - pt := make([]byte, 0, len(ct)) - return aesgcm.Open(pt, nonce, ct, authData) -} diff --git a/p2p/discover/v5_encoding_test.go b/p2p/discover/v5_encoding_test.go deleted file mode 100644 index ec4388cb7f95..000000000000 --- a/p2p/discover/v5_encoding_test.go +++ /dev/null @@ -1,373 +0,0 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package discover - -import ( - "bytes" - "crypto/ecdsa" - "encoding/hex" - "fmt" - "net" - "reflect" - "testing" - - "github.com/XinFinOrg/XDPoSChain/common/mclock" - "github.com/XinFinOrg/XDPoSChain/crypto" - "github.com/XinFinOrg/XDPoSChain/p2p/enode" - "github.com/davecgh/go-spew/spew" -) - -var ( - testKeyA, _ = crypto.HexToECDSA("eef77acb6c6a6eebc5b363a475ac583ec7eccdb42b6481424c60f59aa326547f") - testKeyB, _ = crypto.HexToECDSA("66fb62bfbd66b9177a138c1e5cddbe4f7c30c343e94e68df8769459cb1cde628") - testIDnonce = [32]byte{5, 6, 7, 8, 9, 10, 11, 12} -) - -func TestDeriveKeysV5(t *testing.T) { - t.Parallel() - - var ( - n1 = enode.ID{1} - n2 = enode.ID{2} - challenge = &whoareyouV5{} - db, _ = enode.OpenDB("") - ln = enode.NewLocalNode(db, testKeyA) - c = newWireCodec(ln, testKeyA, mclock.System{}) - ) - defer db.Close() - - sec1 := c.deriveKeys(n1, n2, testKeyA, &testKeyB.PublicKey, challenge) - sec2 := c.deriveKeys(n1, n2, testKeyB, &testKeyA.PublicKey, challenge) - if sec1 == nil || sec2 == nil { - t.Fatal("key agreement failed") - } - if !reflect.DeepEqual(sec1, sec2) { - t.Fatalf("keys not equal:\n %+v\n %+v", sec1, sec2) - } -} - -// This test checks the basic handshake flow where A talks to B and A has no secrets. -func TestHandshakeV5(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - // A -> B RANDOM PACKET - packet, _ := net.nodeA.encode(t, net.nodeB, &findnodeV5{}) - resp := net.nodeB.expectDecode(t, p_unknownV5, packet) - - // A <- B WHOAREYOU - challenge := &whoareyouV5{ - AuthTag: resp.(*unknownV5).AuthTag, - IDNonce: testIDnonce, - RecordSeq: 0, - } - whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) - net.nodeA.expectDecode(t, p_whoareyouV5, whoareyou) - - // A -> B FINDNODE - findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &findnodeV5{}) - net.nodeB.expectDecode(t, p_findnodeV5, findnode) - if len(net.nodeB.c.sc.handshakes) > 0 { - t.Fatalf("node B didn't remove handshake from challenge map") - } - - // A <- B NODES - nodes, _ := net.nodeB.encode(t, net.nodeA, &nodesV5{Total: 1}) - net.nodeA.expectDecode(t, p_nodesV5, nodes) -} - -// This test checks that handshake attempts are removed within the timeout. -func TestHandshakeV5_timeout(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - // A -> B RANDOM PACKET - packet, _ := net.nodeA.encode(t, net.nodeB, &findnodeV5{}) - resp := net.nodeB.expectDecode(t, p_unknownV5, packet) - - // A <- B WHOAREYOU - challenge := &whoareyouV5{ - AuthTag: resp.(*unknownV5).AuthTag, - IDNonce: testIDnonce, - RecordSeq: 0, - } - whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) - net.nodeA.expectDecode(t, p_whoareyouV5, whoareyou) - - // A -> B FINDNODE after timeout - net.clock.Run(handshakeTimeout + 1) - findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &findnodeV5{}) - net.nodeB.expectDecodeErr(t, errUnexpectedHandshake, findnode) -} - -// This test checks handshake behavior when no record is sent in the auth response. -func TestHandshakeV5_norecord(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - // A -> B RANDOM PACKET - packet, _ := net.nodeA.encode(t, net.nodeB, &findnodeV5{}) - resp := net.nodeB.expectDecode(t, p_unknownV5, packet) - - // A <- B WHOAREYOU - nodeA := net.nodeA.n() - if nodeA.Seq() == 0 { - t.Fatal("need non-zero sequence number") - } - challenge := &whoareyouV5{ - AuthTag: resp.(*unknownV5).AuthTag, - IDNonce: testIDnonce, - RecordSeq: nodeA.Seq(), - node: nodeA, - } - whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) - net.nodeA.expectDecode(t, p_whoareyouV5, whoareyou) - - // A -> B FINDNODE - findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &findnodeV5{}) - net.nodeB.expectDecode(t, p_findnodeV5, findnode) - - // A <- B NODES - nodes, _ := net.nodeB.encode(t, net.nodeA, &nodesV5{Total: 1}) - net.nodeA.expectDecode(t, p_nodesV5, nodes) -} - -// In this test, A tries to send FINDNODE with existing secrets but B doesn't know -// anything about A. -func TestHandshakeV5_rekey(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - initKeys := &handshakeSecrets{ - readKey: []byte("BBBBBBBBBBBBBBBB"), - writeKey: []byte("AAAAAAAAAAAAAAAA"), - } - net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), initKeys.readKey, initKeys.writeKey) - - // A -> B FINDNODE (encrypted with zero keys) - findnode, authTag := net.nodeA.encode(t, net.nodeB, &findnodeV5{}) - net.nodeB.expectDecode(t, p_unknownV5, findnode) - - // A <- B WHOAREYOU - challenge := &whoareyouV5{AuthTag: authTag, IDNonce: testIDnonce} - whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) - net.nodeA.expectDecode(t, p_whoareyouV5, whoareyou) - - // Check that new keys haven't been stored yet. - if s := net.nodeA.c.sc.session(net.nodeB.id(), net.nodeB.addr()); !bytes.Equal(s.writeKey, initKeys.writeKey) || !bytes.Equal(s.readKey, initKeys.readKey) { - t.Fatal("node A stored keys too early") - } - if s := net.nodeB.c.sc.session(net.nodeA.id(), net.nodeA.addr()); s != nil { - t.Fatal("node B stored keys too early") - } - - // A -> B FINDNODE encrypted with new keys - findnode, _ = net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &findnodeV5{}) - net.nodeB.expectDecode(t, p_findnodeV5, findnode) - - // A <- B NODES - nodes, _ := net.nodeB.encode(t, net.nodeA, &nodesV5{Total: 1}) - net.nodeA.expectDecode(t, p_nodesV5, nodes) -} - -// In this test A and B have different keys before the handshake. -func TestHandshakeV5_rekey2(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - initKeysA := &handshakeSecrets{ - readKey: []byte("BBBBBBBBBBBBBBBB"), - writeKey: []byte("AAAAAAAAAAAAAAAA"), - } - initKeysB := &handshakeSecrets{ - readKey: []byte("CCCCCCCCCCCCCCCC"), - writeKey: []byte("DDDDDDDDDDDDDDDD"), - } - net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), initKeysA.readKey, initKeysA.writeKey) - net.nodeB.c.sc.storeNewSession(net.nodeA.id(), net.nodeA.addr(), initKeysB.readKey, initKeysA.writeKey) - - // A -> B FINDNODE encrypted with initKeysA - findnode, authTag := net.nodeA.encode(t, net.nodeB, &findnodeV5{Distance: 3}) - net.nodeB.expectDecode(t, p_unknownV5, findnode) - - // A <- B WHOAREYOU - challenge := &whoareyouV5{AuthTag: authTag, IDNonce: testIDnonce} - whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) - net.nodeA.expectDecode(t, p_whoareyouV5, whoareyou) - - // A -> B FINDNODE encrypted with new keys - findnode, _ = net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &findnodeV5{}) - net.nodeB.expectDecode(t, p_findnodeV5, findnode) - - // A <- B NODES - nodes, _ := net.nodeB.encode(t, net.nodeA, &nodesV5{Total: 1}) - net.nodeA.expectDecode(t, p_nodesV5, nodes) -} - -// This test checks some malformed packets. -func TestDecodeErrorsV5(t *testing.T) { - t.Parallel() - net := newHandshakeTest() - defer net.close() - - net.nodeA.expectDecodeErr(t, errTooShort, []byte{}) - // TODO some more tests would be nice :) -} - -// This benchmark checks performance of authHeader decoding, verification and key derivation. -func BenchmarkV5_DecodeAuthSecp256k1(b *testing.B) { - net := newHandshakeTest() - defer net.close() - - var ( - idA = net.nodeA.id() - addrA = net.nodeA.addr() - challenge = &whoareyouV5{AuthTag: []byte("authresp"), RecordSeq: 0, node: net.nodeB.n()} - nonce = make([]byte, gcmNonceSize) - ) - header, _, _ := net.nodeA.c.makeAuthHeader(nonce, challenge) - challenge.node = nil // force ENR signature verification in decoder - b.ResetTimer() - - for i := 0; i < b.N; i++ { - _, _, err := net.nodeB.c.decodeAuthResp(idA, addrA, header, challenge) - if err != nil { - b.Fatal(err) - } - } -} - -// This benchmark checks how long it takes to decode an encrypted ping packet. -func BenchmarkV5_DecodePing(b *testing.B) { - net := newHandshakeTest() - defer net.close() - - r := []byte{233, 203, 93, 195, 86, 47, 177, 186, 227, 43, 2, 141, 244, 230, 120, 17} - w := []byte{79, 145, 252, 171, 167, 216, 252, 161, 208, 190, 176, 106, 214, 39, 178, 134} - net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), r, w) - net.nodeB.c.sc.storeNewSession(net.nodeA.id(), net.nodeA.addr(), w, r) - addrB := net.nodeA.addr() - ping := &pingV5{ReqID: []byte("reqid"), ENRSeq: 5} - enc, _, err := net.nodeA.c.encode(net.nodeB.id(), addrB, ping, nil) - if err != nil { - b.Fatalf("can't encode: %v", err) - } - b.ResetTimer() - - for i := 0; i < b.N; i++ { - _, _, p, _ := net.nodeB.c.decode(enc, addrB) - if _, ok := p.(*pingV5); !ok { - b.Fatalf("wrong packet type %T", p) - } - } -} - -var pp = spew.NewDefaultConfig() - -type handshakeTest struct { - nodeA, nodeB handshakeTestNode - clock mclock.Simulated -} - -type handshakeTestNode struct { - ln *enode.LocalNode - c *wireCodec -} - -func newHandshakeTest() *handshakeTest { - t := new(handshakeTest) - t.nodeA.init(testKeyA, net.IP{127, 0, 0, 1}, &t.clock) - t.nodeB.init(testKeyB, net.IP{127, 0, 0, 1}, &t.clock) - return t -} - -func (t *handshakeTest) close() { - t.nodeA.ln.Database().Close() - t.nodeB.ln.Database().Close() -} - -func (n *handshakeTestNode) init(key *ecdsa.PrivateKey, ip net.IP, clock mclock.Clock) { - db, _ := enode.OpenDB("") - n.ln = enode.NewLocalNode(db, key) - n.ln.SetStaticIP(ip) - n.c = newWireCodec(n.ln, key, clock) -} - -func (n *handshakeTestNode) encode(t testing.TB, to handshakeTestNode, p packetV5) ([]byte, []byte) { - t.Helper() - return n.encodeWithChallenge(t, to, nil, p) -} - -func (n *handshakeTestNode) encodeWithChallenge(t testing.TB, to handshakeTestNode, c *whoareyouV5, p packetV5) ([]byte, []byte) { - t.Helper() - // Copy challenge and add destination node. This avoids sharing 'c' among the two codecs. - var challenge *whoareyouV5 - if c != nil { - challengeCopy := *c - challenge = &challengeCopy - challenge.node = to.n() - } - // Encode to destination. - enc, authTag, err := n.c.encode(to.id(), to.addr(), p, challenge) - if err != nil { - t.Fatal(fmt.Errorf("(%s) %v", n.ln.ID().TerminalString(), err)) - } - t.Logf("(%s) -> (%s) %s\n%s", n.ln.ID().TerminalString(), to.id().TerminalString(), p.name(), hex.Dump(enc)) - return enc, authTag -} - -func (n *handshakeTestNode) expectDecode(t *testing.T, ptype byte, p []byte) packetV5 { - t.Helper() - dec, err := n.decode(p) - if err != nil { - t.Fatal(fmt.Errorf("(%s) %v", n.ln.ID().TerminalString(), err)) - } - t.Logf("(%s) %#v", n.ln.ID().TerminalString(), pp.NewFormatter(dec)) - if dec.kind() != ptype { - t.Fatalf("expected packet type %d, got %d", ptype, dec.kind()) - } - return dec -} - -func (n *handshakeTestNode) expectDecodeErr(t *testing.T, wantErr error, p []byte) { - t.Helper() - if _, err := n.decode(p); !reflect.DeepEqual(err, wantErr) { - t.Fatal(fmt.Errorf("(%s) got err %q, want %q", n.ln.ID().TerminalString(), err, wantErr)) - } -} - -func (n *handshakeTestNode) decode(input []byte) (packetV5, error) { - _, _, p, err := n.c.decode(input, "127.0.0.1") - return p, err -} - -func (n *handshakeTestNode) n() *enode.Node { - return n.ln.Node() -} - -func (n *handshakeTestNode) addr() string { - return n.ln.Node().IP().String() -} - -func (n *handshakeTestNode) id() enode.ID { - return n.ln.ID() -} diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go index e70cee74ae66..2d91f950ea7e 100644 --- a/p2p/discover/v5_udp.go +++ b/p2p/discover/v5_udp.go @@ -31,6 +31,7 @@ import ( "github.com/XinFinOrg/XDPoSChain/common/mclock" "github.com/XinFinOrg/XDPoSChain/log" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v5wire" "github.com/XinFinOrg/XDPoSChain/p2p/enode" "github.com/XinFinOrg/XDPoSChain/p2p/enr" "github.com/XinFinOrg/XDPoSChain/p2p/netutil" @@ -38,36 +39,24 @@ import ( const ( lookupRequestLimit = 3 // max requests against a single node during lookup - findnodeResultLimit = 15 // applies in FINDNODE handler + findnodeResultLimit = 16 // applies in FINDNODE handler totalNodesResponseLimit = 5 // applies in waitForNodes nodesResponseItemLimit = 3 // applies in sendNodes respTimeoutV5 = 700 * time.Millisecond ) -// codecV5 is implemented by wireCodec (and testCodec). +// codecV5 is implemented by v5wire.Codec (and testCodec). // // The UDPv5 transport is split into two objects: the codec object deals with // encoding/decoding and with the handshake; the UDPv5 object handles higher-level concerns. type codecV5 interface { - // encode encodes a packet. The 'challenge' parameter is non-nil for calls which got a - // WHOAREYOU response. - encode(fromID enode.ID, fromAddr string, p packetV5, challenge *whoareyouV5) (enc []byte, authTag []byte, err error) + // Encode encodes a packet. + Encode(enode.ID, string, v5wire.Packet, *v5wire.Whoareyou) ([]byte, v5wire.Nonce, error) - // decode decodes a packet. It returns an *unknownV5 packet if decryption fails. - // The fromNode return value is non-nil when the input contains a handshake response. - decode(input []byte, fromAddr string) (fromID enode.ID, fromNode *enode.Node, p packetV5, err error) -} - -// packetV5 is implemented by all discv5 packet type structs. -type packetV5 interface { - // These methods provide information and set the request ID. - name() string - kind() byte - setreqid([]byte) - // handle should perform the appropriate action to handle the packet, i.e. this is the - // place to send the response. - handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) + // decode decodes a packet. It returns a *v5wire.Unknown packet if decryption fails. + // The *enode.Node return value is non-nil when the input contains a handshake response. + Decode([]byte, string) (enode.ID, *enode.Node, v5wire.Packet, error) } // UDPv5 is the implementation of protocol version 5. @@ -83,6 +72,10 @@ type UDPv5 struct { clock mclock.Clock validSchemes enr.IdentityScheme + // talkreq handler registry + trlock sync.Mutex + trhandlers map[string]func([]byte) []byte + // channels into dispatch packetInCh chan ReadPacket readNextCh chan struct{} @@ -93,7 +86,7 @@ type UDPv5 struct { // state of dispatch codec codecV5 activeCallByNode map[enode.ID]*callV5 - activeCallByAuth map[string]*callV5 + activeCallByAuth map[v5wire.Nonce]*callV5 callQueue map[enode.ID][]*callV5 // shutdown stuff @@ -106,16 +99,16 @@ type UDPv5 struct { // callV5 represents a remote procedure call against another node. type callV5 struct { node *enode.Node - packet packetV5 + packet v5wire.Packet responseType byte // expected packet type of response reqid []byte - ch chan packetV5 // responses sent here - err chan error // errors sent here + ch chan v5wire.Packet // responses sent here + err chan error // errors sent here // Valid for active calls only: - authTag []byte // authTag of request packet - handshakeCount int // # times we attempted handshake for this call - challenge *whoareyouV5 // last sent handshake challenge + nonce v5wire.Nonce // nonce of request packet + handshakeCount int // # times we attempted handshake for this call + challenge *v5wire.Whoareyou // last sent handshake challenge timeout mclock.Timer } @@ -152,6 +145,7 @@ func newUDPv5(conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { log: cfg.Log, validSchemes: cfg.ValidSchemes, clock: cfg.Clock, + trhandlers: make(map[string]func([]byte) []byte), // channels into dispatch packetInCh: make(chan ReadPacket, 1), readNextCh: make(chan struct{}, 1), @@ -159,9 +153,9 @@ func newUDPv5(conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { callDoneCh: make(chan *callV5), respTimeoutCh: make(chan *callTimeout), // state of dispatch - codec: newWireCodec(ln, cfg.PrivateKey, cfg.Clock), + codec: v5wire.NewCodec(ln, cfg.PrivateKey, cfg.Clock), activeCallByNode: make(map[enode.ID]*callV5), - activeCallByAuth: make(map[string]*callV5), + activeCallByAuth: make(map[v5wire.Nonce]*callV5), callQueue: make(map[enode.ID][]*callV5), // shutdown closeCtx: closeCtx, @@ -236,6 +230,29 @@ func (t *UDPv5) LocalNode() *enode.LocalNode { return t.localNode } +// RegisterTalkHandler adds a handler for 'talk requests'. The handler function is called +// whenever a request for the given protocol is received and should return the response +// data or nil. +func (t *UDPv5) RegisterTalkHandler(protocol string, handler func([]byte) []byte) { + t.trlock.Lock() + defer t.trlock.Unlock() + t.trhandlers[protocol] = handler +} + +// TalkRequest sends a talk request to n and waits for a response. +func (t *UDPv5) TalkRequest(n *enode.Node, protocol string, request []byte) ([]byte, error) { + req := &v5wire.TalkRequest{Protocol: protocol, Message: request} + resp := t.call(n, v5wire.TalkResponseMsg, req) + defer t.callDone(resp) + select { + case respMsg := <-resp.ch: + return respMsg.(*v5wire.TalkResponse).Message, nil + case err := <-resp.err: + return nil, err + } +} + +// RandomNodes returns an iterator that finds random nodes in the DHT. func (t *UDPv5) RandomNodes() enode.Iterator { if t.tab.len() == 0 { // All nodes were dropped, refresh. The very first query will hit this @@ -283,16 +300,14 @@ func (t *UDPv5) lookupWorker(destNode *node, target enode.ID) ([]*node, error) { nodes = nodesByDistance{target: target} err error ) - for i := 0; i < lookupRequestLimit && len(nodes.entries) < findnodeResultLimit; i++ { - var r []*enode.Node - r, err = t.findnode(unwrapNode(destNode), dists[i]) - if err == errClosed { - return nil, err - } - for _, n := range r { - if n.ID() != t.Self().ID() { - nodes.push(wrapNode(n), findnodeResultLimit) - } + var r []*enode.Node + r, err = t.findnode(unwrapNode(destNode), dists) + if err == errClosed { + return nil, err + } + for _, n := range r { + if n.ID() != t.Self().ID() { + nodes.push(wrapNode(n), findnodeResultLimit) } } return nodes.entries, err @@ -301,15 +316,15 @@ func (t *UDPv5) lookupWorker(destNode *node, target enode.ID) ([]*node, error) { // lookupDistances computes the distance parameter for FINDNODE calls to dest. // It chooses distances adjacent to logdist(target, dest), e.g. for a target // with logdist(target, dest) = 255 the result is [255, 256, 254]. -func lookupDistances(target, dest enode.ID) (dists []int) { +func lookupDistances(target, dest enode.ID) (dists []uint) { td := enode.LogDist(target, dest) - dists = append(dists, td) + dists = append(dists, uint(td)) for i := 1; len(dists) < lookupRequestLimit; i++ { if td+i < 256 { - dists = append(dists, td+i) + dists = append(dists, uint(td+i)) } if td-i > 0 { - dists = append(dists, td-i) + dists = append(dists, uint(td-i)) } } return dists @@ -317,11 +332,13 @@ func lookupDistances(target, dest enode.ID) (dists []int) { // ping calls PING on a node and waits for a PONG response. func (t *UDPv5) ping(n *enode.Node) (uint64, error) { - resp := t.call(n, p_pongV5, &pingV5{ENRSeq: t.localNode.Node().Seq()}) + req := &v5wire.Ping{ENRSeq: t.localNode.Node().Seq()} + resp := t.call(n, v5wire.PongMsg, req) defer t.callDone(resp) + select { case pong := <-resp.ch: - return pong.(*pongV5).ENRSeq, nil + return pong.(*v5wire.Pong).ENRSeq, nil case err := <-resp.err: return 0, err } @@ -329,7 +346,7 @@ func (t *UDPv5) ping(n *enode.Node) (uint64, error) { // requestENR requests n's record. func (t *UDPv5) RequestENR(n *enode.Node) (*enode.Node, error) { - nodes, err := t.findnode(n, 0) + nodes, err := t.findnode(n, []uint{0}) if err != nil { return nil, err } @@ -339,26 +356,14 @@ func (t *UDPv5) RequestENR(n *enode.Node) (*enode.Node, error) { return nodes[0], nil } -// requestTicket calls REQUESTTICKET on a node and waits for a TICKET response. -func (t *UDPv5) requestTicket(n *enode.Node) ([]byte, error) { - resp := t.call(n, p_ticketV5, &pingV5{}) - defer t.callDone(resp) - select { - case response := <-resp.ch: - return response.(*ticketV5).Ticket, nil - case err := <-resp.err: - return nil, err - } -} - // findnode calls FINDNODE on a node and waits for responses. -func (t *UDPv5) findnode(n *enode.Node, distance int) ([]*enode.Node, error) { - resp := t.call(n, p_nodesV5, &findnodeV5{Distance: uint(distance)}) - return t.waitForNodes(resp, distance) +func (t *UDPv5) findnode(n *enode.Node, distances []uint) ([]*enode.Node, error) { + resp := t.call(n, v5wire.NodesMsg, &v5wire.Findnode{Distances: distances}) + return t.waitForNodes(resp, distances) } // waitForNodes waits for NODES responses to the given call. -func (t *UDPv5) waitForNodes(c *callV5, distance int) ([]*enode.Node, error) { +func (t *UDPv5) waitForNodes(c *callV5, distances []uint) ([]*enode.Node, error) { defer t.callDone(c) var ( @@ -369,11 +374,11 @@ func (t *UDPv5) waitForNodes(c *callV5, distance int) ([]*enode.Node, error) { for { select { case responseP := <-c.ch: - response := responseP.(*nodesV5) + response := responseP.(*v5wire.Nodes) for _, record := range response.Nodes { - node, err := t.verifyResponseNode(c, record, distance, seen) + node, err := t.verifyResponseNode(c, record, distances, seen) if err != nil { - t.log.Debug("Invalid record in "+response.name(), "id", c.node.ID(), "err", err) + t.log.Debug("Invalid record in "+response.Name(), "id", c.node.ID(), "err", err) continue } nodes = append(nodes, node) @@ -391,7 +396,7 @@ func (t *UDPv5) waitForNodes(c *callV5, distance int) ([]*enode.Node, error) { } // verifyResponseNode checks validity of a record in a NODES response. -func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distance int, seen map[enode.ID]struct{}) (*enode.Node, error) { +func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distances []uint, seen map[enode.ID]struct{}) (*enode.Node, error) { node, err := enode.New(t.validSchemes, r) if err != nil { return nil, err @@ -402,9 +407,10 @@ func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distance int, seen if c.node.UDP() <= 1024 { return nil, errLowPort } - if distance != -1 { - if d := enode.LogDist(c.node.ID(), node.ID()); d != distance { - return nil, fmt.Errorf("wrong distance %d", d) + if distances != nil { + nd := enode.LogDist(c.node.ID(), node.ID()) + if !containsUint(uint(nd), distances) { + return nil, errors.New("does not match any requested distance") } } if _, ok := seen[node.ID()]; ok { @@ -414,20 +420,29 @@ func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distance int, seen return node, nil } -// call sends the given call and sets up a handler for response packets (of type c.responseType). -// Responses are dispatched to the call's response channel. -func (t *UDPv5) call(node *enode.Node, responseType byte, packet packetV5) *callV5 { +func containsUint(x uint, xs []uint) bool { + for _, v := range xs { + if x == v { + return true + } + } + return false +} + +// call sends the given call and sets up a handler for response packets (of message type +// responseType). Responses are dispatched to the call's response channel. +func (t *UDPv5) call(node *enode.Node, responseType byte, packet v5wire.Packet) *callV5 { c := &callV5{ node: node, packet: packet, responseType: responseType, reqid: make([]byte, 8), - ch: make(chan packetV5, 1), + ch: make(chan v5wire.Packet, 1), err: make(chan error, 1), } // Assign request ID. crand.Read(c.reqid) - packet.setreqid(c.reqid) + packet.SetRequestID(c.reqid) // Send call to dispatch. select { case t.callCh <- c: @@ -482,7 +497,7 @@ func (t *UDPv5) dispatch() { panic("BUG: callDone for inactive call") } c.timeout.Stop() - delete(t.activeCallByAuth, string(c.authTag)) + delete(t.activeCallByAuth, c.nonce) delete(t.activeCallByNode, id) t.sendNextCall(id) @@ -502,7 +517,7 @@ func (t *UDPv5) dispatch() { for id, c := range t.activeCallByNode { c.err <- errClosed delete(t.activeCallByNode, id) - delete(t.activeCallByAuth, string(c.authTag)) + delete(t.activeCallByAuth, c.nonce) } return } @@ -548,38 +563,37 @@ func (t *UDPv5) sendNextCall(id enode.ID) { // sendCall encodes and sends a request packet to the call's recipient node. // This performs a handshake if needed. func (t *UDPv5) sendCall(c *callV5) { - if len(c.authTag) > 0 { - // The call already has an authTag from a previous handshake attempt. Remove the - // entry for the authTag because we're about to generate a new authTag for this - // call. - delete(t.activeCallByAuth, string(c.authTag)) + // The call might have a nonce from a previous handshake attempt. Remove the entry for + // the old nonce because we're about to generate a new nonce for this call. + if c.nonce != (v5wire.Nonce{}) { + delete(t.activeCallByAuth, c.nonce) } addr := &net.UDPAddr{IP: c.node.IP(), Port: c.node.UDP()} - newTag, _ := t.send(c.node.ID(), addr, c.packet, c.challenge) - c.authTag = newTag - t.activeCallByAuth[string(c.authTag)] = c + newNonce, _ := t.send(c.node.ID(), addr, c.packet, c.challenge) + c.nonce = newNonce + t.activeCallByAuth[newNonce] = c t.startResponseTimeout(c) } // sendResponse sends a response packet to the given node. // This doesn't trigger a handshake even if no keys are available. -func (t *UDPv5) sendResponse(toID enode.ID, toAddr *net.UDPAddr, packet packetV5) error { +func (t *UDPv5) sendResponse(toID enode.ID, toAddr *net.UDPAddr, packet v5wire.Packet) error { _, err := t.send(toID, toAddr, packet, nil) return err } // send sends a packet to the given node. -func (t *UDPv5) send(toID enode.ID, toAddr *net.UDPAddr, packet packetV5, c *whoareyouV5) ([]byte, error) { +func (t *UDPv5) send(toID enode.ID, toAddr *net.UDPAddr, packet v5wire.Packet, c *v5wire.Whoareyou) (v5wire.Nonce, error) { addr := toAddr.String() - enc, authTag, err := t.codec.encode(toID, addr, packet, c) + enc, nonce, err := t.codec.Encode(toID, addr, packet, c) if err != nil { - t.log.Warn(">> "+packet.name(), "id", toID, "addr", addr, "err", err) - return authTag, err + t.log.Warn(">> "+packet.Name(), "id", toID, "addr", addr, "err", err) + return nonce, err } _, err = t.conn.WriteToUDP(enc, toAddr) - t.log.Trace(">> "+packet.name(), "id", toID, "addr", addr) - return authTag, err + t.log.Trace(">> "+packet.Name(), "id", toID, "addr", addr) + return nonce, err } // readLoop runs in its own goroutine and reads packets from the network. @@ -617,7 +631,7 @@ func (t *UDPv5) dispatchReadPacket(from *net.UDPAddr, content []byte) bool { // handlePacket decodes and processes an incoming packet from the network. func (t *UDPv5) handlePacket(rawpacket []byte, fromAddr *net.UDPAddr) error { addr := fromAddr.String() - fromID, fromNode, packet, err := t.codec.decode(rawpacket, addr) + fromID, fromNode, packet, err := t.codec.Decode(rawpacket, addr) if err != nil { t.log.Debug("Bad discv5 packet", "id", fromID, "addr", addr, "err", err) return err @@ -626,31 +640,32 @@ func (t *UDPv5) handlePacket(rawpacket []byte, fromAddr *net.UDPAddr) error { // Handshake succeeded, add to table. t.tab.addSeenNode(wrapNode(fromNode)) } - if packet.kind() != p_whoareyouV5 { - // WHOAREYOU logged separately to report the sender ID. - t.log.Trace("<< "+packet.name(), "id", fromID, "addr", addr) + if packet.Kind() != v5wire.WhoareyouPacket { + // WHOAREYOU logged separately to report errors. + t.log.Trace("<< "+packet.Name(), "id", fromID, "addr", addr) } - packet.handle(t, fromID, fromAddr) + t.handle(packet, fromID, fromAddr) return nil } // handleCallResponse dispatches a response packet to the call waiting for it. -func (t *UDPv5) handleCallResponse(fromID enode.ID, fromAddr *net.UDPAddr, reqid []byte, p packetV5) { +func (t *UDPv5) handleCallResponse(fromID enode.ID, fromAddr *net.UDPAddr, p v5wire.Packet) bool { ac := t.activeCallByNode[fromID] - if ac == nil || !bytes.Equal(reqid, ac.reqid) { - t.log.Debug(fmt.Sprintf("Unsolicited/late %s response", p.name()), "id", fromID, "addr", fromAddr) - return + if ac == nil || !bytes.Equal(p.RequestID(), ac.reqid) { + t.log.Debug(fmt.Sprintf("Unsolicited/late %s response", p.Name()), "id", fromID, "addr", fromAddr) + return false } if !fromAddr.IP.Equal(ac.node.IP()) || fromAddr.Port != ac.node.UDP() { - t.log.Debug(fmt.Sprintf("%s from wrong endpoint", p.name()), "id", fromID, "addr", fromAddr) - return + t.log.Debug(fmt.Sprintf("%s from wrong endpoint", p.Name()), "id", fromID, "addr", fromAddr) + return false } - if p.kind() != ac.responseType { - t.log.Debug(fmt.Sprintf("Wrong disv5 response type %s", p.name()), "id", fromID, "addr", fromAddr) - return + if p.Kind() != ac.responseType { + t.log.Debug(fmt.Sprintf("Wrong discv5 response type %s", p.Name()), "id", fromID, "addr", fromAddr) + return false } t.startResponseTimeout(ac) ac.ch <- p + return true } // getNode looks for a node record in table and database. @@ -664,50 +679,65 @@ func (t *UDPv5) getNode(id enode.ID) *enode.Node { return nil } -// UNKNOWN - -func (p *unknownV5) name() string { return "UNKNOWN/v5" } -func (p *unknownV5) kind() byte { return p_unknownV5 } -func (p *unknownV5) setreqid(id []byte) {} +// handle processes incoming packets according to their message type. +func (t *UDPv5) handle(p v5wire.Packet, fromID enode.ID, fromAddr *net.UDPAddr) { + switch p := p.(type) { + case *v5wire.Unknown: + t.handleUnknown(p, fromID, fromAddr) + case *v5wire.Whoareyou: + t.handleWhoareyou(p, fromID, fromAddr) + case *v5wire.Ping: + t.handlePing(p, fromID, fromAddr) + case *v5wire.Pong: + if t.handleCallResponse(fromID, fromAddr, p) { + t.localNode.UDPEndpointStatement(fromAddr, &net.UDPAddr{IP: p.ToIP, Port: int(p.ToPort)}) + } + case *v5wire.Findnode: + t.handleFindnode(p, fromID, fromAddr) + case *v5wire.Nodes: + t.handleCallResponse(fromID, fromAddr, p) + case *v5wire.TalkRequest: + t.handleTalkRequest(p, fromID, fromAddr) + case *v5wire.TalkResponse: + t.handleCallResponse(fromID, fromAddr, p) + } +} -func (p *unknownV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - challenge := &whoareyouV5{AuthTag: p.AuthTag} +// handleUnknown initiates a handshake by responding with WHOAREYOU. +func (t *UDPv5) handleUnknown(p *v5wire.Unknown, fromID enode.ID, fromAddr *net.UDPAddr) { + challenge := &v5wire.Whoareyou{Nonce: p.Nonce} crand.Read(challenge.IDNonce[:]) if n := t.getNode(fromID); n != nil { - challenge.node = n + challenge.Node = n challenge.RecordSeq = n.Seq() } t.sendResponse(fromID, fromAddr, challenge) } -// WHOAREYOU - -func (p *whoareyouV5) name() string { return "WHOAREYOU/v5" } -func (p *whoareyouV5) kind() byte { return p_whoareyouV5 } -func (p *whoareyouV5) setreqid(id []byte) {} +var ( + errChallengeNoCall = errors.New("no matching call") + errChallengeTwice = errors.New("second handshake") +) -func (p *whoareyouV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - c, err := p.matchWithCall(t, p.AuthTag) +// handleWhoareyou resends the active call as a handshake packet. +func (t *UDPv5) handleWhoareyou(p *v5wire.Whoareyou, fromID enode.ID, fromAddr *net.UDPAddr) { + c, err := t.matchWithCall(fromID, p.Nonce) if err != nil { - t.log.Debug("Invalid WHOAREYOU/v5", "addr", fromAddr, "err", err) + t.log.Debug("Invalid "+p.Name(), "addr", fromAddr, "err", err) return } + // Resend the call that was answered by WHOAREYOU. - t.log.Trace("<< "+p.name(), "id", c.node.ID(), "addr", fromAddr) + t.log.Trace("<< "+p.Name(), "id", c.node.ID(), "addr", fromAddr) c.handshakeCount++ c.challenge = p - p.node = c.node + p.Node = c.node t.sendCall(c) } -var ( - errChallengeNoCall = errors.New("no matching call") - errChallengeTwice = errors.New("second handshake") -) - -// matchWithCall checks whether the handshake attempt matches the active call. -func (p *whoareyouV5) matchWithCall(t *UDPv5, authTag []byte) (*callV5, error) { - c := t.activeCallByAuth[string(authTag)] +// matchWithCall checks whether a handshake attempt matches the active call. +func (t *UDPv5) matchWithCall(fromID enode.ID, nonce v5wire.Nonce) (*callV5, error) { + c := t.activeCallByAuth[nonce] if c == nil { return nil, errChallengeNoCall } @@ -717,14 +747,9 @@ func (p *whoareyouV5) matchWithCall(t *UDPv5, authTag []byte) (*callV5, error) { return c, nil } -// PING - -func (p *pingV5) name() string { return "PING/v5" } -func (p *pingV5) kind() byte { return p_pingV5 } -func (p *pingV5) setreqid(id []byte) { p.ReqID = id } - -func (p *pingV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.sendResponse(fromID, fromAddr, &pongV5{ +// handlePing sends a PONG response. +func (t *UDPv5) handlePing(p *v5wire.Ping, fromID enode.ID, fromAddr *net.UDPAddr) { + t.sendResponse(fromID, fromAddr, &v5wire.Pong{ ReqID: p.ReqID, ToIP: fromAddr.IP, ToPort: uint16(fromAddr.Port), @@ -732,121 +757,81 @@ func (p *pingV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { }) } -// PONG - -func (p *pongV5) name() string { return "PONG/v5" } -func (p *pongV5) kind() byte { return p_pongV5 } -func (p *pongV5) setreqid(id []byte) { p.ReqID = id } - -func (p *pongV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.localNode.UDPEndpointStatement(fromAddr, &net.UDPAddr{IP: p.ToIP, Port: int(p.ToPort)}) - t.handleCallResponse(fromID, fromAddr, p.ReqID, p) +// handleFindnode returns nodes to the requester. +func (t *UDPv5) handleFindnode(p *v5wire.Findnode, fromID enode.ID, fromAddr *net.UDPAddr) { + nodes := t.collectTableNodes(fromAddr.IP, p.Distances, findnodeResultLimit) + for _, resp := range packNodes(p.ReqID, nodes) { + t.sendResponse(fromID, fromAddr, resp) + } } -// FINDNODE +// collectTableNodes creates a FINDNODE result set for the given distances. +func (t *UDPv5) collectTableNodes(rip net.IP, distances []uint, limit int) []*enode.Node { + var nodes []*enode.Node + var processed = make(map[uint]struct{}) + for _, dist := range distances { + // Reject duplicate / invalid distances. + _, seen := processed[dist] + if seen || dist > 256 { + continue + } -func (p *findnodeV5) name() string { return "FINDNODE/v5" } -func (p *findnodeV5) kind() byte { return p_findnodeV5 } -func (p *findnodeV5) setreqid(id []byte) { p.ReqID = id } + // Get the nodes. + var bn []*enode.Node + if dist == 0 { + bn = []*enode.Node{t.Self()} + } else if dist <= 256 { + t.tab.mutex.Lock() + bn = unwrapNodes(t.tab.bucketAtDistance(int(dist)).entries) + t.tab.mutex.Unlock() + } + processed[dist] = struct{}{} -func (p *findnodeV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - if p.Distance == 0 { - t.sendNodes(fromID, fromAddr, p.ReqID, []*enode.Node{t.Self()}) - return - } - if p.Distance > 256 { - p.Distance = 256 - } - // Get bucket entries. - t.tab.mutex.Lock() - nodes := unwrapNodes(t.tab.bucketAtDistance(int(p.Distance)).entries) - t.tab.mutex.Unlock() - if len(nodes) > findnodeResultLimit { - nodes = nodes[:findnodeResultLimit] + // Apply some pre-checks to avoid sending invalid nodes. + for _, n := range bn { + // TODO livenessChecks > 1 + if netutil.CheckRelayIP(rip, n.IP()) != nil { + continue + } + nodes = append(nodes, n) + if len(nodes) >= limit { + return nodes + } + } } - t.sendNodes(fromID, fromAddr, p.ReqID, nodes) + return nodes } -// sendNodes sends the given records in one or more NODES packets. -func (t *UDPv5) sendNodes(toID enode.ID, toAddr *net.UDPAddr, reqid []byte, nodes []*enode.Node) { - // TODO livenessChecks > 1 - // TODO CheckRelayIP - total := uint8(math.Ceil(float64(len(nodes)) / 3)) - resp := &nodesV5{ReqID: reqid, Total: total, Nodes: make([]*enr.Record, 3)} - sent := false +// packNodes creates NODES response packets for the given node list. +func packNodes(reqid []byte, nodes []*enode.Node) []*v5wire.Nodes { + if len(nodes) == 0 { + return []*v5wire.Nodes{{ReqID: reqid, Total: 1}} + } + + total := uint8(math.Ceil(float64(len(nodes)) / float64(nodesResponseItemLimit))) + var resp []*v5wire.Nodes for len(nodes) > 0 { + p := &v5wire.Nodes{ReqID: reqid, Total: total} items := min(nodesResponseItemLimit, len(nodes)) - resp.Nodes = resp.Nodes[:items] for i := 0; i < items; i++ { - resp.Nodes[i] = nodes[i].Record() + p.Nodes = append(p.Nodes, nodes[i].Record()) } - t.sendResponse(toID, toAddr, resp) nodes = nodes[items:] - sent = true - } - // Ensure at least one response is sent. - if !sent { - resp.Total = 1 - resp.Nodes = nil - t.sendResponse(toID, toAddr, resp) + resp = append(resp, p) } + return resp } -// NODES +// handleTalkRequest runs the talk request handler of the requested protocol. +func (t *UDPv5) handleTalkRequest(p *v5wire.TalkRequest, fromID enode.ID, fromAddr *net.UDPAddr) { + t.trlock.Lock() + handler := t.trhandlers[p.Protocol] + t.trlock.Unlock() -func (p *nodesV5) name() string { return "NODES/v5" } -func (p *nodesV5) kind() byte { return p_nodesV5 } -func (p *nodesV5) setreqid(id []byte) { p.ReqID = id } - -func (p *nodesV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.handleCallResponse(fromID, fromAddr, p.ReqID, p) -} - -// REQUESTTICKET - -func (p *requestTicketV5) name() string { return "REQUESTTICKET/v5" } -func (p *requestTicketV5) kind() byte { return p_requestTicketV5 } -func (p *requestTicketV5) setreqid(id []byte) { p.ReqID = id } - -func (p *requestTicketV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.sendResponse(fromID, fromAddr, &ticketV5{ReqID: p.ReqID}) -} - -// TICKET - -func (p *ticketV5) name() string { return "TICKET/v5" } -func (p *ticketV5) kind() byte { return p_ticketV5 } -func (p *ticketV5) setreqid(id []byte) { p.ReqID = id } - -func (p *ticketV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.handleCallResponse(fromID, fromAddr, p.ReqID, p) -} - -// REGTOPIC - -func (p *regtopicV5) name() string { return "REGTOPIC/v5" } -func (p *regtopicV5) kind() byte { return p_regtopicV5 } -func (p *regtopicV5) setreqid(id []byte) { p.ReqID = id } - -func (p *regtopicV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.sendResponse(fromID, fromAddr, ®confirmationV5{ReqID: p.ReqID, Registered: false}) -} - -// REGCONFIRMATION - -func (p *regconfirmationV5) name() string { return "REGCONFIRMATION/v5" } -func (p *regconfirmationV5) kind() byte { return p_regconfirmationV5 } -func (p *regconfirmationV5) setreqid(id []byte) { p.ReqID = id } - -func (p *regconfirmationV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { - t.handleCallResponse(fromID, fromAddr, p.ReqID, p) -} - -// TOPICQUERY - -func (p *topicqueryV5) name() string { return "TOPICQUERY/v5" } -func (p *topicqueryV5) kind() byte { return p_topicqueryV5 } -func (p *topicqueryV5) setreqid(id []byte) { p.ReqID = id } - -func (p *topicqueryV5) handle(t *UDPv5, fromID enode.ID, fromAddr *net.UDPAddr) { + var response []byte + if handler != nil { + response = handler(p.Message) + } + resp := &v5wire.TalkResponse{ReqID: p.ReqID, Message: response} + t.sendResponse(fromID, fromAddr, resp) } diff --git a/p2p/discover/v5_udp_test.go b/p2p/discover/v5_udp_test.go index f3af55b208d7..6779972ff7a9 100644 --- a/p2p/discover/v5_udp_test.go +++ b/p2p/discover/v5_udp_test.go @@ -24,22 +24,25 @@ import ( "math/rand" "net" "reflect" + "sort" "testing" "time" "github.com/XinFinOrg/XDPoSChain/internal/testlog" "github.com/XinFinOrg/XDPoSChain/log" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v5wire" "github.com/XinFinOrg/XDPoSChain/p2p/enode" "github.com/XinFinOrg/XDPoSChain/p2p/enr" "github.com/XinFinOrg/XDPoSChain/rlp" ) // Real sockets, real crypto: this test checks end-to-end connectivity for UDPv5. -func TestEndToEndV5(t *testing.T) { +func TestUDPv5_lookupE2E(t *testing.T) { t.Parallel() + const N = 5 var nodes []*UDPv5 - for i := 0; i < 5; i++ { + for i := 0; i < N; i++ { var cfg Config if len(nodes) > 0 { bn := nodes[0].Self() @@ -49,12 +52,34 @@ func TestEndToEndV5(t *testing.T) { nodes = append(nodes, node) defer node.Close() } + last := nodes[N-1] + target := nodes[rand.Intn(N-2)].Self() - last := nodes[len(nodes)-1] - target := nodes[rand.Intn(len(nodes)-2)].Self() - results := last.Lookup(target.ID()) - if len(results) == 0 || results[0].ID() != target.ID() { - t.Fatalf("lookup returned wrong results: %v", results) + // Do lookups until the target is discovered. + var results []*enode.Node + deadline := time.Now().Add(3 * time.Second) + for { + results = last.Lookup(target.ID()) + found := false + for _, n := range results { + if n.ID() == target.ID() { + found = true + break + } + } + if found { + break + } + if time.Now().After(deadline) { + t.Fatalf("lookup failed to discover target %v, got %d nodes", target.ID(), len(results)) + } + time.Sleep(50 * time.Millisecond) + } + + if !sort.SliceIsSorted(results, func(i, j int) bool { + return enode.DistCmp(target.ID(), results[i].ID(), results[j].ID()) < 0 + }) { + t.Fatalf("lookup returned nodes out of distance order") } } @@ -88,8 +113,8 @@ func TestUDPv5_pingHandling(t *testing.T) { test := newUDPV5Test(t) defer test.close() - test.packetIn(&pingV5{ReqID: []byte("foo")}) - test.waitPacketOut(func(p *pongV5, addr *net.UDPAddr, authTag []byte) { + test.packetIn(&v5wire.Ping{ReqID: []byte("foo")}) + test.waitPacketOut(func(p *v5wire.Pong, addr *net.UDPAddr, _ v5wire.Nonce) { if !bytes.Equal(p.ReqID, []byte("foo")) { t.Error("wrong request ID in response:", p.ReqID) } @@ -105,13 +130,13 @@ func TestUDPv5_unknownPacket(t *testing.T) { test := newUDPV5Test(t) defer test.close() - authTag := [12]byte{1, 2, 3} - check := func(p *whoareyouV5, wantSeq uint64) { + nonce := v5wire.Nonce{1, 2, 3} + check := func(p *v5wire.Whoareyou, wantSeq uint64) { t.Helper() - if !bytes.Equal(p.AuthTag, authTag[:]) { - t.Error("wrong token in WHOAREYOU:", p.AuthTag, authTag[:]) + if p.Nonce != nonce { + t.Error("wrong nonce in WHOAREYOU:", p.Nonce, nonce) } - if p.IDNonce == ([32]byte{}) { + if p.IDNonce == ([16]byte{}) { t.Error("all zero ID nonce") } if p.RecordSeq != wantSeq { @@ -120,8 +145,8 @@ func TestUDPv5_unknownPacket(t *testing.T) { } // Unknown packet from unknown node. - test.packetIn(&unknownV5{AuthTag: authTag[:]}) - test.waitPacketOut(func(p *whoareyouV5, addr *net.UDPAddr, _ []byte) { + test.packetIn(&v5wire.Unknown{Nonce: nonce}) + test.waitPacketOut(func(p *v5wire.Whoareyou, addr *net.UDPAddr, _ v5wire.Nonce) { check(p, 0) }) @@ -129,8 +154,8 @@ func TestUDPv5_unknownPacket(t *testing.T) { n := test.getNode(test.remotekey, test.remoteaddr).Node() test.table.addSeenNode(wrapNode(n)) - test.packetIn(&unknownV5{AuthTag: authTag[:]}) - test.waitPacketOut(func(p *whoareyouV5, addr *net.UDPAddr, _ []byte) { + test.packetIn(&v5wire.Unknown{Nonce: nonce}) + test.waitPacketOut(func(p *v5wire.Whoareyou, addr *net.UDPAddr, _ v5wire.Nonce) { check(p, n.Seq()) }) } @@ -142,24 +167,40 @@ func TestUDPv5_findnodeHandling(t *testing.T) { defer test.close() // Create test nodes and insert them into the table. - nodes := nodesAtDistance(test.table.self().ID(), 253, 10) - fillTable(test.table, wrapNodes(nodes)) + nodes253 := nodesAtDistance(test.table.self().ID(), 253, 10) + nodes249 := nodesAtDistance(test.table.self().ID(), 249, 4) + nodes248 := nodesAtDistance(test.table.self().ID(), 248, 10) + fillTable(test.table, wrapNodes(nodes253)) + fillTable(test.table, wrapNodes(nodes249)) + fillTable(test.table, wrapNodes(nodes248)) // Requesting with distance zero should return the node's own record. - test.packetIn(&findnodeV5{ReqID: []byte{0}, Distance: 0}) + test.packetIn(&v5wire.Findnode{ReqID: []byte{0}, Distances: []uint{0}}) test.expectNodes([]byte{0}, 1, []*enode.Node{test.udp.Self()}) - // Requesting with distance > 256 caps it at 256. - test.packetIn(&findnodeV5{ReqID: []byte{1}, Distance: 4234098}) + // Requesting with distance > 256 shouldn't crash. + test.packetIn(&v5wire.Findnode{ReqID: []byte{1}, Distances: []uint{4234098}}) test.expectNodes([]byte{1}, 1, nil) - // This request gets no nodes because the corresponding bucket is empty. - test.packetIn(&findnodeV5{ReqID: []byte{2}, Distance: 254}) + // Requesting with empty distance list shouldn't crash either. + test.packetIn(&v5wire.Findnode{ReqID: []byte{2}, Distances: []uint{}}) test.expectNodes([]byte{2}, 1, nil) - // This request gets all test nodes. - test.packetIn(&findnodeV5{ReqID: []byte{3}, Distance: 253}) - test.expectNodes([]byte{3}, 4, nodes) + // This request gets no nodes because the corresponding bucket is empty. + test.packetIn(&v5wire.Findnode{ReqID: []byte{3}, Distances: []uint{254}}) + test.expectNodes([]byte{3}, 1, nil) + + // This request gets all the distance-253 nodes. + test.packetIn(&v5wire.Findnode{ReqID: []byte{4}, Distances: []uint{253}}) + test.expectNodes([]byte{4}, 4, nodes253) + + // This request gets all the distance-249 nodes and some more at 248 because + // the bucket at 249 is not full. + test.packetIn(&v5wire.Findnode{ReqID: []byte{5}, Distances: []uint{249, 248}}) + var nodes []*enode.Node + nodes = append(nodes, nodes249...) + nodes = append(nodes, nodes248[:10]...) + test.expectNodes([]byte{5}, 5, nodes) } func (test *udpV5Test) expectNodes(wantReqID []byte, wantTotal uint8, wantNodes []*enode.Node) { @@ -167,16 +208,17 @@ func (test *udpV5Test) expectNodes(wantReqID []byte, wantTotal uint8, wantNodes for _, n := range wantNodes { nodeSet[n.ID()] = n.Record() } + for { - test.waitPacketOut(func(p *nodesV5, addr *net.UDPAddr, authTag []byte) { + test.waitPacketOut(func(p *v5wire.Nodes, addr *net.UDPAddr, _ v5wire.Nonce) { + if !bytes.Equal(p.ReqID, wantReqID) { + test.t.Fatalf("wrong request ID %v in response, want %v", p.ReqID, wantReqID) + } if len(p.Nodes) > 3 { test.t.Fatalf("too many nodes in response") } if p.Total != wantTotal { - test.t.Fatalf("wrong total response count %d", p.Total) - } - if !bytes.Equal(p.ReqID, wantReqID) { - test.t.Fatalf("wrong request ID in response: %v", p.ReqID) + test.t.Fatalf("wrong total response count %d, want %d", p.Total, wantTotal) } for _, record := range p.Nodes { n, _ := enode.New(enode.ValidSchemesForTesting, record) @@ -210,7 +252,7 @@ func TestUDPv5_pingCall(t *testing.T) { _, err := test.udp.ping(remote) done <- err }() - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) {}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, _ v5wire.Nonce) {}) if err := <-done; err != errTimeout { t.Fatalf("want errTimeout, got %q", err) } @@ -220,8 +262,8 @@ func TestUDPv5_pingCall(t *testing.T) { _, err := test.udp.ping(remote) done <- err }() - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetInFrom(test.remotekey, test.remoteaddr, &pongV5{ReqID: p.ReqID}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, _ v5wire.Nonce) { + test.packetInFrom(test.remotekey, test.remoteaddr, &v5wire.Pong{ReqID: p.ReqID}) }) if err := <-done; err != nil { t.Fatal(err) @@ -232,9 +274,9 @@ func TestUDPv5_pingCall(t *testing.T) { _, err := test.udp.ping(remote) done <- err }() - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, _ v5wire.Nonce) { wrongAddr := &net.UDPAddr{IP: net.IP{33, 44, 55, 22}, Port: 10101} - test.packetInFrom(test.remotekey, wrongAddr, &pongV5{ReqID: p.ReqID}) + test.packetInFrom(test.remotekey, wrongAddr, &v5wire.Pong{ReqID: p.ReqID}) }) if err := <-done; err != errTimeout { t.Fatalf("want errTimeout for reply from wrong IP, got %q", err) @@ -250,29 +292,29 @@ func TestUDPv5_findnodeCall(t *testing.T) { // Launch the request: var ( - distance = 230 - remote = test.getNode(test.remotekey, test.remoteaddr).Node() - nodes = nodesAtDistance(remote.ID(), distance, 8) - done = make(chan error, 1) - response []*enode.Node + distances = []uint{230} + remote = test.getNode(test.remotekey, test.remoteaddr).Node() + nodes = nodesAtDistance(remote.ID(), int(distances[0]), 8) + done = make(chan error, 1) + response []*enode.Node ) go func() { var err error - response, err = test.udp.findnode(remote, distance) + response, err = test.udp.findnode(remote, distances) done <- err }() // Serve the responses: - test.waitPacketOut(func(p *findnodeV5, addr *net.UDPAddr, authTag []byte) { - if p.Distance != uint(distance) { - t.Fatalf("wrong bucket: %d", p.Distance) + test.waitPacketOut(func(p *v5wire.Findnode, addr *net.UDPAddr, _ v5wire.Nonce) { + if !reflect.DeepEqual(p.Distances, distances) { + t.Fatalf("wrong distances in request: %v", p.Distances) } - test.packetIn(&nodesV5{ + test.packetIn(&v5wire.Nodes{ ReqID: p.ReqID, Total: 2, Nodes: nodesToRecords(nodes[:4]), }) - test.packetIn(&nodesV5{ + test.packetIn(&v5wire.Nodes{ ReqID: p.ReqID, Total: 2, Nodes: nodesToRecords(nodes[4:]), @@ -309,16 +351,16 @@ func TestUDPv5_callResend(t *testing.T) { }() // Ping answered by WHOAREYOU. - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetIn(&whoareyouV5{AuthTag: authTag}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, nonce v5wire.Nonce) { + test.packetIn(&v5wire.Whoareyou{Nonce: nonce}) }) // Ping should be re-sent. - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetIn(&pongV5{ReqID: p.ReqID}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, _ v5wire.Nonce) { + test.packetIn(&v5wire.Pong{ReqID: p.ReqID}) }) // Answer the other ping. - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetIn(&pongV5{ReqID: p.ReqID}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, _ v5wire.Nonce) { + test.packetIn(&v5wire.Pong{ReqID: p.ReqID}) }) if err := <-done; err != nil { t.Fatalf("unexpected ping error: %v", err) @@ -342,12 +384,12 @@ func TestUDPv5_multipleHandshakeRounds(t *testing.T) { }() // Ping answered by WHOAREYOU. - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetIn(&whoareyouV5{AuthTag: authTag}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, nonce v5wire.Nonce) { + test.packetIn(&v5wire.Whoareyou{Nonce: nonce}) }) // Ping answered by WHOAREYOU again. - test.waitPacketOut(func(p *pingV5, addr *net.UDPAddr, authTag []byte) { - test.packetIn(&whoareyouV5{AuthTag: authTag}) + test.waitPacketOut(func(p *v5wire.Ping, addr *net.UDPAddr, nonce v5wire.Nonce) { + test.packetIn(&v5wire.Whoareyou{Nonce: nonce}) }) if err := <-done; err != errTimeout { t.Fatalf("unexpected ping error: %q", err) @@ -362,27 +404,27 @@ func TestUDPv5_callTimeoutReset(t *testing.T) { // Launch the request: var ( - distance = 230 + distance = uint(230) remote = test.getNode(test.remotekey, test.remoteaddr).Node() - nodes = nodesAtDistance(remote.ID(), distance, 8) + nodes = nodesAtDistance(remote.ID(), int(distance), 8) done = make(chan error, 1) ) go func() { - _, err := test.udp.findnode(remote, distance) + _, err := test.udp.findnode(remote, []uint{distance}) done <- err }() // Serve two responses, slowly. - test.waitPacketOut(func(p *findnodeV5, addr *net.UDPAddr, authTag []byte) { + test.waitPacketOut(func(p *v5wire.Findnode, addr *net.UDPAddr, _ v5wire.Nonce) { time.Sleep(respTimeout - 50*time.Millisecond) - test.packetIn(&nodesV5{ + test.packetIn(&v5wire.Nodes{ ReqID: p.ReqID, Total: 2, Nodes: nodesToRecords(nodes[:4]), }) time.Sleep(respTimeout - 50*time.Millisecond) - test.packetIn(&nodesV5{ + test.packetIn(&v5wire.Nodes{ ReqID: p.ReqID, Total: 2, Nodes: nodesToRecords(nodes[4:]), @@ -393,6 +435,97 @@ func TestUDPv5_callTimeoutReset(t *testing.T) { } } +// This test checks that TALKREQ calls the registered handler function. +func TestUDPv5_talkHandling(t *testing.T) { + t.Parallel() + test := newUDPV5Test(t) + defer test.close() + + var recvMessage []byte + test.udp.RegisterTalkHandler("test", func(message []byte) []byte { + recvMessage = message + return []byte("test response") + }) + + // Successful case: + test.packetIn(&v5wire.TalkRequest{ + ReqID: []byte("foo"), + Protocol: "test", + Message: []byte("test request"), + }) + test.waitPacketOut(func(p *v5wire.TalkResponse, addr *net.UDPAddr, _ v5wire.Nonce) { + if !bytes.Equal(p.ReqID, []byte("foo")) { + t.Error("wrong request ID in response:", p.ReqID) + } + if string(p.Message) != "test response" { + t.Errorf("wrong talk response message: %q", p.Message) + } + if string(recvMessage) != "test request" { + t.Errorf("wrong message received in handler: %q", recvMessage) + } + }) + + // Check that empty response is returned for unregistered protocols. + recvMessage = nil + test.packetIn(&v5wire.TalkRequest{ + ReqID: []byte("2"), + Protocol: "wrong", + Message: []byte("test request"), + }) + test.waitPacketOut(func(p *v5wire.TalkResponse, addr *net.UDPAddr, _ v5wire.Nonce) { + if !bytes.Equal(p.ReqID, []byte("2")) { + t.Error("wrong request ID in response:", p.ReqID) + } + if string(p.Message) != "" { + t.Errorf("wrong talk response message: %q", p.Message) + } + if recvMessage != nil { + t.Errorf("handler was called for wrong protocol: %q", recvMessage) + } + }) +} + +// This test checks that outgoing TALKREQ calls work. +func TestUDPv5_talkRequest(t *testing.T) { + t.Parallel() + test := newUDPV5Test(t) + defer test.close() + + remote := test.getNode(test.remotekey, test.remoteaddr).Node() + done := make(chan error, 1) + + // This request times out. + go func() { + _, err := test.udp.TalkRequest(remote, "test", []byte("test request")) + done <- err + }() + test.waitPacketOut(func(p *v5wire.TalkRequest, addr *net.UDPAddr, _ v5wire.Nonce) {}) + if err := <-done; err != errTimeout { + t.Fatalf("want errTimeout, got %q", err) + } + + // This request works. + go func() { + _, err := test.udp.TalkRequest(remote, "test", []byte("test request")) + done <- err + }() + test.waitPacketOut(func(p *v5wire.TalkRequest, addr *net.UDPAddr, _ v5wire.Nonce) { + if p.Protocol != "test" { + t.Errorf("wrong protocol ID in talk request: %q", p.Protocol) + } + if string(p.Message) != "test request" { + t.Errorf("wrong message talk request: %q", p.Message) + } + test.packetInFrom(test.remotekey, test.remoteaddr, &v5wire.TalkResponse{ + ReqID: p.ReqID, + Message: []byte("test response"), + }) + }) + if err := <-done; err != nil { + t.Fatal(err) + } +} + // This test checks that lookup works. func TestUDPv5_lookup(t *testing.T) { t.Parallel() @@ -412,7 +545,8 @@ func TestUDPv5_lookup(t *testing.T) { } // Seed table with initial node. - fillTable(test.table, []*node{wrapNode(lookupTestnet.node(256, 0))}) + initialNode := lookupTestnet.node(256, 0) + fillTable(test.table, []*node{wrapNode(initialNode)}) // Start the lookup. resultC := make(chan []*enode.Node, 1) @@ -422,22 +556,30 @@ func TestUDPv5_lookup(t *testing.T) { }() // Answer lookup packets. + asked := make(map[enode.ID]bool) for done := false; !done; { - done = test.waitPacketOut(func(p packetV5, to *net.UDPAddr, authTag []byte) { + done = test.waitPacketOut(func(p v5wire.Packet, to *net.UDPAddr, _ v5wire.Nonce) { recipient, key := lookupTestnet.nodeByAddr(to) switch p := p.(type) { - case *pingV5: - test.packetInFrom(key, to, &pongV5{ReqID: p.ReqID}) - case *findnodeV5: - nodes := lookupTestnet.neighborsAtDistance(recipient, p.Distance, 3) - response := &nodesV5{ReqID: p.ReqID, Total: 1, Nodes: nodesToRecords(nodes)} - test.packetInFrom(key, to, response) + case *v5wire.Ping: + test.packetInFrom(key, to, &v5wire.Pong{ReqID: p.ReqID}) + case *v5wire.Findnode: + if asked[recipient.ID()] { + t.Error("Asked node", recipient.ID(), "twice") + } + asked[recipient.ID()] = true + nodes := lookupTestnet.neighborsAtDistances(recipient, p.Distances, 16) + t.Logf("Got FINDNODE for %v, returning %d nodes", p.Distances, len(nodes)) + for _, resp := range packNodes(p.ReqID, nodes) { + test.packetInFrom(key, to, resp) + } } }) } // Verify result nodes. - checkLookupResults(t, lookupTestnet, <-resultC) + results := <-resultC + checkLookupResults(t, lookupTestnet, results) } // This test checks the local node can be utilised to set key-values. @@ -476,6 +618,7 @@ type udpV5Test struct { nodesByIP map[string]*enode.LocalNode } +// testCodec is the packet encoding used by protocol tests. This codec does not perform encryption. type testCodec struct { test *udpV5Test id enode.ID @@ -484,46 +627,44 @@ type testCodec struct { type testCodecFrame struct { NodeID enode.ID - AuthTag []byte + AuthTag v5wire.Nonce Ptype byte Packet rlp.RawValue } -func (c *testCodec) encode(toID enode.ID, addr string, p packetV5, _ *whoareyouV5) ([]byte, []byte, error) { +func (c *testCodec) Encode(toID enode.ID, addr string, p v5wire.Packet, _ *v5wire.Whoareyou) ([]byte, v5wire.Nonce, error) { c.ctr++ - authTag := make([]byte, 8) - binary.BigEndian.PutUint64(authTag, c.ctr) + var authTag v5wire.Nonce + binary.BigEndian.PutUint64(authTag[:], c.ctr) + penc, _ := rlp.EncodeToBytes(p) - frame, err := rlp.EncodeToBytes(testCodecFrame{c.id, authTag, p.kind(), penc}) + frame, err := rlp.EncodeToBytes(testCodecFrame{c.id, authTag, p.Kind(), penc}) return frame, authTag, err } -func (c *testCodec) decode(input []byte, addr string) (enode.ID, *enode.Node, packetV5, error) { +func (c *testCodec) Decode(input []byte, addr string) (enode.ID, *enode.Node, v5wire.Packet, error) { frame, p, err := c.decodeFrame(input) if err != nil { return enode.ID{}, nil, nil, err } - if p.kind() == p_whoareyouV5 { - frame.NodeID = enode.ID{} // match wireCodec behavior - } return frame.NodeID, nil, p, nil } -func (c *testCodec) decodeFrame(input []byte) (frame testCodecFrame, p packetV5, err error) { +func (c *testCodec) decodeFrame(input []byte) (frame testCodecFrame, p v5wire.Packet, err error) { if err = rlp.DecodeBytes(input, &frame); err != nil { return frame, nil, fmt.Errorf("invalid frame: %v", err) } switch frame.Ptype { - case p_unknownV5: - dec := new(unknownV5) + case v5wire.UnknownPacket: + dec := new(v5wire.Unknown) err = rlp.DecodeBytes(frame.Packet, &dec) p = dec - case p_whoareyouV5: - dec := new(whoareyouV5) + case v5wire.WhoareyouPacket: + dec := new(v5wire.Whoareyou) err = rlp.DecodeBytes(frame.Packet, &dec) p = dec default: - p, err = decodePacketBodyV5(frame.Ptype, frame.Packet) + p, err = v5wire.DecodeMessage(frame.Ptype, frame.Packet) } return frame, p, err } @@ -556,20 +697,20 @@ func newUDPV5Test(t *testing.T) *udpV5Test { } // handles a packet as if it had been sent to the transport. -func (test *udpV5Test) packetIn(packet packetV5) { +func (test *udpV5Test) packetIn(packet v5wire.Packet) { test.t.Helper() test.packetInFrom(test.remotekey, test.remoteaddr, packet) } // handles a packet as if it had been sent to the transport by the key/endpoint. -func (test *udpV5Test) packetInFrom(key *ecdsa.PrivateKey, addr *net.UDPAddr, packet packetV5) { +func (test *udpV5Test) packetInFrom(key *ecdsa.PrivateKey, addr *net.UDPAddr, packet v5wire.Packet) { test.t.Helper() ln := test.getNode(key, addr) codec := &testCodec{test: test, id: ln.ID()} - enc, _, err := codec.encode(test.udp.Self().ID(), addr.String(), packet, nil) + enc, _, err := codec.Encode(test.udp.Self().ID(), addr.String(), packet, nil) if err != nil { - test.t.Errorf("%s encode error: %v", packet.name(), err) + test.t.Errorf("%s encode error: %v", packet.Name(), err) } if test.udp.dispatchReadPacket(addr, enc) { <-test.udp.readNextCh // unblock UDPv5.dispatch @@ -591,8 +732,12 @@ func (test *udpV5Test) getNode(key *ecdsa.PrivateKey, addr *net.UDPAddr) *enode. return ln } +// waitPacketOut waits for the next output packet and handles it using the given 'validate' +// function. The function must be of type func (X, *net.UDPAddr, v5wire.Nonce) where X is +// assignable to packetV5. func (test *udpV5Test) waitPacketOut(validate interface{}) (closed bool) { test.t.Helper() + fn := reflect.ValueOf(validate) exptype := fn.Type().In(0) diff --git a/p2p/discover/v5wire/crypto.go b/p2p/discover/v5wire/crypto.go new file mode 100644 index 000000000000..f414d8418922 --- /dev/null +++ b/p2p/discover/v5wire/crypto.go @@ -0,0 +1,180 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package v5wire + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/ecdsa" + "crypto/elliptic" + "errors" + "fmt" + "hash" + + "github.com/XinFinOrg/XDPoSChain/common/math" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "golang.org/x/crypto/hkdf" +) + +const ( + // Encryption/authentication parameters. + aesKeySize = 16 + gcmNonceSize = 12 +) + +// Nonce represents a nonce used for AES/GCM. +type Nonce [gcmNonceSize]byte + +// EncodePubkey encodes a public key. +func EncodePubkey(key *ecdsa.PublicKey) []byte { + switch key.Curve { + case crypto.S256(): + return crypto.CompressPubkey(key) + default: + panic("unsupported curve " + key.Curve.Params().Name + " in EncodePubkey") + } +} + +// DecodePubkey decodes a public key in compressed format. +func DecodePubkey(curve elliptic.Curve, e []byte) (*ecdsa.PublicKey, error) { + switch curve { + case crypto.S256(): + if len(e) != 33 { + return nil, errors.New("wrong size public key data") + } + return crypto.DecompressPubkey(e) + default: + return nil, fmt.Errorf("unsupported curve %s in DecodePubkey", curve.Params().Name) + } +} + +// idNonceHash computes the ID signature hash used in the handshake. +func idNonceHash(h hash.Hash, challenge, ephkey []byte, destID enode.ID) []byte { + h.Reset() + h.Write([]byte("discovery v5 identity proof")) + h.Write(challenge) + h.Write(ephkey) + h.Write(destID[:]) + return h.Sum(nil) +} + +// makeIDSignature creates the ID nonce signature. +func makeIDSignature(hash hash.Hash, key *ecdsa.PrivateKey, challenge, ephkey []byte, destID enode.ID) ([]byte, error) { + input := idNonceHash(hash, challenge, ephkey, destID) + switch key.Curve { + case crypto.S256(): + idsig, err := crypto.Sign(input, key) + if err != nil { + return nil, err + } + return idsig[:len(idsig)-1], nil // remove recovery ID + default: + return nil, fmt.Errorf("unsupported curve %s", key.Curve.Params().Name) + } +} + +// s256raw is an unparsed secp256k1 public key ENR entry. +type s256raw []byte + +func (s256raw) ENRKey() string { return "secp256k1" } + +// verifyIDSignature checks that signature over idnonce was made by the given node. +func verifyIDSignature(hash hash.Hash, sig []byte, n *enode.Node, challenge, ephkey []byte, destID enode.ID) error { + switch idscheme := n.Record().IdentityScheme(); idscheme { + case "v4": + var pubkey s256raw + if n.Load(&pubkey) != nil { + return errors.New("no secp256k1 public key in record") + } + input := idNonceHash(hash, challenge, ephkey, destID) + if !crypto.VerifySignature(pubkey, input, sig) { + return errInvalidNonceSig + } + return nil + default: + return fmt.Errorf("can't verify ID nonce signature against scheme %q", idscheme) + } +} + +type hashFn func() hash.Hash + +// deriveKeys creates the session keys. +func deriveKeys(hash hashFn, priv *ecdsa.PrivateKey, pub *ecdsa.PublicKey, n1, n2 enode.ID, challenge []byte) *session { + const text = "discovery v5 key agreement" + var info = make([]byte, 0, len(text)+len(n1)+len(n2)) + info = append(info, text...) + info = append(info, n1[:]...) + info = append(info, n2[:]...) + + eph := ecdh(priv, pub) + if eph == nil { + return nil + } + kdf := hkdf.New(hash, eph, challenge, info) + sec := session{writeKey: make([]byte, aesKeySize), readKey: make([]byte, aesKeySize)} + kdf.Read(sec.writeKey) + kdf.Read(sec.readKey) + for i := range eph { + eph[i] = 0 + } + return &sec +} + +// ecdh creates a shared secret. +func ecdh(privkey *ecdsa.PrivateKey, pubkey *ecdsa.PublicKey) []byte { + secX, secY := pubkey.ScalarMult(pubkey.X, pubkey.Y, privkey.D.Bytes()) + if secX == nil { + return nil + } + sec := make([]byte, 33) + sec[0] = 0x02 | byte(secY.Bit(0)) + math.ReadBits(secX, sec[1:]) + return sec +} + +// encryptGCM encrypts pt using AES-GCM with the given key and nonce. The ciphertext is +// appended to dest, which must not overlap with plaintext. The resulting ciphertext is 16 +// bytes longer than plaintext because it contains an authentication tag. +func encryptGCM(dest, key, nonce, plaintext, authData []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + panic(fmt.Errorf("can't create block cipher: %v", err)) + } + aesgcm, err := cipher.NewGCMWithNonceSize(block, gcmNonceSize) + if err != nil { + panic(fmt.Errorf("can't create GCM: %v", err)) + } + return aesgcm.Seal(dest, nonce, plaintext, authData), nil +} + +// decryptGCM decrypts ct using AES-GCM with the given key and nonce. +func decryptGCM(key, nonce, ct, authData []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, fmt.Errorf("can't create block cipher: %v", err) + } + if len(nonce) != gcmNonceSize { + return nil, fmt.Errorf("invalid GCM nonce size: %d", len(nonce)) + } + aesgcm, err := cipher.NewGCMWithNonceSize(block, gcmNonceSize) + if err != nil { + return nil, fmt.Errorf("can't create GCM: %v", err) + } + pt := make([]byte, 0, len(ct)) + return aesgcm.Open(pt, nonce, ct, authData) +} diff --git a/p2p/discover/v5wire/crypto_test.go b/p2p/discover/v5wire/crypto_test.go new file mode 100644 index 000000000000..12c202daa2a3 --- /dev/null +++ b/p2p/discover/v5wire/crypto_test.go @@ -0,0 +1,124 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package v5wire + +import ( + "bytes" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/sha256" + "reflect" + "strings" + "testing" + + "github.com/XinFinOrg/XDPoSChain/common/hexutil" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" +) + +func TestVector_ECDH(t *testing.T) { + var ( + staticKey = hexPrivkey("0xfb757dc581730490a1d7a00deea65e9b1936924caaea8f44d476014856b68736") + publicKey = hexPubkey(crypto.S256(), "0x039961e4c2356d61bedb83052c115d311acb3a96f5777296dcf297351130266231") + want = hexutil.MustDecode("0x033b11a2a1f214567e1537ce5e509ffd9b21373247f2a3ff6841f4976f53165e7e") + ) + result := ecdh(staticKey, publicKey) + check(t, "shared-secret", result, want) +} + +func TestVector_KDF(t *testing.T) { + var ( + ephKey = hexPrivkey("0xfb757dc581730490a1d7a00deea65e9b1936924caaea8f44d476014856b68736") + cdata = hexutil.MustDecode("0x000000000000000000000000000000006469736376350001010102030405060708090a0b0c00180102030405060708090a0b0c0d0e0f100000000000000000") + net = newHandshakeTest() + ) + defer net.close() + + destKey := &testKeyB.PublicKey + s := deriveKeys(sha256.New, ephKey, destKey, net.nodeA.id(), net.nodeB.id(), cdata) + t.Logf("ephemeral-key = %#x", ephKey.D) + t.Logf("dest-pubkey = %#x", EncodePubkey(destKey)) + t.Logf("node-id-a = %#x", net.nodeA.id().Bytes()) + t.Logf("node-id-b = %#x", net.nodeB.id().Bytes()) + t.Logf("challenge-data = %#x", cdata) + check(t, "initiator-key", s.writeKey, hexutil.MustDecode("0xdccc82d81bd610f4f76d3ebe97a40571")) + check(t, "recipient-key", s.readKey, hexutil.MustDecode("0xac74bb8773749920b0d3a8881c173ec5")) +} + +func TestVector_IDSignature(t *testing.T) { + var ( + key = hexPrivkey("0xfb757dc581730490a1d7a00deea65e9b1936924caaea8f44d476014856b68736") + destID = enode.HexID("0xbbbb9d047f0488c0b5a93c1c3f2d8bafc7c8ff337024a55434a0d0555de64db9") + ephkey = hexutil.MustDecode("0x039961e4c2356d61bedb83052c115d311acb3a96f5777296dcf297351130266231") + cdata = hexutil.MustDecode("0x000000000000000000000000000000006469736376350001010102030405060708090a0b0c00180102030405060708090a0b0c0d0e0f100000000000000000") + ) + + sig, err := makeIDSignature(sha256.New(), key, cdata, ephkey, destID) + if err != nil { + t.Fatal(err) + } + t.Logf("static-key = %#x", key.D) + t.Logf("challenge-data = %#x", cdata) + t.Logf("ephemeral-pubkey = %#x", ephkey) + t.Logf("node-id-B = %#x", destID.Bytes()) + expected := "0x94852a1e2318c4e5e9d422c98eaf19d1d90d876b29cd06ca7cb7546d0fff7b484fe86c09a064fe72bdbef73ba8e9c34df0cd2b53e9d65528c2c7f336d5dfc6e6" + check(t, "id-signature", sig, hexutil.MustDecode(expected)) +} + +func TestDeriveKeys(t *testing.T) { + t.Parallel() + + var ( + n1 = enode.ID{1} + n2 = enode.ID{2} + cdata = []byte{1, 2, 3, 4} + ) + sec1 := deriveKeys(sha256.New, testKeyA, &testKeyB.PublicKey, n1, n2, cdata) + sec2 := deriveKeys(sha256.New, testKeyB, &testKeyA.PublicKey, n1, n2, cdata) + if sec1 == nil || sec2 == nil { + t.Fatal("key agreement failed") + } + if !reflect.DeepEqual(sec1, sec2) { + t.Fatalf("keys not equal:\n %+v\n %+v", sec1, sec2) + } +} + +func check(t *testing.T, what string, x, y []byte) { + t.Helper() + + if !bytes.Equal(x, y) { + t.Errorf("wrong %s: %#x != %#x", what, x, y) + } else { + t.Logf("%s = %#x", what, x) + } +} + +func hexPrivkey(input string) *ecdsa.PrivateKey { + key, err := crypto.HexToECDSA(strings.TrimPrefix(input, "0x")) + if err != nil { + panic(err) + } + return key +} + +func hexPubkey(curve elliptic.Curve, input string) *ecdsa.PublicKey { + key, err := DecodePubkey(curve, hexutil.MustDecode(input)) + if err != nil { + panic(err) + } + return key +} diff --git a/p2p/discover/v5wire/encoding.go b/p2p/discover/v5wire/encoding.go new file mode 100644 index 000000000000..e2d817c64b00 --- /dev/null +++ b/p2p/discover/v5wire/encoding.go @@ -0,0 +1,648 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package v5wire + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/ecdsa" + crand "crypto/rand" + "crypto/sha256" + "encoding/binary" + "errors" + "fmt" + "hash" + + "github.com/XinFinOrg/XDPoSChain/common/mclock" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/enr" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +// TODO concurrent WHOAREYOU tie-breaker +// TODO rehandshake after X packets + +// Header represents a packet header. +type Header struct { + IV [sizeofMaskingIV]byte + StaticHeader + AuthData []byte + + src enode.ID // used by decoder +} + +// StaticHeader contains the static fields of a packet header. +type StaticHeader struct { + ProtocolID [6]byte + Version uint16 + Flag byte + Nonce Nonce + AuthSize uint16 +} + +// Authdata layouts. +type ( + whoareyouAuthData struct { + IDNonce [16]byte // ID proof data + RecordSeq uint64 // highest known ENR sequence of requester + } + + handshakeAuthData struct { + h struct { + SrcID enode.ID + SigSize byte // ignature data + PubkeySize byte // offset of + } + // Trailing variable-size data. + signature, pubkey, record []byte + } + + messageAuthData struct { + SrcID enode.ID + } +) + +// Packet header flag values. +const ( + flagMessage = iota + flagWhoareyou + flagHandshake +) + +// Protocol constants. +const ( + version = 1 + minVersion = 1 + sizeofMaskingIV = 16 + + minMessageSize = 48 // this refers to data after static headers + randomPacketMsgSize = 20 +) + +var protocolID = [6]byte{'d', 'i', 's', 'c', 'v', '5'} + +// Errors. +var ( + errTooShort = errors.New("packet too short") + errInvalidHeader = errors.New("invalid packet header") + errInvalidFlag = errors.New("invalid flag value in header") + errMinVersion = errors.New("version of packet header below minimum") + errMsgTooShort = errors.New("message/handshake packet below minimum size") + errAuthSize = errors.New("declared auth size is beyond packet length") + errUnexpectedHandshake = errors.New("unexpected auth response, not in handshake") + errInvalidAuthKey = errors.New("invalid ephemeral pubkey") + errNoRecord = errors.New("expected ENR in handshake but none sent") + errInvalidNonceSig = errors.New("invalid ID nonce signature") + errMessageTooShort = errors.New("message contains no data") + errMessageDecrypt = errors.New("cannot decrypt message") +) + +// Public errors. +var ( + ErrInvalidReqID = errors.New("request ID larger than 8 bytes") +) + +// Packet sizes. +var ( + sizeofStaticHeader = binary.Size(StaticHeader{}) + sizeofWhoareyouAuthData = binary.Size(whoareyouAuthData{}) + sizeofHandshakeAuthData = binary.Size(handshakeAuthData{}.h) + sizeofMessageAuthData = binary.Size(messageAuthData{}) + sizeofStaticPacketData = sizeofMaskingIV + sizeofStaticHeader +) + +// Codec encodes and decodes Discovery v5 packets. +// This type is not safe for concurrent use. +type Codec struct { + sha256 hash.Hash + localnode *enode.LocalNode + privkey *ecdsa.PrivateKey + sc *SessionCache + + // encoder buffers + buf bytes.Buffer // whole packet + headbuf bytes.Buffer // packet header + msgbuf bytes.Buffer // message RLP plaintext + msgctbuf []byte // message data ciphertext + + // decoder buffer + reader bytes.Reader +} + +// NewCodec creates a wire codec. +func NewCodec(ln *enode.LocalNode, key *ecdsa.PrivateKey, clock mclock.Clock) *Codec { + c := &Codec{ + sha256: sha256.New(), + localnode: ln, + privkey: key, + sc: NewSessionCache(1024, clock), + } + return c +} + +// Encode encodes a packet to a node. 'id' and 'addr' specify the destination node. The +// 'challenge' parameter should be the most recently received WHOAREYOU packet from that +// node. +func (c *Codec) Encode(id enode.ID, addr string, packet Packet, challenge *Whoareyou) ([]byte, Nonce, error) { + // Create the packet header. + var ( + head Header + session *session + msgData []byte + err error + ) + switch { + case packet.Kind() == WhoareyouPacket: + head, err = c.encodeWhoareyou(id, packet.(*Whoareyou)) + case challenge != nil: + // We have an unanswered challenge, send handshake. + head, session, err = c.encodeHandshakeHeader(id, addr, challenge) + default: + session = c.sc.session(id, addr) + if session != nil { + // There is a session, use it. + head, err = c.encodeMessageHeader(id, session) + } else { + // No keys, send random data to kick off the handshake. + head, msgData, err = c.encodeRandom(id) + } + } + if err != nil { + return nil, Nonce{}, err + } + + // Generate masking IV. + if err := c.sc.maskingIVGen(head.IV[:]); err != nil { + return nil, Nonce{}, fmt.Errorf("can't generate masking IV: %v", err) + } + + // Encode header data. + c.writeHeaders(&head) + + // Store sent WHOAREYOU challenges. + if challenge, ok := packet.(*Whoareyou); ok { + challenge.ChallengeData = bytesCopy(&c.buf) + c.sc.storeSentHandshake(id, addr, challenge) + } else if msgData == nil { + headerData := c.buf.Bytes() + msgData, err = c.encryptMessage(session, packet, &head, headerData) + if err != nil { + return nil, Nonce{}, err + } + } + + enc, err := c.EncodeRaw(id, head, msgData) + return enc, head.Nonce, err +} + +// EncodeRaw encodes a packet with the given header. +func (c *Codec) EncodeRaw(id enode.ID, head Header, msgdata []byte) ([]byte, error) { + c.writeHeaders(&head) + + // Apply masking. + masked := c.buf.Bytes()[sizeofMaskingIV:] + mask := head.mask(id) + mask.XORKeyStream(masked[:], masked[:]) + + // Write message data. + c.buf.Write(msgdata) + return c.buf.Bytes(), nil +} + +func (c *Codec) writeHeaders(head *Header) { + c.buf.Reset() + c.buf.Write(head.IV[:]) + binary.Write(&c.buf, binary.BigEndian, &head.StaticHeader) + c.buf.Write(head.AuthData) +} + +// makeHeader creates a packet header. +func (c *Codec) makeHeader(toID enode.ID, flag byte, authsizeExtra int) Header { + var authsize int + switch flag { + case flagMessage: + authsize = sizeofMessageAuthData + case flagWhoareyou: + authsize = sizeofWhoareyouAuthData + case flagHandshake: + authsize = sizeofHandshakeAuthData + default: + panic(fmt.Errorf("BUG: invalid packet header flag %x", flag)) + } + authsize += authsizeExtra + if authsize > int(^uint16(0)) { + panic(fmt.Errorf("BUG: auth size %d overflows uint16", authsize)) + } + return Header{ + StaticHeader: StaticHeader{ + ProtocolID: protocolID, + Version: version, + Flag: flag, + AuthSize: uint16(authsize), + }, + } +} + +// encodeRandom encodes a packet with random content. +func (c *Codec) encodeRandom(toID enode.ID) (Header, []byte, error) { + head := c.makeHeader(toID, flagMessage, 0) + + // Encode auth data. + auth := messageAuthData{SrcID: c.localnode.ID()} + if _, err := crand.Read(head.Nonce[:]); err != nil { + return head, nil, fmt.Errorf("can't get random data: %v", err) + } + c.headbuf.Reset() + binary.Write(&c.headbuf, binary.BigEndian, auth) + head.AuthData = c.headbuf.Bytes() + + // Fill message ciphertext buffer with random bytes. + c.msgctbuf = append(c.msgctbuf[:0], make([]byte, randomPacketMsgSize)...) + crand.Read(c.msgctbuf) + return head, c.msgctbuf, nil +} + +// encodeWhoareyou encodes a WHOAREYOU packet. +func (c *Codec) encodeWhoareyou(toID enode.ID, packet *Whoareyou) (Header, error) { + // Sanity check node field to catch misbehaving callers. + if packet.RecordSeq > 0 && packet.Node == nil { + panic("BUG: missing node in whoareyou with non-zero seq") + } + + // Create header. + head := c.makeHeader(toID, flagWhoareyou, 0) + head.AuthData = bytesCopy(&c.buf) + head.Nonce = packet.Nonce + + // Encode auth data. + auth := &whoareyouAuthData{ + IDNonce: packet.IDNonce, + RecordSeq: packet.RecordSeq, + } + c.headbuf.Reset() + binary.Write(&c.headbuf, binary.BigEndian, auth) + head.AuthData = c.headbuf.Bytes() + return head, nil +} + +// encodeHandshakeMessage encodes the handshake message packet header. +func (c *Codec) encodeHandshakeHeader(toID enode.ID, addr string, challenge *Whoareyou) (Header, *session, error) { + // Ensure calling code sets challenge.node. + if challenge.Node == nil { + panic("BUG: missing challenge.Node in encode") + } + + // Generate new secrets. + auth, session, err := c.makeHandshakeAuth(toID, addr, challenge) + if err != nil { + return Header{}, nil, err + } + + // Generate nonce for message. + nonce, err := c.sc.nextNonce(session) + if err != nil { + return Header{}, nil, fmt.Errorf("can't generate nonce: %v", err) + } + + // TODO: this should happen when the first authenticated message is received + c.sc.storeNewSession(toID, addr, session) + + // Encode the auth header. + var ( + authsizeExtra = len(auth.pubkey) + len(auth.signature) + len(auth.record) + head = c.makeHeader(toID, flagHandshake, authsizeExtra) + ) + c.headbuf.Reset() + binary.Write(&c.headbuf, binary.BigEndian, &auth.h) + c.headbuf.Write(auth.signature) + c.headbuf.Write(auth.pubkey) + c.headbuf.Write(auth.record) + head.AuthData = c.headbuf.Bytes() + head.Nonce = nonce + return head, session, err +} + +// encodeAuthHeader creates the auth header on a request packet following WHOAREYOU. +func (c *Codec) makeHandshakeAuth(toID enode.ID, addr string, challenge *Whoareyou) (*handshakeAuthData, *session, error) { + auth := new(handshakeAuthData) + auth.h.SrcID = c.localnode.ID() + + // Create the ephemeral key. This needs to be first because the + // key is part of the ID nonce signature. + var remotePubkey = new(ecdsa.PublicKey) + if err := challenge.Node.Load((*enode.Secp256k1)(remotePubkey)); err != nil { + return nil, nil, fmt.Errorf("can't find secp256k1 key for recipient") + } + ephkey, err := c.sc.ephemeralKeyGen() + if err != nil { + return nil, nil, fmt.Errorf("can't generate ephemeral key") + } + ephpubkey := EncodePubkey(&ephkey.PublicKey) + auth.pubkey = ephpubkey[:] + auth.h.PubkeySize = byte(len(auth.pubkey)) + + // Add ID nonce signature to response. + cdata := challenge.ChallengeData + idsig, err := makeIDSignature(c.sha256, c.privkey, cdata, ephpubkey[:], toID) + if err != nil { + return nil, nil, fmt.Errorf("can't sign: %v", err) + } + auth.signature = idsig + auth.h.SigSize = byte(len(auth.signature)) + + // Add our record to response if it's newer than what remote side has. + ln := c.localnode.Node() + if challenge.RecordSeq < ln.Seq() { + auth.record, _ = rlp.EncodeToBytes(ln.Record()) + } + + // Create session keys. + sec := deriveKeys(sha256.New, ephkey, remotePubkey, c.localnode.ID(), challenge.Node.ID(), cdata) + if sec == nil { + return nil, nil, fmt.Errorf("key derivation failed") + } + return auth, sec, err +} + +// encodeMessage encodes an encrypted message packet. +func (c *Codec) encodeMessageHeader(toID enode.ID, s *session) (Header, error) { + head := c.makeHeader(toID, flagMessage, 0) + + // Create the header. + nonce, err := c.sc.nextNonce(s) + if err != nil { + return Header{}, fmt.Errorf("can't generate nonce: %v", err) + } + auth := messageAuthData{SrcID: c.localnode.ID()} + c.buf.Reset() + binary.Write(&c.buf, binary.BigEndian, &auth) + head.AuthData = bytesCopy(&c.buf) + head.Nonce = nonce + return head, err +} + +func (c *Codec) encryptMessage(s *session, p Packet, head *Header, headerData []byte) ([]byte, error) { + // Encode message plaintext. + c.msgbuf.Reset() + c.msgbuf.WriteByte(p.Kind()) + if err := rlp.Encode(&c.msgbuf, p); err != nil { + return nil, err + } + messagePT := c.msgbuf.Bytes() + + // Encrypt into message ciphertext buffer. + messageCT, err := encryptGCM(c.msgctbuf[:0], s.writeKey, head.Nonce[:], messagePT, headerData) + if err == nil { + c.msgctbuf = messageCT + } + return messageCT, err +} + +// Decode decodes a discovery packet. +func (c *Codec) Decode(input []byte, addr string) (src enode.ID, n *enode.Node, p Packet, err error) { + // Unmask the static header. + if len(input) < sizeofStaticPacketData { + return enode.ID{}, nil, nil, errTooShort + } + var head Header + copy(head.IV[:], input[:sizeofMaskingIV]) + mask := head.mask(c.localnode.ID()) + staticHeader := input[sizeofMaskingIV:sizeofStaticPacketData] + mask.XORKeyStream(staticHeader, staticHeader) + + // Decode and verify the static header. + c.reader.Reset(staticHeader) + binary.Read(&c.reader, binary.BigEndian, &head.StaticHeader) + remainingInput := len(input) - sizeofStaticPacketData + if err := head.checkValid(remainingInput); err != nil { + return enode.ID{}, nil, nil, err + } + + // Unmask auth data. + authDataEnd := sizeofStaticPacketData + int(head.AuthSize) + authData := input[sizeofStaticPacketData:authDataEnd] + mask.XORKeyStream(authData, authData) + head.AuthData = authData + + // Delete timed-out handshakes. This must happen before decoding to avoid + // processing the same handshake twice. + c.sc.handshakeGC() + + // Decode auth part and message. + headerData := input[:authDataEnd] + msgData := input[authDataEnd:] + switch head.Flag { + case flagWhoareyou: + p, err = c.decodeWhoareyou(&head, headerData) + case flagHandshake: + n, p, err = c.decodeHandshakeMessage(addr, &head, headerData, msgData) + case flagMessage: + p, err = c.decodeMessage(addr, &head, headerData, msgData) + default: + err = errInvalidFlag + } + return head.src, n, p, err +} + +// decodeWhoareyou reads packet data after the header as a WHOAREYOU packet. +func (c *Codec) decodeWhoareyou(head *Header, headerData []byte) (Packet, error) { + if len(head.AuthData) != sizeofWhoareyouAuthData { + return nil, fmt.Errorf("invalid auth size %d for WHOAREYOU", len(head.AuthData)) + } + var auth whoareyouAuthData + c.reader.Reset(head.AuthData) + binary.Read(&c.reader, binary.BigEndian, &auth) + p := &Whoareyou{ + Nonce: head.Nonce, + IDNonce: auth.IDNonce, + RecordSeq: auth.RecordSeq, + ChallengeData: make([]byte, len(headerData)), + } + copy(p.ChallengeData, headerData) + return p, nil +} + +func (c *Codec) decodeHandshakeMessage(fromAddr string, head *Header, headerData, msgData []byte) (n *enode.Node, p Packet, err error) { + node, auth, session, err := c.decodeHandshake(fromAddr, head) + if err != nil { + c.sc.deleteHandshake(auth.h.SrcID, fromAddr) + return nil, nil, err + } + + // Decrypt the message using the new session keys. + msg, err := c.decryptMessage(msgData, head.Nonce[:], headerData, session.readKey) + if err != nil { + c.sc.deleteHandshake(auth.h.SrcID, fromAddr) + return node, msg, err + } + + // Handshake OK, drop the challenge and store the new session keys. + c.sc.storeNewSession(auth.h.SrcID, fromAddr, session) + c.sc.deleteHandshake(auth.h.SrcID, fromAddr) + return node, msg, nil +} + +func (c *Codec) decodeHandshake(fromAddr string, head *Header) (n *enode.Node, auth handshakeAuthData, s *session, err error) { + if auth, err = c.decodeHandshakeAuthData(head); err != nil { + return nil, auth, nil, err + } + + // Verify against our last WHOAREYOU. + challenge := c.sc.getHandshake(auth.h.SrcID, fromAddr) + if challenge == nil { + return nil, auth, nil, errUnexpectedHandshake + } + // Get node record. + n, err = c.decodeHandshakeRecord(challenge.Node, auth.h.SrcID, auth.record) + if err != nil { + return nil, auth, nil, err + } + // Verify ID nonce signature. + sig := auth.signature + cdata := challenge.ChallengeData + err = verifyIDSignature(c.sha256, sig, n, cdata, auth.pubkey, c.localnode.ID()) + if err != nil { + return nil, auth, nil, err + } + // Verify ephemeral key is on curve. + ephkey, err := DecodePubkey(c.privkey.Curve, auth.pubkey) + if err != nil { + return nil, auth, nil, errInvalidAuthKey + } + // Derive sesssion keys. + session := deriveKeys(sha256.New, c.privkey, ephkey, auth.h.SrcID, c.localnode.ID(), cdata) + session = session.keysFlipped() + return n, auth, session, nil +} + +// decodeHandshakeAuthData reads the authdata section of a handshake packet. +func (c *Codec) decodeHandshakeAuthData(head *Header) (auth handshakeAuthData, err error) { + // Decode fixed size part. + if len(head.AuthData) < sizeofHandshakeAuthData { + return auth, fmt.Errorf("header authsize %d too low for handshake", head.AuthSize) + } + c.reader.Reset(head.AuthData) + binary.Read(&c.reader, binary.BigEndian, &auth.h) + head.src = auth.h.SrcID + + // Decode variable-size part. + var ( + vardata = head.AuthData[sizeofHandshakeAuthData:] + sigAndKeySize = int(auth.h.SigSize) + int(auth.h.PubkeySize) + keyOffset = int(auth.h.SigSize) + recOffset = keyOffset + int(auth.h.PubkeySize) + ) + if len(vardata) < sigAndKeySize { + return auth, errTooShort + } + auth.signature = vardata[:keyOffset] + auth.pubkey = vardata[keyOffset:recOffset] + auth.record = vardata[recOffset:] + return auth, nil +} + +// decodeHandshakeRecord verifies the node record contained in a handshake packet. The +// remote node should include the record if we don't have one or if ours is older than the +// latest sequence number. +func (c *Codec) decodeHandshakeRecord(local *enode.Node, wantID enode.ID, remote []byte) (*enode.Node, error) { + node := local + if len(remote) > 0 { + var record enr.Record + if err := rlp.DecodeBytes(remote, &record); err != nil { + return nil, err + } + if local == nil || local.Seq() < record.Seq() { + n, err := enode.New(enode.ValidSchemes, &record) + if err != nil { + return nil, fmt.Errorf("invalid node record: %v", err) + } + if n.ID() != wantID { + return nil, fmt.Errorf("record in handshake has wrong ID: %v", n.ID()) + } + node = n + } + } + if node == nil { + return nil, errNoRecord + } + return node, nil +} + +// decodeMessage reads packet data following the header as an ordinary message packet. +func (c *Codec) decodeMessage(fromAddr string, head *Header, headerData, msgData []byte) (Packet, error) { + if len(head.AuthData) != sizeofMessageAuthData { + return nil, fmt.Errorf("invalid auth size %d for message packet", len(head.AuthData)) + } + var auth messageAuthData + c.reader.Reset(head.AuthData) + binary.Read(&c.reader, binary.BigEndian, &auth) + head.src = auth.SrcID + + // Try decrypting the message. + key := c.sc.readKey(auth.SrcID, fromAddr) + msg, err := c.decryptMessage(msgData, head.Nonce[:], headerData, key) + if err == errMessageDecrypt { + // It didn't work. Start the handshake since this is an ordinary message packet. + return &Unknown{Nonce: head.Nonce}, nil + } + return msg, err +} + +func (c *Codec) decryptMessage(input, nonce, headerData, readKey []byte) (Packet, error) { + msgdata, err := decryptGCM(readKey, nonce, input, headerData) + if err != nil { + return nil, errMessageDecrypt + } + if len(msgdata) == 0 { + return nil, errMessageTooShort + } + return DecodeMessage(msgdata[0], msgdata[1:]) +} + +// checkValid performs some basic validity checks on the header. +// The packetLen here is the length remaining after the static header. +func (h *StaticHeader) checkValid(packetLen int) error { + if h.ProtocolID != protocolID { + return errInvalidHeader + } + if h.Version < minVersion { + return errMinVersion + } + if h.Flag != flagWhoareyou && packetLen < minMessageSize { + return errMsgTooShort + } + if int(h.AuthSize) > packetLen { + return errAuthSize + } + return nil +} + +// headerMask returns a cipher for 'masking' / 'unmasking' packet headers. +func (h *Header) mask(destID enode.ID) cipher.Stream { + block, err := aes.NewCipher(destID[:16]) + if err != nil { + panic("can't create cipher") + } + return cipher.NewCTR(block, h.IV[:]) +} + +func bytesCopy(r *bytes.Buffer) []byte { + b := make([]byte, r.Len()) + copy(b, r.Bytes()) + return b +} diff --git a/p2p/discover/v5wire/encoding_test.go b/p2p/discover/v5wire/encoding_test.go new file mode 100644 index 000000000000..18d821ee36f4 --- /dev/null +++ b/p2p/discover/v5wire/encoding_test.go @@ -0,0 +1,635 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package v5wire + +import ( + "bytes" + "crypto/ecdsa" + "encoding/hex" + "flag" + "fmt" + "io/ioutil" + "net" + "os" + "path/filepath" + "reflect" + "strings" + "testing" + + "github.com/XinFinOrg/XDPoSChain/common/hexutil" + "github.com/XinFinOrg/XDPoSChain/common/mclock" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/davecgh/go-spew/spew" +) + +// To regenerate discv5 test vectors, run +// +// go test -run TestVectors -write-test-vectors +var writeTestVectorsFlag = flag.Bool("write-test-vectors", false, "Overwrite discv5 test vectors in testdata/") + +var ( + testKeyA, _ = crypto.HexToECDSA("eef77acb6c6a6eebc5b363a475ac583ec7eccdb42b6481424c60f59aa326547f") + testKeyB, _ = crypto.HexToECDSA("66fb62bfbd66b9177a138c1e5cddbe4f7c30c343e94e68df8769459cb1cde628") + testEphKey, _ = crypto.HexToECDSA("0288ef00023598499cb6c940146d050d2b1fb914198c327f76aad590bead68b6") + testIDnonce = [16]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} +) + +// This test checks that the minPacketSize and randomPacketMsgSize constants are well-defined. +func TestMinSizes(t *testing.T) { + var ( + gcmTagSize = 16 + emptyMsg = sizeofMessageAuthData + gcmTagSize + ) + t.Log("static header size", sizeofStaticPacketData) + t.Log("whoareyou size", sizeofStaticPacketData+sizeofWhoareyouAuthData) + t.Log("empty msg size", sizeofStaticPacketData+emptyMsg) + if want := emptyMsg; minMessageSize != want { + t.Fatalf("wrong minMessageSize %d, want %d", minMessageSize, want) + } + if sizeofMessageAuthData+randomPacketMsgSize < minMessageSize { + t.Fatalf("randomPacketMsgSize %d too small", randomPacketMsgSize) + } +} + +// This test checks the basic handshake flow where A talks to B and A has no secrets. +func TestHandshake(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + // A -> B RANDOM PACKET + packet, _ := net.nodeA.encode(t, net.nodeB, &Findnode{}) + resp := net.nodeB.expectDecode(t, UnknownPacket, packet) + + // A <- B WHOAREYOU + challenge := &Whoareyou{ + Nonce: resp.(*Unknown).Nonce, + IDNonce: testIDnonce, + RecordSeq: 0, + } + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // A -> B FINDNODE (handshake packet) + findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecode(t, FindnodeMsg, findnode) + if len(net.nodeB.c.sc.handshakes) > 0 { + t.Fatalf("node B didn't remove handshake from challenge map") + } + + // A <- B NODES + nodes, _ := net.nodeB.encode(t, net.nodeA, &Nodes{Total: 1}) + net.nodeA.expectDecode(t, NodesMsg, nodes) +} + +// This test checks that handshake attempts are removed within the timeout. +func TestHandshake_timeout(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + // A -> B RANDOM PACKET + packet, _ := net.nodeA.encode(t, net.nodeB, &Findnode{}) + resp := net.nodeB.expectDecode(t, UnknownPacket, packet) + + // A <- B WHOAREYOU + challenge := &Whoareyou{ + Nonce: resp.(*Unknown).Nonce, + IDNonce: testIDnonce, + RecordSeq: 0, + } + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // A -> B FINDNODE (handshake packet) after timeout + net.clock.Run(handshakeTimeout + 1) + findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecodeErr(t, errUnexpectedHandshake, findnode) +} + +// This test checks handshake behavior when no record is sent in the auth response. +func TestHandshake_norecord(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + // A -> B RANDOM PACKET + packet, _ := net.nodeA.encode(t, net.nodeB, &Findnode{}) + resp := net.nodeB.expectDecode(t, UnknownPacket, packet) + + // A <- B WHOAREYOU + nodeA := net.nodeA.n() + if nodeA.Seq() == 0 { + t.Fatal("need non-zero sequence number") + } + challenge := &Whoareyou{ + Nonce: resp.(*Unknown).Nonce, + IDNonce: testIDnonce, + RecordSeq: nodeA.Seq(), + Node: nodeA, + } + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // A -> B FINDNODE + findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecode(t, FindnodeMsg, findnode) + + // A <- B NODES + nodes, _ := net.nodeB.encode(t, net.nodeA, &Nodes{Total: 1}) + net.nodeA.expectDecode(t, NodesMsg, nodes) +} + +// In this test, A tries to send FINDNODE with existing secrets but B doesn't know +// anything about A. +func TestHandshake_rekey(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + session := &session{ + readKey: []byte("BBBBBBBBBBBBBBBB"), + writeKey: []byte("AAAAAAAAAAAAAAAA"), + } + net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), session) + + // A -> B FINDNODE (encrypted with zero keys) + findnode, authTag := net.nodeA.encode(t, net.nodeB, &Findnode{}) + net.nodeB.expectDecode(t, UnknownPacket, findnode) + + // A <- B WHOAREYOU + challenge := &Whoareyou{Nonce: authTag, IDNonce: testIDnonce} + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // Check that new keys haven't been stored yet. + sa := net.nodeA.c.sc.session(net.nodeB.id(), net.nodeB.addr()) + if !bytes.Equal(sa.writeKey, session.writeKey) || !bytes.Equal(sa.readKey, session.readKey) { + t.Fatal("node A stored keys too early") + } + if s := net.nodeB.c.sc.session(net.nodeA.id(), net.nodeA.addr()); s != nil { + t.Fatal("node B stored keys too early") + } + + // A -> B FINDNODE encrypted with new keys + findnode, _ = net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecode(t, FindnodeMsg, findnode) + + // A <- B NODES + nodes, _ := net.nodeB.encode(t, net.nodeA, &Nodes{Total: 1}) + net.nodeA.expectDecode(t, NodesMsg, nodes) +} + +// In this test A and B have different keys before the handshake. +func TestHandshake_rekey2(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + initKeysA := &session{ + readKey: []byte("BBBBBBBBBBBBBBBB"), + writeKey: []byte("AAAAAAAAAAAAAAAA"), + } + initKeysB := &session{ + readKey: []byte("CCCCCCCCCCCCCCCC"), + writeKey: []byte("DDDDDDDDDDDDDDDD"), + } + net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), initKeysA) + net.nodeB.c.sc.storeNewSession(net.nodeA.id(), net.nodeA.addr(), initKeysB) + + // A -> B FINDNODE encrypted with initKeysA + findnode, authTag := net.nodeA.encode(t, net.nodeB, &Findnode{Distances: []uint{3}}) + net.nodeB.expectDecode(t, UnknownPacket, findnode) + + // A <- B WHOAREYOU + challenge := &Whoareyou{Nonce: authTag, IDNonce: testIDnonce} + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // A -> B FINDNODE (handshake packet) + findnode, _ = net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecode(t, FindnodeMsg, findnode) + + // A <- B NODES + nodes, _ := net.nodeB.encode(t, net.nodeA, &Nodes{Total: 1}) + net.nodeA.expectDecode(t, NodesMsg, nodes) +} + +func TestHandshake_BadHandshakeAttack(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + // A -> B RANDOM PACKET + packet, _ := net.nodeA.encode(t, net.nodeB, &Findnode{}) + resp := net.nodeB.expectDecode(t, UnknownPacket, packet) + + // A <- B WHOAREYOU + challenge := &Whoareyou{ + Nonce: resp.(*Unknown).Nonce, + IDNonce: testIDnonce, + RecordSeq: 0, + } + whoareyou, _ := net.nodeB.encode(t, net.nodeA, challenge) + net.nodeA.expectDecode(t, WhoareyouPacket, whoareyou) + + // A -> B FINDNODE + incorrect_challenge := &Whoareyou{ + IDNonce: [16]byte{5, 6, 7, 8, 9, 6, 11, 12}, + RecordSeq: challenge.RecordSeq, + Node: challenge.Node, + sent: challenge.sent, + } + incorrect_findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, incorrect_challenge, &Findnode{}) + incorrect_findnode2 := make([]byte, len(incorrect_findnode)) + copy(incorrect_findnode2, incorrect_findnode) + + net.nodeB.expectDecodeErr(t, errInvalidNonceSig, incorrect_findnode) + + // Reject new findnode as previous handshake is now deleted. + net.nodeB.expectDecodeErr(t, errUnexpectedHandshake, incorrect_findnode2) + + // The findnode packet is again rejected even with a valid challenge this time. + findnode, _ := net.nodeA.encodeWithChallenge(t, net.nodeB, challenge, &Findnode{}) + net.nodeB.expectDecodeErr(t, errUnexpectedHandshake, findnode) +} + +// This test checks some malformed packets. +func TestDecodeErrorsV5(t *testing.T) { + t.Parallel() + net := newHandshakeTest() + defer net.close() + + net.nodeA.expectDecodeErr(t, errTooShort, []byte{}) + // TODO some more tests would be nice :) + // - check invalid authdata sizes + // - check invalid handshake data sizes +} + +// This test checks that all test vectors can be decoded. +func TestTestVectorsV5(t *testing.T) { + var ( + idA = enode.PubkeyToIDV4(&testKeyA.PublicKey) + idB = enode.PubkeyToIDV4(&testKeyB.PublicKey) + addr = "127.0.0.1" + session = &session{ + writeKey: hexutil.MustDecode("0x00000000000000000000000000000000"), + readKey: hexutil.MustDecode("0x01010101010101010101010101010101"), + } + challenge0A, challenge1A, challenge0B Whoareyou + ) + + // Create challenge packets. + c := Whoareyou{ + Nonce: Nonce{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, + IDNonce: testIDnonce, + } + challenge0A, challenge1A, challenge0B = c, c, c + challenge1A.RecordSeq = 1 + net := newHandshakeTest() + challenge0A.Node = net.nodeA.n() + challenge0B.Node = net.nodeB.n() + challenge1A.Node = net.nodeA.n() + net.close() + + type testVectorTest struct { + name string // test vector name + packet Packet // the packet to be encoded + challenge *Whoareyou // handshake challenge passed to encoder + prep func(*handshakeTest) // called before encode/decode + } + tests := []testVectorTest{ + { + name: "v5.1-whoareyou", + packet: &challenge0B, + }, + { + name: "v5.1-ping-message", + packet: &Ping{ + ReqID: []byte{0, 0, 0, 1}, + ENRSeq: 2, + }, + prep: func(net *handshakeTest) { + net.nodeA.c.sc.storeNewSession(idB, addr, session) + net.nodeB.c.sc.storeNewSession(idA, addr, session.keysFlipped()) + }, + }, + { + name: "v5.1-ping-handshake-enr", + packet: &Ping{ + ReqID: []byte{0, 0, 0, 1}, + ENRSeq: 1, + }, + challenge: &challenge0A, + prep: func(net *handshakeTest) { + // Update challenge.Header.AuthData. + net.nodeA.c.Encode(idB, "", &challenge0A, nil) + net.nodeB.c.sc.storeSentHandshake(idA, addr, &challenge0A) + }, + }, + { + name: "v5.1-ping-handshake", + packet: &Ping{ + ReqID: []byte{0, 0, 0, 1}, + ENRSeq: 1, + }, + challenge: &challenge1A, + prep: func(net *handshakeTest) { + // Update challenge data. + net.nodeA.c.Encode(idB, "", &challenge1A, nil) + net.nodeB.c.sc.storeSentHandshake(idA, addr, &challenge1A) + }, + }, + } + + for _, test := range tests { + test := test + t.Run(test.name, func(t *testing.T) { + net := newHandshakeTest() + defer net.close() + + // Override all random inputs. + net.nodeA.c.sc.nonceGen = func(counter uint32) (Nonce, error) { + return Nonce{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, nil + } + net.nodeA.c.sc.maskingIVGen = func(buf []byte) error { + return nil // all zero + } + net.nodeA.c.sc.ephemeralKeyGen = func() (*ecdsa.PrivateKey, error) { + return testEphKey, nil + } + + // Prime the codec for encoding/decoding. + if test.prep != nil { + test.prep(net) + } + + file := filepath.Join("testdata", test.name+".txt") + if *writeTestVectorsFlag { + // Encode the packet. + d, nonce := net.nodeA.encodeWithChallenge(t, net.nodeB, test.challenge, test.packet) + comment := testVectorComment(net, test.packet, test.challenge, nonce) + writeTestVector(file, comment, d) + } + enc := hexFile(file) + net.nodeB.expectDecode(t, test.packet.Kind(), enc) + }) + } +} + +// testVectorComment creates the commentary for discv5 test vector files. +func testVectorComment(net *handshakeTest, p Packet, challenge *Whoareyou, nonce Nonce) string { + o := new(strings.Builder) + printWhoareyou := func(p *Whoareyou) { + fmt.Fprintf(o, "whoareyou.challenge-data = %#x\n", p.ChallengeData) + fmt.Fprintf(o, "whoareyou.request-nonce = %#x\n", p.Nonce[:]) + fmt.Fprintf(o, "whoareyou.id-nonce = %#x\n", p.IDNonce[:]) + fmt.Fprintf(o, "whoareyou.enr-seq = %d\n", p.RecordSeq) + } + + fmt.Fprintf(o, "src-node-id = %#x\n", net.nodeA.id().Bytes()) + fmt.Fprintf(o, "dest-node-id = %#x\n", net.nodeB.id().Bytes()) + switch p := p.(type) { + case *Whoareyou: + // WHOAREYOU packet. + printWhoareyou(p) + case *Ping: + fmt.Fprintf(o, "nonce = %#x\n", nonce[:]) + fmt.Fprintf(o, "read-key = %#x\n", net.nodeA.c.sc.session(net.nodeB.id(), net.nodeB.addr()).writeKey) + fmt.Fprintf(o, "ping.req-id = %#x\n", p.ReqID) + fmt.Fprintf(o, "ping.enr-seq = %d\n", p.ENRSeq) + if challenge != nil { + // Handshake message packet. + fmt.Fprint(o, "\nhandshake inputs:\n\n") + printWhoareyou(challenge) + fmt.Fprintf(o, "ephemeral-key = %#x\n", testEphKey.D.Bytes()) + fmt.Fprintf(o, "ephemeral-pubkey = %#x\n", crypto.CompressPubkey(&testEphKey.PublicKey)) + } + default: + panic(fmt.Errorf("unhandled packet type %T", p)) + } + return o.String() +} + +// This benchmark checks performance of handshake packet decoding. +func BenchmarkV5_DecodeHandshakePingSecp256k1(b *testing.B) { + net := newHandshakeTest() + defer net.close() + + var ( + idA = net.nodeA.id() + challenge = &Whoareyou{Node: net.nodeB.n()} + message = &Ping{ReqID: []byte("reqid")} + ) + enc, _, err := net.nodeA.c.Encode(net.nodeB.id(), "", message, challenge) + if err != nil { + b.Fatal("can't encode handshake packet") + } + challenge.Node = nil // force ENR signature verification in decoder + b.ResetTimer() + + input := make([]byte, len(enc)) + for i := 0; i < b.N; i++ { + copy(input, enc) + net.nodeB.c.sc.storeSentHandshake(idA, "", challenge) + _, _, _, err := net.nodeB.c.Decode(input, "") + if err != nil { + b.Fatal(err) + } + } +} + +// This benchmark checks how long it takes to decode an encrypted ping packet. +func BenchmarkV5_DecodePing(b *testing.B) { + net := newHandshakeTest() + defer net.close() + + session := &session{ + readKey: []byte{233, 203, 93, 195, 86, 47, 177, 186, 227, 43, 2, 141, 244, 230, 120, 17}, + writeKey: []byte{79, 145, 252, 171, 167, 216, 252, 161, 208, 190, 176, 106, 214, 39, 178, 134}, + } + net.nodeA.c.sc.storeNewSession(net.nodeB.id(), net.nodeB.addr(), session) + net.nodeB.c.sc.storeNewSession(net.nodeA.id(), net.nodeA.addr(), session.keysFlipped()) + addrB := net.nodeA.addr() + ping := &Ping{ReqID: []byte("reqid"), ENRSeq: 5} + enc, _, err := net.nodeA.c.Encode(net.nodeB.id(), addrB, ping, nil) + if err != nil { + b.Fatalf("can't encode: %v", err) + } + b.ResetTimer() + + input := make([]byte, len(enc)) + for i := 0; i < b.N; i++ { + copy(input, enc) + _, _, packet, _ := net.nodeB.c.Decode(input, addrB) + if _, ok := packet.(*Ping); !ok { + b.Fatalf("wrong packet type %T", packet) + } + } +} + +var pp = spew.NewDefaultConfig() + +type handshakeTest struct { + nodeA, nodeB handshakeTestNode + clock mclock.Simulated +} + +type handshakeTestNode struct { + ln *enode.LocalNode + c *Codec +} + +func newHandshakeTest() *handshakeTest { + t := new(handshakeTest) + t.nodeA.init(testKeyA, net.IP{127, 0, 0, 1}, &t.clock) + t.nodeB.init(testKeyB, net.IP{127, 0, 0, 1}, &t.clock) + return t +} + +func (t *handshakeTest) close() { + t.nodeA.ln.Database().Close() + t.nodeB.ln.Database().Close() +} + +func (n *handshakeTestNode) init(key *ecdsa.PrivateKey, ip net.IP, clock mclock.Clock) { + db, _ := enode.OpenDB("") + n.ln = enode.NewLocalNode(db, key) + n.ln.SetStaticIP(ip) + if n.ln.Node().Seq() == 0 { + panic(fmt.Errorf("unexpected seq %d", n.ln.Node().Seq())) + } + n.c = NewCodec(n.ln, key, clock) +} + +func (n *handshakeTestNode) encode(t testing.TB, to handshakeTestNode, p Packet) ([]byte, Nonce) { + t.Helper() + return n.encodeWithChallenge(t, to, nil, p) +} + +func (n *handshakeTestNode) encodeWithChallenge(t testing.TB, to handshakeTestNode, c *Whoareyou, p Packet) ([]byte, Nonce) { + t.Helper() + + // Copy challenge and add destination node. This avoids sharing 'c' among the two codecs. + var challenge *Whoareyou + if c != nil { + challengeCopy := *c + challenge = &challengeCopy + challenge.Node = to.n() + } + // Encode to destination. + enc, nonce, err := n.c.Encode(to.id(), to.addr(), p, challenge) + if err != nil { + t.Fatal(fmt.Errorf("(%s) %v", n.ln.ID().TerminalString(), err)) + } + t.Logf("(%s) -> (%s) %s\n%s", n.ln.ID().TerminalString(), to.id().TerminalString(), p.Name(), hex.Dump(enc)) + return enc, nonce +} + +func (n *handshakeTestNode) expectDecode(t *testing.T, ptype byte, p []byte) Packet { + t.Helper() + + dec, err := n.decode(p) + if err != nil { + t.Fatal(fmt.Errorf("(%s) %v", n.ln.ID().TerminalString(), err)) + } + t.Logf("(%s) %#v", n.ln.ID().TerminalString(), pp.NewFormatter(dec)) + if dec.Kind() != ptype { + t.Fatalf("expected packet type %d, got %d", ptype, dec.Kind()) + } + return dec +} + +func (n *handshakeTestNode) expectDecodeErr(t *testing.T, wantErr error, p []byte) { + t.Helper() + if _, err := n.decode(p); !reflect.DeepEqual(err, wantErr) { + t.Fatal(fmt.Errorf("(%s) got err %q, want %q", n.ln.ID().TerminalString(), err, wantErr)) + } +} + +func (n *handshakeTestNode) decode(input []byte) (Packet, error) { + _, _, p, err := n.c.Decode(input, "127.0.0.1") + return p, err +} + +func (n *handshakeTestNode) n() *enode.Node { + return n.ln.Node() +} + +func (n *handshakeTestNode) addr() string { + return n.ln.Node().IP().String() +} + +func (n *handshakeTestNode) id() enode.ID { + return n.ln.ID() +} + +// hexFile reads the given file and decodes the hex data contained in it. +// Whitespace and any lines beginning with the # character are ignored. +func hexFile(file string) []byte { + fileContent, err := ioutil.ReadFile(file) + if err != nil { + panic(err) + } + + // Gather hex data, ignore comments. + var text []byte + for _, line := range bytes.Split(fileContent, []byte("\n")) { + line = bytes.TrimSpace(line) + if len(line) > 0 && line[0] == '#' { + continue + } + text = append(text, line...) + } + + // Parse the hex. + if bytes.HasPrefix(text, []byte("0x")) { + text = text[2:] + } + data := make([]byte, hex.DecodedLen(len(text))) + if _, err := hex.Decode(data, text); err != nil { + panic("invalid hex in " + file) + } + return data +} + +// writeTestVector writes a test vector file with the given commentary and binary data. +func writeTestVector(file, comment string, data []byte) { + fd, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) + if err != nil { + panic(err) + } + defer fd.Close() + + if len(comment) > 0 { + for _, line := range strings.Split(strings.TrimSpace(comment), "\n") { + fmt.Fprintf(fd, "# %s\n", line) + } + fmt.Fprintln(fd) + } + for len(data) > 0 { + var chunk []byte + if len(data) < 32 { + chunk = data + } else { + chunk = data[:32] + } + data = data[len(chunk):] + fmt.Fprintf(fd, "%x\n", chunk) + } +} diff --git a/p2p/discover/v5wire/msg.go b/p2p/discover/v5wire/msg.go new file mode 100644 index 000000000000..c9663217c7e3 --- /dev/null +++ b/p2p/discover/v5wire/msg.go @@ -0,0 +1,249 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package v5wire + +import ( + "fmt" + "net" + + "github.com/XinFinOrg/XDPoSChain/common/mclock" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/enr" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +// Packet is implemented by all message types. +type Packet interface { + Name() string // Name returns a string corresponding to the message type. + Kind() byte // Kind returns the message type. + RequestID() []byte // Returns the request ID. + SetRequestID([]byte) // Sets the request ID. +} + +// Message types. +const ( + PingMsg byte = iota + 1 + PongMsg + FindnodeMsg + NodesMsg + TalkRequestMsg + TalkResponseMsg + RequestTicketMsg + TicketMsg + RegtopicMsg + RegconfirmationMsg + TopicQueryMsg + + UnknownPacket = byte(255) // any non-decryptable packet + WhoareyouPacket = byte(254) // the WHOAREYOU packet +) + +// Protocol messages. +type ( + // Unknown represents any packet that can't be decrypted. + Unknown struct { + Nonce Nonce + } + + // WHOAREYOU contains the handshake challenge. + Whoareyou struct { + ChallengeData []byte // Encoded challenge + Nonce Nonce // Nonce of request packet + IDNonce [16]byte // Identity proof data + RecordSeq uint64 // ENR sequence number of recipient + + // Node is the locally known node record of recipient. + // This must be set by the caller of Encode. + Node *enode.Node + + sent mclock.AbsTime // for handshake GC. + } + + // PING is sent during liveness checks. + Ping struct { + ReqID []byte + ENRSeq uint64 + } + + // PONG is the reply to PING. + Pong struct { + ReqID []byte + ENRSeq uint64 + ToIP net.IP // These fields should mirror the UDP envelope address of the ping + ToPort uint16 // packet, which provides a way to discover the the external address (after NAT). + } + + // FINDNODE is a query for nodes in the given bucket. + Findnode struct { + ReqID []byte + Distances []uint + } + + // NODES is the reply to FINDNODE and TOPICQUERY. + Nodes struct { + ReqID []byte + Total uint8 + Nodes []*enr.Record + } + + // TALKREQ is an application-level request. + TalkRequest struct { + ReqID []byte + Protocol string + Message []byte + } + + // TALKRESP is the reply to TALKREQ. + TalkResponse struct { + ReqID []byte + Message []byte + } + + // REQUESTTICKET requests a ticket for a topic queue. + RequestTicket struct { + ReqID []byte + Topic []byte + } + + // TICKET is the response to REQUESTTICKET. + Ticket struct { + ReqID []byte + Ticket []byte + } + + // REGTOPIC registers the sender in a topic queue using a ticket. + Regtopic struct { + ReqID []byte + Ticket []byte + ENR *enr.Record + } + + // REGCONFIRMATION is the reply to REGTOPIC. + Regconfirmation struct { + ReqID []byte + Registered bool + } + + // TOPICQUERY asks for nodes with the given topic. + TopicQuery struct { + ReqID []byte + Topic []byte + } +) + +// DecodeMessage decodes the message body of a packet. +func DecodeMessage(ptype byte, body []byte) (Packet, error) { + var dec Packet + switch ptype { + case PingMsg: + dec = new(Ping) + case PongMsg: + dec = new(Pong) + case FindnodeMsg: + dec = new(Findnode) + case NodesMsg: + dec = new(Nodes) + case TalkRequestMsg: + dec = new(TalkRequest) + case TalkResponseMsg: + dec = new(TalkResponse) + case RequestTicketMsg: + dec = new(RequestTicket) + case TicketMsg: + dec = new(Ticket) + case RegtopicMsg: + dec = new(Regtopic) + case RegconfirmationMsg: + dec = new(Regconfirmation) + case TopicQueryMsg: + dec = new(TopicQuery) + default: + return nil, fmt.Errorf("unknown packet type %d", ptype) + } + if err := rlp.DecodeBytes(body, dec); err != nil { + return nil, err + } + if dec.RequestID() != nil && len(dec.RequestID()) > 8 { + return nil, ErrInvalidReqID + } + return dec, nil +} + +func (*Whoareyou) Name() string { return "WHOAREYOU/v5" } +func (*Whoareyou) Kind() byte { return WhoareyouPacket } +func (*Whoareyou) RequestID() []byte { return nil } +func (*Whoareyou) SetRequestID([]byte) {} + +func (*Unknown) Name() string { return "UNKNOWN/v5" } +func (*Unknown) Kind() byte { return UnknownPacket } +func (*Unknown) RequestID() []byte { return nil } +func (*Unknown) SetRequestID([]byte) {} + +func (*Ping) Name() string { return "PING/v5" } +func (*Ping) Kind() byte { return PingMsg } +func (p *Ping) RequestID() []byte { return p.ReqID } +func (p *Ping) SetRequestID(id []byte) { p.ReqID = id } + +func (*Pong) Name() string { return "PONG/v5" } +func (*Pong) Kind() byte { return PongMsg } +func (p *Pong) RequestID() []byte { return p.ReqID } +func (p *Pong) SetRequestID(id []byte) { p.ReqID = id } + +func (*Findnode) Name() string { return "FINDNODE/v5" } +func (*Findnode) Kind() byte { return FindnodeMsg } +func (p *Findnode) RequestID() []byte { return p.ReqID } +func (p *Findnode) SetRequestID(id []byte) { p.ReqID = id } + +func (*Nodes) Name() string { return "NODES/v5" } +func (*Nodes) Kind() byte { return NodesMsg } +func (p *Nodes) RequestID() []byte { return p.ReqID } +func (p *Nodes) SetRequestID(id []byte) { p.ReqID = id } + +func (*TalkRequest) Name() string { return "TALKREQ/v5" } +func (*TalkRequest) Kind() byte { return TalkRequestMsg } +func (p *TalkRequest) RequestID() []byte { return p.ReqID } +func (p *TalkRequest) SetRequestID(id []byte) { p.ReqID = id } + +func (*TalkResponse) Name() string { return "TALKRESP/v5" } +func (*TalkResponse) Kind() byte { return TalkResponseMsg } +func (p *TalkResponse) RequestID() []byte { return p.ReqID } +func (p *TalkResponse) SetRequestID(id []byte) { p.ReqID = id } + +func (*RequestTicket) Name() string { return "REQTICKET/v5" } +func (*RequestTicket) Kind() byte { return RequestTicketMsg } +func (p *RequestTicket) RequestID() []byte { return p.ReqID } +func (p *RequestTicket) SetRequestID(id []byte) { p.ReqID = id } + +func (*Regtopic) Name() string { return "REGTOPIC/v5" } +func (*Regtopic) Kind() byte { return RegtopicMsg } +func (p *Regtopic) RequestID() []byte { return p.ReqID } +func (p *Regtopic) SetRequestID(id []byte) { p.ReqID = id } + +func (*Ticket) Name() string { return "TICKET/v5" } +func (*Ticket) Kind() byte { return TicketMsg } +func (p *Ticket) RequestID() []byte { return p.ReqID } +func (p *Ticket) SetRequestID(id []byte) { p.ReqID = id } + +func (*Regconfirmation) Name() string { return "REGCONFIRMATION/v5" } +func (*Regconfirmation) Kind() byte { return RegconfirmationMsg } +func (p *Regconfirmation) RequestID() []byte { return p.ReqID } +func (p *Regconfirmation) SetRequestID(id []byte) { p.ReqID = id } + +func (*TopicQuery) Name() string { return "TOPICQUERY/v5" } +func (*TopicQuery) Kind() byte { return TopicQueryMsg } +func (p *TopicQuery) RequestID() []byte { return p.ReqID } +func (p *TopicQuery) SetRequestID(id []byte) { p.ReqID = id } diff --git a/p2p/discover/v5_session.go b/p2p/discover/v5wire/session.go similarity index 58% rename from p2p/discover/v5_session.go rename to p2p/discover/v5wire/session.go index 114d56643a29..f1970e7d4720 100644 --- a/p2p/discover/v5_session.go +++ b/p2p/discover/v5wire/session.go @@ -14,22 +14,33 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . -package discover +package v5wire import ( + "crypto/ecdsa" crand "crypto/rand" + "encoding/binary" + "time" "github.com/XinFinOrg/XDPoSChain/common/mclock" + "github.com/XinFinOrg/XDPoSChain/crypto" "github.com/XinFinOrg/XDPoSChain/p2p/enode" "github.com/hashicorp/golang-lru/simplelru" ) -// The sessionCache keeps negotiated encryption keys and +const handshakeTimeout = time.Second + +// The SessionCache keeps negotiated encryption keys and // state for in-progress handshakes in the Discovery v5 wire protocol. -type sessionCache struct { +type SessionCache struct { sessions *simplelru.LRU - handshakes map[sessionID]*whoareyouV5 + handshakes map[sessionID]*Whoareyou clock mclock.Clock + + // hooks for overriding randomness. + nonceGen func(uint32) (Nonce, error) + maskingIVGen func([]byte) error + ephemeralKeyGen func() (*ecdsa.PrivateKey, error) } // sessionID identifies a session or handshake. @@ -45,27 +56,45 @@ type session struct { nonceCounter uint32 } -func newSessionCache(maxItems int, clock mclock.Clock) *sessionCache { +// keysFlipped returns a copy of s with the read and write keys flipped. +func (s *session) keysFlipped() *session { + return &session{s.readKey, s.writeKey, s.nonceCounter} +} + +func NewSessionCache(maxItems int, clock mclock.Clock) *SessionCache { cache, err := simplelru.NewLRU(maxItems, nil) if err != nil { panic("can't create session cache") } - return &sessionCache{ - sessions: cache, - handshakes: make(map[sessionID]*whoareyouV5), - clock: clock, + return &SessionCache{ + sessions: cache, + handshakes: make(map[sessionID]*Whoareyou), + clock: clock, + nonceGen: generateNonce, + maskingIVGen: generateMaskingIV, + ephemeralKeyGen: crypto.GenerateKey, } } +func generateNonce(counter uint32) (n Nonce, err error) { + binary.BigEndian.PutUint32(n[:4], counter) + _, err = crand.Read(n[4:]) + return n, err +} + +func generateMaskingIV(buf []byte) error { + _, err := crand.Read(buf) + return err +} + // nextNonce creates a nonce for encrypting a message to the given session. -func (sc *sessionCache) nextNonce(id enode.ID, addr string) []byte { - n := make([]byte, gcmNonceSize) - crand.Read(n) - return n +func (sc *SessionCache) nextNonce(s *session) (Nonce, error) { + s.nonceCounter++ + return sc.nonceGen(s.nonceCounter) } // session returns the current session for the given node, if any. -func (sc *sessionCache) session(id enode.ID, addr string) *session { +func (sc *SessionCache) session(id enode.ID, addr string) *session { item, ok := sc.sessions.Get(sessionID{id, addr}) if !ok { return nil @@ -74,46 +103,36 @@ func (sc *sessionCache) session(id enode.ID, addr string) *session { } // readKey returns the current read key for the given node. -func (sc *sessionCache) readKey(id enode.ID, addr string) []byte { +func (sc *SessionCache) readKey(id enode.ID, addr string) []byte { if s := sc.session(id, addr); s != nil { return s.readKey } return nil } -// writeKey returns the current read key for the given node. -func (sc *sessionCache) writeKey(id enode.ID, addr string) []byte { - if s := sc.session(id, addr); s != nil { - return s.writeKey - } - return nil -} - // storeNewSession stores new encryption keys in the cache. -func (sc *sessionCache) storeNewSession(id enode.ID, addr string, r, w []byte) { - sc.sessions.Add(sessionID{id, addr}, &session{ - readKey: r, writeKey: w, - }) +func (sc *SessionCache) storeNewSession(id enode.ID, addr string, s *session) { + sc.sessions.Add(sessionID{id, addr}, s) } // getHandshake gets the handshake challenge we previously sent to the given remote node. -func (sc *sessionCache) getHandshake(id enode.ID, addr string) *whoareyouV5 { +func (sc *SessionCache) getHandshake(id enode.ID, addr string) *Whoareyou { return sc.handshakes[sessionID{id, addr}] } // storeSentHandshake stores the handshake challenge sent to the given remote node. -func (sc *sessionCache) storeSentHandshake(id enode.ID, addr string, challenge *whoareyouV5) { +func (sc *SessionCache) storeSentHandshake(id enode.ID, addr string, challenge *Whoareyou) { challenge.sent = sc.clock.Now() sc.handshakes[sessionID{id, addr}] = challenge } // deleteHandshake deletes handshake data for the given node. -func (sc *sessionCache) deleteHandshake(id enode.ID, addr string) { +func (sc *SessionCache) deleteHandshake(id enode.ID, addr string) { delete(sc.handshakes, sessionID{id, addr}) } // handshakeGC deletes timed-out handshakes. -func (sc *sessionCache) handshakeGC() { +func (sc *SessionCache) handshakeGC() { deadline := sc.clock.Now().Add(-handshakeTimeout) for key, challenge := range sc.handshakes { if challenge.sent < deadline { diff --git a/p2p/discover/v5wire/testdata/v5.1-ping-handshake-enr.txt b/p2p/discover/v5wire/testdata/v5.1-ping-handshake-enr.txt new file mode 100644 index 000000000000..477f9e15a826 --- /dev/null +++ b/p2p/discover/v5wire/testdata/v5.1-ping-handshake-enr.txt @@ -0,0 +1,27 @@ +# src-node-id = 0xaaaa8419e9f49d0083561b48287df592939a8d19947d8c0ef88f2a4856a69fbb +# dest-node-id = 0xbbbb9d047f0488c0b5a93c1c3f2d8bafc7c8ff337024a55434a0d0555de64db9 +# nonce = 0xffffffffffffffffffffffff +# read-key = 0x53b1c075f41876423154e157470c2f48 +# ping.req-id = 0x00000001 +# ping.enr-seq = 1 +# +# handshake inputs: +# +# whoareyou.challenge-data = 0x000000000000000000000000000000006469736376350001010102030405060708090a0b0c00180102030405060708090a0b0c0d0e0f100000000000000000 +# whoareyou.request-nonce = 0x0102030405060708090a0b0c +# whoareyou.id-nonce = 0x0102030405060708090a0b0c0d0e0f10 +# whoareyou.enr-seq = 0 +# ephemeral-key = 0x0288ef00023598499cb6c940146d050d2b1fb914198c327f76aad590bead68b6 +# ephemeral-pubkey = 0x039a003ba6517b473fa0cd74aefe99dadfdb34627f90fec6362df85803908f53a5 + +00000000000000000000000000000000088b3d4342774649305f313964a39e55 +ea96c005ad539c8c7560413a7008f16c9e6d2f43bbea8814a546b7409ce783d3 +4c4f53245d08da4bb23698868350aaad22e3ab8dd034f548a1c43cd246be9856 +2fafa0a1fa86d8e7a3b95ae78cc2b988ded6a5b59eb83ad58097252188b902b2 +1481e30e5e285f19735796706adff216ab862a9186875f9494150c4ae06fa4d1 +f0396c93f215fa4ef524e0ed04c3c21e39b1868e1ca8105e585ec17315e755e6 +cfc4dd6cb7fd8e1a1f55e49b4b5eb024221482105346f3c82b15fdaae36a3bb1 +2a494683b4a3c7f2ae41306252fed84785e2bbff3b022812d0882f06978df84a +80d443972213342d04b9048fc3b1d5fcb1df0f822152eced6da4d3f6df27e70e +4539717307a0208cd208d65093ccab5aa596a34d7511401987662d8cf62b1394 +71 diff --git a/p2p/discover/v5wire/testdata/v5.1-ping-handshake.txt b/p2p/discover/v5wire/testdata/v5.1-ping-handshake.txt new file mode 100644 index 000000000000..b3f304766cc5 --- /dev/null +++ b/p2p/discover/v5wire/testdata/v5.1-ping-handshake.txt @@ -0,0 +1,23 @@ +# src-node-id = 0xaaaa8419e9f49d0083561b48287df592939a8d19947d8c0ef88f2a4856a69fbb +# dest-node-id = 0xbbbb9d047f0488c0b5a93c1c3f2d8bafc7c8ff337024a55434a0d0555de64db9 +# nonce = 0xffffffffffffffffffffffff +# read-key = 0x4f9fac6de7567d1e3b1241dffe90f662 +# ping.req-id = 0x00000001 +# ping.enr-seq = 1 +# +# handshake inputs: +# +# whoareyou.challenge-data = 0x000000000000000000000000000000006469736376350001010102030405060708090a0b0c00180102030405060708090a0b0c0d0e0f100000000000000001 +# whoareyou.request-nonce = 0x0102030405060708090a0b0c +# whoareyou.id-nonce = 0x0102030405060708090a0b0c0d0e0f10 +# whoareyou.enr-seq = 1 +# ephemeral-key = 0x0288ef00023598499cb6c940146d050d2b1fb914198c327f76aad590bead68b6 +# ephemeral-pubkey = 0x039a003ba6517b473fa0cd74aefe99dadfdb34627f90fec6362df85803908f53a5 + +00000000000000000000000000000000088b3d4342774649305f313964a39e55 +ea96c005ad521d8c7560413a7008f16c9e6d2f43bbea8814a546b7409ce783d3 +4c4f53245d08da4bb252012b2cba3f4f374a90a75cff91f142fa9be3e0a5f3ef +268ccb9065aeecfd67a999e7fdc137e062b2ec4a0eb92947f0d9a74bfbf44dfb +a776b21301f8b65efd5796706adff216ab862a9186875f9494150c4ae06fa4d1 +f0396c93f215fa4ef524f1eadf5f0f4126b79336671cbcf7a885b1f8bd2a5d83 +9cf8 diff --git a/p2p/discover/v5wire/testdata/v5.1-ping-message.txt b/p2p/discover/v5wire/testdata/v5.1-ping-message.txt new file mode 100644 index 000000000000..f82b99c3bc75 --- /dev/null +++ b/p2p/discover/v5wire/testdata/v5.1-ping-message.txt @@ -0,0 +1,10 @@ +# src-node-id = 0xaaaa8419e9f49d0083561b48287df592939a8d19947d8c0ef88f2a4856a69fbb +# dest-node-id = 0xbbbb9d047f0488c0b5a93c1c3f2d8bafc7c8ff337024a55434a0d0555de64db9 +# nonce = 0xffffffffffffffffffffffff +# read-key = 0x00000000000000000000000000000000 +# ping.req-id = 0x00000001 +# ping.enr-seq = 2 + +00000000000000000000000000000000088b3d4342774649325f313964a39e55 +ea96c005ad52be8c7560413a7008f16c9e6d2f43bbea8814a546b7409ce783d3 +4c4f53245d08dab84102ed931f66d1492acb308fa1c6715b9d139b81acbdcc diff --git a/p2p/discover/v5wire/testdata/v5.1-whoareyou.txt b/p2p/discover/v5wire/testdata/v5.1-whoareyou.txt new file mode 100644 index 000000000000..1a75f525ee96 --- /dev/null +++ b/p2p/discover/v5wire/testdata/v5.1-whoareyou.txt @@ -0,0 +1,9 @@ +# src-node-id = 0xaaaa8419e9f49d0083561b48287df592939a8d19947d8c0ef88f2a4856a69fbb +# dest-node-id = 0xbbbb9d047f0488c0b5a93c1c3f2d8bafc7c8ff337024a55434a0d0555de64db9 +# whoareyou.challenge-data = 0x000000000000000000000000000000006469736376350001010102030405060708090a0b0c00180102030405060708090a0b0c0d0e0f100000000000000000 +# whoareyou.request-nonce = 0x0102030405060708090a0b0c +# whoareyou.id-nonce = 0x0102030405060708090a0b0c0d0e0f10 +# whoareyou.enr-seq = 0 + +00000000000000000000000000000000088b3d434277464933a1ccc59f5967ad +1d6035f15e528627dde75cd68292f9e6c27d6b66c8100a873fcbaed4e16b8d diff --git a/p2p/netutil/error.go b/p2p/netutil/error.go index cb21b9cd4ce4..98580cae78f4 100644 --- a/p2p/netutil/error.go +++ b/p2p/netutil/error.go @@ -16,6 +16,8 @@ package netutil +import "errors" + // IsTemporaryError checks whether the given error should be considered temporary. func IsTemporaryError(err error) bool { tempErr, ok := err.(interface { @@ -23,3 +25,11 @@ func IsTemporaryError(err error) bool { }) return ok && tempErr.Temporary() || isPacketTooBig(err) } + +// IsTimeout checks whether the given error is a timeout. +func IsTimeout(err error) bool { + timeoutErr := new(interface { + Timeout() bool + }) + return errors.As(err, timeoutErr) && (*timeoutErr).Timeout() +} diff --git a/p2p/netutil/error_test.go b/p2p/netutil/error_test.go index 645e48f83741..c9608227d45b 100644 --- a/p2p/netutil/error_test.go +++ b/p2p/netutil/error_test.go @@ -17,11 +17,19 @@ package netutil import ( + "errors" + "fmt" "net" "testing" "time" ) +type timeoutErr bool + +func (e timeoutErr) Error() string { return "timeout" } +func (e timeoutErr) Timeout() bool { return bool(e) } +func (e timeoutErr) Temporary() bool { return false } + // This test checks that isPacketTooBig correctly identifies // errors that result from receiving a UDP packet larger // than the supplied receive buffer. @@ -71,3 +79,25 @@ func TestIsPacketTooBig(t *testing.T) { } } } + +func TestIsTimeout(t *testing.T) { + tests := []struct { + name string + err error + want bool + }{ + {name: "nil", err: nil, want: false}, + {name: "direct timeout", err: timeoutErr(true), want: true}, + {name: "wrapped timeout", err: fmt.Errorf("wrapped: %w", timeoutErr(true)), want: true}, + {name: "wrapped non-timeout", err: fmt.Errorf("wrapped: %w", timeoutErr(false)), want: false}, + {name: "ordinary error", err: errors.New("no timeout"), want: false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := IsTimeout(tt.err); got != tt.want { + t.Fatalf("IsTimeout(%v) = %v, want %v", tt.err, got, tt.want) + } + }) + } +} From a120b3c83920dd6e09378fc5d023f16d3fff2e9b Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Tue, 14 Jul 2026 16:26:57 +0800 Subject: [PATCH 13/14] feat(cmd/devp2p): add test suite --- cmd/devp2p/discv4cmd.go | 26 + cmd/devp2p/discv5cmd.go | 23 + cmd/devp2p/internal/ethtest/mkchain.sh | 10 + cmd/devp2p/internal/ethtest/protocol.go | 58 + cmd/devp2p/internal/ethtest/suite.go | 455 + .../internal/ethtest/testdata/accounts.json | 62 + .../internal/ethtest/testdata/chain.rlp | Bin 0 -> 457980 bytes .../internal/ethtest/testdata/forkenv.json | 27 + .../internal/ethtest/testdata/genesis.json | 145 + .../internal/ethtest/testdata/headblock.json | 24 + .../internal/ethtest/testdata/headfcu.json | 13 + .../internal/ethtest/testdata/headstate.json | 3906 ++++ .../internal/ethtest/testdata/newpayload.json | 19044 ++++++++++++++++ .../internal/ethtest/testdata/txinfo.json | 3283 +++ cmd/devp2p/internal/v4test/discv4tests.go | 551 + cmd/devp2p/internal/v4test/framework.go | 125 + cmd/devp2p/internal/v5test/discv5tests.go | 247 +- cmd/devp2p/internal/v5test/framework.go | 67 +- cmd/devp2p/rlpxcmd.go | 47 + cmd/devp2p/runtest.go | 99 + internal/flags/categories.go | 1 + p2p/discover/v5wire/encoding.go | 7 + 22 files changed, 28102 insertions(+), 118 deletions(-) create mode 100644 cmd/devp2p/internal/ethtest/mkchain.sh create mode 100644 cmd/devp2p/internal/ethtest/suite.go create mode 100644 cmd/devp2p/internal/ethtest/testdata/accounts.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/chain.rlp create mode 100644 cmd/devp2p/internal/ethtest/testdata/forkenv.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/genesis.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/headblock.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/headfcu.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/headstate.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/newpayload.json create mode 100644 cmd/devp2p/internal/ethtest/testdata/txinfo.json create mode 100644 cmd/devp2p/internal/v4test/discv4tests.go create mode 100644 cmd/devp2p/internal/v4test/framework.go create mode 100644 cmd/devp2p/runtest.go diff --git a/cmd/devp2p/discv4cmd.go b/cmd/devp2p/discv4cmd.go index 8934c0cbd864..a288a7b5076e 100644 --- a/cmd/devp2p/discv4cmd.go +++ b/cmd/devp2p/discv4cmd.go @@ -30,6 +30,7 @@ import ( "sync" "time" + "github.com/XinFinOrg/XDPoSChain/cmd/devp2p/internal/v4test" "github.com/XinFinOrg/XDPoSChain/common" "github.com/XinFinOrg/XDPoSChain/crypto" "github.com/XinFinOrg/XDPoSChain/log" @@ -50,6 +51,7 @@ var ( discv4ResolveCommand, discv4ResolveJSONCommand, discv4CrawlCommand, + discv4TestCommand, discv4ListenCommand, }, } @@ -102,6 +104,18 @@ var ( Action: discv4Crawl, Flags: slices.Concat(discoveryNodeFlags, []cli.Flag{crawlTimeoutFlag, crawlParallelismFlag}), } + discv4TestCommand = &cli.Command{ + Name: "test", + Usage: "Runs tests against a node", + Action: discv4Test, + Flags: []cli.Flag{ + remoteEnodeFlag, + testPatternFlag, + testTAPFlag, + testListen1Flag, + testListen2Flag, + }, + } ) var ( @@ -280,6 +294,18 @@ func discv4Crawl(ctx *cli.Context) error { return nil } +// discv4Test runs the protocol test suite. +func discv4Test(ctx *cli.Context) error { + // Configure test package globals. + if !ctx.IsSet(remoteEnodeFlag.Name) { + return fmt.Errorf("missing -%v", remoteEnodeFlag.Name) + } + v4test.Remote = ctx.String(remoteEnodeFlag.Name) + v4test.Listen1 = ctx.String(testListen1Flag.Name) + v4test.Listen2 = ctx.String(testListen2Flag.Name) + return runTests(ctx, v4test.AllTests) +} + // startV4 starts an ephemeral discovery V4 node. func startV4(ctx *cli.Context) (*discover.UDPv4, discover.Config) { ln, config := makeDiscoveryConfig(ctx) diff --git a/cmd/devp2p/discv5cmd.go b/cmd/devp2p/discv5cmd.go index 4293eda3aea7..4c39dd9b8045 100644 --- a/cmd/devp2p/discv5cmd.go +++ b/cmd/devp2p/discv5cmd.go @@ -22,6 +22,7 @@ import ( "slices" "time" + "github.com/XinFinOrg/XDPoSChain/cmd/devp2p/internal/v5test" "github.com/XinFinOrg/XDPoSChain/common" "github.com/XinFinOrg/XDPoSChain/p2p/discover" "github.com/urfave/cli/v2" @@ -35,6 +36,7 @@ var ( discv5PingCommand, discv5ResolveCommand, discv5CrawlCommand, + discv5TestCommand, discv5ListenCommand, }, } @@ -59,6 +61,17 @@ var ( crawlParallelismFlag, }), } + discv5TestCommand = &cli.Command{ + Name: "test", + Usage: "Runs protocol tests against a node", + Action: discv5Test, + Flags: []cli.Flag{ + testPatternFlag, + testTAPFlag, + testListen1Flag, + testListen2Flag, + }, + } discv5ListenCommand = &cli.Command{ Name: "listen", Usage: "Runs a node", @@ -109,6 +122,16 @@ func discv5Crawl(ctx *cli.Context) error { return nil } +// discv5Test runs the protocol test suite. +func discv5Test(ctx *cli.Context) error { + suite := &v5test.Suite{ + Dest: getNodeArg(ctx), + Listen1: ctx.String(testListen1Flag.Name), + Listen2: ctx.String(testListen2Flag.Name), + } + return runTests(ctx, suite.AllTests()) +} + func discv5Listen(ctx *cli.Context) error { disc, _ := startV5(ctx) defer disc.Close() diff --git a/cmd/devp2p/internal/ethtest/mkchain.sh b/cmd/devp2p/internal/ethtest/mkchain.sh new file mode 100644 index 000000000000..fab630d9775d --- /dev/null +++ b/cmd/devp2p/internal/ethtest/mkchain.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +hivechain generate \ + --pos \ + --fork-interval 6 \ + --tx-interval 1 \ + --length 600 \ + --outdir testdata \ + --lastfork prague \ + --outputs accounts,genesis,chain,headstate,txinfo,headblock,headfcu,newpayload,forkenv diff --git a/cmd/devp2p/internal/ethtest/protocol.go b/cmd/devp2p/internal/ethtest/protocol.go index e7eb62477a37..66e890392d31 100644 --- a/cmd/devp2p/internal/ethtest/protocol.go +++ b/cmd/devp2p/internal/ethtest/protocol.go @@ -21,6 +21,25 @@ import ( "github.com/XinFinOrg/XDPoSChain/rlp" ) +// Unexported devp2p message codes from p2p/peer.go. +const ( + handshakeMsg = 0x00 + discMsg = 0x01 + pingMsg = 0x02 + pongMsg = 0x03 +) + +// Unexported devp2p protocol lengths from p2p package. +const ( + baseProtoLen = 16 + ethProtoLen = 18 + // snapProtoLen accommodates snap/2 (EIP-8189) which extends snap/1 with two + // additional message codes (GetBlockAccessLists=0x08, BlockAccessLists=0x09). + // Using 10 is safe for snap/1 connections because the extra codes are simply + // never used on that protocol version. + snapProtoLen = 10 +) + // Unexported handshake structure from p2p/peer.go. type protoHandshake struct { Version uint64 @@ -32,3 +51,42 @@ type protoHandshake struct { } type Hello = protoHandshake + +// Proto is an enum representing devp2p protocol types. +type Proto int + +const ( + baseProto Proto = iota + ethProto + snapProto +) + +// getProto returns the protocol a certain message code is associated with +// (assuming the negotiated capabilities are exactly {eth,snap}) +func getProto(code uint64) Proto { + switch { + case code < baseProtoLen: + return baseProto + case code < baseProtoLen+ethProtoLen: + return ethProto + case code < baseProtoLen+ethProtoLen+snapProtoLen: + return snapProto + default: + panic("unhandled msg code beyond last protocol") + } +} + +// protoOffset will return the offset at which the specified protocol's messages +// begin. +func protoOffset(proto Proto) uint64 { + switch proto { + case baseProto: + return 0 + case ethProto: + return baseProtoLen + case snapProto: + return baseProtoLen + ethProtoLen + default: + panic("unhandled protocol") + } +} diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go new file mode 100644 index 000000000000..76c40f36f185 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -0,0 +1,455 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package ethtest + +import ( + "crypto/ecdsa" + "fmt" + "net" + "strings" + "time" + + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/internal/utesting" + "github.com/XinFinOrg/XDPoSChain/p2p" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" + "github.com/XinFinOrg/XDPoSChain/p2p/rlpx" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +const handshakeTimeout = 5 * time.Second + +// Suite represents a minimal conformance test set that is compatible with +// the protocol packages available in this repository snapshot. +type Suite struct { + Dest *enode.Node +} + +// NewSuite creates and returns a compatibility subset suite. +// The extra string parameters are currently unused and kept for API parity. +func NewSuite(dest *enode.Node, _, _, _ string) (*Suite, error) { + return &Suite{Dest: dest}, nil +} + +// EthTests returns the enabled compatibility subset. +// +// Scope freeze: +// 1. Keep only tests that depend on RLPx/devp2p handshake primitives available +// in this repository snapshot. +// 2. Avoid extending coverage into protocol packages that are not importable in +// this fork state. +// 3. Maintain behavior via boundary-driven hello/message-code/payload cases. +func (s *Suite) EthTests() []utesting.Test { + return []utesting.Test{ + // Baseline. + {Name: "RLPxHandshake", Fn: s.TestRLPxHandshake}, + + // Identity-focused hello boundary tests. + {Name: "MalformedHello", Fn: s.TestMalformedHello}, + {Name: "MalformedHelloShortID", Fn: s.TestMalformedHelloShortID}, + {Name: "MalformedHelloEmptyID", Fn: s.TestMalformedHelloEmptyID}, + {Name: "MalformedHelloLongID", Fn: s.TestMalformedHelloLongID}, + {Name: "MalformedHelloZeroID", Fn: s.TestMalformedHelloZeroID}, + {Name: "MalformedHelloMismatchedID", Fn: s.TestMalformedHelloMismatchedID}, + + // Capability-focused hello boundary tests. + {Name: "HelloWithoutEthCap", Fn: s.TestHelloWithoutEthCap}, + {Name: "HelloWithEmptyCaps", Fn: s.TestHelloWithEmptyCaps}, + {Name: "HelloWithEmptyCapName", Fn: s.TestHelloWithEmptyCapName}, + {Name: "HelloWithLongCapName", Fn: s.TestHelloWithLongCapName}, + {Name: "HelloWithNULCapName", Fn: s.TestHelloWithNULCapName}, + {Name: "HelloWithMismatchedIDAndEmptyCaps", Fn: s.TestHelloWithMismatchedIDAndEmptyCaps}, + {Name: "HelloWithUnsortedNonEthCaps", Fn: s.TestHelloWithUnsortedNonEthCaps}, + {Name: "HelloWithDuplicateEthCaps", Fn: s.TestHelloWithDuplicateEthCaps}, + + // Version and mixed hello semantics. + {Name: "HelloWithZeroVersion", Fn: s.TestHelloWithZeroVersion}, + {Name: "HelloWithMaxVersion", Fn: s.TestHelloWithMaxVersion}, + {Name: "HelloWithZeroVersionAndEmptyCaps", Fn: s.TestHelloWithZeroVersionAndEmptyCaps}, + + // Post-RLPx first-message code handling. + {Name: "WrongFirstMessageCode", Fn: s.TestWrongFirstMessageCode}, + {Name: "FirstMessageDisconnect", Fn: s.TestFirstMessageDisconnect}, + {Name: "FirstMessageDisconnectInvalidPayload", Fn: s.TestFirstMessageDisconnectInvalidPayload}, + {Name: "FirstMessageDisconnectEmptyPayload", Fn: s.TestFirstMessageDisconnectEmptyPayload}, + + // Handshake payload size/encoding/type boundaries. + {Name: "OversizedHelloPayload", Fn: s.TestOversizedHelloPayload}, + {Name: "EmptyHelloPayload", Fn: s.TestEmptyHelloPayload}, + {Name: "TruncatedHelloPayload", Fn: s.TestTruncatedHelloPayload}, + {Name: "InvalidHelloRLP", Fn: s.TestInvalidHelloRLP}, + {Name: "HelloPayloadWrongRLPType", Fn: s.TestHelloPayloadWrongRLPType}, + {Name: "HelloPayloadEmptyList", Fn: s.TestHelloPayloadEmptyList}, + {Name: "HelloPayloadShortList", Fn: s.TestHelloPayloadShortList}, + {Name: "HelloPayloadVersionWrongType", Fn: s.TestHelloPayloadVersionWrongType}, + } +} + +func (s *Suite) TestRLPxHandshake(t *utesting.T) { + t.Log(`This test verifies that the peer accepts a plain RLPx handshake.`) + key, err := crypto.GenerateKey() + if err != nil { + t.Fatalf("failed to generate key: %v", err) + } + conn, err := s.dialConn(key) + if err != nil { + t.Fatalf("rlpx handshake failed: %v", err) + } + conn.Close() +} + +func (s *Suite) TestMalformedHello(t *utesting.T) { + t.Log(`This test sends a malformed devp2p hello and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHello") +} + +func (s *Suite) TestMalformedHelloShortID(t *utesting.T) { + t.Log(`This test sends a hello with a too-short peer id and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHelloShortID") +} + +func (s *Suite) TestMalformedHelloEmptyID(t *utesting.T) { + t.Log(`This test sends a hello with an empty peer id and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHelloEmptyID") +} + +func (s *Suite) TestMalformedHelloLongID(t *utesting.T) { + t.Log(`This test sends a hello with an overly long peer id and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHelloLongID") +} + +func (s *Suite) TestMalformedHelloZeroID(t *utesting.T) { + t.Log(`This test sends a hello with an all-zero peer id and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHelloZeroID") +} + +func (s *Suite) TestMalformedHelloMismatchedID(t *utesting.T) { + t.Log(`This test sends a hello with a non-zero but mismatched peer id and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "MalformedHelloMismatchedID") +} + +func (s *Suite) TestHelloWithoutEthCap(t *utesting.T) { + t.Log(`This test sends a hello that omits eth capability and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithoutEthCap") +} + +func (s *Suite) TestHelloWithZeroVersion(t *utesting.T) { + t.Log(`This test sends a hello with protocol version zero and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithZeroVersion") +} + +func (s *Suite) TestHelloWithMaxVersion(t *utesting.T) { + t.Log(`This test sends a hello with max uint64 version and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithMaxVersion") +} + +func (s *Suite) TestHelloWithZeroVersionAndEmptyCaps(t *utesting.T) { + t.Log(`This test sends a hello with zero version and empty capabilities and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithZeroVersionAndEmptyCaps") +} + +func (s *Suite) TestHelloWithEmptyCaps(t *utesting.T) { + t.Log(`This test sends a hello with empty capabilities and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithEmptyCaps") +} + +func (s *Suite) TestHelloWithEmptyCapName(t *utesting.T) { + t.Log(`This test sends a hello with an empty capability name and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithEmptyCapName") +} + +func (s *Suite) TestHelloWithLongCapName(t *utesting.T) { + t.Log(`This test sends a hello with an overly long capability name and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithLongCapName") +} + +func (s *Suite) TestHelloWithNULCapName(t *utesting.T) { + t.Log(`This test sends a hello with a NUL byte in capability name and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithNULCapName") +} + +func (s *Suite) TestHelloWithMismatchedIDAndEmptyCaps(t *utesting.T) { + t.Log(`This test sends a hello with mismatched id and empty capabilities and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithMismatchedIDAndEmptyCaps") +} + +func (s *Suite) TestHelloWithUnsortedNonEthCaps(t *utesting.T) { + t.Log(`This test sends a hello with unsorted non-eth capabilities and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithUnsortedNonEthCaps") +} + +func (s *Suite) TestOversizedHelloPayload(t *utesting.T) { + t.Log(`This test sends an oversized hello payload and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // p2p readProtocolHandshake enforces a 2KB max size for hello. + oversized := make([]byte, 2049) + s.expectDisconnectAfterHelloPayload(t, conn, oversized) + }) +} + +func (s *Suite) TestWrongFirstMessageCode(t *utesting.T) { + t.Log(`This test sends a non-handshake first message code and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // The first post-RLPx message must be handshakeMsg. + s.expectDisconnectAfterMessage(t, conn, pingMsg, []byte{}) + }) +} + +func (s *Suite) TestFirstMessageDisconnect(t *utesting.T) { + t.Log(`This test sends a disconnect as first post-RLPx message and expects disconnect handling.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + reasonPayload, err := rlp.EncodeToBytes([1]p2p.DiscReason{p2p.DiscRequested}) + if err != nil { + t.Fatalf("failed to encode disconnect reason: %v", err) + } + s.expectDisconnectAfterMessage(t, conn, discMsg, reasonPayload) + }) +} + +func (s *Suite) TestFirstMessageDisconnectInvalidPayload(t *utesting.T) { + t.Log(`This test sends a disconnect with invalid reason payload and expects disconnect handling.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // Invalid RLP for [1]DiscReason decoding path on receiver side. + s.expectDisconnectAfterMessage(t, conn, discMsg, []byte{0xff}) + }) +} + +func (s *Suite) TestFirstMessageDisconnectEmptyPayload(t *utesting.T) { + t.Log(`This test sends a disconnect with empty payload and expects disconnect handling.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // Empty payload should fail disconnect-reason decoding on receiver side. + s.expectDisconnectAfterMessage(t, conn, discMsg, []byte{}) + }) +} + +func (s *Suite) TestEmptyHelloPayload(t *utesting.T) { + t.Log(`This test sends an empty hello payload and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + s.expectDisconnectAfterHelloPayload(t, conn, []byte{}) + }) +} + +func (s *Suite) TestTruncatedHelloPayload(t *utesting.T) { + t.Log(`This test sends a truncated hello RLP payload and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // List length prefix (1 byte) without element content. + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0xc1}) + }) +} + +func (s *Suite) TestInvalidHelloRLP(t *utesting.T) { + t.Log(`This test sends invalid hello RLP bytes and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0xff}) + }) +} + +func (s *Suite) TestHelloPayloadWrongRLPType(t *utesting.T) { + t.Log(`This test sends hello payload with wrong RLP type and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // RLP empty string, while hello expects a list/struct payload. + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0x80}) + }) +} + +func (s *Suite) TestHelloPayloadEmptyList(t *utesting.T) { + t.Log(`This test sends hello payload as an empty RLP list and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // RLP empty list. Decoded hello has zero-value fields and invalid identity. + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0xc0}) + }) +} + +func (s *Suite) TestHelloPayloadShortList(t *utesting.T) { + t.Log(`This test sends hello payload as a short RLP list and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // RLP list with a single element (version only), missing required hello fields. + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0xc1, 0x05}) + }) +} + +func (s *Suite) TestHelloPayloadVersionWrongType(t *utesting.T) { + t.Log(`This test sends hello payload with wrong version field type and expects a disconnect.`) + s.withRLPxConn(t, func(conn *rlpx.Conn) { + // RLP list with one element: empty list, but hello version expects uint. + s.expectDisconnectAfterHelloPayload(t, conn, []byte{0xc1, 0xc0}) + }) +} + +func (s *Suite) TestHelloWithDuplicateEthCaps(t *utesting.T) { + t.Log(`This test sends a hello with duplicate eth capabilities and expects a disconnect.`) + s.runMalformedHelloNamedCase(t, "HelloWithDuplicateEthCaps") +} + +func malformedHelloByCase(name string, pub0 []byte) *protoHandshake { + base := &protoHandshake{ + Version: 5, + Caps: []p2p.Cap{{Name: "eth", Version: 63}}, + ID: pub0, + } + builders := map[string]func() *protoHandshake{ + "MalformedHello": func() *protoHandshake { + cpy := append([]byte(nil), pub0...) + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: append(cpy, byte(0))} + }, + "MalformedHelloShortID": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: pub0[:63]} + }, + "MalformedHelloEmptyID": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: nil} + }, + "MalformedHelloLongID": func() *protoHandshake { + longID := make([]byte, 128) + copy(longID, pub0) + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: longID} + }, + "MalformedHelloZeroID": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: make([]byte, 64)} + }, + "MalformedHelloMismatchedID": func() *protoHandshake { + mismatch := append([]byte(nil), pub0...) + mismatch[0] ^= 0x01 + return &protoHandshake{Version: base.Version, Caps: base.Caps, ID: mismatch} + }, + "HelloWithoutEthCap": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{{Name: "les", Version: 2}}, ID: base.ID} + }, + "HelloWithZeroVersion": func() *protoHandshake { + return &protoHandshake{Version: 0, Caps: base.Caps, ID: base.ID} + }, + "HelloWithMaxVersion": func() *protoHandshake { + return &protoHandshake{Version: ^uint64(0), Caps: base.Caps, ID: base.ID} + }, + "HelloWithZeroVersionAndEmptyCaps": func() *protoHandshake { + return &protoHandshake{Version: 0, Caps: []p2p.Cap{}, ID: base.ID} + }, + "HelloWithEmptyCaps": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{}, ID: base.ID} + }, + "HelloWithEmptyCapName": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{{Name: "", Version: 63}}, ID: base.ID} + }, + "HelloWithLongCapName": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{{Name: strings.Repeat("x", 512), Version: 1}}, ID: base.ID} + }, + "HelloWithNULCapName": func() *protoHandshake { + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{{Name: "et\x00h", Version: 63}}, ID: base.ID} + }, + "HelloWithMismatchedIDAndEmptyCaps": func() *protoHandshake { + mismatch := append([]byte(nil), pub0...) + mismatch[0] ^= 0x01 + return &protoHandshake{Version: base.Version, Caps: []p2p.Cap{}, ID: mismatch} + }, + "HelloWithUnsortedNonEthCaps": func() *protoHandshake { + return &protoHandshake{ + Version: base.Version, + Caps: []p2p.Cap{ + {Name: "zzz", Version: 2}, + {Name: "les", Version: 1}, + }, + ID: base.ID, + } + }, + "HelloWithDuplicateEthCaps": func() *protoHandshake { + return &protoHandshake{ + Version: base.Version, + Caps: []p2p.Cap{ + {Name: "eth", Version: 63}, + {Name: "eth", Version: 63}, + }, + ID: base.ID, + } + }, + } + if builder, ok := builders[name]; ok { + return builder() + } + panic("unknown malformed hello case: " + name) +} + +func (s *Suite) runMalformedHelloNamedCase(t *utesting.T, caseName string) { + s.withRLPxConnAndKey(t, func(conn *rlpx.Conn, key *ecdsa.PrivateKey) { + pub0 := crypto.FromECDSAPub(&key.PublicKey)[1:] + s.expectDisconnectAfterHello(t, conn, malformedHelloByCase(caseName, pub0)) + }) +} + +func (s *Suite) withRLPxConn(t *utesting.T, fn func(conn *rlpx.Conn)) { + s.withRLPxConnAndKey(t, func(conn *rlpx.Conn, _ *ecdsa.PrivateKey) { + fn(conn) + }) +} + +func (s *Suite) withRLPxConnAndKey(t *utesting.T, fn func(conn *rlpx.Conn, key *ecdsa.PrivateKey)) { + key, err := crypto.GenerateKey() + if err != nil { + t.Fatalf("failed to generate key: %v", err) + } + conn, err := s.dialConn(key) + if err != nil { + t.Fatalf("rlpx handshake failed: %v", err) + } + defer conn.Close() + fn(conn, key) +} + +func (s *Suite) expectDisconnectAfterHello(t *utesting.T, conn *rlpx.Conn, hello *protoHandshake) { + payload, err := rlp.EncodeToBytes(hello) + if err != nil { + t.Fatalf("failed to encode malformed hello: %v", err) + } + s.expectDisconnectAfterHelloPayload(t, conn, payload) +} + +func (s *Suite) expectDisconnectAfterHelloPayload(t *utesting.T, conn *rlpx.Conn, payload []byte) { + s.expectDisconnectAfterMessage(t, conn, handshakeMsg, payload) +} + +func (s *Suite) expectDisconnectAfterMessage(t *utesting.T, conn *rlpx.Conn, code uint64, payload []byte) { + if _, err := conn.Write(code, payload); err != nil { + t.Fatalf("failed to write test message: %v", err) + } + + conn.SetReadDeadline(time.Now().Add(handshakeTimeout)) + code, _, _, err := conn.Read() + if err != nil { + return + } + if code == discMsg { + return + } + t.Fatalf("expected disconnect after test message, got msg code %d", code) +} + +func (s *Suite) dialConn(key *ecdsa.PrivateKey) (*rlpx.Conn, error) { + tcpEndpoint, ok := s.Dest.TCPEndpoint() + if !ok { + return nil, fmt.Errorf("node has no TCP endpoint") + } + fd, err := net.DialTimeout("tcp", tcpEndpoint.String(), handshakeTimeout) + if err != nil { + return nil, err + } + + conn := rlpx.NewConn(fd, s.Dest.Pubkey()) + _, err = conn.Handshake(key) + if err != nil { + conn.Close() + return nil, err + } + return conn, nil +} diff --git a/cmd/devp2p/internal/ethtest/testdata/accounts.json b/cmd/devp2p/internal/ethtest/testdata/accounts.json new file mode 100644 index 000000000000..c9666235a850 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/accounts.json @@ -0,0 +1,62 @@ +{ + "0x0c2c51a0990aee1d73c1228de158688341557508": { + "key": "0xbfcd0e032489319f4e5ca03e643b2025db624be6cf99cbfed90c4502e3754850" + }, + "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { + "key": "0x457075f6822ac29481154792f65c5f1ec335b4fea9ca20f3fea8fa1d78a12c68" + }, + "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { + "key": "0x865898edcf43206d138c93f1bbd86311f4657b057658558888aa5ac4309626a6" + }, + "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { + "key": "0xee7f7875d826d7443ccc5c174e38b2c436095018774248a8074ee92d8914dcdb" + }, + "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759": { + "key": "0x25e6ce8611cefb5cd338aeaa9292ed2139714668d123a4fb156cabb42051b5b7" + }, + "0x2d389075be5be9f2246ad654ce152cf05990b209": { + "key": "0x19168cd7767604b3d19b99dc3da1302b9ccb6ee9ad61660859e07acd4a2625dd" + }, + "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { + "key": "0x71aa7d299c7607dabfc3d0e5213d612b5e4a97455b596c2f642daac43fa5eeaa" + }, + "0x4340ee1b812acb40a1eb561c019c327b243b92df": { + "key": "0x47f666f20e2175606355acec0ea1b37870c15e5797e962340da7ad7972a537e8" + }, + "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { + "key": "0xa88293fefc623644969e2ce6919fb0dbd0fd64f640293b4bf7e1a81c97e7fc7f" + }, + "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { + "key": "0x6e1e16a9c15641c73bf6e237f9293ab1d4e7c12b9adf83cfc94bcf969670f72d" + }, + "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0": { + "key": "0x41be4e00aac79f7ffbb3455053ec05e971645440d594c047cdcc56a3c7458bd6" + }, + "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e": { + "key": "0xc825f31cd8792851e33a290b3d749e553983111fc1f36dfbbdb45f101973f6a9" + }, + "0x717f8aa2b982bee0e29f573d31df288663e1ce16": { + "key": "0x8d0faa04ae0f9bc3cd4c890aa025d5f40916f4729538b19471c0beefe11d9e19" + }, + "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { + "key": "0x4552dbe6ca4699322b5d923d0c9bcdd24644f5db8bf89a085b67c6c49b8a1b91" + }, + "0x83c7e323d189f18725ac510004fdc2941f8c4a78": { + "key": "0x34391cbbf06956bb506f45ec179cdd84df526aa364e27bbde65db9c15d866d00" + }, + "0x84e75c28348fb86acea1a93a39426d7d60f4cc46": { + "key": "0xf6a8f1603b8368f3ca373292b7310c53bec7b508aecacd442554ebc1c5d0c856" + }, + "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0": { + "key": "0x8d56bcbcf2c1b7109e1396a28d7a0234e33544ade74ea32c460ce4a443b239b1" + }, + "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d": { + "key": "0xfc39d1c9ddbba176d806ebb42d7460189fe56ca163ad3eb6143bfc6beb6f6f72" + }, + "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { + "key": "0x9ee3fd550664b246ad7cdba07162dd25530a3b1d51476dd1d85bbc29f0592684" + }, + "0xeda8645ba6948855e3b3cd596bbb07596d59c603": { + "key": "0x14cdde09d1640eb8c3cda063891b0453073f57719583381ff78811efa6d4199f" + } +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/chain.rlp b/cmd/devp2p/internal/ethtest/testdata/chain.rlp new file mode 100644 index 0000000000000000000000000000000000000000..d5209ab0413ab9977afa596152879ae8d95ae556 GIT binary patch literal 457980 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%0D*u_Qi~DR{BtER&d~ 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�PTy@#718_z~NS&#Oa?&#qs9h2&`S zMkQ$BY`~OTE$T$2kMFChbo(~ZDe-)@DA9sO*a_P27fAi)2!t3+K1JjH{wh7yUq{G9 zSO4C1ca>Ti8&gwW17ytBzEbvU37Q0!b7z+C+84C{sb9b{7r?YLAarya!RL`a)hsDF zPfqLShV=N`2vM&8Tj2{m}3Ni85dF)aP1tN@@L4oIGs&NQCba52e|3)+taf=fJpTKcO(5VYcJ&~}?q z?Y{ll*L~O0-)ruO? zYrJ~{g(GF}z9~JW5U`G6fdD&YP`^O>cL%2t>7M80QZ#zs_yvi8d9vV1_OSPQdAC#^ zQfii(t(Mit40H`}6W#XQR{W$X1Rxfv1gC%)UKL`^DoGr@*HyQe^s%U?&F+}!t+;xb zhL;e!p?-n6&0Ac2lwj6YPJMDh{SmLoO?-PZ8E)!IwdFjLnJO%vX97U2`-91v^67r6>L5$kpp6=gfx?>xP1f~wvNjzo&Iq5C%YItv5? z_82c*8|PGQh$culnC^Da;M(dfQ!drJDm_-er9E`H?w?=qM_5blVg2#2v6iz4OzC0=+KSUA#vyN_FV?)F#*7G{)h<`L-L5u^*UaPV z&917tu7zh46`J7QH|0c!8d*mTp&IHJd}z7Mc7aCb%|i)#DVMXR-AH^H+fSR@e2z)a zakbk3RtKb7QB$5*p`uR{gz$JG@El&7w%!hRX2QB8-`ahhq{I|m00Wtrj>Wph-X|)l zfU#ut<}u-+`8GRf+F{>Nehumu$U#wVDvcqM*+Os%n-}FWZ|Ze1YAk>E_5K9_z^@p4 z!zVxX_yYPl^%jK(7xDz|61RDPDzpV+0oy!lS%BokN+;UdBV}4=l#e^xOR7`1@_Dw< zo;U`t)Q{f@j!A?74fP9f5cwP0iqwRtWa4t78RvAX?4G8eKg%CCDNz|VG{6o&AkeO* zjXdeNtjO_lw&_yamdQ?ewK5Glm`&~SJSz^u{qTxUL zB?5H~X|ES*@=(QP+k|WQOLbz>1UzPHbO?vu%>+5GrkMfq=U$DMCu8j3+bztAImrok zr&WxryQJNwyiLZl5R*nMHT1ZP5lsGe{Q~*F^a~b}gb-$IBiLQfE3@WXd)`UHBg*Yq z)1tVh)xox@C%gbKVJ*c{l+3;i^E4l#bYyK)gP-$Z@K`~1SlptZYvr|r^tA6F_b+&O z32)P86XRxW+Y?;x8lCw?B86agm06{0!k{TCl;EKQ!k))E8{qGtMin%8#yI*Zveqk# zzKI9jamlU0LX)+mXtF@|y(Kgow8!V-*b1bV`(`yw0a{P~MKMRXgjixH!uk#1_DE&CGzK57N_meD}-$ehrT5OC=g)o_|j)*d0^& z<;cS4hL9n4&o6rbzkhu)BV@NA@V~Er2=(Lm1!NaLl!73eeEX3>f?oy!clQncd4BQ& z?MVmU)z8Jf`l>R~pBKFRT6n z#0#5ss9$jTAbvq2kf-BI#vJJB3rf7_!KfuDY-u=j2_;=}ry)&Rq56{&H=xBLg+R?+ zHF`yJRG#Dwww7IDlZ`6Ii6IY|6>D^ zCuQ@M?q{Vc3MW|%Us)>>pk{KwquDI5JZs{q|K}HcOZ3l|!HCO!?$5z~0WsBKGmiE? z9zRliG0NZJ?(&A#4!1HbO44kB4hXGS=DB!1svT^`p?-k^OuxVY?F=%dcXl|gWE5(W z0-#YmeTs82#PO1i!uVVlyU`iIxNU(jHdsgGle{IbQs1g^iZ%;-2P(SZ=>dN{{nLSM zV4QdT0t}oEL}v7u?9MlzLZiI6EICiKlh+kQhQcv>F59o%IgxciCOA>0U4s3^d$SwjXl2qmG4{qzVe4P5VT}p zFHZGCGgt-tcJR6RAx!Xm-jm1o9{`NA{BDm8_6vx?6aL><|G4J=rRb0TL_&W99)QDH z4i4FP%J4pz?Xh;a)xAoWB`&VlI0nXIx=65T-tQME{$_RuA$T!D&LSe+K=!X^cdSTt z6rCMWoZn#D$HDoc4h z>_dO5Z*z)EAr+YkFxbxSO}E5|b#N27NKep#+%A8qI4++%5nXcX+OR6T03<(9zd+!k zhU)b7oLa6-jGYrBIUhz9uG-%V;dfDdKT5~3yb^Q3{Nz8)iO!{G@wa?b_(@tzxSWMP zmsS3B&+8Xl`n4(D=iGqYp4v*9TtD@G`y=f;2py(Jua(^@Z;FqpVT>@dBkKbX_rxSx zqbW|nT?IaMmLQBIdc}+AFMRTU`GH10N2-xNbbo%npz-fz;Q-?szj=ki{D*bh5DB)GDqx6OTC*88akSp3o(zQ#fm6d>L833Ob)QQY)Qg7U47 zhS)pU3oYb7M~2mVfm|Yy|fb}`pEuJ zN;Zl2^n2R_#;0Xc1;hKoWm7=i;3036|*tkuEQGSi25SBkyUg98Mk)3~i_~E2wdz!7njgS#e$ZQ@`N8$nr2|qroZuJ}#x)5)Mo9tomRmNK~ovcz(vlKT>EA9&*_N z^$Xx$2+P0jD$p};Ry>jCq87w9;km|BqhcaONg8Bz8vCH;f9vwi96SOe$6h`v1I@|n zCkM`+K4VcZS+}zN(YF8G`WB#Zw8ga!BVxeL?g&+jJ3;q-73mE-_duJFa1&z97TIAS zT60_SYHB>!>EHI3Kl+|g9Wv-zP}%hhet!GyYIp#1 zQ~3cBZCIERr5#G6OL2Kpw5=zfDfg?!yo>nw84iqqS@=^vtgMyZcYHbos@8P$_A7nZ$;L;MsQAXr2F0$JVpX&uYWZk-bG5&^M7G)y=VPU$31ywNqvhjtY!Vh6<9 zFAPyt@0vNcwfi#f5akXZ(>911;~1Qh=T^eYNQ+V`K!LaPwZo;=Nb;>vdToWMn9Jf` zGIvyWIG%T{1{;TXB>nRXeg*ShIT-6Jdsu56Hr914<(6=RsbX=wmE52T@n@Xn{6(`! zC+4od&rhLN63K#%^?tuV6*?(PsXoB|IH%Efp0g>X*|P5XDu;tA^!^2tSPJDlW`rF~ z%UL9W(=EIk_mV|SdDxYW9o%*vE|xw zARU4J7=&u5UtlaklGw2GiCI~dV{)xeiv2>X96Tq2U}26a?lVetT*L!Xt=o2G`E4fp zVi=9&!eZE2zXv?#=Z#{XpHo3#|MYmU;5k5Duuh>+Fxll3sgz8V|Nh17waC{mTaugc zYP`oPfENS*{DM7tf3*arT6vFZ!^5V!N^~MEwov&=a~x73(R^cI@48pgk>0Gd%G7fF zW>60aY^tGtf!Z$0;wSQC+20GQa=Tzi^*v-=e4E?)jbFgd?6`x$pdzHg%(RkCNoW10 zETC<5apTShDHObiOy}nT2?m9Nu!qSc4`!Vbt?WfHqLwP-&kRLJr%v-zE^+x|LV$+) z1#TYbJmM5(IO>cf5#BctR%GP`;b=(US?&yn4!w(uOgkXZcUp59KLMx?7rNAI>P9hm zeev(d`MpGTQ&pa*BCfFsf~gO{Yyjij`d1MAUn&O!tpWua>=%Ha{0Qqu`(_07Zst}> z{P>`&m4@0KW^QAIEY%JQM+TIxhTQdJ9c1%4@R{{8oWRp{T9xsTB!VZCyhCqly`O3k d`>l0%84+}d#fp!?#2Mlja3F{O>`_em{|^n^<#_-A literal 0 HcmV?d00001 diff --git a/cmd/devp2p/internal/ethtest/testdata/forkenv.json b/cmd/devp2p/internal/ethtest/testdata/forkenv.json new file mode 100644 index 000000000000..6679b73a2ebf --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/forkenv.json @@ -0,0 +1,27 @@ +{ + "HIVE_CANCUN_BLOB_BASE_FEE_UPDATE_FRACTION": "3338477", + "HIVE_CANCUN_BLOB_MAX": "6", + "HIVE_CANCUN_BLOB_TARGET": "3", + "HIVE_CANCUN_TIMESTAMP": "60", + "HIVE_CHAIN_ID": "3503995874084926", + "HIVE_FORK_ARROW_GLACIER": "0", + "HIVE_FORK_BERLIN": "0", + "HIVE_FORK_BYZANTIUM": "0", + "HIVE_FORK_CONSTANTINOPLE": "0", + "HIVE_FORK_GRAY_GLACIER": "0", + "HIVE_FORK_HOMESTEAD": "0", + "HIVE_FORK_ISTANBUL": "0", + "HIVE_FORK_LONDON": "0", + "HIVE_FORK_MUIR_GLACIER": "0", + "HIVE_FORK_PETERSBURG": "0", + "HIVE_FORK_SPURIOUS": "0", + "HIVE_FORK_TANGERINE": "0", + "HIVE_MERGE_BLOCK_ID": "0", + "HIVE_NETWORK_ID": "3503995874084926", + "HIVE_PRAGUE_BLOB_BASE_FEE_UPDATE_FRACTION": "5007716", + "HIVE_PRAGUE_BLOB_MAX": "9", + "HIVE_PRAGUE_BLOB_TARGET": "6", + "HIVE_PRAGUE_TIMESTAMP": "120", + "HIVE_SHANGHAI_TIMESTAMP": "0", + "HIVE_TERMINAL_TOTAL_DIFFICULTY": "131072" +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/genesis.json b/cmd/devp2p/internal/ethtest/testdata/genesis.json new file mode 100644 index 000000000000..a8963b30ea9b --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/genesis.json @@ -0,0 +1,145 @@ +{ + "config": { + "chainId": 3503995874084926, + "homesteadBlock": 0, + "eip150Block": 0, + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "muirGlacierBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "arrowGlacierBlock": 0, + "grayGlacierBlock": 0, + "mergeNetsplitBlock": 0, + "shanghaiTime": 0, + "cancunTime": 60, + "pragueTime": 120, + "terminalTotalDifficulty": 131072, + "depositContractAddress": "0x0000000000000000000000000000000000000000", + "ethash": {}, + "blobSchedule": { + "cancun": { + "target": 3, + "max": 6, + "baseFeeUpdateFraction": 3338477 + }, + "prague": { + "target": 6, + "max": 9, + "baseFeeUpdateFraction": 5007716 + } + } + }, + "nonce": "0x0", + "timestamp": "0x0", + "extraData": "0x68697665636861696e", + "gasLimit": "0x11e1a300", + "difficulty": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "00000961ef480eb55e80d19ad83579a64c007002": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", + "balance": "0x1" + }, + "0000bbddc7ce488642fb579f8b00f3a590007251": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "balance": "0x1" + }, + "0000f90827f1c53a10cb7a02335b175320002935": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "balance": "0x1" + }, + "000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "balance": "0x2a" + }, + "0c2c51a0990aee1d73c1228de158688341557508": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "1f5bde34b4afc686f136c7a3cb6ec376f7357759": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "2d389075be5be9f2246ad654ce152cf05990b209": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4340ee1b812acb40a1eb561c019c327b243b92df": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "5f552da00dfb4d3749d9e62dcee3c918855a86a0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "654aa64f5fbefb84c270ec74211b81ca8c44a72e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "717f8aa2b982bee0e29f573d31df288663e1ce16": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "7dcd17433742f4c0ca53122ab541d0ba67fc27df": { + "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", + "balance": "0x0" + }, + "83c7e323d189f18725ac510004fdc2941f8c4a78": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "84e75c28348fb86acea1a93a39426d7d60f4cc46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "8bebc8ba651aee624937e7d897853ac30c95a067": { + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000003" + }, + "balance": "0x1", + "nonce": "0x1" + }, + "8dcd17433742f4c0ca53122ab541d0ba67fc27ff": { + "code": "0x6202e6306000a0", + "balance": "0x0" + }, + "c7b99a164efd027a93f147376cc7da7c67c6bbe0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "d803681e487e6ac18053afc5a6cd813c86ec3e4d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "e7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "eda8645ba6948855e3b3cd596bbb07596d59c603": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x3b9aca00", + "excessBlobGas": null, + "blobGasUsed": null +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/headblock.json b/cmd/devp2p/internal/ethtest/testdata/headblock.json new file mode 100644 index 000000000000..da18081d3446 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/headblock.json @@ -0,0 +1,24 @@ +{ + "parentHash": "0x7e80093a491eba0e5b2c1895837902f64f514100221801318fe391e1e09c96a6", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "miner": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8fcfb02cfca007773bd55bc1c3e50a3c8612a59c87ce057e5957e8bf17c1728b", + "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x0", + "number": "0x258", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1770", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x7", + "withdrawalsRoot": "0x92abfda39de7df7d705c5a8f30386802ad59d31e782a06d5c5b0f9a260056cf0", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0xf5003fc8f92358e790a114bce93ce1d9c283c85e1787f8d7d56714d3489b49e6", + "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "hash": "0x44e3809c9a3cda717f00aea3a9da336d149612c8d5657fbc0028176ef8d94d2a" +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/headfcu.json b/cmd/devp2p/internal/ethtest/testdata/headfcu.json new file mode 100644 index 000000000000..eeb2ea582993 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/headfcu.json @@ -0,0 +1,13 @@ +{ + "jsonrpc": "2.0", + "id": "fcu600", + "method": "engine_forkchoiceUpdatedV3", + "params": [ + { + "headBlockHash": "0x44e3809c9a3cda717f00aea3a9da336d149612c8d5657fbc0028176ef8d94d2a", + "safeBlockHash": "0x44e3809c9a3cda717f00aea3a9da336d149612c8d5657fbc0028176ef8d94d2a", + "finalizedBlockHash": "0x44e3809c9a3cda717f00aea3a9da336d149612c8d5657fbc0028176ef8d94d2a" + }, + null + ] +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/headstate.json b/cmd/devp2p/internal/ethtest/testdata/headstate.json new file mode 100644 index 000000000000..982015d0a567 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/headstate.json @@ -0,0 +1,3906 @@ +{ + "root": "8fcfb02cfca007773bd55bc1c3e50a3c8612a59c87ce057e5957e8bf17c1728b", + "accounts": { + "0x0000000000000000000000000000000000000000": { + "balance": "121816101", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0000000000000000000000000000000000000000", + "key": "0x5380c7b7ae81a58eb98d9c78de4a1fd7fd9535fc953ed2be602daaa41767312a" + }, + "0x00000961Ef480Eb55e80D19ad83579A64c007002": { + "balance": "1000000001", + "nonce": 0, + "root": "0x0ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015a", + "codeHash": "0x0345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f50", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000004": "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "0x0000000000000000000000000000000000000000000000000000000000000005": "b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c", + "0x0000000000000000000000000000000000000000000000000000000000000006": "7f7cc50c9f72a3cb84be88144cde91250000000000000d800000000000000000" + }, + "address": "0x00000961ef480eb55e80d19ad83579a64c007002", + "key": "0xdf86c581c7d7b44eecbb92fd9e5867945ec1acdc0ea5bbabda21d17dddf06473" + }, + "0x0000BBdDc7CE488642fb579F8B00f3a590007251": { + "balance": "1", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x78c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd60", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "key": "0x0d6aea581b220579a2b99819299dd32c7c28a420018ecb0bde93af007ad89a31" + }, + "0x0000F90827F1C53a10cb7A02335B175320002935": { + "balance": "1", + "nonce": 0, + "root": "0x7634a52f9af21ce71ccbc57320cd906c09caca9db12fcfb8636cac62a928ca0c", + "codeHash": "0x6e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5d", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000000b": "c2edbf6987d529aeb53f0446650f0c76fd4aac53d87319bd3906700461531e28", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0263c20a17979b8bab4b53b9a8b028faee4ae62a22fd604e17c72a1c5113c5ab", + "0x000000000000000000000000000000000000000000000000000000000000000d": "96767c27f1be95f86f185bdc4f2ad2b9d0cf8fe0179912270b9f09a56dd885db", + "0x000000000000000000000000000000000000000000000000000000000000000e": "998edaa40eab431c0cb0907adfbbc45bd0559758eda2cc11ac1d0142783db4f7", + "0x000000000000000000000000000000000000000000000000000000000000000f": "32c4b00fa9800092d28ee17d5a2941a100ed6ac3ec1514b774890b9b226ffd43", + "0x0000000000000000000000000000000000000000000000000000000000000010": "827cbc8dc6bd4a545993d61ce2833f7baa3ffafccf0c43da845780b2c60c4f0a", + "0x0000000000000000000000000000000000000000000000000000000000000011": "8be0f38f24af217357167bb37fa76e4bb07257cbdebbd7060c012dee3685a2b7", + "0x0000000000000000000000000000000000000000000000000000000000000012": "33cd3f00a5d4b4786f1028871a2431b2a5cc06abcc1f06d56f520c05c8d709aa", + "0x0000000000000000000000000000000000000000000000000000000000000013": "6d69508bcfee6a79ab1f9b2654eaa9767beabc4aabd0777b4d16a1c7fe2308d8", + "0x0000000000000000000000000000000000000000000000000000000000000014": "dccd539eebea31af7d83c77ba7b57529a1111630bf3eff5da9eaaf3bdb06cdc7", + "0x0000000000000000000000000000000000000000000000000000000000000015": "b4125effbc4875925712ea7af12b9b8efd356f9daf371e37982d9d80986500dc", + "0x0000000000000000000000000000000000000000000000000000000000000016": "153171ce62d3a05bfc910c2dc9dbfe08d0b674de9053c4ba50989d55ba75545c", + "0x0000000000000000000000000000000000000000000000000000000000000017": "631eb6b3e5d105379784bae7414c1a87100222dfaa82de3cbbd449cdbdddfda0", + "0x0000000000000000000000000000000000000000000000000000000000000018": "db9610ac987150d64e0c47bf2bf4b4b6c225f7c869a8a3c21a8b4ed42a779da7", + "0x0000000000000000000000000000000000000000000000000000000000000019": "484dfda7c0064b4361c5bb164ab29ab46b2f6e4ad1e4d08e054cf87092c301cc", + "0x000000000000000000000000000000000000000000000000000000000000001a": "b83ddbaec179e4a8ca479524a47d3ae87cf9d0d9cbf10f36e4cd27b095f03487", + "0x000000000000000000000000000000000000000000000000000000000000001b": "d17fa84bf309999af41acc3a1e006f5f9bc96a7c6bd8343f8dcd851171f89bbd", + "0x000000000000000000000000000000000000000000000000000000000000001c": "f95e9ebf1649ad621dce264eb56c4695b2c12bcfdff445f4081d42a1bf35cb93", + "0x000000000000000000000000000000000000000000000000000000000000001d": "ecb61d653cb6ebe9236bb36c31afd4637f6ebfaf9a84b53c8ab8d5557a177e57", + "0x000000000000000000000000000000000000000000000000000000000000001e": "d454d2e47ddd6508e26a8e6f5f7739c4816e682f72940004b983798e9874db24", + "0x000000000000000000000000000000000000000000000000000000000000001f": "cb4c113282733de5e500f67e1e2d34dcb1f5ba78d50fd1ee64f589985cbc2e79", + "0x0000000000000000000000000000000000000000000000000000000000000020": "279a30e5b6459ce8cbb11314c86ce121cd09ccfa94e8431da318c389ced90f1d", + "0x0000000000000000000000000000000000000000000000000000000000000021": "bfa427b49c4b9c8ac6629f2a2d1b62c0e2d3d4e793e603af64d9eb7438b694a1", + "0x0000000000000000000000000000000000000000000000000000000000000022": "8595bd36d4362be24f82626e410c5240689ad948822510812add6669c17e60bf", + "0x0000000000000000000000000000000000000000000000000000000000000023": "abaae2a5e966b2e2b1de55c4cd3ae9d8eed5a7a96994eb8627465ed0d9d15fa6", + "0x0000000000000000000000000000000000000000000000000000000000000024": "ebaf8a77d6fe68c176d3074a8f4b9c702c4b5e96b801a1410291fbe2cc6421e2", + "0x0000000000000000000000000000000000000000000000000000000000000025": "8a76724de35afb575efb81ef8ab58346825486d654168ef5aeb2f80912e61a78", + "0x0000000000000000000000000000000000000000000000000000000000000026": "9463185605c120f1bbec5549f567ffb50e0a4dd1bb5d202a312640cb3faf5e72", + "0x0000000000000000000000000000000000000000000000000000000000000027": "817c992ddaad0c33d972ff29048a8ec435e562707950ec4c0d9fb77dbdd84ae1", + "0x0000000000000000000000000000000000000000000000000000000000000028": "8d61211d9778e2315598b11c7b715f8a96a3e7b3f7242a280a590aa728a2c2cc", + "0x0000000000000000000000000000000000000000000000000000000000000029": "cb0a318ccf7de5604a9beb6772ba12ddde924fbf0e1074246c5a6864c203c020", + "0x000000000000000000000000000000000000000000000000000000000000002a": "9634b9df44977f0b85afbb35da1ffd571858e7ab44f2ab3e440f920031e57fe4", + "0x000000000000000000000000000000000000000000000000000000000000002b": "9f769468769e89b9dc650168649eb0c666f70c82600be471f072caefe08c9d55", + "0x000000000000000000000000000000000000000000000000000000000000002c": "4cb55e0dfa4d8e35270542ce0d83991a2b2fddd789475d675f8af1c7c9715594", + "0x000000000000000000000000000000000000000000000000000000000000002d": "5cda29c5e65864ba897efa8e61cbefabb0653e2c90aa6317cc66f8b7ea849855", + "0x000000000000000000000000000000000000000000000000000000000000002e": "4fab41210b0a89ad65ef56cccce7146b0c7792e631cb57f9d45f2c390c0930e8", + "0x000000000000000000000000000000000000000000000000000000000000002f": "7bab3d8b7342961697225b52e7d8bb83b46cc34903907b0e4661947eb109afdc", + "0x0000000000000000000000000000000000000000000000000000000000000030": "bfeba0d543fa88ab54802a9d5206fd41b5718136dfd21a9c821efb609698750b", + "0x0000000000000000000000000000000000000000000000000000000000000031": "50e8364ebc7a92e7caf312e0b10aa59f685d32073de47561185a14dfb3fce1", + "0x0000000000000000000000000000000000000000000000000000000000000032": "cf0550d9f0e956ea4aea8fd5d4412812acb72922b3c6bd47c8a0086bd0c4abf5", + "0x0000000000000000000000000000000000000000000000000000000000000033": "80994d3ef7108fd26e8124978fbad74e9223d3205785161c272f91311e7481b9", + "0x0000000000000000000000000000000000000000000000000000000000000034": "164df48af3dddb7478b82f0c716a3e991ce37c2c13a60959409e4e1ffd139f49", + "0x0000000000000000000000000000000000000000000000000000000000000035": "2c22e6b47f0dc7b95265f02e285984be0c2d2462a9646c69b0c7369b93ab859b", + "0x0000000000000000000000000000000000000000000000000000000000000036": "c11fc865b8f4414834cdc0b3d92d5ff380c8078f3b61eca63c3f05a33d0ed9b7", + "0x0000000000000000000000000000000000000000000000000000000000000037": "7f47b785f867aacca1b27d55186dbb6a7a9a6b83754e6d2d0d2b9f1698f32f27", + "0x0000000000000000000000000000000000000000000000000000000000000038": "c0df0d295b403cc825a0825f741923f806f603ff53aafcc04f6b91f39dd35198", + "0x0000000000000000000000000000000000000000000000000000000000000039": "9f7f274336bcfaf82e4f7696590eb831dee46dbe71821c14a197810edcb2834a", + "0x000000000000000000000000000000000000000000000000000000000000003a": "abc3fbe0c41b79c30f91b2834dfa28a2a3ca23aff7505b53ef5383f3fef45987", + "0x000000000000000000000000000000000000000000000000000000000000003b": "761bd27a0e51092eee4eaa4a545708b2df734d240ec2e5909e784e478752626f", + "0x000000000000000000000000000000000000000000000000000000000000003c": "fee26a4ca9c8d56be94795b13f522d026f47a749fb3969c5f5ffa7465acefd36", + "0x000000000000000000000000000000000000000000000000000000000000003d": "d99ba2e7fce99a98dec8caee0bf6422887042e79facfcb081e4c5d04a3f8fdb6", + "0x000000000000000000000000000000000000000000000000000000000000003e": "1ac60d9a0fbdd7d5779432344ddb1cc080b7d70d8049631e9a5767f94dfc0fb0", + "0x000000000000000000000000000000000000000000000000000000000000003f": "0592a18e16fdecf8028cfd0172fbd99a44287f9fa77970a947623c4305aff927", + "0x0000000000000000000000000000000000000000000000000000000000000040": "e276709cf0da03abbe0672cd6542c8823ba1a79ced1d077331d26a4bfbe4664b", + "0x0000000000000000000000000000000000000000000000000000000000000041": "dc32af56e34daa6037e96a2990d6485815b9dbb16ed0fd48e19e794b16d78d52", + "0x0000000000000000000000000000000000000000000000000000000000000042": "2256ff7bd7ede2f79b3392f7898790b3bfcc1dc7bb0143c654a33f2e2f5888ae", + "0x0000000000000000000000000000000000000000000000000000000000000043": "6163d0b7f02b214352ded0703f0e17a07ffd6b732cf37498e0ea7326863972eb", + "0x0000000000000000000000000000000000000000000000000000000000000044": "a5662af7bb63607ebbc0c5ba713be53a59b376199c9f702b141d4b2cf75571b8", + "0x0000000000000000000000000000000000000000000000000000000000000045": "c2f77b16764d5704a9c3fc3ccdc291c2301b512341ed07de3420e05814f38f44", + "0x0000000000000000000000000000000000000000000000000000000000000046": "0f684901e87fafdad7d7ffe9f324a534b06cfc52bb98cfd6937ad3373edbe050", + "0x0000000000000000000000000000000000000000000000000000000000000047": "7ac52282fa3642fe038111e06c27e42bb80e6687faff3a80802b98c0046cff14", + "0x0000000000000000000000000000000000000000000000000000000000000048": "6ac35d9c3afb594c2625d6aa43c248e7f1ebca6cbb3ab4381e8532390005e4d4", + "0x0000000000000000000000000000000000000000000000000000000000000049": "1e3f81c1be76102b47f9d823bb475a6061f72286e53a8d72abc2d363567498ba", + "0x000000000000000000000000000000000000000000000000000000000000004a": "b3633d86d73d0b3c8ee7b906a5a0d4bc5ea1bed0490eb0211164833cf5a4b3f4", + "0x000000000000000000000000000000000000000000000000000000000000004b": "502288a02dc23356064d1f98cd38f8e346943b6f6837f0bf98f63534c2027ca9", + "0x000000000000000000000000000000000000000000000000000000000000004c": "b2145a089c38b7db50fc671aa89fca64e00fa383f540f3c704ed51e7f2179f3a", + "0x000000000000000000000000000000000000000000000000000000000000004d": "f0c902bd6d37bdecc5d0b17b012dbabf6856efe771bc52c790be6127b8b8a9ed", + "0x000000000000000000000000000000000000000000000000000000000000004e": "0e065a7c1d66be9a7505eaa9846edba1efbc5a2643b0cde0dc11ab9b0e82d2fb", + "0x000000000000000000000000000000000000000000000000000000000000004f": "7a5a9823699ec0f335d977fc08ca50d0786b044c177fadab0f36957d5ee8a6ef", + "0x0000000000000000000000000000000000000000000000000000000000000050": "0c2f74470c7439c7e783de2e128f65e66d794d01c2bbabe225599eb81927f680", + "0x0000000000000000000000000000000000000000000000000000000000000051": "7489436084d1c2fbd1ef76bd84ee9ff43e054e6ca744fb1ad299f8fb6a5171c6", + "0x0000000000000000000000000000000000000000000000000000000000000052": "b535bb07496aa8764a751097afb4fda7881b9de41e6f3c4c329360a808caff31", + "0x0000000000000000000000000000000000000000000000000000000000000053": "1237af5eec8dabdae0efd403a87ef5588b2dbd724946f41c7e161df50328e468", + "0x0000000000000000000000000000000000000000000000000000000000000054": "7bb88dc7b037cc2aa86a83318f9e2db824f840e0c04526f61fd2921f327eab14", + "0x0000000000000000000000000000000000000000000000000000000000000055": "e8235717342e9768bf65d0600947b88bebc1d922822b1cc577075dd7ef002462", + "0x0000000000000000000000000000000000000000000000000000000000000056": "f321197dfc592eb856c14ffe0ed175cbb25105b435473559447d58154769bcc0", + "0x0000000000000000000000000000000000000000000000000000000000000057": "2b09c7fb6f54983fcee6cbcd8eef58ac886978c5ccf72edd52795a95ce956c1f", + "0x0000000000000000000000000000000000000000000000000000000000000058": "c39e1323f7b6949a21a1bb6f98d9ebd22d3e776e07676c4cce9fc4174deda0dd", + "0x0000000000000000000000000000000000000000000000000000000000000059": "8b79d25d91549e398a5fa94bf6f56b1837b11d042b65811411fe53100ee18c2e", + "0x000000000000000000000000000000000000000000000000000000000000005a": "5d33f0b59d254d470019eac98e38a2a90468e5873067bb5e3cf8e0ccb84ad048", + "0x000000000000000000000000000000000000000000000000000000000000005b": "ae8ff3f7d1bde73dbd36f2293e845fa059a425576be62bffdc4ba6a2e1be5afa", + "0x000000000000000000000000000000000000000000000000000000000000005c": "8d1fd7f00d80dd8d4c799dd381b71eb349e695d4190f97e206550ddde559adf4", + "0x000000000000000000000000000000000000000000000000000000000000005d": "16b224e441aa3817c03949a4e7930d87e0ff9240d0f2955fdebf23a7f410148a", + "0x000000000000000000000000000000000000000000000000000000000000005e": "cf191216637f378d2ee7f2dd47d9a330b3cdd0e20d7a27f8c8bbfb1df421a9eb", + "0x000000000000000000000000000000000000000000000000000000000000005f": "962e7b0b218852cf9c41bbb7fd8908baceece8e7e4c8b2b5d2ab5390f0561b02", + "0x0000000000000000000000000000000000000000000000000000000000000060": "13dc0c8daad8b71fc3f0e62a209b9710cc78934504a6c2e990549a2e473152ed", + "0x0000000000000000000000000000000000000000000000000000000000000061": "333cea669c831ec4b078f39fb05de11664b438741df8d8cd37ea771049dc1f30", + "0x0000000000000000000000000000000000000000000000000000000000000062": "e377c7a76084c79781cecc442ff79d5a76ab95710878ef19fbaa2ae3b3806d2e", + "0x0000000000000000000000000000000000000000000000000000000000000063": "583000818d360ecba85c0924bee169e64dc799c21d5e468711324c423ae1246c", + "0x0000000000000000000000000000000000000000000000000000000000000064": "89628d10b5c915f51b8def1dd2ea8a9b2e89b30da4435cbe0f5003651bb05e8a", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0de163e9e16a0d88854f6e66f30e50d44d2e569f9f581e9a368adaf1f4a5ca6a", + "0x0000000000000000000000000000000000000000000000000000000000000066": "0220ce36b8436b0b234a97413f91bd64f6d41cf4b10fd0bd10e53d8b8f7d79ea", + "0x0000000000000000000000000000000000000000000000000000000000000067": "73d6ae295486e56af688dc96243f9841a3a40c4100ea132f2c0d3c7a92d7a724", + "0x0000000000000000000000000000000000000000000000000000000000000068": "c57eea72ca6da6fa23e48e0a02d56ccaa84b59f4f663d04d492ba107f6989475", + "0x0000000000000000000000000000000000000000000000000000000000000069": "38aa8a3150af9b19993b8d4cb3e670bb365853c341f1a24d57ba8e1328afb1ad", + "0x000000000000000000000000000000000000000000000000000000000000006a": "853b45ca33c271b321625535fbd242f5edd582be0056641890b66a2b1fbe0677", + "0x000000000000000000000000000000000000000000000000000000000000006b": "7bd34591adec12322873c046b6d45fc55defd4891f58e6f26970c14e964bce5e", + "0x000000000000000000000000000000000000000000000000000000000000006c": "8f288d915f33362322143bec0749279cdfb9f0b72e7a6c379af08c7b4f88b24c", + "0x000000000000000000000000000000000000000000000000000000000000006d": "6886974a4794aa2d984957964c2480cce1346776b180888a3777857b4405e26c", + "0x000000000000000000000000000000000000000000000000000000000000006e": "20e5954a1da37baa1f7446598fd7d4311241c09d4283fdec67782114693bdf99", + "0x000000000000000000000000000000000000000000000000000000000000006f": "48ccbd91a8643d6e270829515db0595bc97d123453e4a0bc7a1baea82ca1e736", + "0x0000000000000000000000000000000000000000000000000000000000000070": "ef397b238df4b06cf009bacffc969cdeb71e9d300c860286ca42ac367a950d15", + "0x0000000000000000000000000000000000000000000000000000000000000071": "9a191d0332521ea449a502780c73defd9d7726f61e22c2f527a03184a51364db", + "0x0000000000000000000000000000000000000000000000000000000000000072": "340fdec47cff7b492def7053fb1e31b0b185e4dbe7cd0f4b0d382a8dafed7ddd", + "0x0000000000000000000000000000000000000000000000000000000000000073": "821c99ea8afea16f7a10bfadfedd23466f35e9bbde9ec413c2c84b7c7dcc3856", + "0x0000000000000000000000000000000000000000000000000000000000000074": "5f07aa290e33f4c5f100362b8dfa284c93b910b9895f066fc2a6242698b6ed52", + "0x0000000000000000000000000000000000000000000000000000000000000075": "bbb17f7c60251f96dc948ee25b7afc5ee511eac82fe10ca186cb860349dacde2", + "0x0000000000000000000000000000000000000000000000000000000000000076": "29e7fcb64ad5f6c93603b4ce8d738253b71bc820c4d0ad9d5438ab5eacdd88c9", + "0x0000000000000000000000000000000000000000000000000000000000000077": "2021bdc5b47d00e0f11ec24e61aa59485311e5d98f657841de44e0d1750e0f2f", + "0x0000000000000000000000000000000000000000000000000000000000000078": "d169f3abbf7dd41949f941333a4920bc5246531e22d02fdbe8ed03361303bf13", + "0x0000000000000000000000000000000000000000000000000000000000000079": "9d39f6431f7fe252031d29d7ff4f65e9948d5fdc872709df7eee4e856c0a1a66", + "0x000000000000000000000000000000000000000000000000000000000000007a": "289c7906360262eebacaf52eae6931669dfb87141c14408ee41ccddb738dd7c7", + "0x000000000000000000000000000000000000000000000000000000000000007b": "8d2db945bede6e953aaaa66c1b859b0853a8a12cab8f9f88dc1439e1ff3ea600", + "0x000000000000000000000000000000000000000000000000000000000000007c": "66457f34ca4352d6bd07e3db8cfb4f37433c0f9e9d926d5fdbd1535974a28ee5", + "0x000000000000000000000000000000000000000000000000000000000000007d": "6afdc529eb5072bef6f94d783505d24465dbb564d90cd22e668c549929d19615", + "0x000000000000000000000000000000000000000000000000000000000000007e": "6d83bef72d2b5bae5824e9489cd9f98336df2e38500e48a8ef3664bcf9358374", + "0x000000000000000000000000000000000000000000000000000000000000007f": "16712d8be0e3f51b960bc8d1a39d96d79eb37a4c4ef736357367ea38a9287711", + "0x0000000000000000000000000000000000000000000000000000000000000080": "b97b02fd00e46ec8d5b47eac30dff86679166d19e3485e4b7f979bec91fa7e0f", + "0x0000000000000000000000000000000000000000000000000000000000000081": "c407ae41449bc17863646ffe04e7a8107b4a2145152c875a5f910fdb54cc2701", + "0x0000000000000000000000000000000000000000000000000000000000000082": "f2253cd37aa85a5a3332dd6d777d209db9644eb59806646a39dd5869cdc496cc", + "0x0000000000000000000000000000000000000000000000000000000000000083": "4185ee3fea8a5aef0c504563c6c4e08f4ebacc343720d6c179ab5cc24c15e1dc", + "0x0000000000000000000000000000000000000000000000000000000000000084": "a8c286786d85b5134461a58e930e24544971798fdb65aa5daf662cb224a9fe40", + "0x0000000000000000000000000000000000000000000000000000000000000085": "8ca47a4e017b39fcff33d45a2d8be59d4a66b73516c322c950a5d8ed77d29fc8", + "0x0000000000000000000000000000000000000000000000000000000000000086": "c4974092ba20d3c24becf83c675956c9f6602d500d594df532c50a50eb5b2191", + "0x0000000000000000000000000000000000000000000000000000000000000087": "d84d3edc5cce7692db143df3abed01f05fb1aa8a6e7b468cc55e46db10c821bd", + "0x0000000000000000000000000000000000000000000000000000000000000088": "dccdc1d4567294a4ad0281a7386e643435a612358a8687b79707541a0e572e58", + "0x0000000000000000000000000000000000000000000000000000000000000089": "9c338a73883a108eb3ac237422cc78ba03e073881d79758dccd91587b69164fb", + "0x000000000000000000000000000000000000000000000000000000000000008a": "cdd79ad9085d20d3fd31b042a53227c3760792c62e42f29a10400382b2d8dcc4", + "0x000000000000000000000000000000000000000000000000000000000000008b": "344657a467d897d67b16bf7bb922de11197ff1b4c1ea2749a82749b854f53e94", + "0x000000000000000000000000000000000000000000000000000000000000008c": "c34874c1c02df9d9f0f62ff0c9451be8623e01125af8abcdfb0a3e5fd39753b0", + "0x000000000000000000000000000000000000000000000000000000000000008d": "f26963dd24f2fddb0fcb041ffd520a4a8571622f70168563809051d1f78f5952", + "0x000000000000000000000000000000000000000000000000000000000000008e": "5b33c4a77a663f8420d206e8c8c677b306dd9dda3c549b73978c22385e064edb", + "0x000000000000000000000000000000000000000000000000000000000000008f": "c6e8d87cdf8be0370ba65cf1df31014d0ff6d70d4c63dec3968fd63c7fbaa74a", + "0x0000000000000000000000000000000000000000000000000000000000000090": "94fd8a5a17afb5aa4438bd72dddf23c73c0ed5059227e6d84a327e217593cb65", + "0x0000000000000000000000000000000000000000000000000000000000000091": "dbdf9af38beb3fa29d94941294bca3788732dcd92eb6b4bf2dbb822000cbc0b2", + "0x0000000000000000000000000000000000000000000000000000000000000092": "61355293082e8a9f906e7b52d9d7770877083021e6486ae90f63b2e4bccff11a", + "0x0000000000000000000000000000000000000000000000000000000000000093": "0e1c46da0dfdbdd801d7b76c10462b10a1ff579e5f26535bcd3ab1c482043abc", + "0x0000000000000000000000000000000000000000000000000000000000000094": "049cc427707b87414178123334cd9ccc891c192faddb16129b8d87dc945d4710", + "0x0000000000000000000000000000000000000000000000000000000000000095": "24e92a19adbe76129e31fa0e7968f3f65f230ea20152fa92bd8553a90040f415", + "0x0000000000000000000000000000000000000000000000000000000000000096": "34e0ff9f154ad49785b9a2220d5dcdb476e3cae2c513209d0dc88bc65a3a327b", + "0x0000000000000000000000000000000000000000000000000000000000000097": "a038ce1b4343a5466e32f10fc868b23f7ced36538dd115cdfe0deac9f6f21402", + "0x0000000000000000000000000000000000000000000000000000000000000098": "4f6d29ecc1150caa2e43a7837fc7fc577bcda7cceb9de4da0c2e9da8baf8733f", + "0x0000000000000000000000000000000000000000000000000000000000000099": "d34e3051d7184c6c18e3d51f0a693baf889da9ae98d6a5e777a22d2cb96697dd", + "0x000000000000000000000000000000000000000000000000000000000000009a": "eb5370ab05f5d8f13e2cc9a45d11eccc1ee7537478e749105b03631c2504d6cf", + "0x000000000000000000000000000000000000000000000000000000000000009b": "e9419065bedd423519028a6f39e599358596a72614880942181ef4d3fbff8807", + "0x000000000000000000000000000000000000000000000000000000000000009c": "076da0f0e01bfd4890f2134fd5df4b54a113439e488680ec9983b81de6178a43", + "0x000000000000000000000000000000000000000000000000000000000000009d": "1b765e0e7ef21700d430daf30c1fb898805cf27237768ae58dd82f68cd1cc26e", + "0x000000000000000000000000000000000000000000000000000000000000009e": "6dcc010b937b7e48545d5476b017e93f0baa2308ef3be862c1c6286911eb63c1", + "0x000000000000000000000000000000000000000000000000000000000000009f": "616a767f1417bf61770bdd4b9947a864fadcbda76a60ac901115b74f55948b81", + "0x00000000000000000000000000000000000000000000000000000000000000a0": "90f962233f21820cbfb476d1e7b58191e31a745b143fe000a7fdbfb636295ff5", + "0x00000000000000000000000000000000000000000000000000000000000000a1": "9c02e583208597dda2607d80ca5dced296b7245635677699871833053f4561b4", + "0x00000000000000000000000000000000000000000000000000000000000000a2": "b298175a8ca6852255acb5a528906d85a5d33fbf66c70cb786877f4ca844a7b6", + "0x00000000000000000000000000000000000000000000000000000000000000a3": "cdb49313f08242666708fd58106cd77d39cac694d5109d6292d5205f0eab8cad", + "0x00000000000000000000000000000000000000000000000000000000000000a4": "141eb84f21835812981ca866915b141c199b2a6e574624de1a35b28784d70e31", + "0x00000000000000000000000000000000000000000000000000000000000000a5": "ee6b0ee8c674e6c358ad14a9dc39c9ade98b944a4c3c97992bb882f536e976d5", + "0x00000000000000000000000000000000000000000000000000000000000000a6": "56a342018c122b38dda95d4590e3be13521d9b293a469b089eec358c040cca09", + "0x00000000000000000000000000000000000000000000000000000000000000a7": "e08d69283e46660cc7d2ec2297498bea4fc2d9e6be5a966fc62d8cc0bf79eb8c", + "0x00000000000000000000000000000000000000000000000000000000000000a8": "06cfd65e4ad3f00b853db8c0218f003e65ecdfa83b2cf36be05da03c9abd2b8d", + "0x00000000000000000000000000000000000000000000000000000000000000a9": "1eaa31322ebe3166d05d4aaecc37da61443ec14bb10abea11a0de6271ceaac31", + "0x00000000000000000000000000000000000000000000000000000000000000aa": "861e741db3d23647d8a9fc61ee8361b044ab5f6472a15e33e1347d26802ae652", + "0x00000000000000000000000000000000000000000000000000000000000000ab": "2cf03f61b899f9e1da26b010eec455dd52486700e03c7ac6dd5aef77e1d0ce4a", + "0x00000000000000000000000000000000000000000000000000000000000000ac": "63c823f9caa95abdf5aaeaea7d33753359ccd4b76e64155a760bf3355edcc73c", + "0x00000000000000000000000000000000000000000000000000000000000000ad": "8db5431f9466088e255da8a3ba2c8687e71836d5d1945b13c7f3d9ac7c89632b", + "0x00000000000000000000000000000000000000000000000000000000000000ae": "0233de4a61a9a43ed4501eedc83ae61cc6b2f31f7681bb1de10650f724635917", + "0x00000000000000000000000000000000000000000000000000000000000000af": "899b58ec03cb142e0b55e1fe0ef6c351291a27b9074344bc7e2cafa96373aef6", + "0x00000000000000000000000000000000000000000000000000000000000000b0": "13f99454d41f5ac10fd52abd046cde67bb8c0bf7d6010c6b17c465ecbb3ed540", + "0x00000000000000000000000000000000000000000000000000000000000000b1": "9a2024c4823f8c503a053ffba21d3d5b8aa44bd69e0e326a3dd861d5ebacbbc5", + "0x00000000000000000000000000000000000000000000000000000000000000b2": "97fc752f97b39827ba60179602671d30c1f05bf991650cac51f0346ee24d733d", + "0x00000000000000000000000000000000000000000000000000000000000000b3": "30a494978e0eac0abda5140961431834ace71b6251f4c533c823913efd652aff", + "0x00000000000000000000000000000000000000000000000000000000000000b4": "6b5d54fd2861b26dd7f2851d7e5370a10006dda6c3030e6d3ec4165516e939a9", + "0x00000000000000000000000000000000000000000000000000000000000000b5": "4b463a47e277fe903ef73f2504075e63194e03017c299bb340ca82383bc93110", + "0x00000000000000000000000000000000000000000000000000000000000000b6": "26fb93f17f20d3912165be93e6c74e30ce01bbd23b1050dc2b0e990810ad8ebe", + "0x00000000000000000000000000000000000000000000000000000000000000b7": "e08e97c0e494b917d5103858981ef94e7c83ae607274785cfa6e1d58fbeb5ac7", + "0x00000000000000000000000000000000000000000000000000000000000000b8": "de6bf1db842cb83446e36edc46014d23163fd84aebd1c03939eb0bd290767afd", + "0x00000000000000000000000000000000000000000000000000000000000000b9": "6bde1987ef5b8bb5fde73ccb7b722f060ce2d5f1f3cf0744498e2eded6ad2fbd", + "0x00000000000000000000000000000000000000000000000000000000000000ba": "02795b8afbf3b9cd3539cf5e1c373c07ef6e1be6f4deb1fdbbd6cbe365387dc5", + "0x00000000000000000000000000000000000000000000000000000000000000bb": "8e4c83e5e358f39de84987818cbd14c1a963ed5c8de83717bb6f89d11ed0ed65", + "0x00000000000000000000000000000000000000000000000000000000000000bc": "2f741c1a54dfde09c36f6f171be91f7cc50a184e29c875af602ef52ed58e6e89", + "0x00000000000000000000000000000000000000000000000000000000000000bd": "7d60f33d7e776182fce5bd0572f488cd429e742705eb78603179446152aaec20", + "0x00000000000000000000000000000000000000000000000000000000000000be": "822c072433cf13fa896fb579c98e53f0ff3d231f10168b07647d214b5e2a0c24", + "0x00000000000000000000000000000000000000000000000000000000000000bf": "c763e36a2d4a71b815dd3cf970327db148b6f24eb23522a4cd962848679f683a", + "0x00000000000000000000000000000000000000000000000000000000000000c0": "2ed48a4ebdefc743bcdbec0ecadc64fa641776a8ad70df8e58c6b29bf6c1a23a", + "0x00000000000000000000000000000000000000000000000000000000000000c1": "1e23bc483f7c371d9ebf493ba84b563479656771fe17f2846fd9c863fc9cfafe", + "0x00000000000000000000000000000000000000000000000000000000000000c2": "e61411b998dcbec97ad2ce9bca20014fa673980d1e884325c1075abef61f152d", + "0x00000000000000000000000000000000000000000000000000000000000000c3": "f24e0907bc9948667699c8f9094931f930f8617e5eafff2271656cfbde5c2956", + "0x00000000000000000000000000000000000000000000000000000000000000c4": "9587ef58a068fcb27daff28ee3da231caed47c7efa9371fb42b14fc9908767b5", + "0x00000000000000000000000000000000000000000000000000000000000000c5": "035aad19a0a2ed13bbbd78630f35c556bfe04d7a89bb2fdbe485ad344e6e81b3", + "0x00000000000000000000000000000000000000000000000000000000000000c6": "5124774422b19463745f7a5aa4c1399d3e8c13abdf68cd0eb70477ba79b3bfd4", + "0x00000000000000000000000000000000000000000000000000000000000000c7": "a467cc633a88b190c7c454be97d066a22527ccfa3784a6d0eaebb099363da22a", + "0x00000000000000000000000000000000000000000000000000000000000000c8": "4b395a1569a2995fc5ad6e079e367cd135ae61be2315a57336faec96ff6be4f2", + "0x00000000000000000000000000000000000000000000000000000000000000c9": "f3574c46ee7be2f327b4c968186b9cba6ce8bc43cac0917119e3226630ac2e40", + "0x00000000000000000000000000000000000000000000000000000000000000ca": "4b92c1e975dfdc44423fea09f15c0b0f6cd94b52f75eadaf500817dadfedc05e", + "0x00000000000000000000000000000000000000000000000000000000000000cb": "5f7c14e45a99709c6dd5b99043f115777e3fa2aff9baea04e819c8ea1d49ff4b", + "0x00000000000000000000000000000000000000000000000000000000000000cc": "a6a548359521b4b239f05fd8001e74c3cdec873dccbc6e9d558942720219436c", + "0x00000000000000000000000000000000000000000000000000000000000000cd": "2fda609eaf660679f823fb4376c4bd0cadade83e2fe577f82d1ab3d9f0f42699", + "0x00000000000000000000000000000000000000000000000000000000000000ce": "a8551de9ee0942059b85b3390a4a8e2b4717e843f5338062877d9a125e1c5d62", + "0x00000000000000000000000000000000000000000000000000000000000000cf": "1cd2293c5df7c51a36bc8527308cfde43dde547b42129799d3f9f94f4b2a5d8a", + "0x00000000000000000000000000000000000000000000000000000000000000d0": "bc42869ab3a2245d1c7a2d33a982c8696aab3d3c0f9dfa69d8be2d2cc9cf1d31", + "0x00000000000000000000000000000000000000000000000000000000000000d1": "8e8b607660e0016ba139872bc35730d2efe0426136dc7e32ef6091f2c72acf50", + "0x00000000000000000000000000000000000000000000000000000000000000d2": "85ad1ea8a6413676241be28adc37e9e9eafc7d7d92838f662f89e954b1946243", + "0x00000000000000000000000000000000000000000000000000000000000000d3": "43cc37e72c9060cd84480dc2b3ad47b73ae9d3153ef17aaee77426eaea98c979", + "0x00000000000000000000000000000000000000000000000000000000000000d4": "52cb7c3d0a4baf4b97c814f69a29ce7efd02b30063caeb4dd25182e4945f9443", + "0x00000000000000000000000000000000000000000000000000000000000000d5": "414140870ecffda2fd30789856025aeeeee6ed2d339c89b09142a80b5d02b2fc", + "0x00000000000000000000000000000000000000000000000000000000000000d6": "6d091cc14eb2771eda246d6c98884ca88b3e9c1193f9b1094786e7ac38615d0f", + "0x00000000000000000000000000000000000000000000000000000000000000d7": "c2c1970e54d67656e78c75f59b990d4a682800dac92f32e35bbf5c9f4123080e", + "0x00000000000000000000000000000000000000000000000000000000000000d8": "9869f9d317befc2be06e35c4bb421b2f70ee3a551da726ac450fbe5683e175e9", + "0x00000000000000000000000000000000000000000000000000000000000000d9": "6cd3151a665feb73ef2fd1c09b2ba1dd622e424cf8d437491f67d7acea386a25", + "0x00000000000000000000000000000000000000000000000000000000000000da": "f12671c7915ba944f549618aa1a618c58890d1bb1374ba0d5bfe9a1d219d4e10", + "0x00000000000000000000000000000000000000000000000000000000000000db": "2cc973d866118aeeb5d5a45bbda5f59f56d1824d01605eff38bde4ba082a2953", + "0x00000000000000000000000000000000000000000000000000000000000000dc": "633313f0428dac31c59a736f610f5da75f22d0c2ea8d112987c918c7405c0440", + "0x00000000000000000000000000000000000000000000000000000000000000dd": "ab9619afd1e6619dbab5761d6fc5da9a0fbf8b6489fb96eb864e687bbce7952a", + "0x00000000000000000000000000000000000000000000000000000000000000de": "827cf63f6f1bfebc2c18dc37c641eb9038174492ce580fc881027cbd447dde09", + "0x00000000000000000000000000000000000000000000000000000000000000df": "17c4a736b0ea52a0a4f64166d211b654d10c8a6b316b7a3d151c84f1afbe2cfc", + "0x00000000000000000000000000000000000000000000000000000000000000e0": "c7d92e27e6635446bbbf148991143322dfee51d0c6923abdfe69a9661aa51f3f", + "0x00000000000000000000000000000000000000000000000000000000000000e1": "7fd92767aad5a519ab7a1ee8f06e62a0869042dfaf4aba3b9e47037667137147", + "0x00000000000000000000000000000000000000000000000000000000000000e2": "508e549615fc6041f7c0737e69a19b2a78954a3b2e401c1e6cdfcd065f591170", + "0x00000000000000000000000000000000000000000000000000000000000000e3": "380fa604fda76b136b8d0cd29fdd1d4d947c90d328e70679c89d25fd46e30e20", + "0x00000000000000000000000000000000000000000000000000000000000000e4": "a3e71744d3faa5f9827963a5f0d659487a2d102a538122e75395ec771100c68c", + "0x00000000000000000000000000000000000000000000000000000000000000e5": "cf2f9ba00e585e8346fe60f6bd23d83f81f57b272f3d7ee803aec61e3b66973e", + "0x00000000000000000000000000000000000000000000000000000000000000e6": "66730b682308530fd5172418ae2100a58c0c78d8e2a4cf3962f74bb5d08a2ad1", + "0x00000000000000000000000000000000000000000000000000000000000000e7": "4138427f2aaf856de7604cae4193f96636c73e0a8984e967f88eeb9cb9868235", + "0x00000000000000000000000000000000000000000000000000000000000000e8": "ff6c572142173aee3cce05872637e9fa20576e126122f8f096b26c2d7ab562ca", + "0x00000000000000000000000000000000000000000000000000000000000000e9": "fc3daf2feab4448c624c2b6de75cee4ba8555bfedb236a6dabd08625ee75fb8a", + "0x00000000000000000000000000000000000000000000000000000000000000ea": "56a716225b0c189b6dfe04eb8dd9012e50bab4fde5c850b3ac032b0bb74c5916", + "0x00000000000000000000000000000000000000000000000000000000000000eb": "5fb1bbafb479d9b6bb8f0d6a832717b2d585af05d70edc9938597e9c349ccb1e", + "0x00000000000000000000000000000000000000000000000000000000000000ec": "520f6482328ec8e1a2d2f759d3718f9527046b4eec351d127b4d10920ae7c02c", + "0x00000000000000000000000000000000000000000000000000000000000000ed": "89d7de3b3cc3f788c75f502ad3c5194de01d53e6d01675bb8e7319084bb044e8", + "0x00000000000000000000000000000000000000000000000000000000000000ee": "ea6c0f8842754decf0722e63340f9ce8fbe8d0ad696225c4942eeff7c815cfe3", + "0x00000000000000000000000000000000000000000000000000000000000000ef": "ff641c571c4ee7c6ad4776d9e6a619e15a9e9c68173a576adeb39a4d6b7cbcf4", + "0x00000000000000000000000000000000000000000000000000000000000000f0": "c0c2d5bded8a29c205781c8126d07498355257ffe0b0a9c63513891158703356", + "0x00000000000000000000000000000000000000000000000000000000000000f1": "aee5da2562edc43aae63fdbfcc1ed4a3b9584d31b515a14b6c9e974cbdb8dd29", + "0x00000000000000000000000000000000000000000000000000000000000000f2": "6d56c50e850214cd81f339f0febfcb4874950f0a6e6c541f448c0dd83bbdec6a", + "0x00000000000000000000000000000000000000000000000000000000000000f3": "a0e695a82a49373c16acf2ecbd742c53ea37cadecc6dfd681e6b393bdca6c445", + "0x00000000000000000000000000000000000000000000000000000000000000f4": "ee14abc18ab909a3c3ff3afbccd5f0b3844727f10754428c44a7c8898f8343ad", + "0x00000000000000000000000000000000000000000000000000000000000000f5": "5964eed483298c980e3372a7adab0e90ac671c5bb0fcb80e481a6fd533851ed6", + "0x00000000000000000000000000000000000000000000000000000000000000f6": "9093cd0fdc936c5e1a1cde72e4327a8b042d0153d3b268b5441631496ab5b897", + "0x00000000000000000000000000000000000000000000000000000000000000f7": "123f2c0202f5d919d2376513b9d5c5c9dceda4b91e6fd70f386d0d88ec067885", + "0x00000000000000000000000000000000000000000000000000000000000000f8": "03599481645edb627d61df608525160e3ea5fc6081aa353bdd9828b21f314c63", + "0x00000000000000000000000000000000000000000000000000000000000000f9": "b70f87f8243cc700afc179251e201ce53395e86cb99d8f2de002488a632f765b", + "0x00000000000000000000000000000000000000000000000000000000000000fa": "c4bf5494f56bc45ce01dad37aee3ce9ffc45d83fdc000e12181f5f8acb8019cd", + "0x00000000000000000000000000000000000000000000000000000000000000fb": "4a451e3d5c50c59b8f500744456ddbc1305fd7d30a3088e18b63ab514e146a5a", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "7e09bd28fdc45aa33de70b9cc577566820bcc691bb602bb4ea34c060240a3a34", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "6b8f79e73655d6e6bf62130982a8130929598f06e537104557fafb585ef859aa", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "2f59eb73c385708d16bfbdabd173a892b1aedb35aef605b39bf4ecb37e5f4d81", + "0x00000000000000000000000000000000000000000000000000000000000000ff": "dc795b259c72a03503f2caa5002867f7321785d36a0fc325f23c6a7f0b5bc910", + "0x0000000000000000000000000000000000000000000000000000000000000100": "271a4760953153009f96bed8d964dfa87d6893d05200beca8c28b05661a749a0", + "0x0000000000000000000000000000000000000000000000000000000000000101": "a01a3f6a72dc1967245123b06ac7eae459690d7ef3a4d07700c0e3745a74db71", + "0x0000000000000000000000000000000000000000000000000000000000000102": "e098e6bdfcbf458b4139ee1ebb140d43f6d606f540d989eba5b8b97435bff5ae", + "0x0000000000000000000000000000000000000000000000000000000000000103": "8820f152b3cff23de1f3b9447dd120cdc4db4b52be2289b8addfd158c2ad60b2", + "0x0000000000000000000000000000000000000000000000000000000000000104": "9055974f536a57910076dff54ffff9856ac72456315542541730ccbd2f24ea9e", + "0x0000000000000000000000000000000000000000000000000000000000000105": "7102af3da7876aa9cff2e92b872cae97f9eaca3f19c6b184a9000d27dbca4e74", + "0x0000000000000000000000000000000000000000000000000000000000000106": "d50ce3a9f526cc3f15e8938ea731693ca87130f6ea684d06e3df024c0c2d298b", + "0x0000000000000000000000000000000000000000000000000000000000000107": "e87cffe7581ce382f9231fd3e5f6c6dd15670fac36f758bcaf841c44459f882f", + "0x0000000000000000000000000000000000000000000000000000000000000108": "4b2ca2c24eb4cfff7f4ea2a8657efae77d1f12850557b1b3cedaf5326498a476", + "0x0000000000000000000000000000000000000000000000000000000000000109": "6442f9445011c3fabe60fa667b6d3312a035f8b31ba11d66784657a7b1610e67", + "0x000000000000000000000000000000000000000000000000000000000000010a": "957a973ad8b0b3e200ae375441704b26ce89fa5056a66550359b34ee91a2a0d4", + "0x000000000000000000000000000000000000000000000000000000000000010b": "714651f961e055fb12c089df6e5c83f279400bba685d20810303f77984712cd0", + "0x000000000000000000000000000000000000000000000000000000000000010c": "0b3f682d9d441ee52d4a38112d385f970973958bc4586ed97a2ef47a202aa38f", + "0x000000000000000000000000000000000000000000000000000000000000010d": "d6a33b58b1e38fe4ac1c3386de7de4d1db23f14871f1b0a6163750738a6844b4", + "0x000000000000000000000000000000000000000000000000000000000000010e": "7fc400f7b6c69771e1a1dd0fef6a7fcb25f9d4a2160f28c2c20ff5c8c5557396", + "0x000000000000000000000000000000000000000000000000000000000000010f": "d40c0450e901d3193859726272a91036198d0bb55438bb30e7e2ee747bf90d07", + "0x0000000000000000000000000000000000000000000000000000000000000110": "b56358c5f0686a2af5b2569179542237964b481269f589871f1d0a8494b22716", + "0x0000000000000000000000000000000000000000000000000000000000000111": "6db49261c82dcd68dbd907e9ae99e60e8b60a144e20fa40bc9760e6af5ae95ab", + "0x0000000000000000000000000000000000000000000000000000000000000112": "295a8e852bcd10264566f53a7c2b7010d082476d400aeee5d1067c6237964b33", + "0x0000000000000000000000000000000000000000000000000000000000000113": "59c54b1678dca13353be6cbe9090244300dafeeaf924758a74eccaf5d8e83cbe", + "0x0000000000000000000000000000000000000000000000000000000000000114": "62434faab09991ba4832b647e7260e305c48a47556068e84a5a0f8d1cd23ca0d", + "0x0000000000000000000000000000000000000000000000000000000000000115": "9852b90c33582df6fce102fb4e211a0e0b391b486dd80752560076c200aedf9a", + "0x0000000000000000000000000000000000000000000000000000000000000116": "65240654f94bde1e2d244ef74fc438f08b54b1e9faecc7ec1ca49a7ba83ce5ce", + "0x0000000000000000000000000000000000000000000000000000000000000117": "9f54ff65564ec9e51c194c32c07d73fa64f558ae0df769401105131d1f438d44", + "0x0000000000000000000000000000000000000000000000000000000000000118": "1e86080bc89bddf96fd5508dc58502c9062a2d3e496aa859dd0b10ed033ff085", + "0x0000000000000000000000000000000000000000000000000000000000000119": "5cb14068ec9e99fcb6e8e78e64cd2aea94f667888a9aa540844dfe0bc8a375dd", + "0x000000000000000000000000000000000000000000000000000000000000011a": "44aeef6943cd37a6ffff1de2e0904beb164a461631b591993ab85ccb86abf4f9", + "0x000000000000000000000000000000000000000000000000000000000000011b": "61e5376ab0b484c9dca320837e8bc9dada91f2d60b550767d26adf500f5df996", + "0x000000000000000000000000000000000000000000000000000000000000011c": "eb675d937511476e7fcc82eec7615c2910d74026ae57a3fd9e144ec4afc45a00", + "0x000000000000000000000000000000000000000000000000000000000000011d": "1cafd78ec641f4af5d4f70f2a69c94688dab74feb7d64115401f7cafec61c7e2", + "0x000000000000000000000000000000000000000000000000000000000000011e": "437f7e43e11d7d3c69a7449e6cf3bb70f85495c6f84326ec4300833a445c7d8e", + "0x000000000000000000000000000000000000000000000000000000000000011f": "28c467c36d5a76c1f47784655e0360553564b11d092613b84636d27c005a64d9", + "0x0000000000000000000000000000000000000000000000000000000000000120": "dcfb02fb51c962c7da9968cb094da0deead9be715cd80fe4edb15316afe5abd3", + "0x0000000000000000000000000000000000000000000000000000000000000121": "54e726c63980affe15f4fcbf0649b8839b2cec81fb03ff9d4885c49c0c13e49b", + "0x0000000000000000000000000000000000000000000000000000000000000122": "0d07c9bc86d9d0dd335a1d0b4af655218071687d5aa6a1bee5c9dcf69479624b", + "0x0000000000000000000000000000000000000000000000000000000000000123": "ee4bde5bb8d77b4d171c88650704849bc8308792022a9e0df731a264b6d986a7", + "0x0000000000000000000000000000000000000000000000000000000000000124": "ed908adb5661b69ea32366f362a10182a478af8b7ae01a870be3ae36c0a4138e", + "0x0000000000000000000000000000000000000000000000000000000000000125": "2aaf777b8b9baa765e6c315b77d2ed0bf12654e466a9f5d9a4b3892c34d346ef", + "0x0000000000000000000000000000000000000000000000000000000000000126": "833f91460ba1a4d3754963b49508167d180860494029996788dfe0a4b7c1898f", + "0x0000000000000000000000000000000000000000000000000000000000000127": "55415e30e330b78eea4143896ca20531aa466962f9e7c270892c0c82b9dc52e8", + "0x0000000000000000000000000000000000000000000000000000000000000128": "3fbfd523742f263285774e53c795a95cd422dfcab3af25a98440ef2d9eaded1b", + "0x0000000000000000000000000000000000000000000000000000000000000129": "360482b09341ef1eb6bd12fbc2290c17fbcc72f8f1128a1f0eaedd6da6350c60", + "0x000000000000000000000000000000000000000000000000000000000000012a": "e1a596d7fe5e0df44bd95f04d6e52f6942a3ca81f2c339e69436a1ab39b6cb96", + "0x000000000000000000000000000000000000000000000000000000000000012b": "ab15736f5f9a88b9ee82577680039c70f6ee7a1a45bcef23aa00ad68f2c4c3c1", + "0x000000000000000000000000000000000000000000000000000000000000012c": "b09555539b48721618134671e9f09ca11c3473b6c972eefc61f7bf6e59901843", + "0x000000000000000000000000000000000000000000000000000000000000012d": "fd0af364faeb502cd7a06b059c730040c89c4bb60af5f9e432062745c47a1c76", + "0x000000000000000000000000000000000000000000000000000000000000012e": "ccc479403433e4222f2c1886e3707712822a3ac130f37263b277d7f42fedf93c", + "0x000000000000000000000000000000000000000000000000000000000000012f": "cac6455fec57cb7705d097952412eaa1e3984c8a50f703d4dc84d990e099ce9e", + "0x0000000000000000000000000000000000000000000000000000000000000130": "c2497bf1f6196ab87d85a9b1ea008b60687721f7bc75ab3fbf8de50d455baf03", + "0x0000000000000000000000000000000000000000000000000000000000000131": "42690f0496662b95458544ff5fa9db8e9839a90c142ba6e211b2ad2fd19a8bfa", + "0x0000000000000000000000000000000000000000000000000000000000000132": "5dc6a2e4dea9a9151cfb8dc58b8ad3e2e2c590f73ef3659f24bbd1484f5f51ca", + "0x0000000000000000000000000000000000000000000000000000000000000133": "170d3dd10df213b71da46b8d94023a22e58c3366eac78c70b095fbceee126712", + "0x0000000000000000000000000000000000000000000000000000000000000134": "42e46e023d7d24d978c93644717729a7fdcb0e07c67e390a2c6699c4cb7fc7cd", + "0x0000000000000000000000000000000000000000000000000000000000000135": "a7c1b6d6c5d4fc516c4b7a9e6917a1929957edf45107e164fc0768578e4e555f", + "0x0000000000000000000000000000000000000000000000000000000000000136": "0762831f8a197faace5f89136d4e8fd2bdbcd634050bb8c28593c6f62769c2f6", + "0x0000000000000000000000000000000000000000000000000000000000000137": "b534a77d9471e828befa7adf86678b4a7a928e2a2db3e9ccb919eb0d2e2d7131", + "0x0000000000000000000000000000000000000000000000000000000000000138": "797081f69a1e07e62ab7d70958e3840489579027770db2acd79ab7da50c5684e", + "0x0000000000000000000000000000000000000000000000000000000000000139": "0ad3abab22df80481936bb2a0d8b50a807633495c41ede9d1570c25b59fdeaa8", + "0x000000000000000000000000000000000000000000000000000000000000013a": "5d7d1a0c180dbae5272ccc6e6c01b45960408a2205e36e897320813cc1627af5", + "0x000000000000000000000000000000000000000000000000000000000000013b": "457cf3e561354b6040afd9e0d386b3fea81719cc40b3fca29fc4d4f99be875f9", + "0x000000000000000000000000000000000000000000000000000000000000013c": "4e8f0489aada99804a9c89679ee1fd98cf0197713766bbb480c77970a95f3f5b", + "0x000000000000000000000000000000000000000000000000000000000000013d": "8df9fb79d5b59f66814970a325d025e1e059f33616840d45bc73ee25a40f10ee", + "0x000000000000000000000000000000000000000000000000000000000000013e": "1da2f81639c8614abf6f4720da2ffca4a5557ae2c62f68948a325f08dce60a71", + "0x000000000000000000000000000000000000000000000000000000000000013f": "378d38c1343aa2703f647894a5fb7330de9fc0e363c86f55beee5d8d66e1d714", + "0x0000000000000000000000000000000000000000000000000000000000000140": "a2f88ca8a8ab5ef26e33eb38b5f28edf9349afb29e5f1a8435c070fbc8df25ea", + "0x0000000000000000000000000000000000000000000000000000000000000141": "54dc888fd505259107b6574dd8a20a802deb1d07bb9728a54d74795789454270", + "0x0000000000000000000000000000000000000000000000000000000000000142": "e9b56ec487c3b9eda677017acd8c89f1a995b8edca20949d5492bd47f1278705", + "0x0000000000000000000000000000000000000000000000000000000000000143": "411ec72e0e4ba3c70825d4d76357e30b010815babbbc1837e2c70006d33e809b", + "0x0000000000000000000000000000000000000000000000000000000000000144": "f92cd7abdc875dece612e2568996c3d03cef02faaf7b0924665b97123207f9a6", + "0x0000000000000000000000000000000000000000000000000000000000000145": "445c164c66dbe2d97e415132e6519d7765d441454461655d1bc2fef9a5233720", + "0x0000000000000000000000000000000000000000000000000000000000000146": "fff2ffe2e7354436e669edcbb6301ebde9eb5d415e4dc27166e7a301463ead0a", + "0x0000000000000000000000000000000000000000000000000000000000000147": "3783621d2f500f95d6dd1f072a06f3cf7776c9b364a4d986b644f9084dc27e5d", + "0x0000000000000000000000000000000000000000000000000000000000000148": "c292d2df68caf410c52129638905a541d121618c637b4b6e401ae5783369b805", + "0x0000000000000000000000000000000000000000000000000000000000000149": "18c79f9a20b1eb4d040190838ad1ecb9401a4d7c6aafdff548163fa0e81a2312", + "0x000000000000000000000000000000000000000000000000000000000000014a": "079a82efae89bae7dc9f51d23fe219551e0e8dc8d8a1783163ce664741d77c9a", + "0x000000000000000000000000000000000000000000000000000000000000014b": "bf3d02ee23b46b03fe7a0cf3e5ab2709608d2d6c237357932b73caf7bd0e5962", + "0x000000000000000000000000000000000000000000000000000000000000014c": "8f34050bd77c450b1684065a6d47f74e03a13366670639e0ffc82ce56190e7ad", + "0x000000000000000000000000000000000000000000000000000000000000014d": "1dc2e1bdcaf6cbc04adf6f2a0bec9df3fb5148469ff491701db0d36a3ccb5561", + "0x000000000000000000000000000000000000000000000000000000000000014e": "03399daa6b9a5022b6c6ef393204ddd994dda29cc67998c0dbc1df5f2c7df9bd", + "0x000000000000000000000000000000000000000000000000000000000000014f": "ccc15fd8ddf55d7c8eb75b38f01938eab69a8286a525182fa302c34738c401a8", + "0x0000000000000000000000000000000000000000000000000000000000000150": "5f1a9c738684387b66a96f080ed4606ca3b54cc6ef8fbeac69197d9d0ebc18d4", + "0x0000000000000000000000000000000000000000000000000000000000000151": "fdee8c650dfb4cf5fce50480224694b856fde37082e78eb3c82971a2a010f62d", + "0x0000000000000000000000000000000000000000000000000000000000000152": "8b6e1a97ed0b60399797bc48fdc165d7bda6b855f94691276d2e5068d44e0aec", + "0x0000000000000000000000000000000000000000000000000000000000000153": "3f9354b48f2c7bcf684bcb6ed3a7635eaca6ba81654a3fc3e4c7273c61b28583", + "0x0000000000000000000000000000000000000000000000000000000000000154": "54553da46a588f6dc14580c6ccb5f2ca5c6f6a189dc465c0d4d84ad2c9749a4d", + "0x0000000000000000000000000000000000000000000000000000000000000155": "565a7651bb85599dd4e8bb9deea8c1068fc0525ef77a602875c0ee4c27ecdc3b", + "0x0000000000000000000000000000000000000000000000000000000000000156": "5a060514a5987fb5defacc69d60df530d84825bb7102f52665c197a5b7cf0d3d", + "0x0000000000000000000000000000000000000000000000000000000000000157": "37a95c1c4d8ae9548f7abf278b6d3c8fd6abce3ad831527a483b585ae5574496", + "0x0000000000000000000000000000000000000000000000000000000000000158": "02bf4c87617d99c78ee4061fcad0436ec41d1feb5768436917aad995dc1a5c46", + "0x0000000000000000000000000000000000000000000000000000000000000159": "1c88871de6d44ab71e79a3fdbe2e43604daf0194b3a02e1a90337e837201b57c", + "0x000000000000000000000000000000000000000000000000000000000000015a": "e65b0ebcbf8e53e362f198d5286b3be688e04b74109af7e41ba28fc4d7cb5df7", + "0x000000000000000000000000000000000000000000000000000000000000015b": "675cb4223640eb85c8810a74a6fb0820d86a138a1eef666f1a22d27ba1ce730c", + "0x000000000000000000000000000000000000000000000000000000000000015c": "05276dd8169c6699371aea9e2758f23c15c2739166b91fd5f8556101b4bb3f21", + "0x000000000000000000000000000000000000000000000000000000000000015d": "2bb6a28a333d633baef19929640188c26f70dfd798c0948bcb81f7b48b7e6f83", + "0x000000000000000000000000000000000000000000000000000000000000015e": "418ac48b8467db2e040a7b57b9f81e3f5295077d62988735ef5db301e4312d85", + "0x000000000000000000000000000000000000000000000000000000000000015f": "d97364746b3c009e86e4601ea8a4ec3eed223a070b3b343b33ad8a121708aad7", + "0x0000000000000000000000000000000000000000000000000000000000000160": "915b1161ecce056ce9b09ad20e535ee47578a868802d36a1bfa38ee437beca07", + "0x0000000000000000000000000000000000000000000000000000000000000161": "4f58b596ab05605431d3a936043301eeda09adbfa46a3c02e452abcd988f4b34", + "0x0000000000000000000000000000000000000000000000000000000000000162": "318aec788d4efe4aba9138446d6aa0e292c18554eb34a15b827c22188fbebb46", + "0x0000000000000000000000000000000000000000000000000000000000000163": "4401d3aa9f1ff873ad2aab1d705c874c41cb5bf206ee59eed2e5daee6c6410e0", + "0x0000000000000000000000000000000000000000000000000000000000000164": "ea7938e34260a926ccd50ce03f9d1f387948af9b961c6f48ceb76ebbecaa2658", + "0x0000000000000000000000000000000000000000000000000000000000000165": "08f4cc7edd04bd308dc6e7bf4cb07b806e7e2de61545abd1f51f9ad1d59cf75a", + "0x0000000000000000000000000000000000000000000000000000000000000166": "a00622d4741d5328d26df1a386bc743d636523cbfb4ae132ef9973770be54646", + "0x0000000000000000000000000000000000000000000000000000000000000167": "9f5cf2010cc5b11d8e26387a3dc7871353fc465161e0179d7a022e7fc216d894", + "0x0000000000000000000000000000000000000000000000000000000000000168": "7bae673e78c9468adcbc5af662fa1a64303269928a74faf206c36e8e90d39e9f", + "0x0000000000000000000000000000000000000000000000000000000000000169": "f5c8e55d5ccac994718819a5e84706912e3a13ed1138af213068a1dfee7333fc", + "0x000000000000000000000000000000000000000000000000000000000000016a": "5ce347e7492dc1fae5a790ee38bbae921fa4c33c12d9728102107ff2242037df", + "0x000000000000000000000000000000000000000000000000000000000000016b": "704f8986273e3ddd2829747071efe079b0ad626aa5ce53ab8b881fe2dae20407", + "0x000000000000000000000000000000000000000000000000000000000000016c": "8b372f1d731e91f9e3e65d489488e2f5256c2db193d27c80adfd7500930bfed8", + "0x000000000000000000000000000000000000000000000000000000000000016d": "8037a2e6778f5a2f86243f0f68e1dc27711a83e23f17dffeadba79650efdc061", + "0x000000000000000000000000000000000000000000000000000000000000016e": "83b55c0c81d1b9e925dd8ded23f5d620d5c90ff0669978808bafe0f9cf4fba4f", + "0x000000000000000000000000000000000000000000000000000000000000016f": "47d1a1fd87ce37b222c945a0926df5db04b51f7cb7bbab3b5038aa755aecd57d", + "0x0000000000000000000000000000000000000000000000000000000000000170": "05a64565e90b2488725a1682f087cb8eda679593d4163e606df37d717fa885f3", + "0x0000000000000000000000000000000000000000000000000000000000000171": "3340b09045d81928d5feb249588b82048aac136feda454dc13bfa778ddaa1405", + "0x0000000000000000000000000000000000000000000000000000000000000172": "327de227ff353f33e394e8d4000f33513c924ea807b747f3cc63bfb40d9c950c", + "0x0000000000000000000000000000000000000000000000000000000000000173": "fd5902869946c283cf714ba1369a87a419d2efaf809ffee5828138db3998941e", + "0x0000000000000000000000000000000000000000000000000000000000000174": "c2ef323c573205f1f1ba96da000d08c88d09b24c95389963a37a5b5f466b8ce8", + "0x0000000000000000000000000000000000000000000000000000000000000175": "29f8ae9fa882fecb82cac317d253adfc23ac083ac8a57f07aa14f450e6cc3a70", + "0x0000000000000000000000000000000000000000000000000000000000000176": "bc73c987e59da4fa66253e4e382bbc25daa551bcebaa40766218c84c249e2022", + "0x0000000000000000000000000000000000000000000000000000000000000177": "8f9e9db44c2a14d5e6f4c109568e1ed5220cbc09face49934d24593d20779eed", + "0x0000000000000000000000000000000000000000000000000000000000000178": "4cbf14ace7c97bbe835d0811871f9eef77d6fe81ece5eaa55e741a4dc1fdd3d0", + "0x0000000000000000000000000000000000000000000000000000000000000179": "6958b982b14e1cffdfc4bd059530efa2eafa98b8b7f5e4d52ea1bae428329660", + "0x000000000000000000000000000000000000000000000000000000000000017a": "ec74048a1581a2c5f60b21cd9e25bf9c356d64346df78fdd4d5ab6da471c09fd", + "0x000000000000000000000000000000000000000000000000000000000000017b": "96f61cc569a5cc077dab9be9396177a63a089524e4afbbf0ebeb09e357665e83", + "0x000000000000000000000000000000000000000000000000000000000000017c": "0ca41041aeed31cf7dbf302aad1a13f021cff17dc3b30ab3ab8fb5c109bf9965", + "0x000000000000000000000000000000000000000000000000000000000000017d": "f2198f4eac45134910f2f5c2f4f4bba2ee608c19e01728288f8f5c583df9b618", + "0x000000000000000000000000000000000000000000000000000000000000017e": "9ed60ccc2815f143b3776e728718019b7820044b0e8f1048fada365fefb130d4", + "0x000000000000000000000000000000000000000000000000000000000000017f": "9062dff550aa9077f3623061b2bfd2bd8d2c86e29909967d614bd4944d9775b4", + "0x0000000000000000000000000000000000000000000000000000000000000180": "d157f96d8cff964d61e492c245aa25b09c561e5c6336ed5452387454dd2936a1", + "0x0000000000000000000000000000000000000000000000000000000000000181": "b8edb732bc8eebb71c6b57b77061ba1acf052b420d919e5da1720abb3c7edb21", + "0x0000000000000000000000000000000000000000000000000000000000000182": "15266d7b9ec958793882168c6ecb5b92093f733c0e47fa9f9885dec39977e5e0", + "0x0000000000000000000000000000000000000000000000000000000000000183": "96ad738816a0c5035be9c01fbbed53998bc70a21a08bd0fa2427288c9d4b4cfa", + "0x0000000000000000000000000000000000000000000000000000000000000184": "d78dcce2b8cf4bd8d77c2e3212a31f5e1eb0c62184d07d2c0bd0dcfaf9258e67", + "0x0000000000000000000000000000000000000000000000000000000000000185": "53b455b1a2321612d4750d1cb5f2154662340f0596d839583ad50db5d90c42f9", + "0x0000000000000000000000000000000000000000000000000000000000000186": "e665360c7c8888bfa138a986f8ff7f890a44b9e8f80b7e736f5f43a7c8bc5349", + "0x0000000000000000000000000000000000000000000000000000000000000187": "e5efcbb043c2a94c768287dceb47dd6b9cb7a7cfa2d9af29222678ed900368c8", + "0x0000000000000000000000000000000000000000000000000000000000000188": "21f6741c735a5806078a1f39d17733b135210be8033a80be4fefc59d42c45bc7", + "0x0000000000000000000000000000000000000000000000000000000000000189": "d158907e25d23731ef6dce6a9d1614ba8b69f1080f78acecf9c403a853b3e7e1", + "0x000000000000000000000000000000000000000000000000000000000000018a": "6fab05257a0a012b2d7ae03c844ddece0883c3c319ac1396c86f6f0e136d034b", + "0x000000000000000000000000000000000000000000000000000000000000018b": "7c1553d1737048182d4b9d286bce8cfebcf1db592863dcdb04597d033557214e", + "0x000000000000000000000000000000000000000000000000000000000000018c": "b9a2df3ba23cf8289d6075dcaecd47b52b9fb750dee39aa9a93b6477e99b348c", + "0x000000000000000000000000000000000000000000000000000000000000018d": "8db428484b88609d95276b97bfc852bbad22b06dd7f40ac765e4e3333720ea83", + "0x000000000000000000000000000000000000000000000000000000000000018e": "d52069ed6df2e1d2f640f30f418cfdf95501b1c6085ac06093c891607b0032c3", + "0x000000000000000000000000000000000000000000000000000000000000018f": "7a253f0e42ca478ad6c4ae1e4892cbddb34294950e425582a85ae2da34f8a8c2", + "0x0000000000000000000000000000000000000000000000000000000000000190": "4e526a541914f396684974eafbce8e6b898a3330278c3e7626816d435a2ef4d0", + "0x0000000000000000000000000000000000000000000000000000000000000191": "03dc453bfc92a17cf81454eafdde515558d116047e9d2deb26e4d653df5960cb", + "0x0000000000000000000000000000000000000000000000000000000000000192": "7c28f6c5bd3f408616c4374f509a34b30c118bf5d1573a2093630f20e43f2117", + "0x0000000000000000000000000000000000000000000000000000000000000193": "930fac8adfdbe31343d02ff687fcb52da1c6e61bca71f0f4a0dac8bbdbe9f243", + "0x0000000000000000000000000000000000000000000000000000000000000194": "899574f6e851f799bb169b1b2ff31f51b11d500716847b660fbb717340b90f14", + "0x0000000000000000000000000000000000000000000000000000000000000195": "7310d47dc31a6bc3bcb6dbf90735258a092efc6fc83100937e73835ee2d70531", + "0x0000000000000000000000000000000000000000000000000000000000000196": "9096409d42e5525d369ed6637798f87763c39cded3d9b86b9428c86c93b61b86", + "0x0000000000000000000000000000000000000000000000000000000000000197": "12d88d0223ca1c9cf55b618b3c4874591d2ab50eedc5b7acb833cec3efc2c2c2", + "0x0000000000000000000000000000000000000000000000000000000000000198": "0f52fa7983ab74a3b8f29492272435381ef85bc78db04283ef614c1fed3aa454", + "0x0000000000000000000000000000000000000000000000000000000000000199": "84d0bb93eddee81c91f12a28c949b30782bd4e0edba3512ec7ece7930c060823", + "0x000000000000000000000000000000000000000000000000000000000000019a": "033fd8cb5296f3226b34e1dc1084b6a25480fa39cec6e680902d838135aa1fb9", + "0x000000000000000000000000000000000000000000000000000000000000019b": "737d7e54435171f7d4f1a31907fd2e6c53cce00b323b09de43222b5c27b78de2", + "0x000000000000000000000000000000000000000000000000000000000000019c": "a18e5315c6a7fc757c84bdcc6b663d717c0549aa53f913f05e2cffaf6d9f2227", + "0x000000000000000000000000000000000000000000000000000000000000019d": "b29d54443444ecf45ee00696aecb54c788d5bf75b57f20e5130c8a9233ca4c96", + "0x000000000000000000000000000000000000000000000000000000000000019e": "7c3805da218aa7f4e84fd775e7020c28243f7be58b18e624e447ac2905f40b08", + "0x000000000000000000000000000000000000000000000000000000000000019f": "fd605ccf0552f8e7b221992726e492451007e6c6fb9d16e9c9a34200886a04d1", + "0x00000000000000000000000000000000000000000000000000000000000001a0": "105a3b333d909958236b0da2089e6ab33cfd18fdcb2b7778c0c9d71db4298d8b", + "0x00000000000000000000000000000000000000000000000000000000000001a1": "a67f1ef534a72c18b935ecdd616dfc74353d87c9a17f605056f99194ca51affa", + "0x00000000000000000000000000000000000000000000000000000000000001a2": "9227d788b19ed84597de40bf0d549437fac98898f323c856512eb3e4ece9dded", + "0x00000000000000000000000000000000000000000000000000000000000001a3": "9ac08c74df2efa845713d7c48cb120f3974a7d70270d7e43f2e30651695453a0", + "0x00000000000000000000000000000000000000000000000000000000000001a4": "9c60b65b9e76366621f1355ea1e2e292c0f2f2be7bc0f402ad0095cf9b024598", + "0x00000000000000000000000000000000000000000000000000000000000001a5": "2198fa802b4c34aa089ce7b6ce1d7eeb5fc3c2dcc6f6db71ca3d15f8c586a230", + "0x00000000000000000000000000000000000000000000000000000000000001a6": "4df5952c9c5555bae758de89b1a4bef3107e63fe722a5e95161e02f4132faa78", + "0x00000000000000000000000000000000000000000000000000000000000001a7": "bf89f44ab29227a246931d0d96a52e7b788dcb2411625bca2d50be6a3797d8aa", + "0x00000000000000000000000000000000000000000000000000000000000001a8": "9d798f5f1806b22c73320500e5b0ecad6ce1e56f0bebd96df975eabd7e9307fc", + "0x00000000000000000000000000000000000000000000000000000000000001a9": "f0688b0ce2364b1c0e3d43325d3d3c8ccd63e530630a920664d49547169d0601", + "0x00000000000000000000000000000000000000000000000000000000000001aa": "08d303e510e1cc58b695d015fc2c2210daa94f0f3ff193d83ea43135bbb590b5", + "0x00000000000000000000000000000000000000000000000000000000000001ab": "b266835618e75e3292af2395d56e02a6e3e35264a596cb44f38148b1499ea0d6", + "0x00000000000000000000000000000000000000000000000000000000000001ac": "301512acf2893751ec72f15dce9fdfb887dccfa96c80d6580a3487dd7857087a", + "0x00000000000000000000000000000000000000000000000000000000000001ad": "22c0f9622864f960991a2027fa3b70d9941bdb21189e7aa09f68660e27be1dcd", + "0x00000000000000000000000000000000000000000000000000000000000001ae": "f6131b88cdb92ad5d8d74aa040be0cef999f2adfc6adc0b8c0f2748ea1aa2e22", + "0x00000000000000000000000000000000000000000000000000000000000001af": "558e886b4bbd77f53aa9a1a056e8e08481da9dc38b7a3859e498e410dcd973af", + "0x00000000000000000000000000000000000000000000000000000000000001b0": "2588de766ecc1af72b5f7b2a729453d703d85d9bfc027898833f2771039877e7", + "0x00000000000000000000000000000000000000000000000000000000000001b1": "dade7fc48d32dc68d41020ac79b868485abb3558e53bb63a2e8aa47932e39476", + "0x00000000000000000000000000000000000000000000000000000000000001b2": "8ceeb2afd3646d249dccab24330b4251a5ce2d7ad671541d746f5daef884bd41", + "0x00000000000000000000000000000000000000000000000000000000000001b3": "24c5b68530cc49171a66f1dc312ea1a15c3b234db8561a1fb08bf8c3adb972d4", + "0x00000000000000000000000000000000000000000000000000000000000001b4": "82f242525cebab571fe6e5fe6fcd838c55ca48eea1eb255ef7bba0fb43dea956", + "0x00000000000000000000000000000000000000000000000000000000000001b5": "413f11217c8822a00b8b8b614c7e438db97162345ea9d01d1b46bd859f589395", + "0x00000000000000000000000000000000000000000000000000000000000001b6": "37a642a12a17850ffc84a65efd942917d6c413e0623d9ed0dfd583f4a6dd280e", + "0x00000000000000000000000000000000000000000000000000000000000001b7": "2319866ae408c2c16def479454f550894284b65217d988c0f0346c8b788e6f50", + "0x00000000000000000000000000000000000000000000000000000000000001b8": "21cd372ca079c9c9a302ce46dd6604fe0dab8d1c4963735f200fa7aecf68723e", + "0x00000000000000000000000000000000000000000000000000000000000001b9": "95a47db05dc3a6043cd4a648e1838876d7814cdfc2acc03b6bfd228751a193a9", + "0x00000000000000000000000000000000000000000000000000000000000001ba": "e3b09d5570d946f2ab70308a08f0275c443d7ec9d9ef3c32df7c2320f790b4ec", + "0x00000000000000000000000000000000000000000000000000000000000001bb": "590060fc82b55361ca5d13db77f55b5a5cfef362ddb300440f0a48984c9a2e28", + "0x00000000000000000000000000000000000000000000000000000000000001bc": "a9b21f63b40981e09ca454b2739149666dc23a4d33f5a0014463766354cc19f6", + "0x00000000000000000000000000000000000000000000000000000000000001bd": "331d419065a5d0ffa904c435e9022d1e621315eff68f2201ec63a690fec3003e", + "0x00000000000000000000000000000000000000000000000000000000000001be": "44b075e106306c1ca24ca9dc1c5a27e68dbe86367904581bb3981acba06ce979", + "0x00000000000000000000000000000000000000000000000000000000000001bf": "6faa7c1f263480410463c1eaa2ff9a4471dee90cd7b440f9a7fffc7c49c1ab57", + "0x00000000000000000000000000000000000000000000000000000000000001c0": "027b707ded941bf200797c580cf2a73d3dba48794d0b2b198965ff9d0aa4b46b", + "0x00000000000000000000000000000000000000000000000000000000000001c1": "35c25ba5f49d95a411ef32426c443c91e887ca1dedf2a6356969292822c0d91e", + "0x00000000000000000000000000000000000000000000000000000000000001c2": "83e0cab914be2a9ba1c2be60f0ecdff76ee5c946daeef001af4b6a6aa47873dc", + "0x00000000000000000000000000000000000000000000000000000000000001c3": "c735802bd46c31c8a7e3e83c2605a218c92e66f7507e88f4cb1c0f351c0a71a3", + "0x00000000000000000000000000000000000000000000000000000000000001c4": "781d1e3fdabfafcea2fa6d4486634b6af94498fa3562407f4caa4c4294575417", + "0x00000000000000000000000000000000000000000000000000000000000001c5": "e516c9e13a00da98680afc3265f13e142ebdd467d12da151e6e5a9677a228c6e", + "0x00000000000000000000000000000000000000000000000000000000000001c6": "666ac8fcb85fe5025a7b996eb4f4d6411019124c819a009b7e0c7f0e0c4c4c3f", + "0x00000000000000000000000000000000000000000000000000000000000001c7": "3c141c08a245a3db335db0f6bb0cff5848f6425057c9961cb3bef827aa0ff53d", + "0x00000000000000000000000000000000000000000000000000000000000001c8": "63dcab73a746ec6c5ac8f1ff8ddbce7cd483c26548f86554fcc40c2ccc041262", + "0x00000000000000000000000000000000000000000000000000000000000001c9": "3aaec8ddc0224f4b084a8ccc04efefac99cbef0e503b8a7bebc3c7aa4fe46521", + "0x00000000000000000000000000000000000000000000000000000000000001ca": "4dbe3b6b04f679aa9677b3a64d1dcfabc5906a12c178e5ff54b7efbfc2c79b50", + "0x00000000000000000000000000000000000000000000000000000000000001cb": "457c3a83d0815833923bd48642d056782f5fd188041e8cd92f260e2383e0361b", + "0x00000000000000000000000000000000000000000000000000000000000001cc": "02522280a85179021caaa61d6482df93c045087417ba2191809b602832aa710c", + "0x00000000000000000000000000000000000000000000000000000000000001cd": "4d587bd01bcfa40e1795ad3ea5f77b546910c6870bc7e6657d40a1f2d8feede3", + "0x00000000000000000000000000000000000000000000000000000000000001ce": "961d29a7fc57915697ba5b2fae8d3771d8bd91576c32c05afee041ac17d848b0", + "0x00000000000000000000000000000000000000000000000000000000000001cf": "5c3884749debf301065e34263780232f327a57a85b4fe19376e62de3723aa5e6", + "0x00000000000000000000000000000000000000000000000000000000000001d0": "713463804bd20977b4cd34532f3d1168f0a49501d5408fb2877478a477a1f971", + "0x00000000000000000000000000000000000000000000000000000000000001d1": "461c8fd694ea0c1af8793266c605b6ceeaf7245cec97495903ea2a14ecac4380", + "0x00000000000000000000000000000000000000000000000000000000000001d2": "35e31088a1515e1ba6609d0950a16e8f35cde03fa07f46e18e4b86e2cca4edc2", + "0x00000000000000000000000000000000000000000000000000000000000001d3": "61ba03ccc0e0cf9cd98cdcba500e40e8129eb3eb85920d1fef44a05588d49c3c", + "0x00000000000000000000000000000000000000000000000000000000000001d4": "851f39c5ce5f4801b082523faa0cc03f2ff3568a0c243f620e5c339ea39da2b2", + "0x00000000000000000000000000000000000000000000000000000000000001d5": "448656736cc3a9a8e8ab0c5e548319b14a51b40e45f5de7eddaf25ca390c3530", + "0x00000000000000000000000000000000000000000000000000000000000001d6": "525d5448d96a5a36b6bd87c4599662f32304d64eeea5f5c07897724a91a4d8a9", + "0x00000000000000000000000000000000000000000000000000000000000001d7": "3e17e4473b4356e9cf755ce3275618fd3e3d4b82d193bdf6a57a2ecc4ddef386", + "0x00000000000000000000000000000000000000000000000000000000000001d8": "7e688056a77a5d6803174648e4a6d2e982a0e02677ae38261c21c6390e90a659", + "0x00000000000000000000000000000000000000000000000000000000000001d9": "e2f9a4e56ef10377498499f58bc152015a2db11f8b485232541dfde10f04591f", + "0x00000000000000000000000000000000000000000000000000000000000001da": "33287f7e4ff32b8a0e6c65d03e04ea27978409381ab031fb8b26d5fe4e14fb3c", + "0x00000000000000000000000000000000000000000000000000000000000001db": "f6073bc7c2255ed4e3365fe8668f9529aa2327e566eea8485e105fe80d0afa5b", + "0x00000000000000000000000000000000000000000000000000000000000001dc": "f8819d443db1143c7f37606b9cd6003db500b36f8059e0a1b42587b4b7f532fa", + "0x00000000000000000000000000000000000000000000000000000000000001dd": "e1dbbc3e7db42e01ee269badbb49ab349b05938d0fe3840f97a9cd6c51384a26", + "0x00000000000000000000000000000000000000000000000000000000000001de": "92e9256953269935a75a21cb3a31b1797564c37a20a104d622c188d6bbbdcf89", + "0x00000000000000000000000000000000000000000000000000000000000001df": "0d4b4ba377d471804631f61c131ff1829b09242afb36c667f66eb3a70677bec2", + "0x00000000000000000000000000000000000000000000000000000000000001e0": "a02fc5e98bc45d4a34dc34d16d71c95e6cdcac504157769ba0e41582d1c7c28e", + "0x00000000000000000000000000000000000000000000000000000000000001e1": "313563af27e7adf66fd7f2842209e0e0c325506fcac7f6dd3abc361d9e03d498", + "0x00000000000000000000000000000000000000000000000000000000000001e2": "337fb18e572e14e967fa54af1ce06a81e52ac2a3baf227d55bcd08499dd4117c", + "0x00000000000000000000000000000000000000000000000000000000000001e3": "497a904516fc0847ae8cadbe627a4c5999451d9c6fb9c407a20478c7f90c3820", + "0x00000000000000000000000000000000000000000000000000000000000001e4": "1683f93d623b43c0071b287a4f3bba01765e6a5fa591d80e140d2f709960d5a3", + "0x00000000000000000000000000000000000000000000000000000000000001e5": "47bb80c5043a6c8898d1006da95899d8814b8bdc8bc7f5df945418bc33d14616", + "0x00000000000000000000000000000000000000000000000000000000000001e6": "2365c3df9f22079331e7519296bf2f4115bee3a8fa70a357a4fbd4e21476581e", + "0x00000000000000000000000000000000000000000000000000000000000001e7": "5d5980aceee17c98188ebf3255e3b3e26b8a5d38f9a4ed95a36cdc818661b619", + "0x00000000000000000000000000000000000000000000000000000000000001e8": "a848e5ed65c70444a6d1fe529127abea702ad12603be4c42be221994762e0c08", + "0x00000000000000000000000000000000000000000000000000000000000001e9": "e98fe8994405578378ed95c1d4b9a45d743c652214e50ac48bc8b36a42d2a4d0", + "0x00000000000000000000000000000000000000000000000000000000000001ea": "2a67633e64cfd77fe6ce3386742cde79338e1a34f5c7c904ea3eb8f64696d35f", + "0x00000000000000000000000000000000000000000000000000000000000001eb": "5d1662243b6c9f6dbf53fe2b79a220453b883e9c80bb06e31f2295e68918aecd", + "0x00000000000000000000000000000000000000000000000000000000000001ec": "eafb3303dba8dc7f4b41bb7b37f3c93e95c8eabd33c392d88dfd0582aa88dc05", + "0x00000000000000000000000000000000000000000000000000000000000001ed": "8658952c14dcc2b8f15ed4f1f4e861e033bcdbe4b0b17671dd7984b29d1a8ba3", + "0x00000000000000000000000000000000000000000000000000000000000001ee": "9a4b8616c2ab2fd6d1d94a86a6e4a5ebe988708def10c935772e47bdaefe5b0c", + "0x00000000000000000000000000000000000000000000000000000000000001ef": "1987f5210117e3866820238e7be09c5b972ff01bc9d3062259ac73abc9fb5d1b", + "0x00000000000000000000000000000000000000000000000000000000000001f0": "ded42d295832ce8251701cc7582d068b37adcf17bf96e9728f49c7ee7dd93c7a", + "0x00000000000000000000000000000000000000000000000000000000000001f1": "b9244e48395116c8a53aabace93900c569c53b973a9e3687002cd218d807f608", + "0x00000000000000000000000000000000000000000000000000000000000001f2": "ca9205d2f444fffd9a22b3f45c1ae061924fe6b5d885079b4f215fd6da081c89", + "0x00000000000000000000000000000000000000000000000000000000000001f3": "d6d29225f2af2f42a875f8e69837b6abac59f79c06b12476351cf46b1f721268", + "0x00000000000000000000000000000000000000000000000000000000000001f4": "a006e393879b70cf602f0122a886d8167c8708f8e7feef6de52675f650f07b2e", + "0x00000000000000000000000000000000000000000000000000000000000001f5": "8698a5e929f6712d07c38692354fc0cd108829576fcf507d8249375bb4d34e60", + "0x00000000000000000000000000000000000000000000000000000000000001f6": "1e95d4fa85ff39313eed8480ff6f794da6cbdf6c865c33aa2c514fb097c6817d", + "0x00000000000000000000000000000000000000000000000000000000000001f7": "52eb082eb7be273f4d5280bbef49733796215c09a7c71ca1b20fcf9ec180affe", + "0x00000000000000000000000000000000000000000000000000000000000001f8": "d671e7ebad6a5828dbcc7932d67618bba676951ddc013cd528bf9b41a99f50b7", + "0x00000000000000000000000000000000000000000000000000000000000001f9": "1c10e60513c164ab7482d2c33062cbc0f8191dc03f48a211fb9ba5cc9687646e", + "0x00000000000000000000000000000000000000000000000000000000000001fa": "3a66ebe86f285009227283701e0bd5d1ef913636a7a1331799de1c1faa5e4c29", + "0x00000000000000000000000000000000000000000000000000000000000001fb": "062f4d4d65aba3e78d382b9f46e4d5542195003f96b51b865458dcc1f826bef4", + "0x00000000000000000000000000000000000000000000000000000000000001fc": "41870d7fcfb0ba5dd5425e3a3302b3e93025132d1a2776a249a88c572fb6be05", + "0x00000000000000000000000000000000000000000000000000000000000001fd": "7c13316eda73749098cf4575409649054e1835f58d626491b4a4b95f2a8a0564", + "0x00000000000000000000000000000000000000000000000000000000000001fe": "5fe375eb49f8ae346cfc274905e352f9d90b8e27a9557c111a4da925da1ec952", + "0x00000000000000000000000000000000000000000000000000000000000001ff": "b2e74edc8a1efbf6260ee1bab5e093a479e2f7e5cd4b857567c0f375363e9620", + "0x0000000000000000000000000000000000000000000000000000000000000200": "66e753584038f784cd85643a76dbb590005f0704537ac697c648abe7cff660cb", + "0x0000000000000000000000000000000000000000000000000000000000000201": "f4d20bce9d8457ff1dd755e1dfbbb89c7bd0ad0a4cbbd507a20a66a75ad9223a", + "0x0000000000000000000000000000000000000000000000000000000000000202": "8ccbef8f2661bcf3123cd1d94c22200a4ae5f196f22cc0a75a24a2eb88b18acd", + "0x0000000000000000000000000000000000000000000000000000000000000203": "bf528a0231aa3fc212ff82fbc410ffd8e8e2191e9af0a3fbc6b5c246cb7ac8aa", + "0x0000000000000000000000000000000000000000000000000000000000000204": "03938f3ef2d6d88872a92445d63c6617c2ad1c6729900a8263f19ec9d03d5106", + "0x0000000000000000000000000000000000000000000000000000000000000205": "76b268f5c2c12013dabdac36f0d7a87aeabf6d0b9c66afe989de308e9d8cb0ea", + "0x0000000000000000000000000000000000000000000000000000000000000206": "9025f8fd00f67b94a9b19712e0ff275ddddf0638f35bcd818639f440daf3d392", + "0x0000000000000000000000000000000000000000000000000000000000000207": "6d6253031c30b55f6529d6543f837195d883ed16bd214ae6b065668651295a7a", + "0x0000000000000000000000000000000000000000000000000000000000000208": "3d381099b916c9111f0a6ef929f91814a584f390a9032879d7e41c6eed3f4870", + "0x0000000000000000000000000000000000000000000000000000000000000209": "915d521f633b9e30bbb9abc8024728d9f1c69a3f06fe8f490c82143ea04d2e52", + "0x000000000000000000000000000000000000000000000000000000000000020a": "863e79fd3c6376662be319b3ef0eb05283fc9f713417b7856a7c8615f977d8c9", + "0x000000000000000000000000000000000000000000000000000000000000020b": "92017f3c5f46fc656d0b2279ed722c9ee2fefd6aaeef49a9b72a7f3988fda54b", + "0x000000000000000000000000000000000000000000000000000000000000020c": "5b54670c143ac7faa7dd65ddb7e3b7c85d6932c049e071be3a0f9f51ee3b889d", + "0x000000000000000000000000000000000000000000000000000000000000020d": "dcc13010415b57cb7729b370840b98797aff553ee150d53acc57944d6880476e", + "0x000000000000000000000000000000000000000000000000000000000000020e": "2d3c7ce06501bbf1916b0a41b645130ba77f69e25b150354934ea8ea0cb3b012", + "0x000000000000000000000000000000000000000000000000000000000000020f": "b8489443b8bb965ee7e0cc42e8ff8c2467d199cd09434fb394df3f34a2a985b7", + "0x0000000000000000000000000000000000000000000000000000000000000210": "c4194a2d7270901ff947af6ebd80fa701243344f704f832880455f4041285986", + "0x0000000000000000000000000000000000000000000000000000000000000211": "1d01c2348f9ac6b46cb793467df238a9f23c29c1d3de9e454bc61644705db054", + "0x0000000000000000000000000000000000000000000000000000000000000212": "7cdb5360f32a30019bf96d2ea2034810820d065f655f99482aa59696b371afa4", + "0x0000000000000000000000000000000000000000000000000000000000000213": "d17bc796f0ad66329bca1ca889a6c67406db80c0f43200fb0926495f409432b1", + "0x0000000000000000000000000000000000000000000000000000000000000214": "d8472a9633cefd2b65c8d169fdcc6737e60390ee74069eea5c6209c6e2ad1634", + "0x0000000000000000000000000000000000000000000000000000000000000215": "619efa7e75625a7ebedc7f3f9399965b08abf5834485d1db46a18e52f18c31ee", + "0x0000000000000000000000000000000000000000000000000000000000000216": "c2b62f015db1c1d98d0614179d0ce92635a62ab4922a2faa0139119d3d63e071", + "0x0000000000000000000000000000000000000000000000000000000000000217": "58bb373fbaddaa37a1fd35bfbaedfca10e720b9517932daa0041139db7285ac0", + "0x0000000000000000000000000000000000000000000000000000000000000218": "c9e6ff8c4334da9106046cf0aa6ada5653c1c7e4e04e2625132bdf77159440d7", + "0x0000000000000000000000000000000000000000000000000000000000000219": "d8c58761e29f93f85ed6cba366a7bf37793501e56beb1505083593cef82267c5", + "0x000000000000000000000000000000000000000000000000000000000000021a": "1d090490f42aa267658565f6ca68e0d230f7d6e2c2c850276c5428f2e6feac7e", + "0x000000000000000000000000000000000000000000000000000000000000021b": "f0867530c5e2d8e1e6f5e8fce7da42ed7d2b62d8f996ad93efabfdb12bd3cfba", + "0x000000000000000000000000000000000000000000000000000000000000021c": "b2db3d26bc5c38616a7acbaba0e72cbc0d27ddb96f8fe1f4f1437d6ea7c058f9", + "0x000000000000000000000000000000000000000000000000000000000000021d": "0dbddf3e586a2f5369ac360a4fee1273047238f16f2f4e8b6e16471b2455701a", + "0x000000000000000000000000000000000000000000000000000000000000021e": "a82749ce59055410613ad90d73c4fdfe715f9b60c665689c4c377125b1dadaef", + "0x000000000000000000000000000000000000000000000000000000000000021f": "5be3c764fef371841fdaca04c885c757d884f9ff8971250ae39d77c76e573636", + "0x0000000000000000000000000000000000000000000000000000000000000220": "b710b8559fdeaf52af97d3fcf0879011c37044dedb8f94dbbc338a85bfd7c61a", + "0x0000000000000000000000000000000000000000000000000000000000000221": "6eb711b67df8460994ec6d375c26a4209acae1a918f7a62392f2a562500980c5", + "0x0000000000000000000000000000000000000000000000000000000000000222": "1da9f51a070e2bf7a49e7631ac54fb0e79bf4034dd2b982f8929cf12c469a593", + "0x0000000000000000000000000000000000000000000000000000000000000223": "9d719d04326acbac551edf543d8f760e26c65609601f950dc8d7271cbf40a006", + "0x0000000000000000000000000000000000000000000000000000000000000224": "488537d78be3c43ce3232056b5e0b1ce2ca9a88d4d7d768f654e0698928743e0", + "0x0000000000000000000000000000000000000000000000000000000000000225": "04b7bb9acaf695da6f2e725c22098a6a6d2216ab3478a9e053526bb50e276afe", + "0x0000000000000000000000000000000000000000000000000000000000000226": "7181f0084b63db7479c003d7dd4291ca02dae8d4283f82becb53681d47398afb", + "0x0000000000000000000000000000000000000000000000000000000000000227": "026fb7db67bd230b10afa06b1c7b20edc1219887a13c0accd594f54aba577ca2", + "0x0000000000000000000000000000000000000000000000000000000000000228": "60596113f907eadfb5229325292e44044821a9e22f7e575b24cab3ea58fb5190", + "0x0000000000000000000000000000000000000000000000000000000000000229": "d168573695101511d7504d9d987c5a0fa7e64b52dbba520aece42e39e9b889b7", + "0x000000000000000000000000000000000000000000000000000000000000022a": "cde6e6e9437d8d53d9d119f59621d8af4aab0d36357ae361fc39100037289949", + "0x000000000000000000000000000000000000000000000000000000000000022b": "af7988749b7c275b2319bbe47c81260f8c3084d77e284db0b00237173851550f", + "0x000000000000000000000000000000000000000000000000000000000000022c": "e80952fe3298776700d0d5527b12772000caeafe16823a1d07d023c092aced4f", + "0x000000000000000000000000000000000000000000000000000000000000022d": "0462b045d5e548d1267a9124eede57927ff6653ee26e515e79484a37fa332fec", + "0x000000000000000000000000000000000000000000000000000000000000022e": "c2379dccca93cb7af1b9495cb45ff56200395f2d0f799afda2cf7d1a8dc2207c", + "0x000000000000000000000000000000000000000000000000000000000000022f": "a7614022dce29db83d3fdfda49d693584249cd3719f6981766ee013a59c53df5", + "0x0000000000000000000000000000000000000000000000000000000000000230": "a9a699c07f4409eab9ca244799436f35249c79448cfb16f1daac3ea84453ab62", + "0x0000000000000000000000000000000000000000000000000000000000000231": "25b92c413d927baecbcc7836cd6464336f0a89e2d65a9fa0cfbe8729fb3b2eb6", + "0x0000000000000000000000000000000000000000000000000000000000000232": "a57990630fd6f670bb7e9f46d7c3e913b5392a7b13a83e9e040118b5edce4bf1", + "0x0000000000000000000000000000000000000000000000000000000000000233": "1d6f6c4bfa2d734a2b4869d97a28ed74e5ac40595899853e85e98349788a9d58", + "0x0000000000000000000000000000000000000000000000000000000000000234": "e8c2b0ff9fe420948d5a90471748469f7cd018d8b62b156404626ee33a4f4edf", + "0x0000000000000000000000000000000000000000000000000000000000000235": "96419b60000d8e4e9815500d8e3d69eef3c19d36997bdaedd42cfabf174ae505", + "0x0000000000000000000000000000000000000000000000000000000000000236": "ffafac142daa1e5dfaa588553a29883ef5d6b9a56408401cc20dd60121467861", + "0x0000000000000000000000000000000000000000000000000000000000000237": "eb9bc3c34aeff870450eef73debeab5d6a4e853fd5e94794de8de70f3328400b", + "0x0000000000000000000000000000000000000000000000000000000000000238": "168cb5014662382595da9de5a5d07020a00f6871e24ec2f12e4d2c01200a1021", + "0x0000000000000000000000000000000000000000000000000000000000000239": "12d8f16244cd8fd6024d151e6a2070009c315dffa38ee8c5330e1bd3d4c3e550", + "0x000000000000000000000000000000000000000000000000000000000000023a": "ae534ee68fddcbb56a54e1389963b1b91f2bd81903668bc912fb38e8222616ee", + "0x000000000000000000000000000000000000000000000000000000000000023b": "d17d8c2fc653829318949d721e152c1578ac66a99c02fea2ed7e9902345888ca", + "0x000000000000000000000000000000000000000000000000000000000000023c": "8d7e0a0e7b3ae1c2af06dbe35c75cb89f39ee82eabdcc3dee776c4528e5f44ae", + "0x000000000000000000000000000000000000000000000000000000000000023d": "1d2cf4804fe3b07289794f1cb5227e51d697cad91934eb7c4705834e36100bb6", + "0x000000000000000000000000000000000000000000000000000000000000023e": "f90b5cc6dac74d3bc26ea436c5009c72a78b680483bba81d842d5500cf2cadcb", + "0x000000000000000000000000000000000000000000000000000000000000023f": "da50bf0b60a87259fb867f9ed72c9b70defa034f7579ef5d8b3b1fdc0dcef8fe", + "0x0000000000000000000000000000000000000000000000000000000000000240": "0ed725064a1263c0361d176ecc01bd8f3282fbf917f16c7acc8d74da1a076d5d", + "0x0000000000000000000000000000000000000000000000000000000000000241": "6c84eb9a9f855cc6e5d2e3a2e3745e58a19f3dc35dc4d4b87e03fd8be4541313", + "0x0000000000000000000000000000000000000000000000000000000000000242": "dfe776d8d16b551a7020bdb98ccfbed0c74ce701b7da68a2124088f2661a3592", + "0x0000000000000000000000000000000000000000000000000000000000000243": "ff3de971bda54ed67b27bd4b95e38b9045f21d23c4b3b1613def488d9826e293", + "0x0000000000000000000000000000000000000000000000000000000000000244": "689a76ccb80461e78e22e1997c949bb143882516f7db6ec6aeb1062342881540", + "0x0000000000000000000000000000000000000000000000000000000000000245": "179654e16a3900b68bb66927ab2e714430ee0eadadf1930eb6073454bfe66d72", + "0x0000000000000000000000000000000000000000000000000000000000000246": "7a4bcc5016b6d39420221e1206b50128e0efe3fee6a1c5eb573e6bedaab5f215", + "0x0000000000000000000000000000000000000000000000000000000000000247": "54d398355fd128ea6d1db1e790364b184845a3687dfa213ac446f7d298755717", + "0x0000000000000000000000000000000000000000000000000000000000000248": "c52e636696619f0055d30d50b17d0f5a62537fa775dcd349d3948956c57a578d", + "0x0000000000000000000000000000000000000000000000000000000000000249": "6c72dd1012068c32cf36641b1564e48296fb121ab7a9a9baefd5c28416d8d054", + "0x000000000000000000000000000000000000000000000000000000000000024a": "a9697418504b9f328eb3b4bb3c4a82ccdad93df60ba4f9666a9ed9d4b61215af", + "0x000000000000000000000000000000000000000000000000000000000000024b": "eccc52333b224ed9aa4a274c7c2e6ad7043da8fec8cbd1841c4df037d272a070", + "0x000000000000000000000000000000000000000000000000000000000000024c": "0e033ec5d1b65a42204e9caf992cf062bf74c8a309c9b2e769b858e366650d94", + "0x000000000000000000000000000000000000000000000000000000000000024d": "787a2bb58c6e1d4ac5d91e6fb7bbf1713c1e902ca3b86d920504167e9704e574", + "0x000000000000000000000000000000000000000000000000000000000000024e": "aa4611fb72fb0a85c2d1bc1083c160f1f316538c7f58ef556f4340ea20068ce1", + "0x000000000000000000000000000000000000000000000000000000000000024f": "5e35d6b8ace034f15f9ea52f7f1a6a1ec774e7a4234137c6c5bb913dfd733971", + "0x0000000000000000000000000000000000000000000000000000000000000250": "0a0ed30330099aaed4d9fc919882376e3624d21bc3b39691003081f575f6b27f", + "0x0000000000000000000000000000000000000000000000000000000000000251": "3f445c59eb76afc237ab0aff24e4afece553617597903e7c54e2e52535f5f69a", + "0x0000000000000000000000000000000000000000000000000000000000000252": "5b913043ae15b19475bdf3bce3000c885837ce744816ee34aa4c4fa13c29e273", + "0x0000000000000000000000000000000000000000000000000000000000000253": "cd4351d6d5b3636ccb5424b17c5a8b33e881f83ac158694c1f198b70290d93", + "0x0000000000000000000000000000000000000000000000000000000000000254": "84dfa1c19923082db1a37ae307ef33a005c1ae987763f3537078e44a91f72cef", + "0x0000000000000000000000000000000000000000000000000000000000000255": "4f62f1eb606efbd760b849b83f48b5080b0045364da18111e5f81faa74bdf648", + "0x0000000000000000000000000000000000000000000000000000000000000256": "6845189fc5fffc30575935e9f8db4c343bcf5001360241b5af6a10c91f5b1003", + "0x0000000000000000000000000000000000000000000000000000000000000257": "7e80093a491eba0e5b2c1895837902f64f514100221801318fe391e1e09c96a6" + }, + "address": "0x0000f90827f1c53a10cb7a02335b175320002935", + "key": "0x6c9d57be05dd69371c4dd2e871bce6e9f4124236825bb612ee18a45e5675be51" + }, + "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02": { + "balance": "42", + "nonce": 0, + "root": "0x133a1f5d3770d41b04eba028628d43b91ab918068a4a77563f7b1a7a51200855", + "codeHash": "0xf57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000003c": "3c", + "0x0000000000000000000000000000000000000000000000000000000000000046": "46", + "0x0000000000000000000000000000000000000000000000000000000000000050": "50", + "0x000000000000000000000000000000000000000000000000000000000000005a": "5a", + "0x0000000000000000000000000000000000000000000000000000000000000064": "64", + "0x000000000000000000000000000000000000000000000000000000000000006e": "6e", + "0x0000000000000000000000000000000000000000000000000000000000000078": "78", + "0x0000000000000000000000000000000000000000000000000000000000000082": "82", + "0x000000000000000000000000000000000000000000000000000000000000008c": "8c", + "0x0000000000000000000000000000000000000000000000000000000000000096": "96", + "0x00000000000000000000000000000000000000000000000000000000000000a0": "a0", + "0x00000000000000000000000000000000000000000000000000000000000000aa": "aa", + "0x00000000000000000000000000000000000000000000000000000000000000b4": "b4", + "0x00000000000000000000000000000000000000000000000000000000000000be": "be", + "0x00000000000000000000000000000000000000000000000000000000000000c8": "c8", + "0x00000000000000000000000000000000000000000000000000000000000000d2": "d2", + "0x00000000000000000000000000000000000000000000000000000000000000dc": "dc", + "0x00000000000000000000000000000000000000000000000000000000000000e6": "e6", + "0x00000000000000000000000000000000000000000000000000000000000000f0": "f0", + "0x00000000000000000000000000000000000000000000000000000000000000fa": "fa", + "0x0000000000000000000000000000000000000000000000000000000000000104": "0104", + "0x000000000000000000000000000000000000000000000000000000000000010e": "010e", + "0x0000000000000000000000000000000000000000000000000000000000000118": "0118", + "0x0000000000000000000000000000000000000000000000000000000000000122": "0122", + "0x000000000000000000000000000000000000000000000000000000000000012c": "012c", + "0x0000000000000000000000000000000000000000000000000000000000000136": "0136", + "0x0000000000000000000000000000000000000000000000000000000000000140": "0140", + "0x000000000000000000000000000000000000000000000000000000000000014a": "014a", + "0x0000000000000000000000000000000000000000000000000000000000000154": "0154", + "0x000000000000000000000000000000000000000000000000000000000000015e": "015e", + "0x0000000000000000000000000000000000000000000000000000000000000168": "0168", + "0x0000000000000000000000000000000000000000000000000000000000000172": "0172", + "0x000000000000000000000000000000000000000000000000000000000000017c": "017c", + "0x0000000000000000000000000000000000000000000000000000000000000186": "0186", + "0x0000000000000000000000000000000000000000000000000000000000000190": "0190", + "0x000000000000000000000000000000000000000000000000000000000000019a": "019a", + "0x00000000000000000000000000000000000000000000000000000000000001a4": "01a4", + "0x00000000000000000000000000000000000000000000000000000000000001ae": "01ae", + "0x00000000000000000000000000000000000000000000000000000000000001b8": "01b8", + "0x00000000000000000000000000000000000000000000000000000000000001c2": "01c2", + "0x00000000000000000000000000000000000000000000000000000000000001cc": "01cc", + "0x00000000000000000000000000000000000000000000000000000000000001d6": "01d6", + "0x00000000000000000000000000000000000000000000000000000000000001e0": "01e0", + "0x00000000000000000000000000000000000000000000000000000000000001ea": "01ea", + "0x00000000000000000000000000000000000000000000000000000000000001f4": "01f4", + "0x00000000000000000000000000000000000000000000000000000000000001fe": "01fe", + "0x0000000000000000000000000000000000000000000000000000000000000208": "0208", + "0x0000000000000000000000000000000000000000000000000000000000000212": "0212", + "0x000000000000000000000000000000000000000000000000000000000000021c": "021c", + "0x0000000000000000000000000000000000000000000000000000000000000226": "0226", + "0x0000000000000000000000000000000000000000000000000000000000000230": "0230", + "0x000000000000000000000000000000000000000000000000000000000000023a": "023a", + "0x0000000000000000000000000000000000000000000000000000000000000244": "0244", + "0x000000000000000000000000000000000000000000000000000000000000024e": "024e", + "0x0000000000000000000000000000000000000000000000000000000000000258": "0258", + "0x0000000000000000000000000000000000000000000000000000000000000262": "0262", + "0x000000000000000000000000000000000000000000000000000000000000026c": "026c", + "0x0000000000000000000000000000000000000000000000000000000000000276": "0276", + "0x0000000000000000000000000000000000000000000000000000000000000280": "0280", + "0x000000000000000000000000000000000000000000000000000000000000028a": "028a", + "0x0000000000000000000000000000000000000000000000000000000000000294": "0294", + "0x000000000000000000000000000000000000000000000000000000000000029e": "029e", + "0x00000000000000000000000000000000000000000000000000000000000002a8": "02a8", + "0x00000000000000000000000000000000000000000000000000000000000002b2": "02b2", + "0x00000000000000000000000000000000000000000000000000000000000002bc": "02bc", + "0x00000000000000000000000000000000000000000000000000000000000002c6": "02c6", + "0x00000000000000000000000000000000000000000000000000000000000002d0": "02d0", + "0x00000000000000000000000000000000000000000000000000000000000002da": "02da", + "0x00000000000000000000000000000000000000000000000000000000000002e4": "02e4", + "0x00000000000000000000000000000000000000000000000000000000000002ee": "02ee", + "0x00000000000000000000000000000000000000000000000000000000000002f8": "02f8", + "0x0000000000000000000000000000000000000000000000000000000000000302": "0302", + "0x000000000000000000000000000000000000000000000000000000000000030c": "030c", + "0x0000000000000000000000000000000000000000000000000000000000000316": "0316", + "0x0000000000000000000000000000000000000000000000000000000000000320": "0320", + "0x000000000000000000000000000000000000000000000000000000000000032a": "032a", + "0x0000000000000000000000000000000000000000000000000000000000000334": "0334", + "0x000000000000000000000000000000000000000000000000000000000000033e": "033e", + "0x0000000000000000000000000000000000000000000000000000000000000348": "0348", + "0x0000000000000000000000000000000000000000000000000000000000000352": "0352", + "0x000000000000000000000000000000000000000000000000000000000000035c": "035c", + "0x0000000000000000000000000000000000000000000000000000000000000366": "0366", + "0x0000000000000000000000000000000000000000000000000000000000000370": "0370", + "0x000000000000000000000000000000000000000000000000000000000000037a": "037a", + "0x0000000000000000000000000000000000000000000000000000000000000384": "0384", + "0x000000000000000000000000000000000000000000000000000000000000038e": "038e", + "0x0000000000000000000000000000000000000000000000000000000000000398": "0398", + "0x00000000000000000000000000000000000000000000000000000000000003a2": "03a2", + "0x00000000000000000000000000000000000000000000000000000000000003ac": "03ac", + "0x00000000000000000000000000000000000000000000000000000000000003b6": "03b6", + "0x00000000000000000000000000000000000000000000000000000000000003c0": "03c0", + "0x00000000000000000000000000000000000000000000000000000000000003ca": "03ca", + "0x00000000000000000000000000000000000000000000000000000000000003d4": "03d4", + "0x00000000000000000000000000000000000000000000000000000000000003de": "03de", + "0x00000000000000000000000000000000000000000000000000000000000003e8": "03e8", + "0x00000000000000000000000000000000000000000000000000000000000003f2": "03f2", + "0x00000000000000000000000000000000000000000000000000000000000003fc": "03fc", + "0x0000000000000000000000000000000000000000000000000000000000000406": "0406", + "0x0000000000000000000000000000000000000000000000000000000000000410": "0410", + "0x000000000000000000000000000000000000000000000000000000000000041a": "041a", + "0x0000000000000000000000000000000000000000000000000000000000000424": "0424", + "0x000000000000000000000000000000000000000000000000000000000000042e": "042e", + "0x0000000000000000000000000000000000000000000000000000000000000438": "0438", + "0x0000000000000000000000000000000000000000000000000000000000000442": "0442", + "0x000000000000000000000000000000000000000000000000000000000000044c": "044c", + "0x0000000000000000000000000000000000000000000000000000000000000456": "0456", + "0x0000000000000000000000000000000000000000000000000000000000000460": "0460", + "0x000000000000000000000000000000000000000000000000000000000000046a": "046a", + "0x0000000000000000000000000000000000000000000000000000000000000474": "0474", + "0x000000000000000000000000000000000000000000000000000000000000047e": "047e", + "0x0000000000000000000000000000000000000000000000000000000000000488": "0488", + "0x0000000000000000000000000000000000000000000000000000000000000492": "0492", + "0x000000000000000000000000000000000000000000000000000000000000049c": "049c", + "0x00000000000000000000000000000000000000000000000000000000000004a6": "04a6", + "0x00000000000000000000000000000000000000000000000000000000000004b0": "04b0", + "0x00000000000000000000000000000000000000000000000000000000000004ba": "04ba", + "0x00000000000000000000000000000000000000000000000000000000000004c4": "04c4", + "0x00000000000000000000000000000000000000000000000000000000000004ce": "04ce", + "0x00000000000000000000000000000000000000000000000000000000000004d8": "04d8", + "0x00000000000000000000000000000000000000000000000000000000000004e2": "04e2", + "0x00000000000000000000000000000000000000000000000000000000000004ec": "04ec", + "0x00000000000000000000000000000000000000000000000000000000000004f6": "04f6", + "0x0000000000000000000000000000000000000000000000000000000000000500": "0500", + "0x000000000000000000000000000000000000000000000000000000000000050a": "050a", + "0x0000000000000000000000000000000000000000000000000000000000000514": "0514", + "0x000000000000000000000000000000000000000000000000000000000000051e": "051e", + "0x0000000000000000000000000000000000000000000000000000000000000528": "0528", + "0x0000000000000000000000000000000000000000000000000000000000000532": "0532", + "0x000000000000000000000000000000000000000000000000000000000000053c": "053c", + "0x0000000000000000000000000000000000000000000000000000000000000546": "0546", + "0x0000000000000000000000000000000000000000000000000000000000000550": "0550", + "0x000000000000000000000000000000000000000000000000000000000000055a": "055a", + "0x0000000000000000000000000000000000000000000000000000000000000564": "0564", + "0x000000000000000000000000000000000000000000000000000000000000056e": "056e", + "0x0000000000000000000000000000000000000000000000000000000000000578": "0578", + "0x0000000000000000000000000000000000000000000000000000000000000582": "0582", + "0x000000000000000000000000000000000000000000000000000000000000058c": "058c", + "0x0000000000000000000000000000000000000000000000000000000000000596": "0596", + "0x00000000000000000000000000000000000000000000000000000000000005a0": "05a0", + "0x00000000000000000000000000000000000000000000000000000000000005aa": "05aa", + "0x00000000000000000000000000000000000000000000000000000000000005b4": "05b4", + "0x00000000000000000000000000000000000000000000000000000000000005be": "05be", + "0x00000000000000000000000000000000000000000000000000000000000005c8": "05c8", + "0x00000000000000000000000000000000000000000000000000000000000005d2": "05d2", + "0x00000000000000000000000000000000000000000000000000000000000005dc": "05dc", + "0x00000000000000000000000000000000000000000000000000000000000005e6": "05e6", + "0x00000000000000000000000000000000000000000000000000000000000005f0": "05f0", + "0x00000000000000000000000000000000000000000000000000000000000005fa": "05fa", + "0x0000000000000000000000000000000000000000000000000000000000000604": "0604", + "0x000000000000000000000000000000000000000000000000000000000000060e": "060e", + "0x0000000000000000000000000000000000000000000000000000000000000618": "0618", + "0x0000000000000000000000000000000000000000000000000000000000000622": "0622", + "0x000000000000000000000000000000000000000000000000000000000000062c": "062c", + "0x0000000000000000000000000000000000000000000000000000000000000636": "0636", + "0x0000000000000000000000000000000000000000000000000000000000000640": "0640", + "0x000000000000000000000000000000000000000000000000000000000000064a": "064a", + "0x0000000000000000000000000000000000000000000000000000000000000654": "0654", + "0x000000000000000000000000000000000000000000000000000000000000065e": "065e", + "0x0000000000000000000000000000000000000000000000000000000000000668": "0668", + "0x0000000000000000000000000000000000000000000000000000000000000672": "0672", + "0x000000000000000000000000000000000000000000000000000000000000067c": "067c", + "0x0000000000000000000000000000000000000000000000000000000000000686": "0686", + "0x0000000000000000000000000000000000000000000000000000000000000690": "0690", + "0x000000000000000000000000000000000000000000000000000000000000069a": "069a", + "0x00000000000000000000000000000000000000000000000000000000000006a4": "06a4", + "0x00000000000000000000000000000000000000000000000000000000000006ae": "06ae", + "0x00000000000000000000000000000000000000000000000000000000000006b8": "06b8", + "0x00000000000000000000000000000000000000000000000000000000000006c2": "06c2", + "0x00000000000000000000000000000000000000000000000000000000000006cc": "06cc", + "0x00000000000000000000000000000000000000000000000000000000000006d6": "06d6", + "0x00000000000000000000000000000000000000000000000000000000000006e0": "06e0", + "0x00000000000000000000000000000000000000000000000000000000000006ea": "06ea", + "0x00000000000000000000000000000000000000000000000000000000000006f4": "06f4", + "0x00000000000000000000000000000000000000000000000000000000000006fe": "06fe", + "0x0000000000000000000000000000000000000000000000000000000000000708": "0708", + "0x0000000000000000000000000000000000000000000000000000000000000712": "0712", + "0x000000000000000000000000000000000000000000000000000000000000071c": "071c", + "0x0000000000000000000000000000000000000000000000000000000000000726": "0726", + "0x0000000000000000000000000000000000000000000000000000000000000730": "0730", + "0x000000000000000000000000000000000000000000000000000000000000073a": "073a", + "0x0000000000000000000000000000000000000000000000000000000000000744": "0744", + "0x000000000000000000000000000000000000000000000000000000000000074e": "074e", + "0x0000000000000000000000000000000000000000000000000000000000000758": "0758", + "0x0000000000000000000000000000000000000000000000000000000000000762": "0762", + "0x000000000000000000000000000000000000000000000000000000000000076c": "076c", + "0x0000000000000000000000000000000000000000000000000000000000000776": "0776", + "0x0000000000000000000000000000000000000000000000000000000000000780": "0780", + "0x000000000000000000000000000000000000000000000000000000000000078a": "078a", + "0x0000000000000000000000000000000000000000000000000000000000000794": "0794", + "0x000000000000000000000000000000000000000000000000000000000000079e": "079e", + "0x00000000000000000000000000000000000000000000000000000000000007a8": "07a8", + "0x00000000000000000000000000000000000000000000000000000000000007b2": "07b2", + "0x00000000000000000000000000000000000000000000000000000000000007bc": "07bc", + "0x00000000000000000000000000000000000000000000000000000000000007c6": "07c6", + "0x00000000000000000000000000000000000000000000000000000000000007d0": "07d0", + "0x00000000000000000000000000000000000000000000000000000000000007da": "07da", + "0x00000000000000000000000000000000000000000000000000000000000007e4": "07e4", + "0x00000000000000000000000000000000000000000000000000000000000007ee": "07ee", + "0x00000000000000000000000000000000000000000000000000000000000007f8": "07f8", + "0x0000000000000000000000000000000000000000000000000000000000000802": "0802", + "0x000000000000000000000000000000000000000000000000000000000000080c": "080c", + "0x0000000000000000000000000000000000000000000000000000000000000816": "0816", + "0x0000000000000000000000000000000000000000000000000000000000000820": "0820", + "0x000000000000000000000000000000000000000000000000000000000000082a": "082a", + "0x0000000000000000000000000000000000000000000000000000000000000834": "0834", + "0x000000000000000000000000000000000000000000000000000000000000083e": "083e", + "0x0000000000000000000000000000000000000000000000000000000000000848": "0848", + "0x0000000000000000000000000000000000000000000000000000000000000852": "0852", + "0x000000000000000000000000000000000000000000000000000000000000085c": "085c", + "0x0000000000000000000000000000000000000000000000000000000000000866": "0866", + "0x0000000000000000000000000000000000000000000000000000000000000870": "0870", + "0x000000000000000000000000000000000000000000000000000000000000087a": "087a", + "0x0000000000000000000000000000000000000000000000000000000000000884": "0884", + "0x000000000000000000000000000000000000000000000000000000000000088e": "088e", + "0x0000000000000000000000000000000000000000000000000000000000000898": "0898", + "0x00000000000000000000000000000000000000000000000000000000000008a2": "08a2", + "0x00000000000000000000000000000000000000000000000000000000000008ac": "08ac", + "0x00000000000000000000000000000000000000000000000000000000000008b6": "08b6", + "0x00000000000000000000000000000000000000000000000000000000000008c0": "08c0", + "0x00000000000000000000000000000000000000000000000000000000000008ca": "08ca", + "0x00000000000000000000000000000000000000000000000000000000000008d4": "08d4", + "0x00000000000000000000000000000000000000000000000000000000000008de": "08de", + "0x00000000000000000000000000000000000000000000000000000000000008e8": "08e8", + "0x00000000000000000000000000000000000000000000000000000000000008f2": "08f2", + "0x00000000000000000000000000000000000000000000000000000000000008fc": "08fc", + "0x0000000000000000000000000000000000000000000000000000000000000906": "0906", + "0x0000000000000000000000000000000000000000000000000000000000000910": "0910", + "0x000000000000000000000000000000000000000000000000000000000000091a": "091a", + "0x0000000000000000000000000000000000000000000000000000000000000924": "0924", + "0x000000000000000000000000000000000000000000000000000000000000092e": "092e", + "0x0000000000000000000000000000000000000000000000000000000000000938": "0938", + "0x0000000000000000000000000000000000000000000000000000000000000942": "0942", + "0x000000000000000000000000000000000000000000000000000000000000094c": "094c", + "0x0000000000000000000000000000000000000000000000000000000000000956": "0956", + "0x0000000000000000000000000000000000000000000000000000000000000960": "0960", + "0x000000000000000000000000000000000000000000000000000000000000096a": "096a", + "0x0000000000000000000000000000000000000000000000000000000000000974": "0974", + "0x000000000000000000000000000000000000000000000000000000000000097e": "097e", + "0x0000000000000000000000000000000000000000000000000000000000000988": "0988", + "0x0000000000000000000000000000000000000000000000000000000000000992": "0992", + "0x000000000000000000000000000000000000000000000000000000000000099c": "099c", + "0x00000000000000000000000000000000000000000000000000000000000009a6": "09a6", + "0x00000000000000000000000000000000000000000000000000000000000009b0": "09b0", + "0x00000000000000000000000000000000000000000000000000000000000009ba": "09ba", + "0x00000000000000000000000000000000000000000000000000000000000009c4": "09c4", + "0x00000000000000000000000000000000000000000000000000000000000009ce": "09ce", + "0x00000000000000000000000000000000000000000000000000000000000009d8": "09d8", + "0x00000000000000000000000000000000000000000000000000000000000009e2": "09e2", + "0x00000000000000000000000000000000000000000000000000000000000009ec": "09ec", + "0x00000000000000000000000000000000000000000000000000000000000009f6": "09f6", + "0x0000000000000000000000000000000000000000000000000000000000000a00": "0a00", + "0x0000000000000000000000000000000000000000000000000000000000000a0a": "0a0a", + "0x0000000000000000000000000000000000000000000000000000000000000a14": "0a14", + "0x0000000000000000000000000000000000000000000000000000000000000a1e": "0a1e", + "0x0000000000000000000000000000000000000000000000000000000000000a28": "0a28", + "0x0000000000000000000000000000000000000000000000000000000000000a32": "0a32", + "0x0000000000000000000000000000000000000000000000000000000000000a3c": "0a3c", + "0x0000000000000000000000000000000000000000000000000000000000000a46": "0a46", + "0x0000000000000000000000000000000000000000000000000000000000000a50": "0a50", + "0x0000000000000000000000000000000000000000000000000000000000000a5a": "0a5a", + "0x0000000000000000000000000000000000000000000000000000000000000a64": "0a64", + "0x0000000000000000000000000000000000000000000000000000000000000a6e": "0a6e", + "0x0000000000000000000000000000000000000000000000000000000000000a78": "0a78", + "0x0000000000000000000000000000000000000000000000000000000000000a82": "0a82", + "0x0000000000000000000000000000000000000000000000000000000000000a8c": "0a8c", + "0x0000000000000000000000000000000000000000000000000000000000000a96": "0a96", + "0x0000000000000000000000000000000000000000000000000000000000000aa0": "0aa0", + "0x0000000000000000000000000000000000000000000000000000000000000aaa": "0aaa", + "0x0000000000000000000000000000000000000000000000000000000000000ab4": "0ab4", + "0x0000000000000000000000000000000000000000000000000000000000000abe": "0abe", + "0x0000000000000000000000000000000000000000000000000000000000000ac8": "0ac8", + "0x0000000000000000000000000000000000000000000000000000000000000ad2": "0ad2", + "0x0000000000000000000000000000000000000000000000000000000000000adc": "0adc", + "0x0000000000000000000000000000000000000000000000000000000000000ae6": "0ae6", + "0x0000000000000000000000000000000000000000000000000000000000000af0": "0af0", + "0x0000000000000000000000000000000000000000000000000000000000000afa": "0afa", + "0x0000000000000000000000000000000000000000000000000000000000000b04": "0b04", + "0x0000000000000000000000000000000000000000000000000000000000000b0e": "0b0e", + "0x0000000000000000000000000000000000000000000000000000000000000b18": "0b18", + "0x0000000000000000000000000000000000000000000000000000000000000b22": "0b22", + "0x0000000000000000000000000000000000000000000000000000000000000b2c": "0b2c", + "0x0000000000000000000000000000000000000000000000000000000000000b36": "0b36", + "0x0000000000000000000000000000000000000000000000000000000000000b40": "0b40", + "0x0000000000000000000000000000000000000000000000000000000000000b4a": "0b4a", + "0x0000000000000000000000000000000000000000000000000000000000000b54": "0b54", + "0x0000000000000000000000000000000000000000000000000000000000000b5e": "0b5e", + "0x0000000000000000000000000000000000000000000000000000000000000b68": "0b68", + "0x0000000000000000000000000000000000000000000000000000000000000b72": "0b72", + "0x0000000000000000000000000000000000000000000000000000000000000b7c": "0b7c", + "0x0000000000000000000000000000000000000000000000000000000000000b86": "0b86", + "0x0000000000000000000000000000000000000000000000000000000000000b90": "0b90", + "0x0000000000000000000000000000000000000000000000000000000000000b9a": "0b9a", + "0x0000000000000000000000000000000000000000000000000000000000000ba4": "0ba4", + "0x0000000000000000000000000000000000000000000000000000000000000bae": "0bae", + "0x0000000000000000000000000000000000000000000000000000000000000bb8": "0bb8", + "0x0000000000000000000000000000000000000000000000000000000000000bc2": "0bc2", + "0x0000000000000000000000000000000000000000000000000000000000000bcc": "0bcc", + "0x0000000000000000000000000000000000000000000000000000000000000bd6": "0bd6", + "0x0000000000000000000000000000000000000000000000000000000000000be0": "0be0", + "0x0000000000000000000000000000000000000000000000000000000000000bea": "0bea", + "0x0000000000000000000000000000000000000000000000000000000000000bf4": "0bf4", + "0x0000000000000000000000000000000000000000000000000000000000000bfe": "0bfe", + "0x0000000000000000000000000000000000000000000000000000000000000c08": "0c08", + "0x0000000000000000000000000000000000000000000000000000000000000c12": "0c12", + "0x0000000000000000000000000000000000000000000000000000000000000c1c": "0c1c", + "0x0000000000000000000000000000000000000000000000000000000000000c26": "0c26", + "0x0000000000000000000000000000000000000000000000000000000000000c30": "0c30", + "0x0000000000000000000000000000000000000000000000000000000000000c3a": "0c3a", + "0x0000000000000000000000000000000000000000000000000000000000000c44": "0c44", + "0x0000000000000000000000000000000000000000000000000000000000000c4e": "0c4e", + "0x0000000000000000000000000000000000000000000000000000000000000c58": "0c58", + "0x0000000000000000000000000000000000000000000000000000000000000c62": "0c62", + "0x0000000000000000000000000000000000000000000000000000000000000c6c": "0c6c", + "0x0000000000000000000000000000000000000000000000000000000000000c76": "0c76", + "0x0000000000000000000000000000000000000000000000000000000000000c80": "0c80", + "0x0000000000000000000000000000000000000000000000000000000000000c8a": "0c8a", + "0x0000000000000000000000000000000000000000000000000000000000000c94": "0c94", + "0x0000000000000000000000000000000000000000000000000000000000000c9e": "0c9e", + "0x0000000000000000000000000000000000000000000000000000000000000ca8": "0ca8", + "0x0000000000000000000000000000000000000000000000000000000000000cb2": "0cb2", + "0x0000000000000000000000000000000000000000000000000000000000000cbc": "0cbc", + "0x0000000000000000000000000000000000000000000000000000000000000cc6": "0cc6", + "0x0000000000000000000000000000000000000000000000000000000000000cd0": "0cd0", + "0x0000000000000000000000000000000000000000000000000000000000000cda": "0cda", + "0x0000000000000000000000000000000000000000000000000000000000000ce4": "0ce4", + "0x0000000000000000000000000000000000000000000000000000000000000cee": "0cee", + "0x0000000000000000000000000000000000000000000000000000000000000cf8": "0cf8", + "0x0000000000000000000000000000000000000000000000000000000000000d02": "0d02", + "0x0000000000000000000000000000000000000000000000000000000000000d0c": "0d0c", + "0x0000000000000000000000000000000000000000000000000000000000000d16": "0d16", + "0x0000000000000000000000000000000000000000000000000000000000000d20": "0d20", + "0x0000000000000000000000000000000000000000000000000000000000000d2a": "0d2a", + "0x0000000000000000000000000000000000000000000000000000000000000d34": "0d34", + "0x0000000000000000000000000000000000000000000000000000000000000d3e": "0d3e", + "0x0000000000000000000000000000000000000000000000000000000000000d48": "0d48", + "0x0000000000000000000000000000000000000000000000000000000000000d52": "0d52", + "0x0000000000000000000000000000000000000000000000000000000000000d5c": "0d5c", + "0x0000000000000000000000000000000000000000000000000000000000000d66": "0d66", + "0x0000000000000000000000000000000000000000000000000000000000000d70": "0d70", + "0x0000000000000000000000000000000000000000000000000000000000000d7a": "0d7a", + "0x0000000000000000000000000000000000000000000000000000000000000d84": "0d84", + "0x0000000000000000000000000000000000000000000000000000000000000d8e": "0d8e", + "0x0000000000000000000000000000000000000000000000000000000000000d98": "0d98", + "0x0000000000000000000000000000000000000000000000000000000000000da2": "0da2", + "0x0000000000000000000000000000000000000000000000000000000000000dac": "0dac", + "0x0000000000000000000000000000000000000000000000000000000000000db6": "0db6", + "0x0000000000000000000000000000000000000000000000000000000000000dc0": "0dc0", + "0x0000000000000000000000000000000000000000000000000000000000000dca": "0dca", + "0x0000000000000000000000000000000000000000000000000000000000000dd4": "0dd4", + "0x0000000000000000000000000000000000000000000000000000000000000dde": "0dde", + "0x0000000000000000000000000000000000000000000000000000000000000de8": "0de8", + "0x0000000000000000000000000000000000000000000000000000000000000df2": "0df2", + "0x0000000000000000000000000000000000000000000000000000000000000dfc": "0dfc", + "0x0000000000000000000000000000000000000000000000000000000000000e06": "0e06", + "0x0000000000000000000000000000000000000000000000000000000000000e10": "0e10", + "0x0000000000000000000000000000000000000000000000000000000000000e1a": "0e1a", + "0x0000000000000000000000000000000000000000000000000000000000000e24": "0e24", + "0x0000000000000000000000000000000000000000000000000000000000000e2e": "0e2e", + "0x0000000000000000000000000000000000000000000000000000000000000e38": "0e38", + "0x0000000000000000000000000000000000000000000000000000000000000e42": "0e42", + "0x0000000000000000000000000000000000000000000000000000000000000e4c": "0e4c", + "0x0000000000000000000000000000000000000000000000000000000000000e56": "0e56", + "0x0000000000000000000000000000000000000000000000000000000000000e60": "0e60", + "0x0000000000000000000000000000000000000000000000000000000000000e6a": "0e6a", + "0x0000000000000000000000000000000000000000000000000000000000000e74": "0e74", + "0x0000000000000000000000000000000000000000000000000000000000000e7e": "0e7e", + "0x0000000000000000000000000000000000000000000000000000000000000e88": "0e88", + "0x0000000000000000000000000000000000000000000000000000000000000e92": "0e92", + "0x0000000000000000000000000000000000000000000000000000000000000e9c": "0e9c", + "0x0000000000000000000000000000000000000000000000000000000000000ea6": "0ea6", + "0x0000000000000000000000000000000000000000000000000000000000000eb0": "0eb0", + "0x0000000000000000000000000000000000000000000000000000000000000eba": "0eba", + "0x0000000000000000000000000000000000000000000000000000000000000ec4": "0ec4", + "0x0000000000000000000000000000000000000000000000000000000000000ece": "0ece", + "0x0000000000000000000000000000000000000000000000000000000000000ed8": "0ed8", + "0x0000000000000000000000000000000000000000000000000000000000000ee2": "0ee2", + "0x0000000000000000000000000000000000000000000000000000000000000eec": "0eec", + "0x0000000000000000000000000000000000000000000000000000000000000ef6": "0ef6", + "0x0000000000000000000000000000000000000000000000000000000000000f00": "0f00", + "0x0000000000000000000000000000000000000000000000000000000000000f0a": "0f0a", + "0x0000000000000000000000000000000000000000000000000000000000000f14": "0f14", + "0x0000000000000000000000000000000000000000000000000000000000000f1e": "0f1e", + "0x0000000000000000000000000000000000000000000000000000000000000f28": "0f28", + "0x0000000000000000000000000000000000000000000000000000000000000f32": "0f32", + "0x0000000000000000000000000000000000000000000000000000000000000f3c": "0f3c", + "0x0000000000000000000000000000000000000000000000000000000000000f46": "0f46", + "0x0000000000000000000000000000000000000000000000000000000000000f50": "0f50", + "0x0000000000000000000000000000000000000000000000000000000000000f5a": "0f5a", + "0x0000000000000000000000000000000000000000000000000000000000000f64": "0f64", + "0x0000000000000000000000000000000000000000000000000000000000000f6e": "0f6e", + "0x0000000000000000000000000000000000000000000000000000000000000f78": "0f78", + "0x0000000000000000000000000000000000000000000000000000000000000f82": "0f82", + "0x0000000000000000000000000000000000000000000000000000000000000f8c": "0f8c", + "0x0000000000000000000000000000000000000000000000000000000000000f96": "0f96", + "0x0000000000000000000000000000000000000000000000000000000000000fa0": "0fa0", + "0x0000000000000000000000000000000000000000000000000000000000000faa": "0faa", + "0x0000000000000000000000000000000000000000000000000000000000000fb4": "0fb4", + "0x0000000000000000000000000000000000000000000000000000000000000fbe": "0fbe", + "0x0000000000000000000000000000000000000000000000000000000000000fc8": "0fc8", + "0x0000000000000000000000000000000000000000000000000000000000000fd2": "0fd2", + "0x0000000000000000000000000000000000000000000000000000000000000fdc": "0fdc", + "0x0000000000000000000000000000000000000000000000000000000000000fe6": "0fe6", + "0x0000000000000000000000000000000000000000000000000000000000000ff0": "0ff0", + "0x0000000000000000000000000000000000000000000000000000000000000ffa": "0ffa", + "0x0000000000000000000000000000000000000000000000000000000000001004": "1004", + "0x000000000000000000000000000000000000000000000000000000000000100e": "100e", + "0x0000000000000000000000000000000000000000000000000000000000001018": "1018", + "0x0000000000000000000000000000000000000000000000000000000000001022": "1022", + "0x000000000000000000000000000000000000000000000000000000000000102c": "102c", + "0x0000000000000000000000000000000000000000000000000000000000001036": "1036", + "0x0000000000000000000000000000000000000000000000000000000000001040": "1040", + "0x000000000000000000000000000000000000000000000000000000000000104a": "104a", + "0x0000000000000000000000000000000000000000000000000000000000001054": "1054", + "0x000000000000000000000000000000000000000000000000000000000000105e": "105e", + "0x0000000000000000000000000000000000000000000000000000000000001068": "1068", + "0x0000000000000000000000000000000000000000000000000000000000001072": "1072", + "0x000000000000000000000000000000000000000000000000000000000000107c": "107c", + "0x0000000000000000000000000000000000000000000000000000000000001086": "1086", + "0x0000000000000000000000000000000000000000000000000000000000001090": "1090", + "0x000000000000000000000000000000000000000000000000000000000000109a": "109a", + "0x00000000000000000000000000000000000000000000000000000000000010a4": "10a4", + "0x00000000000000000000000000000000000000000000000000000000000010ae": "10ae", + "0x00000000000000000000000000000000000000000000000000000000000010b8": "10b8", + "0x00000000000000000000000000000000000000000000000000000000000010c2": "10c2", + "0x00000000000000000000000000000000000000000000000000000000000010cc": "10cc", + "0x00000000000000000000000000000000000000000000000000000000000010d6": "10d6", + "0x00000000000000000000000000000000000000000000000000000000000010e0": "10e0", + "0x00000000000000000000000000000000000000000000000000000000000010ea": "10ea", + "0x00000000000000000000000000000000000000000000000000000000000010f4": "10f4", + "0x00000000000000000000000000000000000000000000000000000000000010fe": "10fe", + "0x0000000000000000000000000000000000000000000000000000000000001108": "1108", + "0x0000000000000000000000000000000000000000000000000000000000001112": "1112", + "0x000000000000000000000000000000000000000000000000000000000000111c": "111c", + "0x0000000000000000000000000000000000000000000000000000000000001126": "1126", + "0x0000000000000000000000000000000000000000000000000000000000001130": "1130", + "0x000000000000000000000000000000000000000000000000000000000000113a": "113a", + "0x0000000000000000000000000000000000000000000000000000000000001144": "1144", + "0x000000000000000000000000000000000000000000000000000000000000114e": "114e", + "0x0000000000000000000000000000000000000000000000000000000000001158": "1158", + "0x0000000000000000000000000000000000000000000000000000000000001162": "1162", + "0x000000000000000000000000000000000000000000000000000000000000116c": "116c", + "0x0000000000000000000000000000000000000000000000000000000000001176": "1176", + "0x0000000000000000000000000000000000000000000000000000000000001180": "1180", + "0x000000000000000000000000000000000000000000000000000000000000118a": "118a", + "0x0000000000000000000000000000000000000000000000000000000000001194": "1194", + "0x000000000000000000000000000000000000000000000000000000000000119e": "119e", + "0x00000000000000000000000000000000000000000000000000000000000011a8": "11a8", + "0x00000000000000000000000000000000000000000000000000000000000011b2": "11b2", + "0x00000000000000000000000000000000000000000000000000000000000011bc": "11bc", + "0x00000000000000000000000000000000000000000000000000000000000011c6": "11c6", + "0x00000000000000000000000000000000000000000000000000000000000011d0": "11d0", + "0x00000000000000000000000000000000000000000000000000000000000011da": "11da", + "0x00000000000000000000000000000000000000000000000000000000000011e4": "11e4", + "0x00000000000000000000000000000000000000000000000000000000000011ee": "11ee", + "0x00000000000000000000000000000000000000000000000000000000000011f8": "11f8", + "0x0000000000000000000000000000000000000000000000000000000000001202": "1202", + "0x000000000000000000000000000000000000000000000000000000000000120c": "120c", + "0x0000000000000000000000000000000000000000000000000000000000001216": "1216", + "0x0000000000000000000000000000000000000000000000000000000000001220": "1220", + "0x000000000000000000000000000000000000000000000000000000000000122a": "122a", + "0x0000000000000000000000000000000000000000000000000000000000001234": "1234", + "0x000000000000000000000000000000000000000000000000000000000000123e": "123e", + "0x0000000000000000000000000000000000000000000000000000000000001248": "1248", + "0x0000000000000000000000000000000000000000000000000000000000001252": "1252", + "0x000000000000000000000000000000000000000000000000000000000000125c": "125c", + "0x0000000000000000000000000000000000000000000000000000000000001266": "1266", + "0x0000000000000000000000000000000000000000000000000000000000001270": "1270", + "0x000000000000000000000000000000000000000000000000000000000000127a": "127a", + "0x0000000000000000000000000000000000000000000000000000000000001284": "1284", + "0x000000000000000000000000000000000000000000000000000000000000128e": "128e", + "0x0000000000000000000000000000000000000000000000000000000000001298": "1298", + "0x00000000000000000000000000000000000000000000000000000000000012a2": "12a2", + "0x00000000000000000000000000000000000000000000000000000000000012ac": "12ac", + "0x00000000000000000000000000000000000000000000000000000000000012b6": "12b6", + "0x00000000000000000000000000000000000000000000000000000000000012c0": "12c0", + "0x00000000000000000000000000000000000000000000000000000000000012ca": "12ca", + "0x00000000000000000000000000000000000000000000000000000000000012d4": "12d4", + "0x00000000000000000000000000000000000000000000000000000000000012de": "12de", + "0x00000000000000000000000000000000000000000000000000000000000012e8": "12e8", + "0x00000000000000000000000000000000000000000000000000000000000012f2": "12f2", + "0x00000000000000000000000000000000000000000000000000000000000012fc": "12fc", + "0x0000000000000000000000000000000000000000000000000000000000001306": "1306", + "0x0000000000000000000000000000000000000000000000000000000000001310": "1310", + "0x000000000000000000000000000000000000000000000000000000000000131a": "131a", + "0x0000000000000000000000000000000000000000000000000000000000001324": "1324", + "0x000000000000000000000000000000000000000000000000000000000000132e": "132e", + "0x0000000000000000000000000000000000000000000000000000000000001338": "1338", + "0x0000000000000000000000000000000000000000000000000000000000001342": "1342", + "0x000000000000000000000000000000000000000000000000000000000000134c": "134c", + "0x0000000000000000000000000000000000000000000000000000000000001356": "1356", + "0x0000000000000000000000000000000000000000000000000000000000001360": "1360", + "0x000000000000000000000000000000000000000000000000000000000000136a": "136a", + "0x0000000000000000000000000000000000000000000000000000000000001374": "1374", + "0x000000000000000000000000000000000000000000000000000000000000137e": "137e", + "0x0000000000000000000000000000000000000000000000000000000000001388": "1388", + "0x0000000000000000000000000000000000000000000000000000000000001392": "1392", + "0x000000000000000000000000000000000000000000000000000000000000139c": "139c", + "0x00000000000000000000000000000000000000000000000000000000000013a6": "13a6", + "0x00000000000000000000000000000000000000000000000000000000000013b0": "13b0", + "0x00000000000000000000000000000000000000000000000000000000000013ba": "13ba", + "0x00000000000000000000000000000000000000000000000000000000000013c4": "13c4", + "0x00000000000000000000000000000000000000000000000000000000000013ce": "13ce", + "0x00000000000000000000000000000000000000000000000000000000000013d8": "13d8", + "0x00000000000000000000000000000000000000000000000000000000000013e2": "13e2", + "0x00000000000000000000000000000000000000000000000000000000000013ec": "13ec", + "0x00000000000000000000000000000000000000000000000000000000000013f6": "13f6", + "0x0000000000000000000000000000000000000000000000000000000000001400": "1400", + "0x000000000000000000000000000000000000000000000000000000000000140a": "140a", + "0x0000000000000000000000000000000000000000000000000000000000001414": "1414", + "0x000000000000000000000000000000000000000000000000000000000000141e": "141e", + "0x0000000000000000000000000000000000000000000000000000000000001428": "1428", + "0x0000000000000000000000000000000000000000000000000000000000001432": "1432", + "0x000000000000000000000000000000000000000000000000000000000000143c": "143c", + "0x0000000000000000000000000000000000000000000000000000000000001446": "1446", + "0x0000000000000000000000000000000000000000000000000000000000001450": "1450", + "0x000000000000000000000000000000000000000000000000000000000000145a": "145a", + "0x0000000000000000000000000000000000000000000000000000000000001464": "1464", + "0x000000000000000000000000000000000000000000000000000000000000146e": "146e", + "0x0000000000000000000000000000000000000000000000000000000000001478": "1478", + "0x0000000000000000000000000000000000000000000000000000000000001482": "1482", + "0x000000000000000000000000000000000000000000000000000000000000148c": "148c", + "0x0000000000000000000000000000000000000000000000000000000000001496": "1496", + "0x00000000000000000000000000000000000000000000000000000000000014a0": "14a0", + "0x00000000000000000000000000000000000000000000000000000000000014aa": "14aa", + "0x00000000000000000000000000000000000000000000000000000000000014b4": "14b4", + "0x00000000000000000000000000000000000000000000000000000000000014be": "14be", + "0x00000000000000000000000000000000000000000000000000000000000014c8": "14c8", + "0x00000000000000000000000000000000000000000000000000000000000014d2": "14d2", + "0x00000000000000000000000000000000000000000000000000000000000014dc": "14dc", + "0x00000000000000000000000000000000000000000000000000000000000014e6": "14e6", + "0x00000000000000000000000000000000000000000000000000000000000014f0": "14f0", + "0x00000000000000000000000000000000000000000000000000000000000014fa": "14fa", + "0x0000000000000000000000000000000000000000000000000000000000001504": "1504", + "0x000000000000000000000000000000000000000000000000000000000000150e": "150e", + "0x0000000000000000000000000000000000000000000000000000000000001518": "1518", + "0x0000000000000000000000000000000000000000000000000000000000001522": "1522", + "0x000000000000000000000000000000000000000000000000000000000000152c": "152c", + "0x0000000000000000000000000000000000000000000000000000000000001536": "1536", + "0x0000000000000000000000000000000000000000000000000000000000001540": "1540", + "0x000000000000000000000000000000000000000000000000000000000000154a": "154a", + "0x0000000000000000000000000000000000000000000000000000000000001554": "1554", + "0x000000000000000000000000000000000000000000000000000000000000155e": "155e", + "0x0000000000000000000000000000000000000000000000000000000000001568": "1568", + "0x0000000000000000000000000000000000000000000000000000000000001572": "1572", + "0x000000000000000000000000000000000000000000000000000000000000157c": "157c", + "0x0000000000000000000000000000000000000000000000000000000000001586": "1586", + "0x0000000000000000000000000000000000000000000000000000000000001590": "1590", + "0x000000000000000000000000000000000000000000000000000000000000159a": "159a", + "0x00000000000000000000000000000000000000000000000000000000000015a4": "15a4", + "0x00000000000000000000000000000000000000000000000000000000000015ae": "15ae", + "0x00000000000000000000000000000000000000000000000000000000000015b8": "15b8", + "0x00000000000000000000000000000000000000000000000000000000000015c2": "15c2", + "0x00000000000000000000000000000000000000000000000000000000000015cc": "15cc", + "0x00000000000000000000000000000000000000000000000000000000000015d6": "15d6", + "0x00000000000000000000000000000000000000000000000000000000000015e0": "15e0", + "0x00000000000000000000000000000000000000000000000000000000000015ea": "15ea", + "0x00000000000000000000000000000000000000000000000000000000000015f4": "15f4", + "0x00000000000000000000000000000000000000000000000000000000000015fe": "15fe", + "0x0000000000000000000000000000000000000000000000000000000000001608": "1608", + "0x0000000000000000000000000000000000000000000000000000000000001612": "1612", + "0x000000000000000000000000000000000000000000000000000000000000161c": "161c", + "0x0000000000000000000000000000000000000000000000000000000000001626": "1626", + "0x0000000000000000000000000000000000000000000000000000000000001630": "1630", + "0x000000000000000000000000000000000000000000000000000000000000163a": "163a", + "0x0000000000000000000000000000000000000000000000000000000000001644": "1644", + "0x000000000000000000000000000000000000000000000000000000000000164e": "164e", + "0x0000000000000000000000000000000000000000000000000000000000001658": "1658", + "0x0000000000000000000000000000000000000000000000000000000000001662": "1662", + "0x000000000000000000000000000000000000000000000000000000000000166c": "166c", + "0x0000000000000000000000000000000000000000000000000000000000001676": "1676", + "0x0000000000000000000000000000000000000000000000000000000000001680": "1680", + "0x000000000000000000000000000000000000000000000000000000000000168a": "168a", + "0x0000000000000000000000000000000000000000000000000000000000001694": "1694", + "0x000000000000000000000000000000000000000000000000000000000000169e": "169e", + "0x00000000000000000000000000000000000000000000000000000000000016a8": "16a8", + "0x00000000000000000000000000000000000000000000000000000000000016b2": "16b2", + "0x00000000000000000000000000000000000000000000000000000000000016bc": "16bc", + "0x00000000000000000000000000000000000000000000000000000000000016c6": "16c6", + "0x00000000000000000000000000000000000000000000000000000000000016d0": "16d0", + "0x00000000000000000000000000000000000000000000000000000000000016da": "16da", + "0x00000000000000000000000000000000000000000000000000000000000016e4": "16e4", + "0x00000000000000000000000000000000000000000000000000000000000016ee": "16ee", + "0x00000000000000000000000000000000000000000000000000000000000016f8": "16f8", + "0x0000000000000000000000000000000000000000000000000000000000001702": "1702", + "0x000000000000000000000000000000000000000000000000000000000000170c": "170c", + "0x0000000000000000000000000000000000000000000000000000000000001716": "1716", + "0x0000000000000000000000000000000000000000000000000000000000001720": "1720", + "0x000000000000000000000000000000000000000000000000000000000000172a": "172a", + "0x0000000000000000000000000000000000000000000000000000000000001734": "1734", + "0x000000000000000000000000000000000000000000000000000000000000173e": "173e", + "0x0000000000000000000000000000000000000000000000000000000000001748": "1748", + "0x0000000000000000000000000000000000000000000000000000000000001752": "1752", + "0x000000000000000000000000000000000000000000000000000000000000175c": "175c", + "0x0000000000000000000000000000000000000000000000000000000000001766": "1766", + "0x0000000000000000000000000000000000000000000000000000000000001770": "1770", + "0x000000000000000000000000000000000000000000000000000000000000203b": "83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd", + "0x0000000000000000000000000000000000000000000000000000000000002045": "2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e", + "0x000000000000000000000000000000000000000000000000000000000000204f": "756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67", + "0x0000000000000000000000000000000000000000000000000000000000002059": "4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78", + "0x0000000000000000000000000000000000000000000000000000000000002063": "d0122166752d729620d41114ff5a94d36e5d3e01b449c23844900c023d1650a5", + "0x000000000000000000000000000000000000000000000000000000000000206d": "60c606c4c44709ac87b367f42d2453744639fc5bee099a11f170de98408c8089", + "0x0000000000000000000000000000000000000000000000000000000000002077": "6ee04e1c27edad89a8e5a2253e4d9cca06e4f57d063ed4fe7cc1c478bb57eeca", + "0x0000000000000000000000000000000000000000000000000000000000002081": "36616354a17658eb3c3e8e5adda6253660e3744cb8b213006f04302b723749a8", + "0x000000000000000000000000000000000000000000000000000000000000208b": "c13802d4378dcb9c616f0c60ea0edd90e6c2dacf61f39ca06add0eaa67473b94", + "0x0000000000000000000000000000000000000000000000000000000000002095": "8b345497936c51d077f414534be3f70472e4df101dee8820eaaff91a6624557b", + "0x000000000000000000000000000000000000000000000000000000000000209f": "e958485d4b3e47b38014cc4eaeb75f13228072e7b362a56fc3ffe10155882629", + "0x00000000000000000000000000000000000000000000000000000000000020a9": "3346706b38a2331556153113383581bc6f66f209fdef502f9fc9b6daf6ea555e", + "0x00000000000000000000000000000000000000000000000000000000000020b3": "346910f7e777c596be32f0dcf46ccfda2efe8d6c5d3abbfe0f76dba7437f5dad", + "0x00000000000000000000000000000000000000000000000000000000000020bd": "e62a7bd9263534b752176d1ff1d428fcc370a3b176c4a6312b6016c2d5f8d546", + "0x00000000000000000000000000000000000000000000000000000000000020c7": "ffe267d11268388fd0426a627dedddeb075d68327df9172c0445cd2979ec7e4d", + "0x00000000000000000000000000000000000000000000000000000000000020d1": "23cc648c9cd82c08214882b7e28e026d6eb56920f90f64731bb09b6acf515427", + "0x00000000000000000000000000000000000000000000000000000000000020db": "47c896f5986ec29f58ec60eec56ed176910779e9fc9cf45c3c090126aeb21acd", + "0x00000000000000000000000000000000000000000000000000000000000020e5": "6d19894928a3ab44077bb85dcb47e0865ce1c4c187bba26bad059aa774c03cfe", + "0x00000000000000000000000000000000000000000000000000000000000020ef": "efc50f4fc1430b6d5d043065201692a4a02252fef0699394631f5213a5667547", + "0x00000000000000000000000000000000000000000000000000000000000020f9": "3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f", + "0x0000000000000000000000000000000000000000000000000000000000002103": "63eb547e9325bc34fbbbdfda327a71dc929fd8ab6509795e56479e95dbd40a80", + "0x000000000000000000000000000000000000000000000000000000000000210d": "67317288cf707b0325748c7947e2dda5e8b41e45e62330d00d80e9be403e5c4c", + "0x0000000000000000000000000000000000000000000000000000000000002117": "7fc37e0d22626f96f345b05516c8a3676b9e1de01d354e5eb9524f6776966885", + "0x0000000000000000000000000000000000000000000000000000000000002121": "c8c5ffb6f192e9bda046ecd4ebb995af53c9dd6040f4ba8d8db9292c1310e43f", + "0x000000000000000000000000000000000000000000000000000000000000212b": "e40a9cfd9babe862d482ca0c07c0a4086641d16c066620cb048c6e673c5a4f91", + "0x0000000000000000000000000000000000000000000000000000000000002135": "e82e7cff48aea45fb3f7b199b0b173497bf4c5ea66ff840e2ec618d7eb3d7470", + "0x000000000000000000000000000000000000000000000000000000000000213f": "84ceda57767ea709da7ab17897a70da1868c9670931da38f2438519a5249534d", + "0x0000000000000000000000000000000000000000000000000000000000002149": "e9dcf640383969359c944cff24b75f71740627f596110ee8568fa09f9a06db1c", + "0x0000000000000000000000000000000000000000000000000000000000002153": "430ef678bb92f1af44dcd77af9c5b59fb87d0fc4a09901a54398ad5b7e19a8f4", + "0x000000000000000000000000000000000000000000000000000000000000215d": "f7af0b8b729cd17b7826259bc183b196dbd318bd7229d5e8085bf4849c0b12bf", + "0x0000000000000000000000000000000000000000000000000000000000002167": "e134e19217f1b4c7e11f193561056303a1f67b69dac96ff79a6d0aafa994f7cb", + "0x0000000000000000000000000000000000000000000000000000000000002171": "9cc58ab1a8cb0e983550e61f754aea1dd4f58ac6482a816dc50658de750de613", + "0x000000000000000000000000000000000000000000000000000000000000217b": "79c2b067779a94fd3756070885fc8eab5e45033bde69ab17c0173d553df02978", + "0x0000000000000000000000000000000000000000000000000000000000002185": "d908ef75d05b895600d3f9938cb5259612c71223b68d30469ff657d61c6b1611", + "0x000000000000000000000000000000000000000000000000000000000000218f": "e0d31906b7c46ac7f38478c0872d3c634f7113d54ef0b57ebfaf7f993959f5a3", + "0x0000000000000000000000000000000000000000000000000000000000002199": "2318f5c5e6865200ad890e0a8db21c780a226bec0b2e29af1cb3a0d9b40196ae", + "0x00000000000000000000000000000000000000000000000000000000000021a3": "523997f8d8fed954658f547954fdeceab818b411862647f2b61a3619f6a4d4bc", + "0x00000000000000000000000000000000000000000000000000000000000021ad": "be3396540ea36c6928cccdcfe6c669666edbbbcd4be5e703f59de0e3c2720da7", + "0x00000000000000000000000000000000000000000000000000000000000021b7": "2d3fcfd65d0a6881a2e8684d03c2aa27aee6176514d9f6d8ebb3b766f85e1039", + "0x00000000000000000000000000000000000000000000000000000000000021c1": "7ce0d5c253a7f910cca7416e949ac04fdaec20a518ab6fcbe4a63d8b439a5cfc", + "0x00000000000000000000000000000000000000000000000000000000000021cb": "4da13d835ea44926ee13f34ce8fcd4b9d3dc65be0a351115cf404234c7fbd256", + "0x00000000000000000000000000000000000000000000000000000000000021d5": "c5ee7483802009b45feabf4c5f701ec485f27bf7d2c4477b200ac53e210e9844", + "0x00000000000000000000000000000000000000000000000000000000000021df": "0fc71295326a7ae8e0776c61be67f3ed8770311df88e186405b8d75bd0be552b", + "0x00000000000000000000000000000000000000000000000000000000000021e9": "7313b4315dd27586f940f8f2bf8af76825d8f24d2ae2c24d885dcb0cdd8d50f5", + "0x00000000000000000000000000000000000000000000000000000000000021f3": "2739473baa23a9bca4e8d0f4f221cfa48440b4b73e2bae7386c14caccc6c2059", + "0x00000000000000000000000000000000000000000000000000000000000021fd": "d4da00e33a11ee18f67b25ad5ff574cddcdccaa30e6743e01a531336b16cbf8f", + "0x0000000000000000000000000000000000000000000000000000000000002207": "e651765d4860f0c46f191212c8193e7c82708e5d8bef1ed6f19bdde577f980cf", + "0x0000000000000000000000000000000000000000000000000000000000002211": "5b5b49487967b3b60bd859ba2fb13290c6eaf67e97e9f9f9dda935c08564b5f6", + "0x000000000000000000000000000000000000000000000000000000000000221b": "57b73780cc42a6a36676ce7008459d5ba206389dc9300f1aecbd77c4b90277fa", + "0x0000000000000000000000000000000000000000000000000000000000002225": "217e8514ea30f1431dc3cd006fe730df721f961cebb5d0b52069d1b4e1ae5d13", + "0x000000000000000000000000000000000000000000000000000000000000222f": "14b775119c252908bb10b13de9f8ae988302e1ea8b2e7a1b6d3c8ae24ba9396b", + "0x0000000000000000000000000000000000000000000000000000000000002239": "e736f0b3c5672f76332a38a6c1e66e5f39e0d01f1ddede2c24671f48e78daf63", + "0x0000000000000000000000000000000000000000000000000000000000002243": "7d112c85b58c64c576d34ea7a7c18287981885892fbf95110e62add156ca572e", + "0x000000000000000000000000000000000000000000000000000000000000224d": "28fbeedc649ed9d2a6feda6e5a2576949da6812235ebdfd030f8105d012f5074", + "0x0000000000000000000000000000000000000000000000000000000000002257": "6f7410cf59e390abe233de2a3e3fe022b63b78a92f6f4e3c54aced57b6c3daa6", + "0x0000000000000000000000000000000000000000000000000000000000002261": "d5edc3d8781deea3b577e772f51949a8866f2aa933149f622f05cde2ebba9adb", + "0x000000000000000000000000000000000000000000000000000000000000226b": "20308d99bc1e1b1b0717f32b9a3a869f4318f5f0eb4ed81fddd10696c9746c6b", + "0x0000000000000000000000000000000000000000000000000000000000002275": "91f7a302057a2e21d5e0ef4b8eea75dfb8b37f2c2db05c5a84517aaebc9d5131", + "0x000000000000000000000000000000000000000000000000000000000000227f": "743e5d0a5be47d489b121edb9f98dad7d0a85fc260909083656fabaf6d404774", + "0x0000000000000000000000000000000000000000000000000000000000002289": "cdcf99c6e2e7d0951f762e787bdbe0e2b3b320815c9d2be91e9cd0848653e839", + "0x0000000000000000000000000000000000000000000000000000000000002293": "cc9476183d27810e9738f382c7f2124976735ed89bbafc7dc19c99db8cfa9ad1", + "0x000000000000000000000000000000000000000000000000000000000000229d": "f67e5fab2e7cacf5b89acd75ec53b0527d45435adddac6ee7523a345dcbcdceb", + "0x00000000000000000000000000000000000000000000000000000000000022a7": "e20f8ab522b2f0d12c068043852139965161851ad910b840db53604c8774a579", + "0x00000000000000000000000000000000000000000000000000000000000022b1": "f982160785861cb970559d980208dd00e6a2ec315f5857df175891b171438eeb", + "0x00000000000000000000000000000000000000000000000000000000000022bb": "230954c737211b72d5c7dcfe420bb07d5d72f2b4868c5976dd22c00d3df0c0b6", + "0x00000000000000000000000000000000000000000000000000000000000022c5": "b7743e65d6bbe09d5531f1bc98964f75943d8c13e27527ca6afd40ca069265d4", + "0x00000000000000000000000000000000000000000000000000000000000022cf": "31ac943dc649c639fa6221400183ca827c07b812a6fbfc1795eb835aa280adf3", + "0x00000000000000000000000000000000000000000000000000000000000022d9": "ded49c937c48d466987a4130f4b6d04ef658029673c3afc99f70f33b552e178d", + "0x00000000000000000000000000000000000000000000000000000000000022e3": "a0effc449cab515020d2012897155a792bce529cbd8d5a4cf94d0bbf141afeb6", + "0x00000000000000000000000000000000000000000000000000000000000022ed": "1f36d9c66a0d437d8e49ffaeaa00f341e9630791b374e8bc0c16059c7445721f", + "0x00000000000000000000000000000000000000000000000000000000000022f7": "34f89e6134f26e7110b47ffc942a847d8c03deeed1b33b9c041218c4e1a1a4e6", + "0x0000000000000000000000000000000000000000000000000000000000002301": "774404c430041ca4a58fdc281e99bf6fcb014973165370556d9e73fdec6d597b", + "0x000000000000000000000000000000000000000000000000000000000000230b": "d616971210c381584bf4846ab5837b53e062cbbb89d112c758b4bd00ce577f09", + "0x0000000000000000000000000000000000000000000000000000000000002315": "cdf6383634b0431468f6f5af19a2b7a087478b42489608c64555ea1ae0a7ee19", + "0x000000000000000000000000000000000000000000000000000000000000231f": "ec22e5df77320b4142c54fceaf2fe7ea30d1a72dc9c969a22acf66858d582b", + "0x0000000000000000000000000000000000000000000000000000000000002329": "cb32d77facfda4decff9e08df5a5810fa42585fdf96f0db9b63b196116fbb6af", + "0x0000000000000000000000000000000000000000000000000000000000002333": "6d76316f272f0212123d0b4b21d16835fe6f7a2b4d1960386d8a161da2b7c6a2", + "0x000000000000000000000000000000000000000000000000000000000000233d": "2de2da72ae329e359b655fc6311a707b06dc930126a27261b0e8ec803bdb5cbf", + "0x0000000000000000000000000000000000000000000000000000000000002347": "08bed4b39d14dc1e72e80f605573cde6145b12693204f9af18bbc94a82389500", + "0x0000000000000000000000000000000000000000000000000000000000002351": "e437f0465ac29b0e889ef4f577c939dd39363c08fcfc81ee61aa0b4f55805f69", + "0x000000000000000000000000000000000000000000000000000000000000235b": "89ca120183cc7085b6d4674d779fc4fbc9de520779bfbc3ebf65f9663cb88080", + "0x0000000000000000000000000000000000000000000000000000000000002365": "b15d5954c7b78ab09ede922684487c7a60368e82fdc7b5a0916842e58a44422b", + "0x000000000000000000000000000000000000000000000000000000000000236f": "ad13055a49d2b6a4ffc8b781998ff79086adad2fd6470a0563a43b740128c5f2", + "0x0000000000000000000000000000000000000000000000000000000000002379": "9e9909e4ed44f5539427ee3bc70ee8b630ccdaea4d0f1ed5337a067e8337119f", + "0x0000000000000000000000000000000000000000000000000000000000002383": "bf1f3aba184e08d4c650f05fe3d948bdda6c2d6982f277f2cd6b1a60cd4f3dac", + "0x000000000000000000000000000000000000000000000000000000000000238d": "bb70fe131f94783dba356c8d4d9d319247ef61c768134303f0db85ee3ef0496f", + "0x0000000000000000000000000000000000000000000000000000000000002397": "6a81ebd3bde6cc54a2521aa72de29ef191e3b56d94953439a72cafdaa2996da0", + "0x00000000000000000000000000000000000000000000000000000000000023a1": "4c83e809a52ac52a587d94590c35c71b72742bd15915fca466a9aaec4f2dbfed", + "0x00000000000000000000000000000000000000000000000000000000000023ab": "268fc70790f00ad0759497585267fbdc92afba63ba01e211faae932f0639854a", + "0x00000000000000000000000000000000000000000000000000000000000023b5": "7e544f42df99d5666085b70bc57b3ca175be50b7a9643f26f464124df632d562", + "0x00000000000000000000000000000000000000000000000000000000000023bf": "d59cf5f55903ba577be835706b27d78a50cacb25271f35a5f57fcb88a3b576f3", + "0x00000000000000000000000000000000000000000000000000000000000023c9": "551cced461be11efdeaf8e47f3a91bb66d532af7294c4461c8009c5833bdbf57", + "0x00000000000000000000000000000000000000000000000000000000000023d3": "c1e0e6907a57eefd12f1f95d28967146c836d72d281e7609de23d0a02351e978", + "0x00000000000000000000000000000000000000000000000000000000000023dd": "9d580c0ac3a7f00fdc3b135b758ae7c80ab135e907793fcf9621a3a3023ca205", + "0x00000000000000000000000000000000000000000000000000000000000023e7": "a7fd4dbac4bb62307ac7ad285ffa6a11ec679d950de2bd41839b8a846e239886", + "0x00000000000000000000000000000000000000000000000000000000000023f1": "6ba7b0ac30a04e11a3116b43700d91359e6b06a49058e543198d4b21e75fb165", + "0x00000000000000000000000000000000000000000000000000000000000023fb": "8835104ed35ffd4db64660b9049e1c0328e502fd4f3744749e69183677b8474b", + "0x0000000000000000000000000000000000000000000000000000000000002405": "562f276b9f9ed46303e700c8863ad75fadff5fc8df27a90744ea04ad1fe8e801", + "0x000000000000000000000000000000000000000000000000000000000000240f": "d19f68026d22ae0f60215cfe4a160986c60378f554c763651d872ed82ad69ebb", + "0x0000000000000000000000000000000000000000000000000000000000002419": "f087a515b4b62d707991988eb912d082b85ecdd52effc9e8a1ddf15a74388860", + "0x0000000000000000000000000000000000000000000000000000000000002423": "f7e28b7daff5fad40ec1ef6a2b7e9066558126f62309a2ab0d0d775d892a06d6", + "0x000000000000000000000000000000000000000000000000000000000000242d": "77361844a8f4dd2451e6218d336378b837ba3fab921709708655e3f1ea91a435", + "0x0000000000000000000000000000000000000000000000000000000000002437": "e3cb33c7b05692a6f25470fbd63ab9c986970190729fab43191379da38bc0d8c", + "0x0000000000000000000000000000000000000000000000000000000000002441": "c893f9de119ec83fe37b178b5671d63448e9b5cde4de9a88cace3f52c2591194", + "0x000000000000000000000000000000000000000000000000000000000000244b": "39c96a6461782ac2efbcb5aaac2e133079b86fb29cb5ea69b0101bdad684ef0d", + "0x0000000000000000000000000000000000000000000000000000000000002455": "72a2724cdf77138638a109f691465e55d32759d3c044a6cb41ab091c574e3bdb", + "0x000000000000000000000000000000000000000000000000000000000000245f": "178ba15f24f0a8c33eed561d7927979c1215ddec20e1aef318db697ccfad0e03", + "0x0000000000000000000000000000000000000000000000000000000000002469": "f7b2c01b7c625588c9596972fdebae61db89f0d0f2b21286d4c0fa76683ff946", + "0x0000000000000000000000000000000000000000000000000000000000002473": "16e43284b041a4086ad1cbab9283d4ad3e8cc7c3a162f60b3df5538344ecdf54", + "0x000000000000000000000000000000000000000000000000000000000000247d": "0a98ea7f737e17706432eba283d50dde10891b49c3424d46918ed2b6af8ecf90", + "0x0000000000000000000000000000000000000000000000000000000000002487": "7637225dd61f90c3cb05fae157272985993b34d6c369bfe8372720339fe4ffd2", + "0x0000000000000000000000000000000000000000000000000000000000002491": "6a7d064bc053c0f437707df7c36b820cca4a2e9653dd1761941af4070f5273b6", + "0x000000000000000000000000000000000000000000000000000000000000249b": "91c1e6eec8f7944fd6aafdce5477f45d4f6e29298c9ef628a59e441a5e071fae", + "0x00000000000000000000000000000000000000000000000000000000000024a5": "a1c227db9bbd2e49934bef01cbb506dd1e1c0671a81aabb1f90a90025980a3c3", + "0x00000000000000000000000000000000000000000000000000000000000024af": "8fcfc1af10f3e8671505afadfd459287ae98be634083b5a35a400cc9186694cf", + "0x00000000000000000000000000000000000000000000000000000000000024b9": "cc1ea9c015bd3a6470669f85c5c13e42c1161fc79704143df347c4a621dff44f", + "0x00000000000000000000000000000000000000000000000000000000000024c3": "b0a22c625dd0c6534e29bccc9ebf94a550736e2c68140b9afe3ddc7216f797de", + "0x00000000000000000000000000000000000000000000000000000000000024cd": "92b8e6ca20622e5fd91a8f58d0d4faaf7be48a53ea262e963bcf26a1698f9df3", + "0x00000000000000000000000000000000000000000000000000000000000024d7": "f6253b8e2f31df6ca7a97086c3b4d49d9cbbbdfc5be731b0c3040a4381161c53", + "0x00000000000000000000000000000000000000000000000000000000000024e1": "ea8d762903bd24b80037d7ffe80019a086398608ead66208c18f0a5778620e67", + "0x00000000000000000000000000000000000000000000000000000000000024eb": "543382975e955588ba19809cfe126ea15dc43c0bfe6a43d861d7ad40eac2c2f4", + "0x00000000000000000000000000000000000000000000000000000000000024f5": "095294f7fe3eb90cf23b3127d40842f61b85da2f48f71234fb94d957d865a8a2", + "0x00000000000000000000000000000000000000000000000000000000000024ff": "144c2dd25fd12003ccd2678d69d30245b0222ce2d2bfead687931a7f6688482f", + "0x0000000000000000000000000000000000000000000000000000000000002509": "7295f7d57a3547b191f55951f548479cbb9a60b47ba38beb8d85c4ccf0e4ae4c", + "0x0000000000000000000000000000000000000000000000000000000000002513": "9e8e241e13f76a4e6d777a2dc64072de4737ac39272bb4987bcecbf60739ccf4", + "0x000000000000000000000000000000000000000000000000000000000000251d": "fc753bcea3e720490efded4853ef1a1924665883de46c21039ec43e371e96bb9", + "0x0000000000000000000000000000000000000000000000000000000000002527": "5f5204c264b5967682836ed773aee0ea209840fe628fd1c8d61702c416b427ca", + "0x0000000000000000000000000000000000000000000000000000000000002531": "5ba9a0326069e000b65b759236f46e54a0e052f379a876d242740c24f6c47aed", + "0x000000000000000000000000000000000000000000000000000000000000253b": "b40e9621d5634cd21f70274c345704af2e060c5befaeb2df109a78c7638167c2", + "0x0000000000000000000000000000000000000000000000000000000000002545": "70e26b74456e6fea452e04f8144be099b0af0e279febdff17dd4cdf9281e12a7", + "0x000000000000000000000000000000000000000000000000000000000000254f": "43d7158f48fb1f124b2962dff613c5b4b8ea415967f2b528af6e7ae280d658e5", + "0x0000000000000000000000000000000000000000000000000000000000002559": "b50b2b14efba477dddca9682df1eafc66a9811c9c5bd1ae796abbef27ba14eb4", + "0x0000000000000000000000000000000000000000000000000000000000002563": "c14936902147e9a121121f424ecd4d90313ce7fc603f3922cebb7d628ab2c8dd", + "0x000000000000000000000000000000000000000000000000000000000000256d": "86609ed192561602f181a9833573213eb7077ee69d65107fa94f657f33b144d2", + "0x0000000000000000000000000000000000000000000000000000000000002577": "0a71a6dbc360e176a0f665787ed3e092541c655024d0b136a04ceedf572c57c5", + "0x0000000000000000000000000000000000000000000000000000000000002581": "a4bcbab632ddd52cb85f039e48c111a521e8944b9bdbaf79dd7c80b20221e4d6", + "0x000000000000000000000000000000000000000000000000000000000000258b": "2bc468eab4fad397f9136f80179729b54caa2cb47c06b0695aab85cf9813620d", + "0x0000000000000000000000000000000000000000000000000000000000002595": "fc7f9a432e6fd69aaf025f64a326ab7221311147dd99d558633579a4d8a0667b", + "0x000000000000000000000000000000000000000000000000000000000000259f": "949613bd67fb0a68cf58a22e60e7b9b2ccbabb60d1d58c64c15e27a9dec2fb35", + "0x00000000000000000000000000000000000000000000000000000000000025a9": "289ddb1aee772ad60043ecf17a882c36a988101af91ac177954862e62012fc0e", + "0x00000000000000000000000000000000000000000000000000000000000025b3": "bfa48b05faa1a2ee14b3eaed0b75f0d265686b6ce3f2b7fa051b8dc98bc23d6a", + "0x00000000000000000000000000000000000000000000000000000000000025bd": "7bf49590a866893dc77444d89717942e09acc299eea972e8a7908e9d694a1150", + "0x00000000000000000000000000000000000000000000000000000000000025c7": "992f76aee242737eb21f14b65827f3ebc42524fb422b17f414f33c35a24092db", + "0x00000000000000000000000000000000000000000000000000000000000025d1": "da6e4f935d966e90dffc6ac0f6d137d9e9c97d65396627e5486d0089b94076fa", + "0x00000000000000000000000000000000000000000000000000000000000025db": "65467514ed80f25b299dcf74fb74e21e9bb929832a349711cf327c2f8b60b57f", + "0x00000000000000000000000000000000000000000000000000000000000025e5": "cc2ac03d7a26ff16c990c5f67fa03dabda95641a988deec72ed2fe38c0f289d6", + "0x00000000000000000000000000000000000000000000000000000000000025ef": "096dbe9a0190c6badf79de3747abfd4d5eda3ab95b439922cae7ec0cfcd79290", + "0x00000000000000000000000000000000000000000000000000000000000025f9": "0c659c769744094f60332ec247799d7ed5ae311d5738daa5dcead3f47ca7a8a2", + "0x0000000000000000000000000000000000000000000000000000000000002603": "9cb8a0d41ede6b951c29182422db215e22aedfa1a3549cd27b960a768f6ed522", + "0x000000000000000000000000000000000000000000000000000000000000260d": "2510f8256a020f4735e2be224e3bc3e8c14e56f7588315f069630fe24ce2fa26", + "0x0000000000000000000000000000000000000000000000000000000000002617": "2d3deb2385a2d230512707ece0bc6098ea788e3d5debb3911abe9a710dd332ea", + "0x0000000000000000000000000000000000000000000000000000000000002621": "1cec4b230f3bccfff7ca197c4a35cb5b95ff7785d064be3628235971b7aff27c", + "0x000000000000000000000000000000000000000000000000000000000000262b": "18e4a4238d43929180c7a626ae6f8c87a88d723b661549f2f76ff51726833598", + "0x0000000000000000000000000000000000000000000000000000000000002635": "700e1755641a437c8dc888df24a5d80f80f9eaa0d17ddab17db4eb364432a1f5", + "0x000000000000000000000000000000000000000000000000000000000000263f": "cad29ceb73b2f3c90d864a2c27a464b36b980458e2d8c4c7f32f70afad707312", + "0x0000000000000000000000000000000000000000000000000000000000002649": "a85e892063a7fd41d37142ae38037967eb047436c727fcf0bad813d316efe09f", + "0x0000000000000000000000000000000000000000000000000000000000002653": "040100f17208bcbd9456c62d98846859f7a5efa0e45a5b3a6f0b763b9c700fec", + "0x000000000000000000000000000000000000000000000000000000000000265d": "49d54a5147de1f5208c509b194af6d64b509398e4f255c20315131e921f7bd04", + "0x0000000000000000000000000000000000000000000000000000000000002667": "810ff6fcafb9373a4df3e91ab1ca64a2955c9e42ad8af964f829e38e0ea4ee20", + "0x0000000000000000000000000000000000000000000000000000000000002671": "9b72096b8b672ac6ff5362c56f5d06446d1693c5d2daa94a30755aa636320e78", + "0x000000000000000000000000000000000000000000000000000000000000267b": "f68bff777db51db5f29afc4afe38bd1bf5cdec29caa0dc52535b529e6d99b742", + "0x0000000000000000000000000000000000000000000000000000000000002685": "9566690bde717eec59f828a2dba90988fa268a98ed224f8bc02b77bce10443c4", + "0x000000000000000000000000000000000000000000000000000000000000268f": "d0e821fbd57a4d382edd638b5c1e6deefb81352d41aa97da52db13f330e03097", + "0x0000000000000000000000000000000000000000000000000000000000002699": "43f9aa6fa63739abec56c4604874523ac6dabfcc08bb283195072aeb29d38dfe", + "0x00000000000000000000000000000000000000000000000000000000000026a3": "54ebfa924e887a63d643a8277c3394317de0e02e63651b58b6eb0e90df8a20cd", + "0x00000000000000000000000000000000000000000000000000000000000026ad": "9e414c994ee35162d3b718c47f8435edc2c93394a378cb41037b671366791fc8", + "0x00000000000000000000000000000000000000000000000000000000000026b7": "4356f072bb235238abefb3330465814821097327842b6e0dc4a0ef95680c4d34", + "0x00000000000000000000000000000000000000000000000000000000000026c1": "215df775ab368f17ed3f42058861768a3fba25e8d832a00b88559ca5078b8fbc", + "0x00000000000000000000000000000000000000000000000000000000000026cb": "d17835a18d61605a04d2e50c4f023966a47036e5c59356a0463db90a76f06e3e", + "0x00000000000000000000000000000000000000000000000000000000000026d5": "875032d74e62dbfd73d4617754d36cd88088d1e5a7c5354bf3e0906c749e6637", + "0x00000000000000000000000000000000000000000000000000000000000026df": "6f22ae25f70f4b03a2a2b17f370ace1f2b15d17fc7c2457824348a8f2a1eff9f", + "0x00000000000000000000000000000000000000000000000000000000000026e9": "f11fdf2cb985ce7472dc7c6b422c3a8bf2dfbbc6b86b15a1fa62cf9ebae8f6cf", + "0x00000000000000000000000000000000000000000000000000000000000026f3": "bbc97696e588f80fbe0316ad430fd4146a29c19b926248febe757cd9408deddc", + "0x00000000000000000000000000000000000000000000000000000000000026fd": "71dd15be02efd9f3d5d94d0ed9b5e60a205f439bb46abe6226879e857668881e", + "0x0000000000000000000000000000000000000000000000000000000000002707": "b90e98bd91f1f7cc5c4456bb7a8868a2bb2cd3dda4b5dd6463b88728526dceea", + "0x0000000000000000000000000000000000000000000000000000000000002711": "4e80fd3123fda9b404a737c9210ccb0bacc95ef93ac40e06ce9f7511012426c4", + "0x000000000000000000000000000000000000000000000000000000000000271b": "afb50d96b2543048dc93045b62357cc18b64d0e103756ce3ad0e04689dd88282", + "0x0000000000000000000000000000000000000000000000000000000000002725": "d73341a1c9edd04a890f949ede6cc1e942ad62b63b6a60177f0f692f141a7e95", + "0x000000000000000000000000000000000000000000000000000000000000272f": "c26601e9613493118999d9268b401707e42496944ccdbfa91d5d7b791a6d18f1", + "0x0000000000000000000000000000000000000000000000000000000000002739": "fb4619fb12e1b9c4b508797833eef7df65fcf255488660d502def2a7ddceef6d", + "0x0000000000000000000000000000000000000000000000000000000000002743": "d08b7458cd9d52905403f6f4e9dac15ad18bea1f834858bf48ecae36bf854f98", + "0x000000000000000000000000000000000000000000000000000000000000274d": "df979da2784a3bb9e07c368094dc640aafc514502a62a58b464e50e5e50a34bd", + "0x0000000000000000000000000000000000000000000000000000000000002757": "15855037d4712ce0019f0169dcd58b58493be8373d29decfa80b8df046e3d6ba", + "0x0000000000000000000000000000000000000000000000000000000000002761": "fd1462a68630956a33e4b65c8e171a08a131097bc7faf5d7f90b5503ab30b69c", + "0x000000000000000000000000000000000000000000000000000000000000276b": "edad57fee633c4b696e519f84ad1765afbef5d2781b382acd9b8dfcf6cd6d572", + "0x0000000000000000000000000000000000000000000000000000000000002775": "c2641ba296c2daa6edf09b63d0f1cfcefd51451fbbc283b6802cbd5392fb145c", + "0x000000000000000000000000000000000000000000000000000000000000277f": "5615d64e1d3a10972cdea4e4b106b4b6e832bc261129f9ab1d10a670383ae446", + "0x0000000000000000000000000000000000000000000000000000000000002789": "0757c6141fad938002092ff251a64190b060d0e31c31b08fb56b0f993cc4ef0d", + "0x0000000000000000000000000000000000000000000000000000000000002793": "14ddc31bc9f9c877ae92ca1958e6f3affca7cc3064537d0bbe8ba4d2072c0961", + "0x000000000000000000000000000000000000000000000000000000000000279d": "490b0f08777ad4364f523f94dccb3f56f4aacb2fb4db1bb042a786ecfd248c79", + "0x00000000000000000000000000000000000000000000000000000000000027a7": "4a37c0e55f539f2ecafa0ce71ee3d80bc9fe33fb841583073c9f524cc5a2615a", + "0x00000000000000000000000000000000000000000000000000000000000027b1": "133295fdf94e5e4570e27125807a77272f24622750bcf408be0360ba0dcc89f2", + "0x00000000000000000000000000000000000000000000000000000000000027bb": "a73eb87c45c96b121f9ab081c095bff9a49cfe5a374f316e9a6a66096f532972", + "0x00000000000000000000000000000000000000000000000000000000000027c5": "9040bc28f6e830ca50f459fc3dac39a6cd261ccc8cd1cca5429d59230c10f34c", + "0x00000000000000000000000000000000000000000000000000000000000027cf": "ec1d134c49cde6046ee295672a8f11663b6403fb71338181a89dc6bc92f7dea8", + "0x00000000000000000000000000000000000000000000000000000000000027d9": "3130a4c80497c65a7ee6ac20f6888a95bd5b05636d6b4bd13d616dcb01591e16", + "0x00000000000000000000000000000000000000000000000000000000000027e3": "ccdfd5b42f2cbd29ab125769380fc1b18a9d272ac5d3508a6bbe4c82360ebcca", + "0x00000000000000000000000000000000000000000000000000000000000027ed": "74342c7f25ee7dd1ae6eb9cf4e5ce5bcab56c798aea36b554ccb31a660e123af", + "0x00000000000000000000000000000000000000000000000000000000000027f7": "f6f75f51a452481c30509e5de96edae82892a61f8c02c88d710dc782b5f01fc7", + "0x0000000000000000000000000000000000000000000000000000000000002801": "7ce6539cc82db9730b8c21b12d6773925ff7d1a46c9e8f6c986ada96351f36e9", + "0x000000000000000000000000000000000000000000000000000000000000280b": "1983684da5e48936b761c5e5882bbeb5e42c3a7efe92989281367fa5ab25e918", + "0x0000000000000000000000000000000000000000000000000000000000002815": "c564aa993f2b446325ee674146307601dd87eb7409266a97e695e4bb09dd8bf5", + "0x000000000000000000000000000000000000000000000000000000000000281f": "9ca2ff57d59decb7670d5f49bcca68fdaf494ba7dc06214d8e838bfcf7a2824e", + "0x0000000000000000000000000000000000000000000000000000000000002829": "6d7b7476cecc036d470a691755f9988409059bd104579c0a2ded58f144236045", + "0x0000000000000000000000000000000000000000000000000000000000002833": "417504d79d00b85a29f58473a7ad643f88e9cdfe5da2ed25a5965411390fda4a", + "0x000000000000000000000000000000000000000000000000000000000000283d": "e910eb040bf32e56e9447d63497799419957ed7df2572e89768b9139c6fa6a23", + "0x0000000000000000000000000000000000000000000000000000000000002847": "8e462d3d5b17f0157bc100e785e1b8d2ad3262e6f27238fa7e9c62ba29e9c692", + "0x0000000000000000000000000000000000000000000000000000000000002851": "3e6f040dc96b2e05961c4e28df076fa654761f4b0e2e30f5e36b06f65d1893c1", + "0x000000000000000000000000000000000000000000000000000000000000285b": "07e71d03691704a4bd83c728529642884fc1b1a8cfeb1ddcbf659c9b71367637", + "0x0000000000000000000000000000000000000000000000000000000000002865": "f4d05f5986e4b92a845467d2ae6209ca9b7c6c63ff9cdef3df180660158163ef", + "0x000000000000000000000000000000000000000000000000000000000000286f": "5ca251408392b25af49419f1ecd9338d1f4b5afa536dc579ab54e1e3ee6914d4", + "0x0000000000000000000000000000000000000000000000000000000000002879": "e98b64599520cf62e68ce0e2cdf03a21d3712c81fa74b5ade4885b7d8aec531b", + "0x0000000000000000000000000000000000000000000000000000000000002883": "d62ec5a2650450e26aac71a21d45ef795e57c231d28a18d077a01f761bc648fe", + "0x000000000000000000000000000000000000000000000000000000000000288d": "4d3fb38cf24faf44f5b37f248553713af2aa9c3d99ddad4a534e49cd06bb8098", + "0x0000000000000000000000000000000000000000000000000000000000002897": "36e90abacae8fbe712658e705ac28fa9d00118ef55fe56ea893633680147148a", + "0x00000000000000000000000000000000000000000000000000000000000028a1": "164177f08412f7e294fae37457d238c4dd76775263e2c7c9f39e8a7ceca9028a", + "0x00000000000000000000000000000000000000000000000000000000000028ab": "aa5a5586bf2f68df5c206dbe45a9498de0a9b5a2ee92235b740971819838a010", + "0x00000000000000000000000000000000000000000000000000000000000028b5": "99d001850f513efdc613fb7c8ede12a943ff543c578a54bebbb16daecc56cec5", + "0x00000000000000000000000000000000000000000000000000000000000028bf": "30a4501d58b23fc7eee5310f5262783b2dd36a94922d11e5e173ec763be8accb", + "0x00000000000000000000000000000000000000000000000000000000000028c9": "a804188a0434260c0825a988483de064ae01d3e50cb111642c4cfb65bfc2dfb7", + "0x00000000000000000000000000000000000000000000000000000000000028d3": "c554c79292c950bce95e9ef57136684fffb847188607705454909aa5790edc64", + "0x00000000000000000000000000000000000000000000000000000000000028dd": "c89e3673025beff5031d48a885098da23d716b743449fd5533a04f25bd2cd203", + "0x00000000000000000000000000000000000000000000000000000000000028e7": "44c310142a326a3822abeb9161413f91010858432d27c9185c800c9c2d92aea6", + "0x00000000000000000000000000000000000000000000000000000000000028f1": "ae3f497ee4bd619d651097d3e04f50caac1f6af55b31b4cbde4faf1c5ddc21e8", + "0x00000000000000000000000000000000000000000000000000000000000028fb": "3287d70a7b87db98964e828d5c45a4fa4cd7907be3538a5e990d7a3573ccb9c1", + "0x0000000000000000000000000000000000000000000000000000000000002905": "b52bb578e25d833410fcca7aa6f35f79844537361a43192dce8dcbc72d15e09b", + "0x000000000000000000000000000000000000000000000000000000000000290f": "ff8f6f17c0f6d208d27dd8b9147586037086b70baf4f70c3629e73f8f053d34f", + "0x0000000000000000000000000000000000000000000000000000000000002919": "70bccc358ad584aacb115076c8aded45961f41920ffedf69ffa0483e0e91fa52", + "0x0000000000000000000000000000000000000000000000000000000000002923": "e3881eba45a97335a6d450cc37e7f82b81d297c111569e38b6ba0c5fb0ae5d71", + "0x000000000000000000000000000000000000000000000000000000000000292d": "2217beb48c71769d8bf9caaac2858237552fd68cd4ddefb66d04551e7beaa176", + "0x0000000000000000000000000000000000000000000000000000000000002937": "06b56638d2545a02757e7f268b25a0cd3bce792fcb1e88da21b0cc21883b9720", + "0x0000000000000000000000000000000000000000000000000000000000002941": "ebdc8c9e2a85a1fb6582ca30616a685ec8ec25e9c020a65a85671e8b9dacc6eb", + "0x000000000000000000000000000000000000000000000000000000000000294b": "738f3edb9d8d273aac79f95f3877fd885e1db732e86115fa3d0da18e6c89e9cf", + "0x0000000000000000000000000000000000000000000000000000000000002955": "ae5ccfc8201288b0c5981cdb60e16bc832ac92edc51149bfe40ff4a935a0c13a", + "0x000000000000000000000000000000000000000000000000000000000000295f": "69a7a19c159c0534e50a98e460707c6c280e7e355fb97cf2b5e0fd56c45a0a97", + "0x0000000000000000000000000000000000000000000000000000000000002969": "4d2a1e9207a1466593e5903c5481a579e38e247afe5e80bd41d629ac3342e6a4", + "0x0000000000000000000000000000000000000000000000000000000000002973": "d3e7d679c0d232629818cbb94251c24797ce36dd2a45dbe8c77a6a345231c3b3", + "0x000000000000000000000000000000000000000000000000000000000000297d": "d1835b94166e1856dddb6eaa1cfdcc6979193f2ff4541ab274738bd48072899c", + "0x0000000000000000000000000000000000000000000000000000000000002987": "1f12c89436a94d427a69bca5a080edc328bd2424896f3f37223186b440deb45e", + "0x0000000000000000000000000000000000000000000000000000000000002991": "ccb765890b7107fd98056a257381b6b1d10a83474bbf1bdf8e6b0b8eb9cef2a9", + "0x000000000000000000000000000000000000000000000000000000000000299b": "8bbf4e534dbf4580edc5a973194a725b7283f7b9fbb7d7d8deb386aaceebfa84", + "0x00000000000000000000000000000000000000000000000000000000000029a5": "85a0516088f78d837352dcf12547ee3c598dda398e78a9f4d95acfbef19f5e19", + "0x00000000000000000000000000000000000000000000000000000000000029af": "0f669bc7780e2e5719f9c05872a112f6511e7f189a8649cda5d8dda88d6b8ac3", + "0x00000000000000000000000000000000000000000000000000000000000029b9": "a7816288f9712fcab6a2b6fbd0b941b8f48c2acb635580ed80c27bed7e840a57", + "0x00000000000000000000000000000000000000000000000000000000000029c3": "da5168c8c83ac67dfc2772af49d689f11974e960dee4c4351bac637db1a39e82", + "0x00000000000000000000000000000000000000000000000000000000000029cd": "3f720ecec02446f1af948de4eb0f54775562f2d615726375c377114515ac545b", + "0x00000000000000000000000000000000000000000000000000000000000029d7": "273830a0087f6cef0fdb42179aa1c6c8c19f7bc83c3dc7aa1a56e4e05ca473ea", + "0x00000000000000000000000000000000000000000000000000000000000029e1": "7044f700543fd542e87e7cdb94f0126b0f6ad9488d0874a8ac903a72bade34e9", + "0x00000000000000000000000000000000000000000000000000000000000029eb": "f63a7ff76bb9713bea8d47831a1510d2c8971accd22a403d5bbfaaa3dc310616", + "0x00000000000000000000000000000000000000000000000000000000000029f5": "a68dbd9898dd1589501ca3220784c44d41852ad997a270e215539d461ec090f8", + "0x00000000000000000000000000000000000000000000000000000000000029ff": "59e501ae3ba9e0c3adafdf0f696d2e6a358e1bec43cbe9b0258c2335dd8d764f", + "0x0000000000000000000000000000000000000000000000000000000000002a09": "4f19cff0003bdc03c2fee20db950f0efb323be170f0b09c491a20abcf26ecf43", + "0x0000000000000000000000000000000000000000000000000000000000002a13": "52b1b89795a8fabd3c8594bd571b44fd72279979aaa1d49ea7105c787f8f5fa6", + "0x0000000000000000000000000000000000000000000000000000000000002a1d": "7c1416bd4838b93bc87990c9dcca108675bafab950dd0faf111d9eddc4e54327", + "0x0000000000000000000000000000000000000000000000000000000000002a27": "ef87a35bb6e56e7d5a1f804c63c978bbd1c1516c4eb70edad2b8143169262c9f", + "0x0000000000000000000000000000000000000000000000000000000000002a31": "e978f25d16f468c0a0b585994d1e912837f55e1cd8849e140f484a2702385ef2", + "0x0000000000000000000000000000000000000000000000000000000000002a3b": "c3e85e9260b6fad139e3c42587cc2df7a9da07fadaacaf2381ca0d4a0c91c819", + "0x0000000000000000000000000000000000000000000000000000000000002a45": "bd2647c989abfd1d340fd05add92800064ad742cd82be8c2ec5cc7df20eb0351", + "0x0000000000000000000000000000000000000000000000000000000000002a4f": "99ac5ad7b62dd843abca85e485a6d4331e006ef9d391b0e89fb2eeccef1d29a2", + "0x0000000000000000000000000000000000000000000000000000000000002a59": "02a4349c3ee7403fe2f23cad9cf2fb6933b1ae37e34c9d414dc4f64516ea9f97", + "0x0000000000000000000000000000000000000000000000000000000000002a63": "627b41fdbdf4a95381da5e5186123bf808c119b849dfdd3f515fa8d54c19c771", + "0x0000000000000000000000000000000000000000000000000000000000002a6d": "c087b16d7caa58e1361a7b158159469975f55582a4ef760465703a40123226d7", + "0x0000000000000000000000000000000000000000000000000000000000002a77": "f7a477c0c27d4890e3fb56eb2dc0386e7409d1c59cab6c7f22b84de45b4c6867", + "0x0000000000000000000000000000000000000000000000000000000000002a81": "1cb440b7d88e98ceb953bc46b003fde2150860be05e11b9a5abae2c814a71571", + "0x0000000000000000000000000000000000000000000000000000000000002a8b": "72613e3e30445e37af38976f6bb3e3bf7debbcf70156eb37c5ac4e41834f9dd2", + "0x0000000000000000000000000000000000000000000000000000000000002a95": "e69e7568b9e70ee7e71ebad9548fc8afad5ff4435df5d55624b39df9e8826c91", + "0x0000000000000000000000000000000000000000000000000000000000002a9f": "c3f1682f65ee45ce7019ee7059d65f8f1b0c0a8f68f94383410f7e6f46f26577", + "0x0000000000000000000000000000000000000000000000000000000000002aa9": "93ee1e4480ed7935097467737e54c595a2a6424cf8eaed5eacc2bf23ce368192", + "0x0000000000000000000000000000000000000000000000000000000000002ab3": "b07f8855348b496166d3906437b8b76fdf7918f2e87858d8a78b1deece6e2558", + "0x0000000000000000000000000000000000000000000000000000000000002abd": "ec60e51de32061c531b80d2c515bfa8f81600b9b50fc02beaf4dc01dd6e0c9ca", + "0x0000000000000000000000000000000000000000000000000000000000002ac7": "2fc9f34b3ed6b3cabd7b2b65b4a21381ad4419670eed745007f9efa8dd365ef1", + "0x0000000000000000000000000000000000000000000000000000000000002ad1": "f4af3b701f9b088d23f93bb6d5868370ed1cdcb19532ddd164ed3f411f3e5a95", + "0x0000000000000000000000000000000000000000000000000000000000002adb": "8272e509366a028b8d6bbae2a411eb3818b5be7dac69104a4e72317e55a9e697", + "0x0000000000000000000000000000000000000000000000000000000000002ae5": "a194d76f417dafe27d02a6044a913c0b494fe893840b5b745386ae6078a44e9c", + "0x0000000000000000000000000000000000000000000000000000000000002aef": "a255e59e9a27c16430219b18984594fc1edaf88fe47dd427911020fbc0d92507", + "0x0000000000000000000000000000000000000000000000000000000000002af9": "7996946b8891ebd0623c7887dd09f50a939f6f29dea4ca3c3630f50ec3c575cb", + "0x0000000000000000000000000000000000000000000000000000000000002b03": "b04cbab069405f18839e6c6cf85cc19beeb9ee98c159510fcb67cb84652b7db9", + "0x0000000000000000000000000000000000000000000000000000000000002b0d": "6f241a5e530d1e261ef0f5800d7ff252c33ce148865926e6231d4718f0b9eded", + "0x0000000000000000000000000000000000000000000000000000000000002b17": "fcfa9f1759f8db6a7e452af747a972cf3b1b493a216dbd32db21f7c2ce279cce", + "0x0000000000000000000000000000000000000000000000000000000000002b21": "df880227742710ac4f31c0466a6da7c56ec54caccfdb8f58e5d3f72e40e800f3", + "0x0000000000000000000000000000000000000000000000000000000000002b2b": "adfe28a0f8afc89c371dc7b724c78c2e3677904d03580c7141d32ba32f0ed46f", + "0x0000000000000000000000000000000000000000000000000000000000002b35": "b264d19d2daf7d5fcf8d2214eba0aacf72cabbc7a2617219e535242258d43a31", + "0x0000000000000000000000000000000000000000000000000000000000002b3f": "f2207420648dccc4f01992831e219c717076ff3c74fb88a96676bbcfe1e63f38", + "0x0000000000000000000000000000000000000000000000000000000000002b49": "41e8fae73b31870db8546eea6e11b792e0c9daf74d2fbb6471f4f6c6aaead362", + "0x0000000000000000000000000000000000000000000000000000000000002b53": "4e7a5876c1ee2f1833267b5bd85ac35744a258cc3d7171a8a8cd5c87811078a2", + "0x0000000000000000000000000000000000000000000000000000000000002b5d": "8d4a424d1a0ee910ccdfc38c7e7f421780c337232d061e3528e025d74b362315", + "0x0000000000000000000000000000000000000000000000000000000000002b67": "fa65829d54aba84896370599f041413d50f1acdc8a178211b2960827c1f85cbf", + "0x0000000000000000000000000000000000000000000000000000000000002b71": "da5dfc12da14eafad2ac2a1456c241c4683c6e7e40a7c3569bc618cfc9d6dca3", + "0x0000000000000000000000000000000000000000000000000000000000002b7b": "16243e7995312ffa3983c5858c6560b2abc637c481746003b6c2b58c62e9a547", + "0x0000000000000000000000000000000000000000000000000000000000002b85": "b75f0189b31abbbd88cd32c47ed311c93ec429f1253ee715a1b00d1ca6a1e094", + "0x0000000000000000000000000000000000000000000000000000000000002b8f": "d087eb94d6347da9322e3904add7ff7dd0fd72b924b917a8e10dae208251b49d", + "0x0000000000000000000000000000000000000000000000000000000000002b99": "bc17244b8519292d8fbb455f6253e57ecc16b5803bd58f62b0d94da7f8b2a1d6", + "0x0000000000000000000000000000000000000000000000000000000000002ba3": "3ff8b39a3c6de6646124497b27e8d4e657d103c72f2001bdd4c554208a0566e3", + "0x0000000000000000000000000000000000000000000000000000000000002bad": "4d0f765d2b6a01f0c787bbb13b1360c1624704883e2fd420ea36037fa7e3a563", + "0x0000000000000000000000000000000000000000000000000000000000002bb7": "f6f1dc891258163196785ce9516a14056cbe823b17eb9b90eeee7a299c1ce0e0", + "0x0000000000000000000000000000000000000000000000000000000000002bc1": "1dbf19b70c0298507d20fb338cc167d9b07b8747351785047e1a736b42d999d1", + "0x0000000000000000000000000000000000000000000000000000000000002bcb": "c3b71007b20abbe908fdb7ea11e3a3f0abff3b7c1ced865f82b07f100167de57", + "0x0000000000000000000000000000000000000000000000000000000000002bd5": "3f45edc424499d0d4bbc0fd5837d1790cb41c08f0269273fdf66d682429c25cc", + "0x0000000000000000000000000000000000000000000000000000000000002bdf": "cb8f5db9446c485eaae7edbc03e3afed72892fa7f11ad8eb7fa9dffbe3c220eb", + "0x0000000000000000000000000000000000000000000000000000000000002be9": "3d151527b5ba165352a450bee69f0afc78cf2ea9645bb5d8f36fb04435f0b67c", + "0x0000000000000000000000000000000000000000000000000000000000002bf3": "dd96b35b4ffabce80d377420a0b00b7fbf0eff6a910210155d22d9bd981be5d3", + "0x0000000000000000000000000000000000000000000000000000000000002bfd": "ace0c30b543d3f92f37eaac45d6f8730fb15fcaaaad4097ea42218abe57cb9f4", + "0x0000000000000000000000000000000000000000000000000000000000002c07": "f6342dd31867c9bef6ffa06b6cf192db23d0891ed8fe610eb8d1aaa79726da01", + "0x0000000000000000000000000000000000000000000000000000000000002c11": "a6589e823979c2c2ac55e034d547b0c63aa02109133575d9f159e8a7677f03cb", + "0x0000000000000000000000000000000000000000000000000000000000002c1b": "9ce48bc641cc1d54ffdb409aab7da1304d5ee08042596b3542ca9737bb2b79a8", + "0x0000000000000000000000000000000000000000000000000000000000002c25": "a44be801bd978629775c00d70df6d70b76d0ba918595e81415a27d1e3d6fdee9", + "0x0000000000000000000000000000000000000000000000000000000000002c2f": "ce17f1e7af9f7ea8a99b2780d87b15d8b80a68fb29ea52f962b00fecfc6634e0", + "0x0000000000000000000000000000000000000000000000000000000000002c39": "4bd91febab8df3770c957560e6185e8af59d2a42078756c525cd7769eb943894", + "0x0000000000000000000000000000000000000000000000000000000000002c43": "414c2a52de31de93a3c69531247b016ac578435243073acc516d4ea673c8dd80", + "0x0000000000000000000000000000000000000000000000000000000000002c4d": "647fb60bdf2683bd46b63d6884745782364a5522282ed1dc67d9e17c4aaab17d", + "0x0000000000000000000000000000000000000000000000000000000000002c57": "fa681ffd0b0dd6f6775e99a681241b86a3a24446bc8a69cdae915701243e3855", + "0x0000000000000000000000000000000000000000000000000000000000002c61": "106ca692777b30cb2aa23ca59f5591514b28196ee8e9b06aa2b4deaea30d9ef6", + "0x0000000000000000000000000000000000000000000000000000000000002c6b": "494ac6d09377eb6a07ff759df61c2508e65e5671373d756c82e648bd9086d91a", + "0x0000000000000000000000000000000000000000000000000000000000002c75": "0ae4ccd2bffa603714cc453bfd92f769dce6c9731c03ac3e2083f35388e6c795", + "0x0000000000000000000000000000000000000000000000000000000000002c7f": "d860c999490d9836cc00326207393c78445b7fb90b12aa1d3607e3662b3d32cd", + "0x0000000000000000000000000000000000000000000000000000000000002c89": "9587384f876dfec24da857c0bcdb3ded17f3328f28a4d59aa35ca7c25c8102cf", + "0x0000000000000000000000000000000000000000000000000000000000002c93": "4df8093d29bc0ec4e2a82be427771e77a206566194734a73c23477e1a9e451f8", + "0x0000000000000000000000000000000000000000000000000000000000002c9d": "c56640f78acbd1da07701c365369766f09a19800ba70276f1f1d3cd1cf6e0686", + "0x0000000000000000000000000000000000000000000000000000000000002ca7": "7173d4210aa525eece6b4b19b16bab23686ff9ac71bb9d16008bb114365e79f2", + "0x0000000000000000000000000000000000000000000000000000000000002cb1": "89698b41d7ac70e767976a9f72ae6a46701456bc5ad8d146c248548409c90015", + "0x0000000000000000000000000000000000000000000000000000000000002cbb": "5b605ab5048d9e4a51ca181ac3fa7001ef5d415cb20335b095c54a40c621dbff", + "0x0000000000000000000000000000000000000000000000000000000000002cc5": "9129a84b729e7f69a5522a7020db57e27bf8cbb6042e030106c0cbd185bf0ab8", + "0x0000000000000000000000000000000000000000000000000000000000002ccf": "31a63d6d54153ab35fc57068db205a3e68908be238658ca82d8bee9873f82159", + "0x0000000000000000000000000000000000000000000000000000000000002cd9": "828641bcea1bc6ee1329bc39dca0afddc11e6867f3da13d4bb5170c54158860d", + "0x0000000000000000000000000000000000000000000000000000000000002ce3": "7e0752ddd86339f512ec1b647d3bf4b9b50c45e309ab9e70911da7716454b053", + "0x0000000000000000000000000000000000000000000000000000000000002ced": "31d973051189456d5998e05b500da6552138644f8cdbe4ec63f96f21173cb6a1", + "0x0000000000000000000000000000000000000000000000000000000000002cf7": "e33e65b3d29c3b55b2d7b584c5d0540eb5c00c9f157287863b0b619339c302f0", + "0x0000000000000000000000000000000000000000000000000000000000002d01": "78d55514bcef24b40c7eb0fbe55f922d4468c194f313898f28ba85d8534df82c", + "0x0000000000000000000000000000000000000000000000000000000000002d0b": "2e0f4be4d8adf8690fd64deddbc543f35c5b4f3c3a27b10a77b1fdb8d590f1ee", + "0x0000000000000000000000000000000000000000000000000000000000002d15": "e1b83ea8c4329f421296387826c89100d82bdc2263ffd8eb9368806a55d9b83b", + "0x0000000000000000000000000000000000000000000000000000000000002d1f": "4ddad36d7262dd9201c5bdd58523f4724e3b740fddbed2185e32687fecacdf6b", + "0x0000000000000000000000000000000000000000000000000000000000002d29": "156c0674e46cdec70505443c5269d42c7bb14ee6c00f86a23962f08906cbb846", + "0x0000000000000000000000000000000000000000000000000000000000002d33": "dfc56ec6c218a08b471d757e0e7de8dddec9e82f401cb7d77df1f2a9ca54c607", + "0x0000000000000000000000000000000000000000000000000000000000002d3d": "395d660f77c4360705cdc0be895907ec183097f749fac18b6eaa0245c1009074", + "0x0000000000000000000000000000000000000000000000000000000000002d47": "84c0060087da2c95dbd517d0f2dd4dfba70691a5952fe4048c310e88e9c06e4f", + "0x0000000000000000000000000000000000000000000000000000000000002d51": "f4df943c52b1d5fb9c1f73294ca743577d83914ec26d6e339b272cdeb62de586", + "0x0000000000000000000000000000000000000000000000000000000000002d5b": "0bb47661741695863ef89d5c2b56666772f871be1cc1dccf695bd357e4bb26d6", + "0x0000000000000000000000000000000000000000000000000000000000002d65": "4a1f7691f29900287c6931545884881143ecae44cb26fdd644892844fde65dac", + "0x0000000000000000000000000000000000000000000000000000000000002d6f": "9b133cc50cbc46d55ce2910eebaf8a09ab6d4e606062c94aac906da1646bc33f", + "0x0000000000000000000000000000000000000000000000000000000000002d79": "473b076b542da72798f9de31c282cb1dcd76cba2a22adc7391670ffdbc910766", + "0x0000000000000000000000000000000000000000000000000000000000002d83": "225dd472ef6b36a51de5c322a31a9f71c80f0f350432884526d9844bb2e676d3", + "0x0000000000000000000000000000000000000000000000000000000000002d8d": "31df97b2c9fc65b5520b89540a42050212e487f46fac67685868f1c3e652a9aa", + "0x0000000000000000000000000000000000000000000000000000000000002d97": "4416d885f34ad479409bb9e05e8846456a9be7e74655b9a4d7568a8d710aa06a", + "0x0000000000000000000000000000000000000000000000000000000000002da1": "ae627f8802a46c1357fa42a8290fd1366ea21b8ccec1cc624e42022647c53802", + "0x0000000000000000000000000000000000000000000000000000000000002dab": "8961e8b83d91487fc32b3d6af26b1d5e7b4010dd8d028fe165187cdfb04e151c", + "0x0000000000000000000000000000000000000000000000000000000000002db5": "c22e39f021605c6f3d967aef37f0bf40b09d776bac3edb4264d0dc07389b9845", + "0x0000000000000000000000000000000000000000000000000000000000002dbf": "7cfa4c7066c690c12b9e8727551bef5fe05b750ac6637a5af632fce4ceb4e2ce", + "0x0000000000000000000000000000000000000000000000000000000000002dc9": "943d79e4329b86f8e53e8058961955f2b0a205fc3edeea2aae54ba0c22b40c31", + "0x0000000000000000000000000000000000000000000000000000000000002dd3": "66598070dab784e48a153bf9c6c3e57d8ca92bed6592f0b9e9abe308a17aedf0", + "0x0000000000000000000000000000000000000000000000000000000000002ddd": "ac8fe4eb91577288510a9bdae0d5a8c40b8225172379cd70988465d8b98cfa70", + "0x0000000000000000000000000000000000000000000000000000000000002de7": "2b0018a8548e5ce2a6b6b879f56e3236cc69d2efff80f48add54efd53681dfce", + "0x0000000000000000000000000000000000000000000000000000000000002df1": "823445936237e14452e253a6692290c1be2e1be529ddbeecc35c9f54f7ea9887", + "0x0000000000000000000000000000000000000000000000000000000000002dfb": "3051a0d0701d233836b2c802060d6ee629816c856a25a62dc73bb2f2fc93b918", + "0x0000000000000000000000000000000000000000000000000000000000002e05": "44a50fda08d2f7ca96034186475a285a8a570f42891f72d256a52849cb188c85", + "0x0000000000000000000000000000000000000000000000000000000000002e0f": "6e60069a12990ef960c0ac825fd0d9eb44aec9eb419d0df0c25d7a1d16c282e7", + "0x0000000000000000000000000000000000000000000000000000000000002e19": "581ddf7753c91af00c894f8d5ab22b4733cfeb4e75c763725ebf46fb889fa76a", + "0x0000000000000000000000000000000000000000000000000000000000002e23": "9a1dfba8b68440fcc9e89b86e2e290367c5e5fb0833b34612d1f4cfc53189526", + "0x0000000000000000000000000000000000000000000000000000000000002e2d": "54a623060b74d56f3c0d6793e40a9269c56f90bcd19898855113e5f9e42abc2d", + "0x0000000000000000000000000000000000000000000000000000000000002e37": "1cfeb8cd5d56e1d202b4ec2851f22e99d6ad89af8a4e001eb014b724d2d64924", + "0x0000000000000000000000000000000000000000000000000000000000002e41": "ad223cbf591f71ffd29e2f1c676428643313e3a8e8a7d0b0e623181b3047be92", + "0x0000000000000000000000000000000000000000000000000000000000002e4b": "e13f31f026d42cad54958ad2941f133d8bd85ee159f364a633a79472f7843b67", + "0x0000000000000000000000000000000000000000000000000000000000002e55": "b45099ae3bbe17f4417d7d42951bd4425bce65f1db69a354a64fead61b56306d", + "0x0000000000000000000000000000000000000000000000000000000000002e5f": "9d2b65379c5561a607df4dae8b36eca78818acec4455eb47cfa437a0b1941707", + "0x0000000000000000000000000000000000000000000000000000000000002e69": "5855b3546d3becda6d5dd78c6440f879340a5734a18b06340576a3ce6a48d9a0", + "0x0000000000000000000000000000000000000000000000000000000000002e73": "d6a61c76ae029bb5bca86d68422c55e8241d9fd9b616556b375c91fb7224b79e", + "0x0000000000000000000000000000000000000000000000000000000000002e7d": "96ac5006561083735919ae3cc8d0762a9cba2bdefd4a73b8e69f447f689fba31", + "0x0000000000000000000000000000000000000000000000000000000000002e87": "4ced18f55676b924d39aa7bcd7170bac6ff4fbf00f6a800d1489924c2a091412", + "0x0000000000000000000000000000000000000000000000000000000000002e91": "c95a6a7efdbefa710a525085bcb57ea2bf2d4ae9ebfcee4be3777cfcc3e534ea", + "0x0000000000000000000000000000000000000000000000000000000000002e9b": "2b2917b5b755eb6af226e16781382bd22a907c9c7411c34a248af2b5a0439079", + "0x0000000000000000000000000000000000000000000000000000000000002ea5": "18d5804f2e9ad3f891ecf05e0bfc2142c2a9f7b4de03aebd1cf18067a1ec6490", + "0x0000000000000000000000000000000000000000000000000000000000002eaf": "b47682f0ce3783700cbe5ffbb95d22c943cc74af12b9c79908c5a43f10677478", + "0x0000000000000000000000000000000000000000000000000000000000002eb9": "e4b60e5cfb31d238ec412b0d0e3ad9e1eb00e029c2ded4fea89288f900f7db0e", + "0x0000000000000000000000000000000000000000000000000000000000002ec3": "fc0ea3604298899c10287bba84c02b9ec5d6289c1493e9fc8d58920e4eaef659", + "0x0000000000000000000000000000000000000000000000000000000000002ecd": "4c3301a70611b34e423cf713bda7f6f75bd2070f909681d3e54e3a9a6d202e5a", + "0x0000000000000000000000000000000000000000000000000000000000002ed7": "84a5b4e32a62bf3298d846e64b3896dffbbcc1fafb236df3a047b5223577d07b", + "0x0000000000000000000000000000000000000000000000000000000000002ee1": "ff70b97d34af8e2ae984ada7bc6f21ed294d9b392a903ad8bbb1be8b44083612", + "0x0000000000000000000000000000000000000000000000000000000000002eeb": "73e186de72ef30e4be4aeebe3eaec84222f8a325d2d07cd0bd1a49f3939915ce", + "0x0000000000000000000000000000000000000000000000000000000000002ef5": "ed185ec518c0459392b274a3d10554e452577d33ecb72910f613941873e61215", + "0x0000000000000000000000000000000000000000000000000000000000002eff": "5cfbad3e509733bce64e0f6492b3886300758c47a38e9edec4b279074c7966d4", + "0x0000000000000000000000000000000000000000000000000000000000002f09": "867a7ab4c504e836dd175bd6a00e8489f36edaeda95db9ce4acbf9fb8df28926", + "0x0000000000000000000000000000000000000000000000000000000000002f13": "0d01993fd605f101c950c68b4cc2b8096ef7d0009395dec6129f86f195eb2217", + "0x0000000000000000000000000000000000000000000000000000000000002f1d": "8e14fd675e72f78bca934e1ffad52b46fd26913063e7e937bce3fa11aed29075", + "0x0000000000000000000000000000000000000000000000000000000000002f27": "4ec1847e4361c22cdecc67633e244b9e6d04ec103f4019137f9ba1ecc90198f4", + "0x0000000000000000000000000000000000000000000000000000000000002f31": "ec69e9bbb0184bf0889df50ec7579fa4029651658d639af456a1f6a7543930ef", + "0x0000000000000000000000000000000000000000000000000000000000002f3b": "efdd626048ad0aa6fcf806c7c2ad7b9ae138136f10a3c2001dc5b6c920db1554", + "0x0000000000000000000000000000000000000000000000000000000000002f45": "551de1e4cafd706535d77625558f8d3898173273b4353143e5e1c7e859848d6b", + "0x0000000000000000000000000000000000000000000000000000000000002f4f": "137efe559a31d9c5468259102cd8634bba72b0d7a0c7d5bcfc449c5f4bdb997a", + "0x0000000000000000000000000000000000000000000000000000000000002f59": "fb0a1b66acf5f6bc2393564580d74637945891687e61535aae345dca0b0f5e78", + "0x0000000000000000000000000000000000000000000000000000000000002f63": "96eea2615f9111ee8386319943898f15c50c0120b8f3263fab029123c5fff80c", + "0x0000000000000000000000000000000000000000000000000000000000002f6d": "68725bebed18cd052386fd6af9b398438c01356223c5cc15f49093b92b673eff", + "0x0000000000000000000000000000000000000000000000000000000000002f77": "e2f1e4557ed105cf3bd8bc51ebaa4446f554dcb38c005619bd9f203f4494f5dd", + "0x0000000000000000000000000000000000000000000000000000000000002f81": "48ef06d84d5ad34fe56ce62e095a34ea4a903bf597a8640868706af7b4de7288", + "0x0000000000000000000000000000000000000000000000000000000000002f8b": "5c57714b2a85d0d9331ce1ee539a231b33406ec19adcf1d8f4c88ab8c1f4fbae", + "0x0000000000000000000000000000000000000000000000000000000000002f95": "204299e7aa8dfe5328a0b863b20b6b4cea53a469d6dc8d4b31c7873848a93f33", + "0x0000000000000000000000000000000000000000000000000000000000002f9f": "b74eea6df3ce54ee9f069bebb188f4023673f8230081811ab78ce1c9719879e5", + "0x0000000000000000000000000000000000000000000000000000000000002fa9": "af5624a3927117b6f1055893330bdf07a64e96041241d3731b9315b5cd6d14d7", + "0x0000000000000000000000000000000000000000000000000000000000002fb3": "c657b0e79c166b6fdb87c67c7fe2b085f52d12c6843b7d6090e8f230d8306cda", + "0x0000000000000000000000000000000000000000000000000000000000002fbd": "a0e08ceff3f3c426ab2c30881eff2c2fc1edf04b28e1fb38e622648224ffbc6b", + "0x0000000000000000000000000000000000000000000000000000000000002fc7": "c9792da588df98731dfcbf54a6264082e791540265acc2b3ccca5cbd5c0c16de", + "0x0000000000000000000000000000000000000000000000000000000000002fd1": "c74f4bb0f324f42c06e7aeacb9446cd5ea500c3b014d5888d467610eafb69297", + "0x0000000000000000000000000000000000000000000000000000000000002fdb": "1acd960a8e1dc68da5b1db467e80301438300e720a450ab371483252529a409b", + "0x0000000000000000000000000000000000000000000000000000000000002fe5": "6cef279ba63cbac953676e889e4fe1b040994f044078196a6ec4e6d868b79aa1", + "0x0000000000000000000000000000000000000000000000000000000000002fef": "60eb986cb497a0642b684852f009a1da143adb3128764b772daf51f6efaae90a", + "0x0000000000000000000000000000000000000000000000000000000000002ff9": "c50024557485d98123c9d0e728db4fc392091f366e1639e752dd677901681acc", + "0x0000000000000000000000000000000000000000000000000000000000003003": "b860632e22f3e4feb0fdf969b4241442eae0ccf08f345a1cc4bb62076a92d93f", + "0x000000000000000000000000000000000000000000000000000000000000300d": "21085bf2d264529bd68f206abc87ac741a2b796919eeee6292ed043e36d23edb", + "0x0000000000000000000000000000000000000000000000000000000000003017": "80052afb1f39f11c67be59aef7fe6551a74f6b7d155a73e3d91b3a18392120a7", + "0x0000000000000000000000000000000000000000000000000000000000003021": "a3b0793132ed37459f24d6376ecfa8827c4b1d42afcd0a8c60f9066f230d7675", + "0x000000000000000000000000000000000000000000000000000000000000302b": "e69d353f4bc38681b4be8cd5bbce5eb4e819399688b0b6225b95384b08dcc8b0", + "0x0000000000000000000000000000000000000000000000000000000000003035": "221e784d42a121cd1d13d111128fcae99330408511609ca8b987cc6eecafefc4", + "0x000000000000000000000000000000000000000000000000000000000000303f": "dcd669ebef3fb5bebc952ce1c87ae4033b13f37d99cf887022428d024f3a3d2e", + "0x0000000000000000000000000000000000000000000000000000000000003049": "4dd1eb9319d86a31fd56007317e059808f7a76eead67aecc1f80597344975f46", + "0x0000000000000000000000000000000000000000000000000000000000003053": "5e1834c653d853d146db4ab6d17509579497c5f4c2f9004598bcd83172f07a5f", + "0x000000000000000000000000000000000000000000000000000000000000305d": "9f78a30e124d21168645b9196d752a63166a1cf7bbbb9342d0b8fee3363ca8de", + "0x0000000000000000000000000000000000000000000000000000000000003067": "1f7c1081e4c48cef7d3cb5fd64b05135775f533ae4dabb934ed198c7e97e7dd8", + "0x0000000000000000000000000000000000000000000000000000000000003071": "4d40a7ec354a68cf405cc57404d76de768ad71446e8951da553c91b06c7c2d51", + "0x000000000000000000000000000000000000000000000000000000000000307b": "f653da50cdff4733f13f7a5e338290e883bdf04adf3f112709728063ea965d6c", + "0x0000000000000000000000000000000000000000000000000000000000003085": "259ab95f666ac488c7d45e2a64d6f6c2bb8dc740b23d3e94a04617a0a3fbe0eb", + "0x000000000000000000000000000000000000000000000000000000000000308f": "c4b808157fad1819c40973c2712d24ce49df04f8ad955ad0373625dcbcc5aa7b", + "0x0000000000000000000000000000000000000000000000000000000000003099": "e7c5536cfd18a67450339a94845bc86835cab1386e7f8b3eff0b4e23e706c23e", + "0x00000000000000000000000000000000000000000000000000000000000030a3": "8f5d7fbf3369ffcc9cc71dc871a54df7fd2f391054043e91f4afd27937ad2571", + "0x00000000000000000000000000000000000000000000000000000000000030ad": "77b7c55aa160a8bb8011b7132e25c90653a099d1e2925643721c979dde14c1c2", + "0x00000000000000000000000000000000000000000000000000000000000030b7": "9cd67bbefa6a7a9ae1eab06e461086b6bad850bfb0bda838ea83dc58d0c20feb", + "0x00000000000000000000000000000000000000000000000000000000000030c1": "060aba9d44a5513488273214452bed1c1e85dc18695bf28a44d98dd24d20cee5", + "0x00000000000000000000000000000000000000000000000000000000000030cb": "d5fc23888bb73b0a9c6bf06b969040c7be41d5bfcbaf51388390fe09abbfe03f", + "0x00000000000000000000000000000000000000000000000000000000000030d5": "7e0f61114c9e1271a083af0112a3d8e75c1945bdbf4436b2d06604cdd3e48ed4", + "0x00000000000000000000000000000000000000000000000000000000000030df": "8a6f4493c846bfcfb55e3813f2be3ce8a97c822d88bbf56ebe6070da480dca20", + "0x00000000000000000000000000000000000000000000000000000000000030e9": "83e6fd189fd00cd332b6a76e3806367f086beb3e0fd0060c0a3574d10cf86c8a", + "0x00000000000000000000000000000000000000000000000000000000000030f3": "775e887c6cb79392692d17fc58f861a98e70d013afd252b2a644073fa185034c", + "0x00000000000000000000000000000000000000000000000000000000000030fd": "d6f95bc3e63325669aa3b41a80caaaa350031821fc65f792cec135bbfca7b9a9", + "0x0000000000000000000000000000000000000000000000000000000000003107": "cbaab7c932a6465b5c3ff1d248ca02300484a6e6e9b6140983daeb58eb16a434", + "0x0000000000000000000000000000000000000000000000000000000000003111": "a0d5f4fbf6dcc49bee52b3f185c619817e08a3dff2bfd11cfae07557bf3e5727", + "0x000000000000000000000000000000000000000000000000000000000000311b": "7bcd5ed57e123ed0d2a16b433c4e584231867efef22b4903b0de3dba6c0249ff", + "0x0000000000000000000000000000000000000000000000000000000000003125": "24054b31c796a86751c71d8f0113d6f56397bc46dec675697960c4ee6d1370d7", + "0x000000000000000000000000000000000000000000000000000000000000312f": "6a3a65f6fcf34e82edbc10f8ce17c7aac559454d22b5f8b865b0b26182a791b2", + "0x0000000000000000000000000000000000000000000000000000000000003139": "43a4a75cdb8ddebc28bf09b4ae12d71dc0765defafcd384de22c3711726a5d80", + "0x0000000000000000000000000000000000000000000000000000000000003143": "0d9b141fe39d89d2bedec5f3d98f0533f43a4d7c407d4df1e3faa9a386875fb0", + "0x000000000000000000000000000000000000000000000000000000000000314d": "06747e12a0ff61f487ca91cc386c696148d6e20a1ece40d5a3528a3899f0536d", + "0x0000000000000000000000000000000000000000000000000000000000003157": "7886c0928a9559d88002185e1f2474adc78ea9c997a343656449cbb6ec97d65b", + "0x0000000000000000000000000000000000000000000000000000000000003161": "c00472c88e5c05094693f81159e3b89cc45cac9dde868c41e1e418f6f09c8fbc", + "0x000000000000000000000000000000000000000000000000000000000000316b": "c8d220c2229f22cc81c69ebdd7e54d6964acbe0d550eacc6a83eb488c4d5bda8", + "0x0000000000000000000000000000000000000000000000000000000000003175": "26f2e58f0750c1fe9056a9a6392d3ef6af4c7ffc78033e2c42e9fdf96ca15361", + "0x000000000000000000000000000000000000000000000000000000000000317f": "8aae197b8ccf12c586225a94624141507808c6ab7ee29e9ee6e324d01557fd5e", + "0x0000000000000000000000000000000000000000000000000000000000003189": "946d6d60fe20c81d1cf507d2a9567fc06ea539ac3a542d283373ccee3f82212d", + "0x0000000000000000000000000000000000000000000000000000000000003193": "c43169ff521bf0728a5e972911abeacd2f597eff89b961f3132b2f91ce04dc20", + "0x000000000000000000000000000000000000000000000000000000000000319d": "427e24cb2c8355bd1f18d20aa668805a4e4acfa1411ef2ec980839670499c0a7", + "0x00000000000000000000000000000000000000000000000000000000000031a7": "b96ddc711361deb1db8cbe6a3bf2bfa883bce23e2f2260c3a0f3c6758f3fcabb", + "0x00000000000000000000000000000000000000000000000000000000000031b1": "c92246b2394e70d0d0d5c3fd1a5f6c585293d1ee7589b5c8bb37e997e0985b82", + "0x00000000000000000000000000000000000000000000000000000000000031bb": "487f419b494cf102fa1813eb824fe3809d34806cc2548e6a41a9e3f755f6c131", + "0x00000000000000000000000000000000000000000000000000000000000031c5": "4ae0132498c0baaa78d768792661893e0455eea248e8e334e9aabcbec8909a0c", + "0x00000000000000000000000000000000000000000000000000000000000031cf": "b3c4c107e197af6bc4e5542501108ae40e405c8065c54c4f75784b217cddf40a", + "0x00000000000000000000000000000000000000000000000000000000000031d9": "5bb5995473e555f6b3a3649155d6c305866a8266f3a8e6d549fbb4b5c6a785a4", + "0x00000000000000000000000000000000000000000000000000000000000031e3": "034986be3995c99d86ded5f0984cb1c60f4d01157905782157f447054303e1c6", + "0x00000000000000000000000000000000000000000000000000000000000031ed": "ea092ecb252e475b5493c71739404f66771dfe92e90554924e7c979b1ac68c1f", + "0x00000000000000000000000000000000000000000000000000000000000031f7": "70403edcf814de8d55741ccb378648ba8de7893d6affa4ba0e5549d0de6bcb2b", + "0x0000000000000000000000000000000000000000000000000000000000003201": "b8b758a473ba28008dfe949d230cd8a73b4340bc0687cfe8b0326eded2558ba1", + "0x000000000000000000000000000000000000000000000000000000000000320b": "76daa53b1c8d26a50bd4e4eca2703ba4bcad8248f6ad3227ed0af745d19d8ae4", + "0x0000000000000000000000000000000000000000000000000000000000003215": "2143743a63aa6ab5a7a6586dc404e48493f59fcb7021c079cd5e7efbe4a9fc62", + "0x000000000000000000000000000000000000000000000000000000000000321f": "6919ec8682908f8de7753ac9fb4e8fb1b6c0b6cc2d2d1a7df12eef58d8c6c841", + "0x0000000000000000000000000000000000000000000000000000000000003229": "3c61846fc931a63f5fc1fb0dec6dfa5bee9c19104acc5a1dbd0fdfe331827dca", + "0x0000000000000000000000000000000000000000000000000000000000003233": "65e7c42e7c1674ca5d52dacbd9fdc6fad75a0cd87294e8641c56aaf12092774c", + "0x000000000000000000000000000000000000000000000000000000000000323d": "d17d5eec3cbd76848cac5f8fb453911fcf5d896670703252da7925f33f6597ca", + "0x0000000000000000000000000000000000000000000000000000000000003247": "aa5ae82882c7a2a53ab35d0499ae76069be55e70153ee47d3c712f48f24be400", + "0x0000000000000000000000000000000000000000000000000000000000003251": "5cd2ace5b0d5e6867c6d71e22516a625f6c5ab69e7067998cb789a2867c96b8e", + "0x000000000000000000000000000000000000000000000000000000000000325b": "c5ff6ef86066abbe0d48a2de1a1a2c4a5e9c695a1be00ada4e3ab8402b15b476", + "0x0000000000000000000000000000000000000000000000000000000000003265": "1b68873106bbf102095733021e2f7f49c4822f297c0930460d6358864868e09d", + "0x000000000000000000000000000000000000000000000000000000000000326f": "c55e7bb8bdeeaaae3b84adac51bddd9ba7a8c23b66e1a73325fef138edbe1fcc", + "0x0000000000000000000000000000000000000000000000000000000000003279": "b9b10d869f9b60ca46c5484073a0bb44fe92a031955f3555ed291fe0ffd8328a", + "0x0000000000000000000000000000000000000000000000000000000000003283": "ba29f52ef7aa5b2c71b61919ff7890c9c8d37234ba7fde07a58301b90296e3b2", + "0x000000000000000000000000000000000000000000000000000000000000328d": "990f0ab0ebf53ff997b27d831eb969965736cabf07d38003adb40a66d0a758bd", + "0x0000000000000000000000000000000000000000000000000000000000003297": "bda84af9ce3c88c3243669481454971f19d18b777e3a15ab7d87a7559d77ed43", + "0x00000000000000000000000000000000000000000000000000000000000032a1": "2c5d55a9ee442f1a84215cfcc70e2fe9ca0504b238c4b121587b015a43a8feed", + "0x00000000000000000000000000000000000000000000000000000000000032ab": "02e3afb0a7cbd95fb5926b8e9ca36f742f6a9981ed37f1a6dec56be6bf1081bc", + "0x00000000000000000000000000000000000000000000000000000000000032b5": "ead6fe3098cd7db5dbe406cbf0977458fe24bdba875ac5964f42607c7756ece3", + "0x00000000000000000000000000000000000000000000000000000000000032bf": "f10709ee045c777c61651e6ccf2b40b539f12fdb42642af7eaeb020ed05b1a15", + "0x00000000000000000000000000000000000000000000000000000000000032c9": "d60510beb7cc6faff2dbdf5571982f0fe16806f7099f5b96be88b34c884ad75d", + "0x00000000000000000000000000000000000000000000000000000000000032d3": "52d158762abaf754f45eedfacbdfe8d5d4cea5ecbca4315e9c42c14e22021a10", + "0x00000000000000000000000000000000000000000000000000000000000032dd": "542256a140e92ed9eb4280c21acc962f287cb81fdb913adad4ca43b89d3a7920", + "0x00000000000000000000000000000000000000000000000000000000000032e7": "79b058ec1c5cbe0920b5952501060f137989ac99cce216800bd06649890c3be1", + "0x00000000000000000000000000000000000000000000000000000000000032f1": "f4c5320c831d84242a9194e38951a279654456e3eb90f3712c14fdac4d326723", + "0x00000000000000000000000000000000000000000000000000000000000032fb": "c00307f2fde3105322eab259007d6fdfda80cef1b9472584e82bb321d1827305", + "0x0000000000000000000000000000000000000000000000000000000000003305": "f64129691e90ca381d267b0e80bcd562d68049c21d623c8ac7284edf560bf253", + "0x000000000000000000000000000000000000000000000000000000000000330f": "730279e1ea668c639d5c41d5d4cbb1b7f474dc359bc977017be59d5c4da6c2e4", + "0x0000000000000000000000000000000000000000000000000000000000003319": "09d9cafda4e28b50bba8823b4bf20a39646b273df60467b5cba6bcd04a9e417d", + "0x0000000000000000000000000000000000000000000000000000000000003323": "b0424ee936aae94e0394ede6947b15427dc1664a14d82a17969162ec6e838ec3", + "0x000000000000000000000000000000000000000000000000000000000000332d": "bbe5b3daa5def4caff6e3e2ccaa0d77694cb0886d68b6844888838d720c8a1ad", + "0x0000000000000000000000000000000000000000000000000000000000003337": "29cf1633458442d2d60c8597fd7e8e3032c77f715695390f6c6c79a56a1f6c41", + "0x0000000000000000000000000000000000000000000000000000000000003341": "af082fe588954fe25630edd8bb48a91725372f8615834cfa45e1994b2fe75b84", + "0x000000000000000000000000000000000000000000000000000000000000334b": "1d2385a885bc5bbab703e39a21c87909b765fee7808ceb7d64f6e0e1dcdbeada", + "0x0000000000000000000000000000000000000000000000000000000000003355": "9f7e031c508d86e139947f5b167bce022363da48a40dc260d10b7056ac51cf31", + "0x000000000000000000000000000000000000000000000000000000000000335f": "ae2de0af5de73a96ed6b567a73e6a11b603d6cd010885f5c0311faafa922f2cf", + "0x0000000000000000000000000000000000000000000000000000000000003369": "25b6a571ef6a73ada1798c7c6f5c6bfafe256c766329fec4f10bf8bad197ef43", + "0x0000000000000000000000000000000000000000000000000000000000003373": "a13ee26b6abfa659eab111d6d431ab808f24de841d7946e3972c71f886cf3b7e", + "0x000000000000000000000000000000000000000000000000000000000000337d": "7472248ce56a1577d4471f3da8cf5cde06f8950286675ca5a1194796a28a4005", + "0x0000000000000000000000000000000000000000000000000000000000003387": "b152754c5a5cc6999ca01b88a6d422090559b16c7ead087411458740c57a128a", + "0x0000000000000000000000000000000000000000000000000000000000003391": "651093fcc06254ac1de6075cba7da2cd7406b6a90a0f1425a26c7496f2f60dab", + "0x000000000000000000000000000000000000000000000000000000000000339b": "b93351b11b6a73ecb4818697b1ee7cea2eaf192a56caf8df1454b9bc7510f722", + "0x00000000000000000000000000000000000000000000000000000000000033a5": "7f4e75a6d4ab8d9dbe0728bda7f7ebf8bdc1942aecc5912f25573fdb9bafe803", + "0x00000000000000000000000000000000000000000000000000000000000033af": "767177cd603c7e3eb94583c38141b0d701b15631173ffb7a35beb5a7515c7fff", + "0x00000000000000000000000000000000000000000000000000000000000033b9": "b7cbac00a090b3cf081c92da779bab61f22c7f83e8b9c5dce4e91c8c1d208b7c", + "0x00000000000000000000000000000000000000000000000000000000000033c3": "38a90f286b0a1fe34e7d3b9ff797c39789970041d2818e5adc11b91e0579537c", + "0x00000000000000000000000000000000000000000000000000000000000033cd": "c19bcd1a95bf2edb1eaa8cf59fb23d053422845e57f4a41a2832500d1f415f5a", + "0x00000000000000000000000000000000000000000000000000000000000033d7": "1beb8053a04c4c9a4a885576977da294a141c196be9e4af9fd21d7801196559f", + "0x00000000000000000000000000000000000000000000000000000000000033e1": "6514900951391e916e7d78ae0340e1fa0cd5b3e4c1319438aa4db66177eba45c", + "0x00000000000000000000000000000000000000000000000000000000000033eb": "96836b3cb8f807083b6a006ae323d1e829d82357fedc171e8d20dacfe39755a9", + "0x00000000000000000000000000000000000000000000000000000000000033f5": "b4e2322123051b7ae894776aba06808205c6bf96a70e56b0c628a51408e5c28e", + "0x00000000000000000000000000000000000000000000000000000000000033ff": "db00a732067d4f7ab43e113731f05922c7acc4c9d937dcf77cca57ed319b3290", + "0x0000000000000000000000000000000000000000000000000000000000003409": "085cd56145b890e872ccab3784b1ec282a8adf95bb90f918fb400c03ca25b188", + "0x0000000000000000000000000000000000000000000000000000000000003413": "43fc6f30f79ff0be21aab95d8db8fa7b819fa91382063a80f286051f9f2d9aa9", + "0x000000000000000000000000000000000000000000000000000000000000341d": "bb26c41420c8eccc97109bec0db605657b7ad911842ea5c892af203f5dc72b0a", + "0x0000000000000000000000000000000000000000000000000000000000003427": "79e7d775b35bea6224afd7e2f838079f88413410f667f16dcaf54f2124a68de7", + "0x0000000000000000000000000000000000000000000000000000000000003431": "5f4be0643a56b90ece82db7ff08963e8d9796840afd11d6a1d0d39b4498fa26e", + "0x000000000000000000000000000000000000000000000000000000000000343b": "15b308f32252d593d6f48353f3217f10c391d03cff6eb9742f3bccbe6d1d6145", + "0x0000000000000000000000000000000000000000000000000000000000003445": "959068ffcb9b2830276c8aba06e7272d43aa3aa1b7220b9357ccf0f57c3c004d", + "0x000000000000000000000000000000000000000000000000000000000000344f": "e75e86a54290b92d8664fb2f08a2f88c05b4d97d79fe482da765f8386c614f", + "0x0000000000000000000000000000000000000000000000000000000000003459": "2b736a8b6f16cc86e1adc0f2970e29ca45ed79734255a30ecf92a40549d7bd56", + "0x0000000000000000000000000000000000000000000000000000000000003463": "c46c8a987f02fc5b5185de4713c08a87ff4de7c745df1d52326418c60ab262b2", + "0x000000000000000000000000000000000000000000000000000000000000346d": "4c5566cbcba6320f9081048390d01c905f9bc09b731d3e7f6d41a463755a8b58", + "0x0000000000000000000000000000000000000000000000000000000000003477": "da6fa07274e44043f94ee45fa0ceb22272d43aa0af21c6c9cc97edc786407138", + "0x0000000000000000000000000000000000000000000000000000000000003481": "874290457e263452e8d382faa3fbe492ccdb28cee1c8a5ff61c039977c20c053", + "0x000000000000000000000000000000000000000000000000000000000000348b": "0ffe5e304347d11e92a03004fd66c66fb058267e5c835b2ff6f4dade1ed6159e", + "0x0000000000000000000000000000000000000000000000000000000000003495": "9ae315e6ecd4a85e734e737190ea4501b8d0f5d0885ccaa267509bddb290bd07", + "0x000000000000000000000000000000000000000000000000000000000000349f": "b9808a96196fba3329eb714aa00743098723d9850510689ad18fd6952b655882", + "0x00000000000000000000000000000000000000000000000000000000000034a9": "3cacbae26791d03a0ba1bec3ba0599219257c88708b022bbddb7e7673ef818e1", + "0x00000000000000000000000000000000000000000000000000000000000034b3": "97874b014835a49286b4ea56d5a282b34220b0950c69558ef0e38877061c88d9", + "0x00000000000000000000000000000000000000000000000000000000000034bd": "30671eff1dd3e3e79d6269eacaca22ff3b4d4fd320a192c10d9cfa56d5553c3a", + "0x00000000000000000000000000000000000000000000000000000000000034c7": "d8d54c092190a712f5ac8e0a4b7e10b349220075f76775f9e4c4d4890954999a", + "0x00000000000000000000000000000000000000000000000000000000000034d1": "b3e8460e8c6dccf295d6a48d8335d66e44d66ce1a1a422340fa5851b4eee9d88", + "0x00000000000000000000000000000000000000000000000000000000000034db": "6c0b1e570cc4d4a7db18835084f04878f61c4c184bb120ade6d0079cdddc0f03", + "0x00000000000000000000000000000000000000000000000000000000000034e5": "22590be535e87808bcbfed1999053f2a159b4ec2d830ee2983ebd95b2c7cb7e9", + "0x00000000000000000000000000000000000000000000000000000000000034ef": "5c147544dcb51e46004d656f863d8c78c08d7801fa1142e9c81e231ceab7f91c", + "0x00000000000000000000000000000000000000000000000000000000000034f9": "9579f88762d50f0b88eb438cc616ce1a2fce24a0655bfa18c17600f37bcd84a9", + "0x0000000000000000000000000000000000000000000000000000000000003503": "be71754b5029b99b3f84d2f972f2f3364e404e211f30737d6e19fe2ed70bd3a1", + "0x000000000000000000000000000000000000000000000000000000000000350d": "72ac7ccbdef2d82e39f5ea95cccfdb59f5d1c4a9a83e7e32a275dd2cf71db91b", + "0x0000000000000000000000000000000000000000000000000000000000003517": "2f72d33db4de041ba2707492686a6f045671d2b63383cc70a770a94f39244793", + "0x0000000000000000000000000000000000000000000000000000000000003521": "400bbdb9ea1f1982431a31e5d0830c0affe0fbd940c7083bdc1d774e0f6cd9cd", + "0x000000000000000000000000000000000000000000000000000000000000352b": "e010c49cc710b1249238f6dbda9f74d529142c897b1b786eee0e01a41751ccd0", + "0x0000000000000000000000000000000000000000000000000000000000003535": "4130c014364b543cbea200a882ca0e2ee707740042e3b252f079f4774e906e72", + "0x000000000000000000000000000000000000000000000000000000000000353f": "506cb52170cb9a25fec6c4454c306efa32f9368e4a71b333a1b211ad18a45d1b", + "0x0000000000000000000000000000000000000000000000000000000000003549": "adfba1e3ff9978ca95fd32570e09cb9ff7d6c8874aa044e0aaaaa2771443405a", + "0x0000000000000000000000000000000000000000000000000000000000003553": "2f527ed6b4ddae83034b3cd789d451f3b7131bd8f196126cb60f0754cf15fca3", + "0x000000000000000000000000000000000000000000000000000000000000355d": "a72fcd0c929130353532dc56f8c43a7e4ba9748f56fa2f3cb39bff62b4ce04bf", + "0x0000000000000000000000000000000000000000000000000000000000003567": "295fe8a5ddc346bf5e6f66db4e8961178d57e41915af94f89da7d40ece7b8f70", + "0x0000000000000000000000000000000000000000000000000000000000003571": "673fd177d3d2b3486f6250e98100855417df12d7a090b7ed709bba223e03276e", + "0x000000000000000000000000000000000000000000000000000000000000357b": "c5ea3d95ee2c22d741f6c48ac6d87e445e826cc8f6d25a1b2c12f3d9a447a353", + "0x0000000000000000000000000000000000000000000000000000000000003585": "4085071556a9ec9d229d1d9b802b3e89cdd093f9f9139ea42eb5abe892541ff8", + "0x000000000000000000000000000000000000000000000000000000000000358f": "220bddb698fba55c2a96db728cf5caffae495e6903a27d57e74e61991634a7e3", + "0x0000000000000000000000000000000000000000000000000000000000003599": "1f6b1570460ec8766ca6e568bd30d50175e71cc8ae45039bfbd2e82ca991041f", + "0x00000000000000000000000000000000000000000000000000000000000035a3": "d323f7e63c7ee0244d6795f2d05907b6d0361e6e8b5757cdcff96f2ade53e181", + "0x00000000000000000000000000000000000000000000000000000000000035ad": "c7709a90d90185b34b5d069558a1a0e23279c82cb5b9c80b9a054a1747a100b2", + "0x00000000000000000000000000000000000000000000000000000000000035b7": "f41d4fd21005f25600285ed8c8119a41a59af6c0c295cb06a26a29f87ff25aba", + "0x00000000000000000000000000000000000000000000000000000000000035c1": "925086e21edd2723f3b5556821ac5a4bdc2ff1f673ac084cbac931be2ba37290", + "0x00000000000000000000000000000000000000000000000000000000000035cb": "2662096fc52fdc578d134fceb1b462236b7003d5f2228536b1b3e9642a49e0d3", + "0x00000000000000000000000000000000000000000000000000000000000035d5": "13bc04c697ce8353ef9332bf77b0a9dfaa3b46750477b2d6c3ec0320b667fa44", + "0x00000000000000000000000000000000000000000000000000000000000035df": "5c9c995de8502ece5f040c187feb066888f95c5c18f19e26d22fd33c214f1797", + "0x00000000000000000000000000000000000000000000000000000000000035e9": "80e9466bece8ddfabc70825bcec4e24aa55e1acf4ede6dc91e58bbd507b89106", + "0x00000000000000000000000000000000000000000000000000000000000035f3": "b60ebee302c2151ccc37af32e3613b07defd9503e344434d344ba3f8331954fa", + "0x00000000000000000000000000000000000000000000000000000000000035fd": "11c42898638189fe88536cc1845ddf768fc26b99b993c356b1f5dcc14dcadccb", + "0x0000000000000000000000000000000000000000000000000000000000003607": "b623473143c27ada98b34a5cfcbabf6b70860e562953e346a03770e4237b16c8", + "0x0000000000000000000000000000000000000000000000000000000000003611": "eb4739b0ae9d202f1529006ae74d98da58dbec8dfad38902ca920e6923beb35b", + "0x000000000000000000000000000000000000000000000000000000000000361b": "506e559f06fc9dbf1609acbdc09d2ae31dc353794a5f742e2645791d3b9b92b2", + "0x0000000000000000000000000000000000000000000000000000000000003625": "3cf622b6ae96fd95cb12ce270854ed7ae4f651268000e01e37574dfc0f33ce6f", + "0x000000000000000000000000000000000000000000000000000000000000362f": "eeef194c98225e4ce5119ad6bf465ff5b4a542475152471fbe5bb408035137b5", + "0x0000000000000000000000000000000000000000000000000000000000003639": "d8d4edf4122ac50f05b76868187eefbe56393c634490733ab80b12adf4fee4ff", + "0x0000000000000000000000000000000000000000000000000000000000003643": "05efbc961556af4359a25fa1bb0ade5e3dd4b058ef14e80b0aaeee81da998c26", + "0x000000000000000000000000000000000000000000000000000000000000364d": "65490c264abcd05d08f11c260d49dc0f2c55f3459f2f902400cc3751ae16115d", + "0x0000000000000000000000000000000000000000000000000000000000003657": "a662fe4e7f5b359da22861957ebabef233d14df689a0a378333f9caaae8ddcc1", + "0x0000000000000000000000000000000000000000000000000000000000003661": "4e99f494a9bb40f134a5ef00de1bcdf3f971b37c873330d5aeb3d49efbcb4c00", + "0x000000000000000000000000000000000000000000000000000000000000366b": "67e21c966ca98e58bd6989dff5e94d2bd4e74bd63e0c1419a6d1af34e7cf6a20", + "0x0000000000000000000000000000000000000000000000000000000000003675": "e359cbd3a9dff480adcd4cd1aae545e0a0043a076ab291d897dee9316e8a6286", + "0x000000000000000000000000000000000000000000000000000000000000367f": "a35fac8a05400bf2a27ce6d8720f3c0bcaf373aede26d8b2b858ebfae843a327", + "0x0000000000000000000000000000000000000000000000000000000000003689": "5b5c8208e8820c4e2730cf589ab50d61729dfd14468f06ec0ec9f7941a64f0db", + "0x0000000000000000000000000000000000000000000000000000000000003693": "fdc9e6eb33d8f37b2d9599ab0c98fbbb7cada3861352e1244d31d2ec5d4acf49", + "0x000000000000000000000000000000000000000000000000000000000000369d": "380c81a5a4ff1291139f4d753060a10393993331c5c422be8f84788bd29709ef", + "0x00000000000000000000000000000000000000000000000000000000000036a7": "84f551d9aedb25cafb6326fd75774b6bd3a7e13666cdf07ed4f43989915856f4", + "0x00000000000000000000000000000000000000000000000000000000000036b1": "724715f1a28b0b873df27b080122f16d318ae96da7d3adc1ca1e06ed62fa7c19", + "0x00000000000000000000000000000000000000000000000000000000000036bb": "a3fa3c1b9234dd7e0e566d7f8b57a65f8c4b39d7a0a2346e822afd34a6852a80", + "0x00000000000000000000000000000000000000000000000000000000000036c5": "f48ee127fa2d3b4a69eff4f11cc838cf34b88ea4eb595db690e2f098af6dc64e", + "0x00000000000000000000000000000000000000000000000000000000000036cf": "0c047872d9588bf22e89ea7ec207e8be8486d0bfa775d147ea49b25a9847b3c6", + "0x00000000000000000000000000000000000000000000000000000000000036d9": "855d87626620858c83ac8ac407d521c183da8a43964f92d9b9285389f90a6d02", + "0x00000000000000000000000000000000000000000000000000000000000036e3": "7101dac063e1ce1cb178112d72d1b8abbd9615086ef636f6655d652e70f2aa64", + "0x00000000000000000000000000000000000000000000000000000000000036ed": "506d8aa3d5c8509b51930509c98cf6f5badc86968812fe7ab2d4762d9352f4e3", + "0x00000000000000000000000000000000000000000000000000000000000036f7": "95ea210881696a1062dddaf3b2b082b5c4bf40e8232113d7b86da72999b1d2ba", + "0x0000000000000000000000000000000000000000000000000000000000003701": "0c83a90f2b9a311c3cd7c7643087802a075de0891995be8c92a6b6e1891778dc", + "0x000000000000000000000000000000000000000000000000000000000000370b": "aa9ef93934d889062636008fcf4837d7b8d272bbd14e81b50b2248a4911d7c67", + "0x0000000000000000000000000000000000000000000000000000000000003715": "f0c8a0bbba4bed135f2022b60bc785bd514b1c5b7f3db99c37124f5bcd403c", + "0x000000000000000000000000000000000000000000000000000000000000371f": "08e29d129649f398887792f5fa5eff38572306a1efb3604008b74eca49c40774", + "0x0000000000000000000000000000000000000000000000000000000000003729": "64fa01a0000ef58c90fac82ae28c33b45f947097be7cf43737d60e6568486204", + "0x0000000000000000000000000000000000000000000000000000000000003733": "18104f198e6c84cec4875b8b6d2734b6b9b8ce4bbbe158adfa81bfdb239595e2", + "0x000000000000000000000000000000000000000000000000000000000000373d": "64f9ed7df2e19a503f0b6f5b79e4d7b512c66623c28887e7f8968750f081f06a", + "0x0000000000000000000000000000000000000000000000000000000000003747": "020d16dfaa507ca4120cf799ddb20a8998f07a68b2dec691dc61a14e5c929b17", + "0x0000000000000000000000000000000000000000000000000000000000003751": "792b0101e0c969be7fda601c282846dbf3f1216b265d7086b3b1acd49882cce5", + "0x000000000000000000000000000000000000000000000000000000000000375b": "c331bb6e00dfa4489c3cbe3840bd49c936bb3eb6ef0424f076e2b2a3215545ad", + "0x0000000000000000000000000000000000000000000000000000000000003765": "bf47e8a69bb557bccb9c04b516f1c68adaf982a10fdaada6bea4bb12cb40d818", + "0x000000000000000000000000000000000000000000000000000000000000376f": "f5003fc8f92358e790a114bce93ce1d9c283c85e1787f8d7d56714d3489b49e6" + }, + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "key": "0x37d65eaa92c6bc4c13a5ec45527f0c18ea8932588728769ec7aecfe6d9f32e42" + }, + "0x0042A98aB090F46F6F8d5d068580BAb43dF2fe00": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc1ae0ad6542a5c7dd593e75e1fcfeb2f5f6f275a4e9733206e8cea0f902b18c5", + "code": "0x580e8642a5018110af46b2595b11c6b7020b184eed4ca1923f4b7560c005d79721b4070496384c066e3afae3a2dc2688ae89d053eedf7f55f96f83c53f8b4b70f8bceeb37b98a3040a0d9f17323f96d8b10dbff6292e76e0bd6821526c2b6695f29a47cc56db769417bfe11e85c712aa9920cdd341de96305d778b58202ad75439ce2098b9fe07cab2942112323839e66c47b416dc15802a90e3a31ffdd0317df92d08284561ef9761634b888f908f45aa5356ab73a972474a956790b74a59c148b495e015ecace61929bf62c764f6ec24d5fbe97351dc5e7e813829bc54315fa0f6f0dbb29f6599bffa43edb3f2ce5e01769244b9cfc33f4ba781e3ae639ef7", + "address": "0x0042a98ab090f46f6f8d5d068580bab43df2fe00", + "key": "0x104b943e78540e4b0bf81e7ccada3f831857a325a06947412c1287ffaa284119" + }, + "0x017AAe1940B253E7afad292098eb59e6c64e9beE": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x2bf43f06b9f27c71498ec5b782da1259b2a6eb02fe7f9136c3d0b2858c0f6e09", + "code": "0x20d186469448ced763a24def3f3468c9b40577d59eac422c275a9576c439d86547d8af78512b204f644d8f13cc57c25ffeeb27f5044fd719cb9725d000fe6aac4851de8a4df83c855557329789c7e5ef967a3a084e4ae3784f2778aeb8b86084e46a11c5890976e15441eaf10504a1b4f452c682aba2316cc50045a1455c86e09a2621996aa68bc125b1cf3679db117591d94cbb32bed7853d075ac666de26906f4dd0040cdabb3e17c91cda6a1798a305913c9e276fa80b450a4dac0e46d04e056520d4601757791117f936edc6e5228e597c55498227034e003251987fdb0f6a7e37735eea420ba517b5284cd84328feb0209a3069f0ddbf84e94193c44f37", + "address": "0x017aae1940b253e7afad292098eb59e6c64e9bee", + "key": "0x08440b5468b3c640fa97a13fdaabbe5bf5fa0d0035a457b43aeba20442a9335d" + }, + "0x03B745d7f28eCfd7903f746B9d3d36f56E004C73": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x03b745d7f28ecfd7903f746b9d3d36f56e004c73", + "key": "0x0af10a79f7cad0388da160fbb23ba70ad0093166ea4b5cfb620dd59bc84357f7" + }, + "0x04361123c6CBFc38F6Ee7B0202ecEFdaE36efEB4": { + "balance": "0", + "nonce": 1, + "root": "0x34af31de538687879648eb811e76794299920242a507de08c946638fe1def18d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000035": "35", + "0x0000000000000000000000000000000000000000000000000000000000000036": "36", + "0x0000000000000000000000000000000000000000000000000000000000000037": "37" + }, + "address": "0x04361123c6cbfc38f6ee7b0202ecefdae36efeb4", + "key": "0x3960cb77ee8ce76e0a84773c1d222795fba838aa28edcca2045779467ef3fa27" + }, + "0x08D3B23DbFE8EF7965A8b5e4d9c21feDdBc11491": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x08d3b23dbfe8ef7965a8b5e4d9c21feddbc11491", + "key": "0x792cc9f20a61c16646d5b6136693e7789549adb7d8e35503d0004130ea6528b0" + }, + "0x0Aa79FD7C1C0e7E00c4ba9feE89F49D7daa0B61B": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0aa79fd7c1c0e7e00c4ba9fee89f49d7daa0b61b", + "key": "0x5d09cbe91ea3932998d10a7c8106f1f4fca78689ff14cc078317a695f449ce14" + }, + "0x0EF32DeC5f88A96C2EB042126e8AB982406e0267": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x5fbc8fe8138fab7ad184ea266f527d1893aab90dda28f7d24be94b959c96ebdc", + "code": "0x8a1b5c8cd5b7bd4a981a9c76dd66b7aa945dc8c3e0d495c4302436789fc22deb28c3ddba77ef852302eb67f6ce73e9c25e4571d861f77ad858cbfc3a8b54fb6f354d8a99986db445a0165d66c40c5165c1279120b31bd4c3c2f2481f7db470b9b2da59e7d1f8c6f5b402f26d36ed8613aa166b0402cb67bf66827eb445a0425c4b1129d94a51518e06a7990c71f442b0b66889854dcec1ddafaf1a71b43c7d0d973d75199dd705c0c68e8de5860d9d79de36c934e6e853a20e564b4cb3df71d70f7c04ea896bef7c7bf375a13ee362225e123d9012b8c6b13304e824fcd38751e836b707360d6a982410a47a44158b01d3eed14352c6353955a96cff8a983bb2", + "address": "0x0ef32dec5f88a96c2eb042126e8ab982406e0267", + "key": "0x181abdd5e212171007e085fdc284a84d42d5bfc160960d881ccb6a10005ff089" + }, + "0x0F228c3Ba41142e702Ee7306859026C99d3D2df5": { + "balance": "0", + "nonce": 1, + "root": "0xd5b34d0d68ba3ef51e4b583574eb13c9d8736538df206a042faea02c65359fb7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000056": "56", + "0x0000000000000000000000000000000000000000000000000000000000000057": "57", + "0x0000000000000000000000000000000000000000000000000000000000000058": "58" + }, + "address": "0x0f228c3ba41142e702ee7306859026c99d3d2df5", + "key": "0xedd9b1f966f1dfe50234523b479a45e95a1a8ec4a057ba5bfa7b69a13768197c" + }, + "0x0c2c51a0990AeE1d73C1228de158688341557508": { + "balance": "1000000000000000000000000300000000013", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "key": "0x28f25652ec67d8df6a2e33730e5d0983443e3f759792a0128c06756e8eb6c37f" + }, + "0x0cbCC08EEaAc7Eb46d905d8b8512baf9EcEFc06A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0cbcc08eeaac7eb46d905d8b8512baf9ecefc06a", + "key": "0x1789b3c99cc4ae75e9081577bb1487920f8f5356e7b6b8d367a98f4236f15e11" + }, + "0x0eE3aB1371c93E7c0c281cC0c2107cDebc8B1930": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x7ee785a86efed9c83a8caeb5665b7a1fc4ec3fb9204fef8bd60152994e522e84", + "code": "0x6000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd", + "address": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", + "key": "0x9afc282e9868fb95921af24218a3612a16ad8e7329530b5be184a6507bbddecc" + }, + "0x0eF96A52f4510f82B049bA991c401a8F5eB823E5": { + "balance": "0", + "nonce": 1, + "root": "0x02c382fe4494fbb1df7e05021bd783c68ee4d3d0c82baad3d7a91cd910f3dac2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000148": "0148", + "0x0000000000000000000000000000000000000000000000000000000000000149": "0149", + "0x000000000000000000000000000000000000000000000000000000000000014a": "014a" + }, + "address": "0x0ef96a52f4510f82b049ba991c401a8f5eb823e5", + "key": "0x59312f89c13e9e24c1cb8b103aa39a9b2800348d97a92c2c9e2a78fa02b70025" + }, + "0x10FA59f55E0876fd0742a892CdC28522a44d0Ac4": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x10fa59f55e0876fd0742a892cdc28522a44d0ac4", + "key": "0xf1030dcbd8e148d0bb4baa102b98525fdff7fb308c789a245aa66a8402d2344e" + }, + "0x123B4998651f811E46D2441aeFECfd2FacD29b36": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x123b4998651f811e46d2441aefecfd2facd29b36", + "key": "0x9024e9b7859e438367088a1d007cfd7ede3ee942414862a496b8f63601d6e615" + }, + "0x12a0aB4dF31cfDf42713Dc3cEebFc710FE675b3d": { + "balance": "0", + "nonce": 1, + "root": "0xe2a164e2c30cf30391c88ff32a0e202194b08f2a61a9cd2927ea5ed6dfbf1056", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000e5": "e5", + "0x00000000000000000000000000000000000000000000000000000000000000e6": "e6", + "0x00000000000000000000000000000000000000000000000000000000000000e7": "e7" + }, + "address": "0x12a0ab4df31cfdf42713dc3ceebfc710fe675b3d", + "key": "0x59a7c8818f1c16b298a054020dc7c3f403a970d1d1db33f9478b1c36e3a2e509" + }, + "0x14e46043e63D0E3cdcf2530519f4cFAf35058Cb2": { + "balance": "1000000000000000000000000200000000008", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "key": "0x9feaf0bd45df0fbf327c964c243b2fbc2f0a3cb48fedfeea1ae87ac1e66bc02f" + }, + "0x16032a66FC011DAB75416d2449Fe1a3D5F4319D8": { + "balance": "0", + "nonce": 1, + "root": "0xca971614d31dd563a9aa6117aed4e85ee0e8a87276baa442e937cae4b9996949", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000098": "98", + "0x0000000000000000000000000000000000000000000000000000000000000099": "99", + "0x000000000000000000000000000000000000000000000000000000000000009a": "9a" + }, + "address": "0x16032a66fc011dab75416d2449fe1a3d5f4319d8", + "key": "0xe3c79e424fd3a7e5bf8e0426383abd518604272fda87ecd94e1633d36f55bbb6" + }, + "0x16c57eDF7Fa9D9525378B0b81Bf8A3cEd0620C1c": { + "balance": "1000000000000000000000000300000000005", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "key": "0xda81833ff053aff243d305449775c3fb1bd7f62c4a3c95dc9fb91b85e032faee" + }, + "0x17b917F9D79d922b33E41582984712e32b3AD366": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x17b917f9d79d922b33e41582984712e32b3ad366", + "key": "0x13cfc46f6bdb7a1c30448d41880d061c3b8d36c55a29f1c0c8d95a8e882b8c25" + }, + "0x17e7EedCe4Ac02ef114a7eD9fE6E2F33Feba1667": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x975f732458c1f6c2dd22b866b031cc509c6d4f788b1f020e351c1cdba48dacca", + "code": "0x366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3", + "address": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", + "key": "0x69bf6d72df9e6b88306eb4e4624996e919f0433ba63520aa9a1d3f9888e09b1f" + }, + "0x19Ee2Fd8a16B0d5348CC43634E3015f5c4eC281d": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xb5b2354eb364d49102d246eb58335edc8ac8d96a3278e5ed4664bfcc652cd821", + "code": "0xd5794d64d075a72356722c9b36b106be1e75a5b1a18d43aeecf4b200527ff024182b14c38a1b998fe046c9dc6250ffd54c2a94a0889e1b069cd376c59eeafef21cc42237b0fb8f0a02adc3d03ce8e36f1c04cdd89283fe1c1b0481c9c7b7687facadc60d47b3ff7acda1f55244f2dd77100bd73c50fc73c02f9b2be85f5465f80c67a9b017d662d1bc9ac34b32ea15054da3fbc1fc745732ce7b22f51147ab60f564f8ac71e4f1e429c2f327374b1ff53ce2c4b40ba626852f969a70fa403fba5fa1b75531f2dde3e17219f3978fb05f66e88c2f47dbbac04ba5c54eb78a15b812265b62305fc5fb7e9c9b4551ac42738a1f9f04801ddc76097f8d952b6ae20c", + "address": "0x19ee2fd8a16b0d5348cc43634e3015f5c4ec281d", + "key": "0xf88f8f5e97f8c05caae26c7a8367f5e07f92daee1fb16cdff40ba1a250d6c521" + }, + "0x1F4924B14F34e24159387C0A4CdBaa32f3DDb0cF": { + "balance": "1000000000000000000000000300000000004", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "key": "0x7963685967117ffb6fd019663dc9e782ebb1234a38501bffc2eb5380f8dc303b" + }, + "0x1F5BDe34B4afC686f136c7a3CB6EC376F7357759": { + "balance": "1000000000000000000000000200000000010", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "key": "0xc3791fc487a84f3731eb5a8129a7e26f357089971657813b48a821f5582514b3" + }, + "0x1bE75a06c0277c0ad20d2a7B537A4E3262ae544A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x721a89c9ec88bf5d831f58a8fc24ee302af110b17d80413835d06f29e56c24cb", + "code": "0x977b44b92ba69610c99ea306058ffef6449dfef2a9111a242e2487f3b67bd884e1c7dc25d93c8ca94ab03df899ffd8369f903d70f89208ea0f9216c56c311f65a7ab9585d176f7553243ab24f6ba2b1d026cba57011704693e8f7e688fc6c10272f499da03a12e0d69bedeb8af54720422e6a93707efd07a19d40b1693edd7746269a42f8721783686df7e2d53dfc3e449c24381e01837fc0db59bddaf4da17fe35f100537fc5a81611a171b65ec62698d902d6c24f0dca36213fbd791d816cad51254392213b26261c76c6dc24d6f095073d42a479d10d1abaf6cbc5679bb519651205dc817afac4f6b337402a37ee248db015896cb81056928573c24869cff", + "address": "0x1be75a06c0277c0ad20d2a7b537a4e3262ae544a", + "key": "0xc02a1a280bf5e9f8aee1a855dad87a7d58ba42d4d58909c683dd62e220cb917f" + }, + "0x20bcaA573F9D21A04b8434F31f23b146F3178cf7": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x3a53ca9ebc623f96f3c01edfc2cfea906df6afcdb46fd4cd0c5ef231dcb247b3", + "code": "0xa0154eb5d4f58d1845cc59d98da9dc0526a385100cab80e881cf68c5ddd774d6c83df05b39f04b0e32a580fb2457e5a805b04291544a17fa7d0673ae46aa593e16cf53eb5237943918e4520255055c6e4c38e4c0d88373b478ac80453df3aab44a5bde82e5995b6780e708038ec38d21cac5aa8ea437e42bbb7a345c96e77afef5e826823d1b521a059a638208df20ec7a83c69ba78f1fe2089269842362b6d9f6a2fe1e948cbfc587c2c82d46a9aef3b8bf6d2ef795f19d1a32a7aa457123ebb5875b78058b3879b3385f1925ff16e04250b3cad255a1746f02b5fd66a379ca2c0fb383035f53c87dbc233aba2b5c9852b97d153d9a9e79119bdea4a5918250", + "address": "0x20bcaa573f9d21a04b8434f31f23b146f3178cf7", + "key": "0xefe19584458047edddb6b4c43bb36ef63fb1d5b8d3c630c09a27580302790e80" + }, + "0x21171D0AfFf7169E5692bf7bd5ADb43AF0f5F59E": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x21171d0afff7169e5692bf7bd5adb43af0f5f59e", + "key": "0x2d425481284fbb1874a2c55d81564f371543b3b8f7450e860bc5381ba47b465f" + }, + "0x2AEB07Bf550A17EB782474376C0c1b6d1164d623": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x59ea8e8394dd6ada740962707b3d7323a33209aa01c521f7633914c990dc4e72", + "code": "0x5d4702183e4406aa0103cf4e1193f621dd93a4fef034dfbf6d5fe2604aabfac75a13f6356acb2f32ad5f7b35e3b5cce60828c11d4777e62d521196ece8fb340983e3008e3af31fcc69e293b6825b3fef522aa83473e56e69122349586a735e2046df1ba032f7273adfb50869ef5a17a8fffe76f90e9f8294290a3c9b9484add5b21769473a98c1ba3e6d2bc72b8bbb799cd2c30a9cff3f1428f7037f772e03eda237ad7935dea2dae206a9f954a0b3f021aba3d29281f5d8e9d20fec92bc90bdf9909f4b035d96087c3a4a8df382d8d87641eb9e01c03c2f87643b292928b907b62e1dce1317f4e156490b590e91d0e333ceb760dac2ddef3bd251cf89fa8776", + "address": "0x2aeb07bf550a17eb782474376c0c1b6d1164d623", + "key": "0x81eb53bd3cdb01b239029a40c5362aa81a9017921981d1f188c2b7df594203c2" + }, + "0x2B0c6fDcbEc5dc0e3a89e2Dc1f4f3E8e381E200f": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x2b0c6fdcbec5dc0e3a89e2dc1f4f3e8e381e200f", + "key": "0x92e7a2e08d0b020127e08b5d531e73506805651f6cab173d836f43566dfffe0c" + }, + "0x2BD85770Ed2Cc8d09f91a3C1b0F7197dfd8A8850": { + "balance": "0", + "nonce": 1, + "root": "0xcbf1eba0bbd55dc6bf80b04aee815e20cb66ffea5a015c3fbd8ba5df2ccae82b", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001b6": "01b6", + "0x00000000000000000000000000000000000000000000000000000000000001b7": "01b7", + "0x00000000000000000000000000000000000000000000000000000000000001b8": "01b8" + }, + "address": "0x2bd85770ed2cc8d09f91a3c1b0f7197dfd8a8850", + "key": "0xabbe9e53a2f086a9c45b8e901f6e5bac26ce118257e4f60e34c74983f7aa0bbb" + }, + "0x2D389075BE5be9F2246Ad654cE152cF05990b209": { + "balance": "1000000000000000000000000300000000006", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "key": "0xa9233a729f0468c9c309c48b82934c99ba1fd18447947b3bc0621adb7a5fc643" + }, + "0x2E5F413Fd8d378Ed081a76e1468DAD8cbf6e9eD5": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x6cab722372e634ef5dca9b4dc1454cfeb4e9eb9269eb03d6824b7c997129776b", + "code": "0x7786f24ec8e68c1f537753be90a834aeb9797aa2ade11dc9f54973d24a879c0e2e000f2864695c298e3b798ebf646f507bc67e534235217f247e8aedeb44a286903029b2ccf2817560769df843ccef3b958197f563f97bbded0c9d6af426a1238a6b747e4193754f5887d456542feeee62a909f5cc32e46553fc5e84632ffaaf995dd2136839e505810de8baef08564621a4fa31c642ea16714d8c051234d3b1bb72a1128595dbb042fb7a341fba8d1012e8d5a83228532d7db5275249ae2c733e2405bc8eddcc2dec697d454ddca37a2f157a1cf34a6377970583fce6b49b6a1c03e9112a7ce53c99cca1e170b854d8dc90099ea369962ab98f8cde6c92fb57", + "address": "0x2e5f413fd8d378ed081a76e1468dad8cbf6e9ed5", + "key": "0xe69f40f00148bf0d4dfa28b3f3f5a0297790555eca01a00e49517c6645096a6c" + }, + "0x2EB6dB4E06119Ab31A3aCf4F406CCBaA85E39C66": { + "balance": "0", + "nonce": 1, + "root": "0x1d5b0045e4bbf5ac05684b7f97ad373b57bfa9fc07e8c214c28624f7ce9a47a5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000002a": "2a", + "0x000000000000000000000000000000000000000000000000000000000000002b": "2b", + "0x000000000000000000000000000000000000000000000000000000000000002c": "2c" + }, + "address": "0x2eb6db4e06119ab31a3acf4f406ccbaa85e39c66", + "key": "0xaeaf19d38b69be4fb41cc89e4888708daa6b9b1c3f519fa28fe9a0da70cd8697" + }, + "0x2Eba46D62F0C7DFCdc435769A2d5Bc73FC311ee9": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x2eba46d62f0c7dfcdc435769a2d5bc73fc311ee9", + "key": "0xf132caa2fde1cb1d7854da7631c474d928ae153b5ebedf16d262d5bd28a4ab48" + }, + "0x2c1287779024c3a2F0924b54816D79b7e378907d": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xbe1fa08bc91e8829cee159efe23236d54f009cb119f2685588cb4d78945236ea", + "code": "0x52d75039926638d3c558b2bdefb945d5be8dae29dedd1c313212a4d472d9fde5edc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643ee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe937724651a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f3eec716f11ba9e820c81ca75eb978ffb45831ef8b7a53e5e422c26008e1ca6d5c5069e24aaadb2addc3e52e868fcf3f4f8acf5a87e24300992fd4540c2a87eedb805995a7ec585a251200611a61d179cfd7fb105e1ab17dc415a7336783786f7", + "address": "0x2c1287779024c3a2f0924b54816d79b7e378907d", + "key": "0x09d6e6745d272389182a510994e2b54d14b731fac96b9c9ef434bc1924315371" + }, + "0x2f30E977B0A8A60747789ee0F6B3cdC9C041FDEf": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x2f30e977b0a8a60747789ee0f6b3cdc9c041fdef", + "key": "0x420a83d9891f19593cdda9b31bb3b450e960fa87042dd428a7fa5ee69db02c75" + }, + "0x32F1C89Cc046227EcD93C2FCe5d3eC91db833c68": { + "balance": "0", + "nonce": 1, + "root": "0xd8d478365c2dd43220eab798a1fdf01a2e41ed0c4b7ce1a6a649dc4b12f97259", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000001f": "1f", + "0x0000000000000000000000000000000000000000000000000000000000000020": "20", + "0x0000000000000000000000000000000000000000000000000000000000000021": "21" + }, + "address": "0x32f1c89cc046227ecd93c2fce5d3ec91db833c68", + "key": "0x97d6688cffcba05e22d6940fd07a8b4e93670e2d8e0f8680b9a97865474e803f" + }, + "0x32c417B98C3d9Bdd37550c0070310526347B4648": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xad3bcddc933488cbc5a30cf7295a338d57ecdbce88acef961e28fc0267fafee4", + "code": "0xb84e4298f3a6292774b798b43a202ce92291460f19fe80ed2d2d7e8e4674dcba31ff9da46623ded696608610c3749320b1cb2c2dfd644b1139da5367a8e616cf82fb8bdd0a53542a1f59046c16f7a1350c43d22db36425bb53f551e7c6a091814ba0d371c59a4c8176901cb7799ecdd8b41b974be3a1349b5d0a9ff9aaa230d9547911337f50119fe7598b1be3fa84d3d0506ffe5c730db17c43bc74040bbfce348e8fe0716b12afdd2e814ae0b8b1bb9b5c7a197ef418c73b8bdd93bee14de5c695a062ea1c0f75fd266ccc34c407f7d5229534fc96b1932c122008903fa35369a4526ee6c6fed706e20afa2cce030b28dbcbab5e4e2d1918c6e71839728400", + "address": "0x32c417b98c3d9bdd37550c0070310526347b4648", + "key": "0x80cd4a7b601d4ba0cb09e527a246c2b5dd25b6dbf862ac4e87c6b189bfce82d7" + }, + "0x3632D1763078069cA77B90E27061147a3b17Ddc3": { + "balance": "0", + "nonce": 1, + "root": "0x34da204f60f9a40f3829dd9821b33acae3c08e6d627791dcaa05d10a60a34180", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000006c": "6c", + "0x000000000000000000000000000000000000000000000000000000000000006d": "6d", + "0x000000000000000000000000000000000000000000000000000000000000006e": "6e" + }, + "address": "0x3632d1763078069ca77b90e27061147a3b17ddc3", + "key": "0x0463e52cda557221b0b66bd7285b043071df4c2ab146260f4e010970f3a0cccf" + }, + "0x3aE75c08b4c907EB63a8960c45B86E1e9ab6123c": { + "balance": "1000000000000000000000000400000000011", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "key": "0x878040f46b1b4a065e6b82abd35421eb69eededc0c9598b82e3587ae47c8a651" + }, + "0x3c204CcddfEBaE334988367B5cf372387dC49EBd": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x3c204ccddfebae334988367b5cf372387dc49ebd", + "key": "0x5ec55391e89ac4c3cf9e61801cd13609e8757ab6ed08687237b789f666ea781b" + }, + "0x3fBa9AE304c21d19f50c23dB133073f4f9665FC1": { + "balance": "0", + "nonce": 1, + "root": "0xecba188c60d6fd06bba6dfad2fc6162c590d588ec0db0953b033ece234571816", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000040": "40", + "0x0000000000000000000000000000000000000000000000000000000000000041": "41", + "0x0000000000000000000000000000000000000000000000000000000000000042": "42" + }, + "address": "0x3fba9ae304c21d19f50c23db133073f4f9665fc1", + "key": "0x0b564e4a0203cbcec8301709a7449e2e7371910778df64c89f48507390f2d129" + }, + "0x402F57de890877dEf439A753FCc0c37ac7808eF5": { + "balance": "0", + "nonce": 1, + "root": "0x1255f3a2840f807a7966373c9961a98cb3257bcd1b5932ed04b5708ddb80f81a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000106": "0106", + "0x0000000000000000000000000000000000000000000000000000000000000107": "0107", + "0x0000000000000000000000000000000000000000000000000000000000000108": "0108" + }, + "address": "0x402f57de890877def439a753fcc0c37ac7808ef5", + "key": "0x5c20f6ee05edbb60beeab752d87412b2f6e12c8feefa2079e6bd989f814ed4da" + }, + "0x4055CAe5c7d838cda10D40f9d07106C7f5f3be1c": { + "balance": "0", + "nonce": 1, + "root": "0xf8f4ccb01824f447885742bd7fbc7505e7f1d0252fba74fe7068be964e8a35ee", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "06", + "0x0000000000000000000000000000000000000000000000000000000000000007": "07", + "0x0000000000000000000000000000000000000000000000000000000000000008": "08" + }, + "address": "0x4055cae5c7d838cda10d40f9d07106c7f5f3be1c", + "key": "0x6b9ff41fb13fc66c4e1c4f85d59c52608698715472b7cce609bdbf75976a438b" + }, + "0x410EaCE40803A705AdF026fE52367EAfb8845639": { + "balance": "0", + "nonce": 1, + "root": "0x2bfb9362eb6de5d4265fd2d19fcc52c7c8355e3fa62f22281261019a7d2afe43", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000b9": "b9", + "0x00000000000000000000000000000000000000000000000000000000000000ba": "ba", + "0x00000000000000000000000000000000000000000000000000000000000000bb": "bb" + }, + "address": "0x410eace40803a705adf026fe52367eafb8845639", + "key": "0xa54c01fadcbd4480f0ed0306c41dd4a1b517d5ba114bf95d6ee8ceb24ccfa65e" + }, + "0x4340Ee1b812ACB40a1eb561C019c327b243b92Df": { + "balance": "1000000000000000000000000400000000005", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "key": "0xa13bfef92e05edee891599aa5e447ff2baa1708d9a6473a04ef66ab94f2a11e4" + }, + "0x44268f2fE37A01cbA6aC0FAff6c0D63a3c0FC006": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x9682130add2b4c6483edd1e2b4d49edd6fff4a990ccc237ff9f7edd0e7596926", + "code": "0x2c0b24745969ac267788bc13fed108253ed7710a84a4b5e0cb2637381569244de7a6c0da92676f1784fd425fc094854738fb34a8458fd48f427687acdcc14921b7251051db230d60ead6c5551fc23295d0b9f4a9b6b9d4516bb5a773a0aad102a3960dd7c34552418c18a3cd494f26fc721dc4f6372c2549ebddad6ee6c5cc040678b87d94b1149e8ff69033e23a03ed66c531ebd797403d371190f2009c619a96856d25f403bd90d02b952bf07bdb551710d34ec8a0d5c1314444b005b31208a99fd01747d314b3be7b8df9ff0d2939e002725deb6fb2b0f931ca7381b439ce45ca0c9c6221a50250c9b83bee6fb70454afe9efbc647a846f4fc1ee08f144ab", + "address": "0x44268f2fe37a01cba6ac0faff6c0d63a3c0fc006", + "key": "0x0b0fccd4d9dac0411a14b4150944c6d57b07590776e430592fa3d1800d7abb3b" + }, + "0x44c8303F391415Ea821c507eC89e054EcDe2eA64": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x44c8303f391415ea821c507ec89e054ecde2ea64", + "key": "0x02e6b8771694fc881303b1a0ecbd426c4a12c0467d95b739e5eaee0fbdbd25ac" + }, + "0x452705f08c621987B14D5F729cA81829041f6373": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x8ca1f6492dfb54978c17e03bef3e8fdfd09d56eee360359d5a9e8ba640632761", + "code": "0xd97cbaa9a69d46aa3f57910da3a2981ddacb51cc9a918902a0ba29b879ca9213c0ae62c552dde5f7aa5d21eeff0a2cd0cc43221752feb6b89d384bbedef2ac5d752e6936a8cd4ef88d669a3b2f3f24ded135add737a4aaf9f0848bb5983792aab9c7405fdb60827a063770d15a9163cf3257eafb54d63ebc3245e8170763b9ae5de16b835935eb4be6c6f0702e7e3a97e730aa0eb58f22fdb243237a2a9cb7895b5a621cd8595b64a4441e50a02e05b3a232b6f460cb54ec7584348d3464c2f212b3fb03d27bd105ac57c8dbf000d94f61d3ffe73ff0c0035c97df04ce6bddce938d10d27e2ae4041659af0f20bfeb8ac07249c34c399e34ee50cc2270df04bf", + "address": "0x452705f08c621987b14d5f729ca81829041f6373", + "key": "0xac7183ebb421005a660509b070d3d47fc4e134cb7379c31dc35dc03ebd02e1cf" + }, + "0x476c7A42dB76a2fc8e0E45a50030a91842177118": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x18cbd4dc359ae718dbdfdf40c3f64c3463893c62fe40b6e89648ab72ef3f4ce9", + "code": "0x5329d05362821f10195d873870ba7cafb9f4abd3c4b5cf094b6c3d0a9ce4181f75acecabf7c35075c5576ba3235a46de11915fec0a9fa650e2db767d1a7ec8136eb24d64209da9c47c52c495c2b18588f6910a4ce87f04f0f63a6a14d47b188257c0d0964870c24387de1cb96a1c0d1e031544394130654a48994b8a35b62a814716bacb694fc6525934a5003bf6962d21f5aa4897c0bb8c43e69a8e553c203d4a973a93a267550d9956907453eabea7e7e17cfe62c882db8772cb269a2cafeaabf21e34114eecce47a9ab5253b604ce8186e8c7410684d5f619466fa0d4051b81d59e8f63389d4228fc097230044c4967bce9312cf2786a42f1c1fceb6693bc", + "address": "0x476c7a42db76a2fc8e0e45a50030a91842177118", + "key": "0x1fb5af58bde5a42ef7dac764d42d1bff81c30fee0b280ab7e8c28368d311eb4d" + }, + "0x4956238b9fb9C655c12478E219B3c1413fb2252A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4956238b9fb9c655c12478e219b3c1413fb2252a", + "key": "0x1f62f5e3469ffc96ded1141a64cda17ece2a9730c458417d4b6a6d84784ffdbf" + }, + "0x4DC5e971f8B11aCe4F21D40B0EdE74a07940F356": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x35e6505af3b8e9a18eefffd4dafa37f401469b1932fa2011ce72a78ea72721ab", + "code": "0x36156009575f355f555b305f525f5460205260405ff3", + "address": "0x4dc5e971f8b11ace4f21d40b0ede74a07940f356", + "key": "0x010c21d7a511db44071d870baf13ba54cbfc4937cae61371a71bcd5767e92822" + }, + "0x4FFFb6FbD0372228CB5E4D1f033a29f30CB668C8": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4fffb6fbd0372228cb5e4d1f033a29f30cb668c8", + "key": "0xf19ee923ed66b7b9264c2644aa20e5268a251b4914ca81b1dffee96ecb074cb1" + }, + "0x4a0f1452281bCec5bd90c3dce6162a5995bfe9df": { + "balance": "1000000000000000000000000100000000008", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df", + "key": "0x5c1d92594d6377fe6423257781b382f94dffcde4fadbf571aa328f6eb18f8fcd" + }, + "0x4ad186EC10047a207268c921FE2dD72A47747A73": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4ad186ec10047a207268c921fe2dd72a47747a73", + "key": "0xa4f5c77c9bb083c10bb92b2824a1bee39bba3df29e8923cdec19e7c4804768c2" + }, + "0x4ddE844b71bcdf95512Fb4Dc94e84FB67b512eD8": { + "balance": "1000000000000000000000000300000000005", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "key": "0x5602444769b5fd1ddfca48e3c38f2ecad326fe2433f22b90f6566a38496bd426" + }, + "0x4f04694790aFe884d18dD822B979EC2C4aF9b3BB": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x27222c12233093361570e05aefa71218f7dbc80fed9fcd3e5e354c03ca17de57", + "code": "0xd976efa78ad29ed9a36b7b646a8316d94e2c0992fc889454e231f704190e7a66ba83dad61dd09c4add2a92c161b549d6c2b3eb3bec381c11b2bb2115ce510dc42429aa244130f07134860db48fc78040f9f98eede7613d21acc0b07977d62e0b559614b4d580ed63d8a55cd6b8faddba8339f014c3d1f205f17c8d91908d9837bcd24d8c047e5063867d3e8b2ed6abca2a71b23ce541fb0a23b900d8552c1f0f363d3eca645461a89868e2d177d079dfa222f93ac92576c6a53e4dda614a7188c0220d7114abf7ccce953eee6e1de8cad09c9ecf565e0deb6789b009431ce7760cb142a4b2e6afdc2587853f87ce63d7e7240df143c620b87bc6ee166d70c5b8", + "address": "0x4f04694790afe884d18dd822b979ec2c4af9b3bb", + "key": "0x886873063fad8b6ba257121f5b9972a94b3edda692659880083b9bc85c75a929" + }, + "0x4f85d16FF1523308530cDB76384f9eD09a143470": { + "balance": "0", + "nonce": 1, + "root": "0xf4ddbfed83012b2b1bdfc64f088f12d9b9cd9b6b31e018c96afb602d15bf2794", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000017f": "017f", + "0x0000000000000000000000000000000000000000000000000000000000000180": "0180", + "0x0000000000000000000000000000000000000000000000000000000000000181": "0181" + }, + "address": "0x4f85d16ff1523308530cdb76384f9ed09a143470", + "key": "0xe88893cfac9ee1250741f923dc7a2b2471fdca54afdf6272b3424a67b126b1d8" + }, + "0x534Df862ed8fD56F9e9F7A50451B81Ac308Fba3a": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x534df862ed8fd56f9e9f7a50451b81ac308fba3a", + "key": "0x2cff8455579bc93ffe8b215568080eb6b15a62dc94b6465ed6eeda919eb9ec75" + }, + "0x565f012918C969574b4DD7aB1438078360FEDbAc": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x65c9fd8e4f80c595224432b2e8c5c5daa9938c20f3303d0b0b576f930c6e400c", + "code": "0x036d965cb9d0e83de4c353f95caf4ecf8ee07c3b7815487583c2320e4410a14a974020aad38fd296c46604163b1d9ac2824887d4512f177363b73ec3c7aa5acec108ef12f26b4ade44fe5ed2f32b5ef7630c67d90a9897364bf8e724599e3cc46826f3b2dc85a23ac29ae589df3f1bd4b838fb58b1fba29fe7bbe6ff9d23dac1785099b1161b577a98586b6a1e4f4377ee16e922ae82fe8e16636298a173aea19a5bffddecd82ad75cb64b02d7705d37a866810905387dcfac43b76b6b52dbf188f578fea244f4e9da815349e19db14e2fab4bbc9bb5a29958ac2714022c21ab0f3692613da04ee297f5ae7520d29a65c5bb0c654c692374a729420b0423c80f", + "address": "0x565f012918c969574b4dd7ab1438078360fedbac", + "key": "0xb890172948a324f9b9a7b7733028129f7303744d7abad5f78719f3e474c3d91b" + }, + "0x56abfD748156bc91D9A8E14F4AF42dbe3968F22a": { + "balance": "0", + "nonce": 1, + "root": "0xb153956e166789ae49df7e053c4453e66ffa032f0ceb753fff0b86796f250913", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000195": "0195", + "0x0000000000000000000000000000000000000000000000000000000000000196": "0196", + "0x0000000000000000000000000000000000000000000000000000000000000197": "0197" + }, + "address": "0x56abfd748156bc91d9a8e14f4af42dbe3968f22a", + "key": "0x9961ac161049db66cea081d22a1b4aa9ce2c2cc8cc45f29f2d912d917ac6bb9a" + }, + "0x5820871100e656b0D84b950F0A557e37419bF17D": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xbfd53712aaf28ce81b4ca4ab65774f50a244cab646979adb59df00e1943deb55", + "code": "0x6cec44c34efdba490f3ab1336603140e8c0c28cdc34b65964a9ac1f0bfec07dd6d7892ce866bb2c3e65cb18b34b9a11788bcb55274efbc45622aad07c7f85a36f4d6b0967b42b86b19b12197339035f1db3d03253fe3615cd3e99d15d3921db0fa137d319445e5cab57eeed640ea68859c23a54e370f0c92b86e7378db9f6717f7b22d72bb41f50e7619fe6009e692899723f40bdbefb4ae417e7031ff0bccd5446b3a55c06c80b51690681e337aa42dc6d1eaa19031355aa6f894fc549746131c96c8fe65efc95b3b88cf5d783a40ba92aaab0d52edbfcf0abf2b8c2c9cfb8068b17a0ae68dfa3f84a81023be55645133434b92210d7c095b98954ca0e3e37f", + "address": "0x5820871100e656b0d84b950f0a557e37419bf17d", + "key": "0x4615e5f5df5b25349a00ad313c6cd0436b6c08ee5826e33a018661997f85ebaa" + }, + "0x58d77a134C11f45f9573D5c105FA6c8AE9b4237a": { + "balance": "0", + "nonce": 1, + "root": "0xa1b975fea88bcc79f5f339e687406fb39306b49b2efd0728846bbd04058ab607", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000082": "82", + "0x0000000000000000000000000000000000000000000000000000000000000083": "83", + "0x0000000000000000000000000000000000000000000000000000000000000084": "84" + }, + "address": "0x58d77a134c11f45f9573d5c105fa6c8ae9b4237a", + "key": "0xd9f987fec216556304eba05bcdae47bb736eea5a4183eb3e2c3a5045734ae8c7" + }, + "0x58f8fe237b593C19546e1e758a2544561d04bfe0": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x58f8fe237b593c19546e1e758a2544561d04bfe0", + "key": "0xedabf9f506b5170888ca458df9dab111fa2c708b88cc706659db520718be9d60" + }, + "0x59Af84F3e7C82fce2814D0d6a548A6511b78d2E5": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc158240d4f9b25991d0863ec1afcfff897c6aa11de437ff428198163f7ed1544", + "code": "0xf9cab2ea5fc2898ca670240c87501f552f715e74f50142c35920c55eb3c0ea1ace08be9c0c4b619a77d9aae0c356635893985acdb56f3ab9f0887a6e839e7b153e04681523725281e5522c3930409045daace340ba5584d6ce46fad8ff0ee17c3429d6fa9db26e5631128d8185584d24f10323af033be7ff252ec8822b07bae1d21de5f10f7da2cc11d7285aa1870cc63fc64f1607ff0e823e4786ac9df506e1df77777c28427b65a9d9118284c3b1167eb43cc55aaa62b9f7d4ced77b911b0fe88c6d20e10af62aabb42c56ecad3aa0e9a8ce42bb84e4e634e80a0ca98bd48c5d7fa289fe0cce3684f388c19bfa7a0aaa2c98a5c74839d3148ac362bccbc70b", + "address": "0x59af84f3e7c82fce2814d0d6a548a6511b78d2e5", + "key": "0xd0873c9513c278a9dcb764072f7e2477235e814ca74f2ee4ab76c246f5ad239f" + }, + "0x59Fad703B903b1EC41FC5AbD42D277d69edd066f": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x72921c8e5b6ae768ecfcac7b214adcb6d129b1a27f01e3e53d5983b7172e3d99", + "code": "0xb0dd6ab64c91b13c13faf41aed0cf4d2ab8c259821710faa2ebcf849f80109e200f505a85dbdbde1426fd0a2214b8259b1ae4fcb9e18d53f06ec1b77e152797df7876b98fed9c448027081aa9a3e3a7d7052d18b7eea057b4def36c2fa47a12b0c5c7680cb1c40d05734a81289808b02f7180a420c18852dda2d5494a7f1afad66a8b3e51c9ef3016ee1d800e0aeb1de0aabe53158ecbd316dff51dbffe933a22944b9af8d962e2b5d171cd2b530c03b245945580d9e2a1c9efc472e2e5ec88bb5bc34a01e38ddc423f2e350462018e1f467d9168b2bb3690f0907c153557fceddf531d3aca5e6896fb90b841c9479873f9c1669c2ca84e3acb343f9c4daec0c", + "address": "0x59fad703b903b1ec41fc5abd42d277d69edd066f", + "key": "0x7c1d28615d0c377de4275a33b4f0ab75cbd2c397da5620caf1509a63564a806f" + }, + "0x5Cb874efC014fA0F7FB7331F29cc0b59973C6595": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x7864bc18a660d9d01fbc0e4c106e46acb7845d67a68538a1169a2255af2498df", + "code": "0x6d8e62e97e5129d5cef2e9dc5714a6fa7cfd8bb0b2a30fbcd3bc76f51251d708c9c9d362b631fd1cf2a811476392bf4340a481940250c78d4e1a8ba601af1c0ca42a541cdcfe5eae324446eb151010137f37bbef104de95f2a946c2404849477f4a235ccdb54c513989f886387aec23f9bf80ade6bf8f128a86992a7069f7985be89b2b9c21da99020673067731702f61a06f1657a7bc439452ab88ee45c8f3d12375e8dbec105fbd47c977d99a60ca0d2bf8a8ad37fe84ac7d8350cdcc77770b140c83f89450527e0d9bfdbe42b2fde284574f0f05c92031f07f3f4d420a7925a41508a056f33ebc54916028c311d205604728c0f8fe1666ec11122b917bee3", + "address": "0x5cb874efc014fa0f7fb7331f29cc0b59973c6595", + "key": "0x4402ea95dba35ab4b25f25e5dd1da45f79ebd51cdbdcbcd437fd8b204afa0e15" + }, + "0x5E5F35d83E5485AA1006F6Ca478eC7507d0efad4": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x5e5f35d83e5485aa1006f6ca478ec7507d0efad4", + "key": "0x53ed76a58ca2fe13ebac69b866c007878047e8c418866ece50f947ddafc36321" + }, + "0x5b35D3e1Ac7A2C61d247046D38773DeCF4f2839a": { + "balance": "0", + "nonce": 1, + "root": "0xcc48f8d1c0dd6ec8ab7bbd792d94f6a74c8876b41bc859cee2228e8dad8207a4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000ae": "ae", + "0x00000000000000000000000000000000000000000000000000000000000000af": "af", + "0x00000000000000000000000000000000000000000000000000000000000000b0": "b0" + }, + "address": "0x5b35d3e1ac7a2c61d247046d38773decf4f2839a", + "key": "0x55cab9586acb40e66f66147ff3a059cfcbbad785dddd5c0cc31cb43edf98a5d5" + }, + "0x5c272D741b74a8FEF2749FaE559C3900052ABBac": { + "balance": "0", + "nonce": 1, + "root": "0xc1a33c69d45ec0d448590031a0f9322932282f502559174fda86c43fa3be61a3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000219": "0219", + "0x000000000000000000000000000000000000000000000000000000000000021a": "021a", + "0x000000000000000000000000000000000000000000000000000000000000021b": "021b" + }, + "address": "0x5c272d741b74a8fef2749fae559c3900052abbac", + "key": "0x806056ca2acf8c351ae196bbd3c8c0bf28d0a6acc5f15363316d9783530da9ac" + }, + "0x5e14eB6950734cB6D9D2235CB66ff1d7e58591b8": { + "balance": "0", + "nonce": 1, + "root": "0x5dc1af1f023992aa3ade2c0acf296be3e1a81518a97051eb5f01441194d8933c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001f8": "01f8", + "0x00000000000000000000000000000000000000000000000000000000000001f9": "01f9", + "0x00000000000000000000000000000000000000000000000000000000000001fa": "01fa" + }, + "address": "0x5e14eb6950734cb6d9d2235cb66ff1d7e58591b8", + "key": "0x1039f5e5139335b89c26b535b353123c3fd4e0542fb64d85cbd001e344f7edba" + }, + "0x5f552da00dFB4d3749D9e62dCeE3c918855A86A0": { + "balance": "1000000000000000000000000300000000009", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "key": "0xd52564daf6d32a6ae29470732726859261f5a7409b4858101bd233ed5cc2f662" + }, + "0x6057FE92F331FDb8f9728160E857B920d7824ff6": { + "balance": "0", + "nonce": 1, + "root": "0x0dd7fa1a6c3ee15039f57211a40021e727617dcf3396ad739b3a6bc0547039b8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001d7": "01d7", + "0x00000000000000000000000000000000000000000000000000000000000001d8": "01d8", + "0x00000000000000000000000000000000000000000000000000000000000001d9": "01d9" + }, + "address": "0x6057fe92f331fdb8f9728160e857b920d7824ff6", + "key": "0x6aa85d4b187111f2c5ecf219bd89f549601ff55f5d81290f81a564ade80db911" + }, + "0x6269E930EEe66e89863DB1FF8e4744d65E1Fb6bf": { + "balance": "0", + "nonce": 1, + "root": "0x75a2a5a81b84c4f6290edf5328f743c609fec3724db2187fa84fe11999b936c1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c4": "c4", + "0x00000000000000000000000000000000000000000000000000000000000000c5": "c5", + "0x00000000000000000000000000000000000000000000000000000000000000c6": "c6" + }, + "address": "0x6269e930eee66e89863db1ff8e4744d65e1fb6bf", + "key": "0x419809ad1512ed1ab3fb570f98ceb2f1d1b5dea39578583cd2b03e9378bbe418" + }, + "0x64259510073C9E180Db9a7D4A6e6752a52fEcFAD": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xae2556f6467404d4960c0e82cb0549aa24b1b86d63e8916f4991b4aad90797c2", + "code": "0x7308fca2a3bc677778472f81a566eb92fd5c90e7fecfd7cfaccab39916d3dcf0f531e5b3d77d17a0ec1ff2986b8bc33d0c3e72c0453b9046ab0041949852d1fe279a12b9e4525aa676a2558adc8dde630f6552ec594fcfc6faed4dc25a43b154874e0e82c737fcd276046addf49cabb96bdde8128c11ad519f9fe60006c3a47a9febe27a7cca7c12f1344dd0fe9b564e4efcfd2da37f2bb9004affb93ba10be62403cb0c79227a6b79d68d83cc4f30f951ae106ed6e674d9b7492bcf06603be70464f185bbc7db7df2ca680828dc05691ca64c1fdd3c16ed64141e4ee71f7991f1719981d146cbcc1630a3b12228b0581a3cc54c736724b85bd467e0a7082217", + "address": "0x64259510073c9e180db9a7d4a6e6752a52fecfad", + "key": "0x68ccf188baffd6aea3b31029f80ea18836c629ac53500a7137268ce1512529bf" + }, + "0x64c725A9fC63B8e7C45985387094C9C7c6bca3dA": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x64c725a9fc63b8e7c45985387094c9c7c6bca3da", + "key": "0x23097429b7a1d1795cc8c2aff3fe23be242d1af03f234797d8fb4d7c443bbeb5" + }, + "0x654aa64f5FbEFb84c270eC74211B81cA8C44A72e": { + "balance": "1000000000000000000000000200000000010", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "key": "0x00aa781aff39a8284ef43790e3a511b2caa50803613c5096bc782e8de08fa4c5" + }, + "0x67A61A385416d9c31e4FaA3119a425d9cf1616A5": { + "balance": "0", + "nonce": 1, + "root": "0x2931f633d50c1479ed6fc7e6694773cc891359a82498d36c3a1ff6183e393f96", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001ab": "01ab", + "0x00000000000000000000000000000000000000000000000000000000000001ac": "01ac", + "0x00000000000000000000000000000000000000000000000000000000000001ad": "01ad" + }, + "address": "0x67a61a385416d9c31e4faa3119a425d9cf1616a5", + "key": "0x5a3e8a1207bb1a9c2d1265bed157f2af2b6a72714c6fbd2d88e54ac286edd612" + }, + "0x684bC6825e462FDB916de100633e6B6E7F24889E": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x684bc6825e462fdb916de100633e6b6e7f24889e", + "key": "0x4d21debd0e9f83b4968ba732fc45af8c777c93e880de876458fecec6ad7a1785" + }, + "0x6D8B8F27857e10B21C0FF227110d7533CEA03d0E": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x6d8b8f27857e10b21c0ff227110d7533cea03d0e", + "key": "0xfdbb8ddca8cecfe275da1ea1c36e494536f581d64ddf0c4f2e6dae9c7d891427" + }, + "0x6E61C1930047f977205cc445234d627eaA0b6CEa": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x6e61c1930047f977205cc445234d627eaa0b6cea", + "key": "0xfc648c6bfa55dfd6dd1b2322a6c768637f88704e48325686ef2589f8e3b06a73" + }, + "0x6F372e56E94825B6542Df4459Df1dA3aA52cf093": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x6f372e56e94825b6542df4459df1da3aa52cf093", + "key": "0xb898e426a8614ef715b2e6ae0d473ccb71e1b40053fc0637134ebecc90c089a0" + }, + "0x6F80f6A318Ea88BF0115D693F564139a5fb488f6": { + "balance": "0", + "nonce": 1, + "root": "0xbbb0506aae3a78c8ba163d88e1c7424c7af27bea7b2678235dadb60746261d37", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000132": "0132", + "0x0000000000000000000000000000000000000000000000000000000000000133": "0133", + "0x0000000000000000000000000000000000000000000000000000000000000134": "0134" + }, + "address": "0x6f80f6a318ea88bf0115d693f564139a5fb488f6", + "key": "0xe73b3367629c8cb991f244ac073c0863ad1d8d88c2e180dd582cefda2de4415e" + }, + "0x6c49C19c40A44Bbf1Cf9d2d8741ec1126e815FC6": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x6c49c19c40a44bbf1cf9d2d8741ec1126e815fc6", + "key": "0x0304d8eaccf0b942c468074250cbcb625ec5c4688b6b5d17d2a9bdd8dd565d5a" + }, + "0x6eE3EC43e74798692dC62C162901f3a6cd9EEbC5": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xe1a25651a3d8a189057a6a9a63a50852944980a11345ac5be266f2183e4b55aa", + "code": "0x20a00a56ff464cf183cd5b79ce2126e3fa8017282b0399b1ebb45b8e0bd1068c20a5091f1b76bff1edd590d3f51c5c6379fc3d087cabc34446be903ecf6b06d97eceea9b3887b9baaf4c61a3e9ad95297e1afb387d0e34c121261d9b5eddad34b5bd17e250aec4f1e352b02f19b359d072378fcc0c4054789dd519e60e58f0dbe6c63e9737af59d8812856fef9882c5ee7d1bab39b82436e99dcdcb300d6afdabfc43fe3f72bd28010cc6d9b33b12358fe30fb86ec68b752edb7fd8a61da4e7ecd424289c3cf8fdc5c0af8700350c5e354154cce6a2807831fcef26e8175822872bc40aafb8d24fa3448adc4428b158f737f7177cf0a73e5e537b5ab72d04c4a", + "address": "0x6ee3ec43e74798692dc62c162901f3a6cd9eebc5", + "key": "0x2de4bdbddcfbb9c3e195dae6b45f9c38daff897e926764bf34887fb0db5c3284" + }, + "0x701975703F1660f083Cd05BFD8bDc14B76228408": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x701975703f1660f083cd05bfd8bdc14b76228408", + "key": "0x81cb192ca1717f4abca4377bdc7284b0d038a9e34b5a98db36b1359e641a83b9" + }, + "0x7021Bf21ecDBefcb33d09E4b812A47b273Aa1D5C": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xcbf4f7ede299ffc1080e11d0deef032fcfad102db354abfc55b40dec408de17c", + "code": "0x6b02e248a9e436441474617807e267a743af2dc77080985794afbc3a33c25d4befbce2a8ff2d467e309d9248a4b22cbaa3390df6f9ad4715abf30f5eeae1d193edaa9ac5d4440c772c7764df206a5b40169a23892684458a3f8b4bcc77ed9a9dd46460e0ec4be8776950adcf76016e20c1ae55682b188e96bab57b3cdf10a2236db827bf88420a37fa5ee8fb2a58106c670aa51c48673dd02dec0a24cb121905f2cf4f001b7751b7906e2fa0ceafcd025a53d63797880ae8c58702c57f3300404b5debc8ce0705e5e2d352225d31508d545c4d87f073b5ea5ff853237d333fe375a43ba0fdc2854916b0573b104f8f3b27e441d0274a726d97f7bafe2270ecde", + "address": "0x7021bf21ecdbefcb33d09e4b812a47b273aa1d5c", + "key": "0xb9400acf38453fd206bc18f67ba04f55b807b20e4efc2157909d91d3a9f7bed2" + }, + "0x7029b7A1e1a0e17a08Ae0F5f58d06620fC0e22f7": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x7029b7a1e1a0e17a08ae0f5f58d06620fc0e22f7", + "key": "0x9bce292bc3ce4d49668cd47b99660bc8945283d39f7a7e6a621ce7367ddb9c3a" + }, + "0x717f8AA2b982BeE0e29f573D31Df288663e1Ce16": { + "balance": "1000000000000000000000000100000000007", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", + "key": "0xc3c8e2dc64e67baa83b844263fe31bfe24de17bb72bfed790ab345b97b007816" + }, + "0x71a914D83ce265bcee9361574Fdee0DD14FCcaF4": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x71a914d83ce265bcee9361574fdee0dd14fccaf4", + "key": "0xd202c35c34daca7a424f0e9ecf84e82223c90771a4e35af8521edf6cf31cf918" + }, + "0x7212449475DCC75d408aD62a9acc121d94288f6d": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x017dac995561f4ad38ea01f7cd0d0a599ad4fd54610ec4bbb0a022c6c25b0102", + "code": "0x3884095ca26754c19839d1d65ed3564b4558896672ae6763c55fd1245d56ef7b51c44284d952b00f7c584661b05f3b5ef462e7e5fa5fd8ff860e55075b3c69e100b80c4ff21059bea8fc1d75692dc11a282117d4df95e89684ca76663735d95b308b08755ec965f49e4d58d22ebbf80dc425791b553f8567a173e85e1abb76c3d59d36d9a2de213c9d9eb0f9211f3a0af11fcfbb0f65cfc9f3c7b45309667e2e354f9940ed6a1b290b3c1c5b50e9b42ff556724d10fadf83a38bec6611feca7d587d806a8d61a216518ddc9bce228cccdd621174b77f4d8d747c1064e65d14c8dd19496508bc227dc9b9d757c38132fb6956c14e9e9fa87b6fa13663f26722cf", + "address": "0x7212449475dcc75d408ad62a9acc121d94288f6d", + "key": "0xe333845edc60ed469a894c43ed8c06ec807dafd079b3c948077da56e18436290" + }, + "0x7435ed30A8b4AEb0877CEf0c6E8cFFe834eb865f": { + "balance": "999999999999999999978502856567391250", + "nonce": 603, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "key": "0x4363d332a0d4df8582a84932729892387c623fe1ec42e2cfcbe85c183ed98e0e" + }, + "0x746a4A19f37986b4bDF4Aa856C13876Ba5d00885": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc6f019710802c277f20eebef107a03c7716f7cceb4e71e88a6362ea01d91b71e", + "code": "0xe6cf798baf210a542efc04b9a1d35b51bbf5e410ca16e05b2438d8aa878eb4cbfe979cac28aae02591b1e9a75c257b8ef0ce5a9b169c4326754f1a4cb4d5218def8ddbc0ff0e6cbcbe485109d3c044e9d7ecef5b93900570208a0441ce95e47f957c7b755145fcfcc61091a48f9327db65a575704887cd0deb33ea7d7c39a27ee818def27d07091d58213bf54017c19392db186502c3606e7f6f2cb35e780e920072714fb5796f380bf3a3e1f2a0bef653a1c86c2fdc99fb3e1ba6475976d081a30c04976f511ea0ed4105f3959ef4bfbac33edc0897e2ca235ed8ed37aaea85c6ea3000385ba405ac4a152ff53937c2fdc832eefb152314b376e57ba9bff1e7", + "address": "0x746a4a19f37986b4bdf4aa856c13876ba5d00885", + "key": "0xdf769ae3989fee7f1bf6e8ac9dd3569178d4099af14dad7fdf015ee0e4730f9a" + }, + "0x75BE2E16aB7d49356F016A57f5a389B18e361FdC": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x306dded1de1f616ce99dc5c63dc6ff249af675ecd11cfa7704e3a1b1a20f0be4", + "code": "0xd66e2ad9c622d8fba62695dddfb1dae629a4779e0b6cb52d0a48eef9e5021d6f391130299419caa48b4a7a49a2cba7c0a42b146ec50747d93cfc4f54371597af93e1a7869b67d2b4edac36ff5bc7eeba517ff228f0aa77f525822d8334b69637a23430173c031a9aa170221f1b31469dc7fa6938a8b13413c9b8fd8421cf5e2c6eac71626d09a1fa3110436e2c6ede46c11ad87705148403bfee1ba7383277ff545737c28018ecb87363e183c16876d68b107616b0e56037a60eef9a6d6ae89dd77d6d8eeae66a03ce8ecdba82c6a0ce9cff76f7a4a6bc2bdc670680d37142738417624c20328f41fe28003645cb6736b72c1c0f9d860d2b376428c0d43492a0", + "address": "0x75be2e16ab7d49356f016a57f5a389b18e361fdc", + "key": "0x4527ec446456c7a0bb1da8a13c16defca121665a737b6158c7bfc933e95a1e3e" + }, + "0x788AdF954fc28A524008ea1f2d0E87aE8893AFdC": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x09fbbcbc642fb5612f9ac9f09d0d161b72b0bf49b75e1ce64b1faaf0c4acfd31", + "code": "0x901ca3aca1b292c5c6a1550922e912fc3d21ed9dbcca3b2c46ab298fe770ee3b13e5a15874e9a3e7dd9f127fc1fb68274ffc67bfb8815c72347bf40700a43bbe9aee76b26d20908f7067784d7f2849ef01392ed0c8c73614f0d0abc57c616d99ea1c8d9962659d05b79d2a74379c386e592caf47911721f070f5587a9f030ffa80a7350c7d2df5004042312cc8b0f6c346a2cd21b8d9f9e294d7aae0920bbe7e5f14e0ea4eb83b384b305c1689b771279ab2a8c55fa6b7e6e7ee2c6319a7a3490f56919ffb77bd5a8f0fcb974ff3cc1c168679ead71f5d3eb9998e03259f5840bd182d795b729397ae9083e3151cadb9d76b978ffb5289a94b2035691c01b655", + "address": "0x788adf954fc28a524008ea1f2d0e87ae8893afdc", + "key": "0x903f24b3d3d45bc50c082b2e71c7339c7060f633f868db2065ef611885abe37e" + }, + "0x7A9FE86BeAf9C94121dfa31144CA12CA061709f8": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x7a9fe86beaf9c94121dfa31144ca12ca061709f8", + "key": "0xebdbbe3cfd9cc04fae47b7655833c19f42ada5e8ed76371e9ebe43cad66684c4" + }, + "0x7C28716a0503bC00725b3aef3D4eD4741555fB95": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xeffe888f927bccce1cf9281bd54ff035d06523b2f8519818e29f6d05f4851d98", + "code": "0x7e5820c0761b14115fe6ea18abae67e05d6099871305166211e1f3758c4ff0a7655e312cedbc024eac269caedb1f8f41f06c7f8f0177eb4f3554a658d1589a9d4826094ebf8431e0f0afae13d5b994ffdf50eb0cc63e327bf379974c92f50c6df5647cf2573625ccbe9a0b30aa78a110d0e7ac736f8a0e5ccc4022496f1a33b36b6941afb4be291eddac0e5c0dbb129591aa625d268e37dd1c2f9e5df9c0ecb65f503c75b1697635d4fc43250a4d9729a209a9ef27041f1535e5fb1d180ab5bda1ac5b3292d22071387cd970203935d354b23b6bc6a826028cfb02fb0167851e847e2cd21f9334520ad3e61ef154438d3083f3cd0fbfe02ee2ecc3dba7f46ef4", + "address": "0x7c28716a0503bc00725b3aef3d4ed4741555fb95", + "key": "0x549db5d8918de0246040398fa51124081d010de247f37f06ed212bddc1b9984f" + }, + "0x7Dcd17433742F4c0Ca53122aB541D0Ba67fC27Df": { + "balance": "486", + "nonce": 0, + "root": "0x825a39b4466a4068d4dc731403a7a9631f29b4dd1b3bd1c609faf64305e0d55f", + "codeHash": "0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2", + "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "d8", + "0x005c4510db462e3bc91da9b8d22c23873a9f44acfaa4c50c91af1d92652e2e34": "bf", + "0x00f7ca033c24d91f8fc39cbf0edc8a43192507f93d7316f311b05eeb85921eed": "1c", + "0x02bd9d62880450596e11c3417f2644a81f7cc233a05394bbbfb58428ed53f413": "21", + "0x039a54e14fa9769f840074356dec3dbd47c3588fe71fe942fb7aec5edfd0a096": "81", + "0x04050d53dc4e38076a46f473ca2ccad11c6f0357bccc0d1fc7a16e0523892956": "a7", + "0x0678ff21f84e5213aa8d1d173b3517f8e6c3d1523959c101c75a31daa70ab942": "64", + "0x09b79212fdf6dfcd322d6aabd5ba752b962d7e575cf299112bead28ab955f4c8": "be", + "0x0a2bc3fd72bd3f8bb7f1de9a7dc9e928a7c6a831237124e65c60c25f8348af19": "46", + "0x0a5a37a1db2e0068ee9791dbe377a74c4f7bc36bc27af57ca7e49059127e8eb0": "b4", + "0x0c8e91bcf03d65aedba99f4f76d3ff8cd007668948ce12daf4dded4761c7b19d": "8e", + "0x0dcf6219856f226889a2440b388d8e15f5df0eb64a7b443f3a7a5dca7b87b0f2": "25", + "0x0e207a83fb16f4e1d86cdb18c78df10f272b8c9dfc773d8c636bf763e5d86ede": "67", + "0x0f624930606bfcd2386d583abca6ab10227d71fc1633fea53f94bd146c152b8f": "29", + "0x1098fa447b36d691c6d8801147ed65b27ab8c9667e089b59f1a1cdbe54cddecb": "6b", + "0x10ed5dd66ac107d9c27405dd97b947d333696bb8749b7a6b0890b449d3bf2238": "3f", + "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa": "0d", + "0x142951613bf93db71eba96bb48c57a42168fcfded6491e1229ea2b8570f77e7f": "c4", + "0x165e0e0cc13ca53c5af4860637550364c5c90a512906490ace14efb534873741": "26", + "0x16bee816935475cd45501fc5fd01bf913f8ef54330a43d80ef73101a4c728b34": "2a", + "0x17f29f600f5128013ce183ac10efc609231aff556df37c8f5d6802c1240c22f4": "ae", + "0x18c688de10e38d70bcc478405df715df76bef7c2783e310b391dc958ab5b0901": "4f", + "0x18fbf0ae0e2133584c461cbd43169854c7c7e818e8b5779892da244f24d27b56": "51", + "0x19fbac480a243f8c051e10225cec11bcb7fb274fac8792ca7e36bab8e39d312c": "90", + "0x1f1860251182573015d583a718463a52050e45d795ec0f94d112206c3fd62e45": "8c", + "0x1f6ebf3e4d9c96ec86b866137bbec9bbb56d188e7126babfccc6394fdcc6a3d4": "62", + "0x1fac03facd67f44699ff86330a7f959ed3745add76d323f4832bc17c35be45c9": "9e", + "0x205bcc2489f954a3af7a16da4d6042a75fcd6eb69b848c52b3448acb24b23580": "42", + "0x228c9eabdaf185c57233f73fb31db8870dd1d46eef92c3d4c5a5eba1b8f73f00": "47", + "0x22bc306256606a63c7e6adbfdb53ac8a2579216b16bcdc452de151e042d02124": "8f", + "0x231eb803c34ec183e74b466c105b5518b554ce215bbc31bfa52c384138b8479a": "aa", + "0x23c2e06f633f91e89e0d95cf87dce47fe1cb2b95434ff45773f1fd560ad2dcf6": "41", + "0x24562ede5125f88e7d44659502457e8632f0cd29dd768d7ce337e567830c6b90": "5f", + "0x24a4daf5b3cac3bf3066902cda09da0fc862e0a6723c47981ed601782ad69079": "19", + "0x250ca62bfd18dde43e70bab089d01d591ce6ab28978434258ae1017c72f12b0a": "95", + "0x2724a489616bca201e7565382948f9832cbb927d030b1d2439c28ba1910c9bc6": "c3", + "0x27edda711baed4a613c44d8ac8678531c9938eea106e7c5649e438f3d24b8fe3": "ad", + "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626": "0b", + "0x2aee290f6f3f6c60a6985d0150eab487f9de1c47962a779be7343cc0cff270f9": "a0", + "0x2daaea9286d7edb7568e0803a61bfdb1e1506156d27e93bdf1942564850646c6": "2d", + "0x2dd51e8325001014c6845bc5ad51b134ab237f95ab18da55cabc4275b029bf3f": "5a", + "0x2df4cc92987ab73b08a3474750456382a0add51fa25f928480762f3d993f2984": "30", + "0x304daa529f8e4e88c6c20e572fd04f196d6a32a5a47361118b7f42b4602c44d0": "af", + "0x304f1607803b1445143f85e860e6837543043e4a7ce83fb6c4b98a2b57a5be44": "73", + "0x321c62425869f150c2cb7f489691c3e5cd49f7cd62d07ecbb7477c4148aaaa0b": "5e", + "0x32eac35ea119adcf265e25a03e27234688fd743982f4ea87940a85b601b4243f": "37", + "0x349c26db328204bd2527eb45003b0039d5a636f76c8849bca0b34e8fb134f505": "13", + "0x38570ba11cfca6a25bea615c7ec09ae671516245a92a5f8fc61d2e82529454e8": "6c", + "0x3c8110e03f1b54de6085ff899d0dccd87806b788d1ef3fddbca1de4c356266e7": "45", + "0x3eb32abcff52bfdf0887e9aebaeeaee4a61b76f2fbc9a183c2afc8552d46c3f6": "6e", + "0x3f410a22d042d915c50f9269337a2bc7155f86d79bbff1721d83f44153635ac2": "86", + "0x40325cfcd159fa7bf89d8c252b6ff47cbc17aafff5e7feb92014d00285484cfd": "7d", + "0x40c619388e6393f420e805451bd48b10c670de7d51e916a3ffe5ac3c96b81938": "54", + "0x412379b7f583981ea6e84408cba75ced69039e07ce9cdaa32a8a9dac997aaafb": "16", + "0x41565ae6f06f2555139f444c467d6b709b45180aa0c6b15bb5b1388d55ef952c": "18", + "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce": "08", + "0x41b546f355dc0dd009ac5da8bfd17c8e197595c1c1f21aabbb1f3b18343a0718": "a4", + "0x427b8ffdff6454ea85c8251407144400ed4e693ffb6a74f319e0238c0e72afad": "56", + "0x4323bceecd4ef7216d5b57b9dd12ecf03842ed56d87fe43d0959436f408f44c4": "48", + "0x4348597bdcdee80c8e110d94f771eb7edce9c8691b2f90b71c0d11f729f086c9": "5d", + "0x4632fe8e9579f33e2e42e68811d49a09ad1af1f01a68e7ae742f765e8e797ff8": "3e", + "0x46765aab85a7ee88496ecde24f93cd5ce361b5a9fb43a2641d77bfbc97928010": "40", + "0x468eae0ffdb87a4dc081a86c494969801637f690e1e1da15fb4a9d2c78272da8": "24", + "0x474ee39f920d2819e9ccf6080e9b95c49fc2dfc9841cb795583b81b7497c0425": "c7", + "0x48ca1081e747a7f831228b894dd5fc401d64c6496a2b9e578dd3c59b8f0df2cc": "d5", + "0x490b9d550a200295b38f2456a42525d3a43c345d2fa1431e770fea9656b26723": "80", + "0x4b3120af8064823e074758c51cd6cd0954587c0d94b5b37b336261fc7aa2ddb3": "14", + "0x4b85d3d5e4e06787a4e7e6d00f4e2f6d7e0358d9e511177ab584553d4ca06038": "8a", + "0x4c3dffb6198347c61671fa1fafd5d80f384ab67a494f5c7bc7428bcb6ca5a445": "4a", + "0x4edb05f465bc71ee02c59ac9b5b50ddd974960ea2bd7e8cf7ae91c38c0b5789c": "60", + "0x506c0723b5e537632209d4a824a6073d5eccadb36b9b8717b2ecc9e2d5cacda2": "a9", + "0x5b300d53be5798f53b472dadb8966674169ff3e8d08eccb3f065bd827abd7b77": "32", + "0x5b6618f0def0d634d51118d232eadc26ecbc8d54a7efaa225afc472f0a611c69": "0f", + "0x5cd04d660080fb51a0cc8df0d716e1bff4eff98c887cf3274aabe7ec53dc3615": "27", + "0x5d7c0426d6595c1819b962730e5d2a44644703ebd960ec3ac51297ad937692f4": "49", + "0x611f5b5e5ee263412fed40f169d0727f4e6e1a2bc94caf668d2bcf22cddca8c1": "3a", + "0x63cde520fb894276a981d2c9099bef9beb949121c1be98f3abe1b721d880899f": "02", + "0x6542b8fc06728a624d10d21d45cb3fc58b811a380547cab3d5bf9e8af0de6951": "97", + "0x6551251b96ca27f3af8a2c500d6dd1ea5b9ab7002b3d923b66db0493f4a7123e": "0e", + "0x656fd2851f3badaee7500720d14437294b0fcb76990f68895b487132860e635a": "53", + "0x6760889404c1143da18e9f066f1d68de75c9a16a9d10a280d41864fd7580456f": "9b", + "0x677a6b432bd3361f469c2e051c8e09ea92ed0d049eb563118ff8c680fc93a2a7": "91", + "0x67f77810c4968b55b6ae34b927b213ced7c266fba0cf752957a861450bb43a7a": "cb", + "0x69626497767f58c222726a6a3c65050bcfdbb9346f9e5d146ef02bf59275b3d2": "d2", + "0x6a99e5276c6ea0c0894cfaf376fbbfdc736b359e1560a77365c14fcdf6cbbf53": "39", + "0x6b5eaf5499e02713812d712b5b5d3ee95e185212f6a71cc9a583a971cd861a4f": "77", + "0x6c172610999b0729fbb6bb1ba27e7a0009f1b584ad6f8307d3dcc7d24a180874": "c1", + "0x6d8f3f1992b15fdc2a757b2b99a8a3721589fc2e31188ab7620ca2884102ece5": "3b", + "0x6df5983ddc40ef2c7ffa2c79bf9402568f2ee0ec7b675ca15aaa20b536d2a5f2": "79", + "0x6e2466f20ef20cb42d216dbf4a0d934199213e9b8d75bedc9c2d3e038a587474": "1e", + "0x6f9ff000b2dc3a554bbbb882ebc7726b700eb7afea141ab16e00a057f314d0db": "a1", + "0x701960547b78067b00883157f5e9fca3bbea742385129f0db7e1e69ce445dfef": "d4", + "0x70fe2e29e879b5adeef12bf7a782c3fd7815b6fcd3defad6eea94b8fac090e8d": "57", + "0x73b2b230124967b31546c7e2fedbc5ab108a537ef6d645621fe74fcdc0644b28": "3c", + "0x74871a06c400033dfb8aee09db8282719447dc850ca097c5e240f67a2fd7fec2": "33", + "0x75eb384e56c3a3a30a408622e6f0595d30705efaff129c133effc43c3b946de0": "9c", + "0x761bf5fb1730fee0e499bb1806b9ae14394e673ab9c1dc12e95b9d3f1647cecd": "20", + "0x780fa5a814a83baf682b2f170be956308be6ce1bf84ce68ca5f3c59cc41c7c28": "1b", + "0x7a536b71187079aaf5462b7d483063e3d25cea8e3a6790ebdbb284666fe81068": "cd", + "0x7a9cae3647128ba14914f547c5f27444cd7325bbc37e5038abc31eea45003034": "2c", + "0x7c24a68c92e3b68daa153ae82eff9be1ebbab973384e0f4b256f158f93c5d525": "1d", + "0x7e93ec1b055e40d91bd222d7a3d4b0e85d09dfd561b0cd47d09a25fe183a06da": "b3", + "0x7fffa2c61f6cad00c700b65e33937fcbab57dff84b2e792d81126626970905f1": "87", + "0x81260b78e72018d5773b6ba1df006b09a387fd733e59ad152c119d9848ecf1f9": "65", + "0x81607ef8d6fd479d2d0f55ec50762ee5fc35883ee5600525ce1e9ef3398d5aa5": "4c", + "0x82a4bb68f7522b711c9f22b00f9c5e050f52cb2bc5f0f50eadcb12a5f1c30839": "92", + "0x8348faa37f759999e3e7d161ca60aeee74b5c55075e626534a26da3aa8962a71": "43", + "0x8405cb4703a08e5160e343c37d42df5f045091f6b22664b0ec3f587df18d2d82": "b2", + "0x8460e232c64e6cd9f816c02d855c892755984ebbb91592e683cda80aaba4ba22": "11", + "0x85ca3ddf1ae9fb0aeadecd8109961dc5d5eaff16ef7adc672149a7826c69da97": "38", + "0x87dfa85154edde1626e3a09196eab4b60f71887ec7b50ccbbe7ec76c0be6bdff": "1a", + "0x881a8434f98b103a2ee48727304618ca54234f1474c44bef70c21accc4dbc0a7": "01", + "0x88edc52ba848622b1d92e73d2c311c1c83420986c621546fbadac23c3428c570": "c9", + "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56": "0c", + "0x8a38792846734575025e5114061b62006064b0636caf6733294eb26895bda2ac": "4e", + "0x8d866e9225b61c55bb3e8d27f9eed41faec221f3eb1ea322661ce1956885d021": "83", + "0x9038344c39b01167bfa8e99a6425d34bca24c27ceb191e8eba70ab5a8f719ce5": "10", + "0x9138868b39f601dde19efa6e9a154230a51805e9a6cabaf28fed5163aea58328": "59", + "0x9225354562a563158ba2ce0e86cfeed7fde0ed27c77342aaea09551b9c00ea19": "a6", + "0x927e4ce70caf344a9e108ea8803cd49216852109c3e4922dfed2680e9f24361d": "85", + "0x92da59b68bfd8a9c1cb1ca6a302ee966f829f2727a36823b0dc7fddf7790a108": "8d", + "0x945c01f307d13fcdab0a2a3a4c4bd5ebb69a00c3dd59896a959664e01ce10695": "82", + "0x94605c950838b2b0b1ce76f58acfb91a94c2aba787d02add7187360989745a4e": "6a", + "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33": "07", + "0x951b3b37c2a87b5a67918e750832a50c5565298a35390bad3ffffadb2f7b4afe": "76", + "0x9575996f3ad6e9709d7122224335451a59395327d297fd7967004e8dc1391308": "71", + "0x95eac6698d094a89aa0fbdbe4dfa56a92b928657bfd2a6374fdd5ffadfd8ebe5": "5b", + "0x970a64830f255bfc38886621b37a7f1a7284bad6c4a04b6a2442ad212e19a6a2": "36", + "0x9739ae7192ad23a41778719941582886701a0830589c7ebfc5db094037635d82": "1f", + "0x989e02934facff928d8e788f174ab7d48838c62b07d420a8527cb7eaabdbe91b": "b5", + "0x9a9b2b0f17eb8c44f3d00dc6cd8475e9783cc715b3779af9170ddeed0221bcf2": "a3", + "0x9ebbf91a66183d0d37b03faf46daf8fe238c1aa2b24e6663dc14e50557d432c7": "66", + "0x9f569f15edd7832cd57a6cff95e09ab162c23f3dda7e729a74b2f41624294998": "8b", + "0xa0c2e429d47e77e9b7c98c1aa4aefb731206f41b64a6587678905a86d14a7d75": "d1", + "0xa22721490cd06a0e77bc2b085bb4d57e7e5e0b459a2afc65ec4697d51926e1b8": "58", + "0xa344ff63ecb6c6cbbd711b06a84844147910ef79a57679958664abf4af9938d3": "c5", + "0xa3e65c2aeaf352e79173be13e572f691d8d75ea1064610b8418246d95bcc421c": "78", + "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b": "05", + "0xa6602e59691514abf1ee46e71c1f4c7411eddb76e687f8f4aaa1ebf305b97f6c": "b0", + "0xa6d01173df2aa437fb0118d181e64a8f8e05713fc01c42fbfd2250516639ae95": "06", + "0xa791ce367786fdc4c5216c8b94dfe1076746e058166dabda25b5e6a3266ce857": "75", + "0xa90642da2f095eb8128f01811cb553162395cfcecbe5b077f12c62a1effa7c82": "98", + "0xa99b8fb9a23a3a24ef3330a371d081c4158ea1b75c9af3c2bda5440857bc8237": "c8", + "0xab15322a52f3de5dda0553d7abbf171524cabb9c97dacea8806c750361d472df": "bd", + "0xab5140d25dce39c42d511dba633cde87b45465d48aa4ec211b27de998abbadfc": "ca", + "0xac748acc1af284e25d06434a8c1bbbf75bb8154a06f53f75d4f36edb656a49ba": "5c", + "0xaf1c2654b2e98e9ffbb02f14d88617a245a9a1679162be29776a4836185dc2fa": "61", + "0xaf1f0d50933e49dd24b61a24c670809a5b875e3b746862636288dead8579dc4e": "2e", + "0xafc44d58dec637206e79248a528189c68365e20afc23410475deb5e5dc69c82a": "88", + "0xb2416e7ca12669406e6cd5154ad5177841b7d0cddeb2760249c28e1aa151f970": "09", + "0xb296a1364260e1c8d47bcf2239f26b6b909a0a7687250af4af545eff0ea95ed7": "c0", + "0xb36949b816cb2ec4ab90f345d0bed84f55b8fcbeffd22198724c45d8a30b20a6": "50", + "0xb3750ecb88b6e11e5f686cbacb3d24e61396cef4a1525b30d5a30edc4b3fdec0": "68", + "0xb50dcc47e811f76cc69369cb397936a5c70520a51f33b84f1b54591da145e823": "b8", + "0xb5e95d5da3e73f937bfbc9b4990bfdbd865c6d3a3b50478657e20b507fac7541": "74", + "0xb66fab7dddd4d16174b227a6f958d7ba2ae8ebc52d763b02c1ff944362755e6e": "17", + "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9": "03", + "0xb9a419e057752857f289694284890ff1fcbfbe5d736b5e52bb8568e077f49883": "cc", + "0xbae4f13d358194452066fc1305964decaafbc9c56a2fd16936d25d9521a57a19": "b1", + "0xbb8f646a16b72f34169bcd82f0c023b582d2ae9f395fb59f9e022e6caacd83a0": "ab", + "0xbdfccf10ce95236042860c90f84756794940d0d15da20833f8bdc1b921be3efa": "b7", + "0xbdfd2b337ff30e9e15c09313bf796d3c75177943e0aa0445f479fbd2dd5c1d6e": "3d", + "0xbefb4ff6aefe6c4d85158d11057517eb9cb1e1cae3e9d2d9c90ff40b2cceb546": "6d", + "0xc558392238c2d11cdd04a6ae37065f3541a22140500f92c0d8006ff95e8df595": "ce", + "0xc6bea923a54f8cf570edfddbda896a2ebf7b53d33b1dac8914ed024ff0621f18": "bc", + "0xca27d6fc8e6016df20a295f26b57b2f6ac7a8cec98224571f416ea88c0ee7b97": "a8", + "0xcb35fbd0ebf79655e6882326c19855ff90befcd2e589418566ec2e3a1efd65d8": "84", + "0xcd78e90ed1705eeff092f3df07b16a382082e9c388030ec3188daefa57a731dd": "7c", + "0xce285eb20810f2d026bc0b62faf3735df2193835ffd85df244ecc2df24f43b00": "c2", + "0xce87527a0ad3ddb4d0d57d8077e84d48a6f3810f2a5672143d3b6969b0f86d6e": "96", + "0xcea8a961664f986542ebbc496878d052736682831cd7847bc769ae16e9eefb65": "99", + "0xd0e6005ee39e02d654cc2db358df9659d8265e24d7362df88a7df9200438f6ba": "44", + "0xd1a0570d06c0cc4198b4475cb892ec41ca3239ff670666bcd97faeb62c1db6bb": "ac", + "0xd314fafd686fcd729a24ff511ae5e19248bd6ac6de8c28c79918df72de20e63e": "72", + "0xd407a81a8c9c2573926ab54ecd5ee3eb6f1853de6b11142313df08897b6842e2": "bb", + "0xd5eb8e9a486b23e10cf0092ca8690e7bd6d6c90932960cdfa5da36d1e1f20423": "70", + "0xd73688caabee79f6ecf3a0b092d26e639b7e486e45c00031db80d3d7abe8c683": "7e", + "0xd75c9abb1414054ca164bba2f8c09917fb90c24789feaa311ee34a0b3f4a82f0": "22", + "0xdbc7a073eb54d33d8e6dec5b0b635a874204bda1c23234ff0cca057ff8ed77f5": "28", + "0xe067f85eba81feba79bf640415c11ab4448d5cc4a41652fc0a200be4d2661786": "7a", + "0xe0fa1a4e967a01f4a84aa6715b0977cc111d3cc0834c5d04f0f1d87e0d561a71": "d0", + "0xe207f028cce1624a1fc76c56f1794c2704a692c1f214685291d618e40733ff1b": "4d", + "0xe2a0b166c03b200234eacf5eaf9ea11746c9bfd00e72f55d8cab76e0eca7195a": "89", + "0xe3cb3b98042d005e52e8bbbf49b25e11be63ec7c63ae5a5043e44c545fce633e": "9a", + "0xe4c7ff156c2f31d046217715d0f193c8a6b3a7af6341d6abe0e28c49d1210638": "a2", + "0xe5f4774cc356a99594f072de9e8113739c65fb51b5d0fef3f40627cac02dd963": "9d", + "0xe6a5227fabefc934ddc0a3142a50747ad1157ad0829ec0bbc389d5e22e3282c2": "35", + "0xe70ed54757ba10a0b95454f6483d3d2e11613828f13d57d50b8a3a98e2c8df1c": "52", + "0xe7d55978188f31ab090b1f10d8d401a66356b11ca8c296384a0a51e36e6ec11f": "15", + "0xe865c3418b47b88e94c28956b326a799298fb44c62a7a6bb55fd991f7c0442ca": "b6", + "0xe891146f52235abb9f53919fc0e41a678d5a8a807a2247177d67539a2bcc3d1a": "b9", + "0xe8a78860d5ffde377f4eb0849fe59ed491d4a12fd51edebc2bceab3549d83463": "55", + "0xe94d0b2545ec05c3ce3431c4d45c3b62fcab156563e8308fae1ebd27a2810c1a": "0a", + "0xe9bc0af4e1917255f83262d4d61622be8b86fcb24a5810c7b592dd6da6861d56": "2f", + "0xec200bf1cc6a2c5d58960dc3476cc4794ba1a9fca2ac3d09b63e7811b7299c3d": "ba", + "0xecb9f805cd314a9aef8cf2c51ccee54704c5cdcb0cf745bd3411c0cfd1bb2381": "63", + "0xee0b894f33a9643c94e4e2237077260f4191c5bf6bb3c17a2212b86af6f67df4": "d6", + "0xee9be26249f0e23118ea14c2c58ab3fc7e42e888edb4b1de6de4a03e0b793b00": "4b", + "0xef03c0a4bb7099df0152e975b6c3172e7f47225648d2754efc7e81f2d1ed71c4": "93", + "0xef429d45b992d9e888f08c3038963cbf4aa2b1e5b209fff23a8299c595430277": "9f", + "0xf199b2d65bb711d578312320d210574bcc79d63c841d7dcf96ee3604140a7353": "2b", + "0xf26b2f780c4b92b3f15f1d6e90f7d5a176b58eefea6f0d9cf2f8a0d1f86a139f": "c6", + "0xf4770d7a56ee02b105688173dbb647939e9168262a4d14b9f6a6efe19b647388": "7b", + "0xf4c5c0fe94f1f62a752dc2b883078110c5753ac15ab5fe6f425821fb61963118": "7f", + "0xf5acd98a17a3425f113b869e0dd03f82ee696401d2e7f59e8902610150a95a20": "23", + "0xf77c749ecb156f605e2334b14caea388100bed09b4c16579c952a96e90355629": "04", + "0xf8b0a158a81e46d2f46d268e7726acaf7c33fc321c36f6157f07abbf7fa49e5b": "34", + "0xf9b648439e7b876f9aa1b178fc6381f44bcaee23754d8da33b2d44e78cf47bb1": "69", + "0xfa29cff134420b6526f434ab690a9c3a140aa27b8479ae3d8d83b6c799acbc23": "12", + "0xfaca663a6ed04f52c0e7a8981cb438545f614a2cf84f9077659d0fce0045cda7": "31", + "0xfb0e917bcfc6a3ba3c079d0f19d7f2ede25ac596e725d016e0c31dbc8b390508": "d7", + "0xfb2772a3127ac292efa3da20fad64d950bf973fb209892fdf834766aa8cdc3ba": "94", + "0xfc4b6ee72c1b0e13d4d0c218aa48c6233d313507fb55d142e7a2951f0b7c07d5": "cf", + "0xfd6fc192aa03eedb6505372aa1dcda93dd186fb3eded0bcafdaa4f2829fe43b5": "a5", + "0xfef2849e52369d74814504a0592be1651fc3581e54b57283fd34053344624f83": "6f", + "0xff442992eff2fa28cd13c50239c9e15f907488f574ade0e75cdba2cfdb26c480": "d3" + }, + "address": "0x7dcd17433742f4c0ca53122ab541d0ba67fc27df", + "key": "0xbf1f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23d" + }, + "0x7FA65F7792d36FD0282DFd7398347317045DaD39": { + "balance": "0", + "nonce": 1, + "root": "0x2084e24f0110a0fd1c5b1283ba04925cf5bbfcba34c26c8f2ed36d80649fa105", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000a3": "a3", + "0x00000000000000000000000000000000000000000000000000000000000000a4": "a4", + "0x00000000000000000000000000000000000000000000000000000000000000a5": "a5" + }, + "address": "0x7fa65f7792d36fd0282dfd7398347317045dad39", + "key": "0xf7c5aded54c81097690f975dcb3cbfb114a997c0f5ce75d2e6acda54986b88b7" + }, + "0x7d53f4E89992aBf93C95467Cb2e0E1Be141eF844": { + "balance": "0", + "nonce": 1, + "root": "0x22330f48a508599789a782a57c07ba7f7fc9b9ca9ce9e3331ea36127d1a283cd", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000169": "0169", + "0x000000000000000000000000000000000000000000000000000000000000016a": "016a", + "0x000000000000000000000000000000000000000000000000000000000000016b": "016b" + }, + "address": "0x7d53f4e89992abf93c95467cb2e0e1be141ef844", + "key": "0xc57a0482220d36c87a41479e62e55decd08ec51a10116b3284b90bbf5b2bcc2a" + }, + "0x7e42Fed5f877BF877BfF6A6a5aa02f1dFf69a9d0": { + "balance": "0", + "nonce": 1, + "root": "0xbaebe83bb6a87dca34a07a0ee1da5c038e50ea59754f4c3027cda3ef209dc9fb", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001cc": "01cc", + "0x00000000000000000000000000000000000000000000000000000000000001cd": "01cd", + "0x00000000000000000000000000000000000000000000000000000000000001ce": "01ce" + }, + "address": "0x7e42fed5f877bf877bff6a6a5aa02f1dff69a9d0", + "key": "0xbec5e51999dfacb259afcce7ae4a1d085bb27277793cda96a079bda642d15441" + }, + "0x81bda6e29Da8c3e4806B64Dfa1cd32cd9C8Fa70e": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xfcc60211b6d08e046c0587a81331df89a1fbab58efa0b6acf075c2ded4ea62d9", + "code": "0xf5f4f145f249ec8fd417deb07ebba6ad75c6c8d3b9078a26ec16edbc5b4cb13241a2d376d1cc7cfee6058e74f6bf0c848c6567d84037dbd084e5b28dcf7825c22f13198cc353a2bcdeea8950fb4fa16e1bfa845cff6c4dacc918c492308fe106404cbace760d55701d2fa2fc1576ec2fb0de43f2334f9dcaf513296946815da2bc7fc19ff06ab7008e625df9a00cd9ca64bd66c2f214458996515c1bec5bd2dfbfda5199faa78deb0e4a0aea26d0cd85d6b8a20455bdf7dcc586341fa10c60391c2768f4ba3e934fd0e312a0beedb01d78534b2c4064bfbf23f299e3773d9eee9b46cd7f09bcd8d210c8707cabc088fc81dbe986970bb1ba06a73ce0520c5465", + "address": "0x81bda6e29da8c3e4806b64dfa1cd32cd9c8fa70e", + "key": "0xd5e5e7be8a61bb5bfa271dfc265aa9744dea85de957b6cffff0ecb403f9697db" + }, + "0x828a91Cb304a669DeFF703BB8506a19EbA28e250": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x828a91cb304a669deff703bb8506a19eba28e250", + "key": "0xea810ea64a420acfa917346a4a02580a50483890cba1d8d1d158d11f1c59ed02" + }, + "0x82C291Ed50c5F02D7E15E655C6353C9278E1bbec": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x82c291ed50c5f02d7e15e655c6353c9278e1bbec", + "key": "0xa9970b3744a0e46b248aaf080a001441d24175b5534ad80755661d271b976d67" + }, + "0x82EF715853ef1959f9e4628C253F5582d5e8CbE6": { + "balance": "0", + "nonce": 1, + "root": "0x8291966c55b7b20309783e4ee760f8ec2e4082e14fb79435a395c4601f16cd6c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000fb": "fb", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "fc", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "fd" + }, + "address": "0x82ef715853ef1959f9e4628c253f5582d5e8cbe6", + "key": "0xcee41784a4f2beac87ec4f132d240d8147ab4f075e723ca30b11c150bec2b94b" + }, + "0x83C7e323d189f18725ac510004fdC2941F8C4A78": { + "balance": "1000000000000000000000000100000000006", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x83c7e323d189f18725ac510004fdc2941f8c4a78", + "key": "0xb17ea61d092bd5d77edd9d5214e9483607689cdcc35a30f7ea49071b3be88c64" + }, + "0x84E75c28348fB86AceA1A93a39426d7D60f4CC46": { + "balance": "1000000000000000000000000400000000009", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "key": "0x5162f18d40405c59ef279ad71d87fbec2bbfedc57139d56986fbf47daf8bcbf2" + }, + "0x863AcCE24e84A75b149e91470591225488Aa202B": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x5fc20dd0c1702289c1ebac32a00d38d5f3ab099aa4a62f756fc6740009dee488", + "code": "0xa00efdb534f3a036f288f1ed093d8ee3c505b1830f5e7bdcfba3bc6cef961d6725c7e231d8fa316d46e8b9b45ae34c96362447a0121688b5fc8977a621c28ef207353636cb00f21a886a8dbc179f462dc0eba7e397de30c4590b03532e23d3afc7e9ee3fcc756aafa61501a80648b24edd970a6d68f0424eebc857c57773f53e69a50b34f46ecf75aea648265eec0fff27688b0100a4a90d38989180db6ad3816b588810da3f66df779850de767250d6b354379a4ea55b612520748b864937ea6a37856c397693f1de1578faa1274997837d54cde3a4c322a3787c67642a2544338702c004713ec1a08e6b92548f894b51c234cd2945f4ef5e08199c618d1034", + "address": "0x863acce24e84a75b149e91470591225488aa202b", + "key": "0x5788e3a5115bdb419afcc4cc415404c53d8e15aa647bb459e6f01bbcbe80ee3e" + }, + "0x8642821710100A9a3Ab10cd4223278A713318096": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xb05730ba4681896d76c307f28a0744f22990f47580134eb2175db1f80bbabfa9", + "code": "0x5a13bb8468ff08ea1be5434a63d147aa9a75598c1472c6c3689ce0cc412fb137e2497937f87a756db742358161519471672c61e08459ad8650f94ad10a7dd95e33404a00df2797ca129732dcec6569f4fb1a987d4ec0b4118a6130ffa089264f2365e0ce0defc8344c79251e10c13bda9f60f98c7b76a120b28b1a0e8fcfc3610b452314837379af560040da1e59ab48282b9d8f6b5a9755a333ca81fef097517409e4ab0136215a31862fc94b13e16094495561fa1aa10a04fdf23371b35b72bf66e9c8a6f2fac97b772c6cb459729a5fda5bde7ee9c2761261bd7c12b4bf4018560b1f83759e5d4d88e0ae0bb6a6669899a83188652f373acd98f90e0e46a8", + "address": "0x8642821710100a9a3ab10cd4223278a713318096", + "key": "0x4fbc5fc8df4f0a578c3be3549f1cb3ef135cbcdf75f620c7a1d412462e9b3b94" + }, + "0x86b59E8a12C2BB58142FE270c534eA0AB3aFEe2d": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x86b59e8a12c2bb58142fe270c534ea0ab3afee2d", + "key": "0x76f24004f2230993f7843ed74840da1c520917d1f6a2e19d74ba58e52bd60a26" + }, + "0x87610688d55c08238eAcF52864B5a5920a00B764": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x87610688d55c08238eacf52864b5a5920a00b764", + "key": "0x80a2c1f38f8e2721079a0de39f187adedcb81b2ab5ae718ec1b8d64e4aa6930e" + }, + "0x882e7e5d12617C267a72948e716f231Fa79e6d51": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x882e7e5d12617c267a72948e716f231fa79e6d51", + "key": "0xd2501ae11a14bf0c2283a24b7e77c846c00a63e71908c6a5e1caff201bad0762" + }, + "0x891baAf101B07222bbCF62e7DC519199d09255b0": { + "balance": "0", + "nonce": 1, + "root": "0xda6d6392c07f4f8ea202d6b89fa3df0438cbcec6ae5a3b4a1a46e961b50024a3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000cf": "cf", + "0x00000000000000000000000000000000000000000000000000000000000000d0": "d0", + "0x00000000000000000000000000000000000000000000000000000000000000d1": "d1" + }, + "address": "0x891baaf101b07222bbcf62e7dc519199d09255b0", + "key": "0x1f45298df4f084a080ff705ba3b4b42ed8583bc310131bb496b4d2150c732e1e" + }, + "0x8A7EA0e207F38aFCE6C3b2A1D42AA55af13edFE1": { + "balance": "0", + "nonce": 1, + "root": "0x9c32ffd5059115bba9aed9174f5ab8b4352e3f51a85dde33000f703c9b9fe7c2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000018a": "018a", + "0x000000000000000000000000000000000000000000000000000000000000018b": "018b", + "0x000000000000000000000000000000000000000000000000000000000000018c": "018c" + }, + "address": "0x8a7ea0e207f38afce6c3b2a1d42aa55af13edfe1", + "key": "0xd6890c290f55a8677b4928e89c7b599f24b7e21751260276c3b659a993a20245" + }, + "0x8BEbc8Ba651AEE624937E7d897853AC30C95a067": { + "balance": "1", + "nonce": 1, + "root": "0xbe3d75a1729be157e79c3b77f00206db4d54e3ea14375a015451c88ec067c790", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "01", + "0x0000000000000000000000000000000000000000000000000000000000000002": "02", + "0x0000000000000000000000000000000000000000000000000000000000000003": "03" + }, + "address": "0x8bebc8ba651aee624937e7d897853ac30c95a067", + "key": "0x445cb5c1278fdce2f9cbdb681bdd76c52f8e50e41dbd9e220242a69ba99ac099" + }, + "0x8E313AB0dCA2cedba8F0e00837576dC7089f8528": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x8e313ab0dca2cedba8f0e00837576dc7089f8528", + "key": "0xb2918453a8af8fcc00819e734545cf1364369a224cb90ce7e85fac5787ecbcef" + }, + "0x8ba7e4A56d8d4A4A2FD7D0c8B9E6f032dC76ceFb": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x39eec94f30ed1832e93fbb50cc013d15c6bbbb705e5c80fa0be78873b766111a", + "code": "0x363806242423d19f6cb56e019805eacfbc87c7b959d1032a5958652d03be30dec52ed38a2de7539d7e071eec93cfea8675a40357e03c2a5e4b8c2f49c5736f8d69ca8bb179a934da675e9d10bdb2224803424c4be75d77a8f6d887db9b1ebc91ef5e0849f239dbb5067e216b8ecbe8b6e9b8d5d1d458195d30e849b313afe11fb22954498c32d029ce6ccd8dfbde50e756509aff48ac6c695047056f577bb970fa7128b2801f6e9e54ed32971b77be04c6631b437384f3f5aedc042356efffc34a3bbc70edd2b1649cffaf81175391ad854d34dc59b54eb586c48f2c1793b995b30498b5a6f750a34a52ba949f9390f9f5850be279a9954bed79442679bd5974", + "address": "0x8ba7e4a56d8d4a4a2fd7d0c8b9e6f032dc76cefb", + "key": "0x72e962dfe7e2828809f5906996dedeba50950140555b193fceb94f12fd6f0a22" + }, + "0x8dcd17433742f4c0cA53122AB541d0BA67FC27ff": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x8ce72a0ce7ef4a4ae413b96a758180236e818fbd3e65950a11efa82cdede9074", + "code": "0x6202e6306000a0", + "address": "0x8dcd17433742f4c0ca53122ab541d0ba67fc27ff", + "key": "0x5014f5ee2c5966afd3f28ea3e96073eb0f4213dedf42d4214aebdf1f179fb9bd" + }, + "0x8e2Ce0273730EFd640C818Aa3B834a5F1b7335fD": { + "balance": "0", + "nonce": 1, + "root": "0xa5fbcc798206950f7583914b883e0120c1cc698708a062b29580564401ec0030", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000250": "0250", + "0x0000000000000000000000000000000000000000000000000000000000000251": "0251", + "0x0000000000000000000000000000000000000000000000000000000000000252": "0252" + }, + "address": "0x8e2ce0273730efd640c818aa3b834a5f1b7335fd", + "key": "0x8187452b81bb48d9631d0e75c485e054d87fe04b8e649d298a26aa9e481e9357" + }, + "0x9103C21ffb25BB86EA67E2A55a82a3cee45F5882": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x5f648f090749c4f185cdfd503f551f6a139518ef3b43034af7a2b6ea5151e0d4", + "code": "0xfa180208e416b80964438d3c35d1cc392fa2306729e8d162378339e15452ec247ea39c3a1b472adb1a46b82f40de40bb7a9fa5ad3dbeac7da36175e48293187d80ab0009a43379585ef3a79a25eb8b1572a96a1872c34834f703ae9e75aa75615b8b05a5871be0d722857bea97754d7edb37140ff7f5ffaf755616aae77f9ee7ff5af8c6d0a01a7e08a3fc6755b1e203b13b017a37f29ba48e9d20c987ab01a447c79cba3f4a4cb401a74b9326948647c38eaca90838d64c42fe591a3970e60281cd6fd31e0e2075b20489038375b1268e8cc49cebd55fbf190199521e0b9268af8c5873f91d3f43478f15fdd9584a5f9afdb530ee1cc5e23e8ed7c5c37842b5", + "address": "0x9103c21ffb25bb86ea67e2a55a82a3cee45f5882", + "key": "0x0ddecb41d3585905401dec1427b10fddf452737202507201d54b12b41e58e1cf" + }, + "0x9167Bee148a782A1Ff58D1e87E2ba20F5171580B": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x9167bee148a782a1ff58d1e87e2ba20f5171580b", + "key": "0xb19edf94146a2973ecb69c4fcbec11b328d0827e2492aca625601728aec20a76" + }, + "0x923F800Cf288500F8E53f04e4698c9B885DcF030": { + "balance": "0", + "nonce": 1, + "root": "0xcff2e33abcf2bbe2e2b7cd934bdaa5b278b3c560ea5447127c1f2d8c21d865e4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000015e": "015e", + "0x000000000000000000000000000000000000000000000000000000000000015f": "015f", + "0x0000000000000000000000000000000000000000000000000000000000000160": "0160" + }, + "address": "0x923f800cf288500f8e53f04e4698c9b885dcf030", + "key": "0xb91824b28183c95881ada12404d5ee8af8123689a98054d41aaf4dd5bec50e90" + }, + "0x93216E4a663E3A680A0FE006285935F47caa5738": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x93216e4a663e3a680a0fe006285935f47caa5738", + "key": "0x4c5038feb95f6ec5d7f882308ee48d7f51cd0f31fde9cfabc5f8a781ac6671df" + }, + "0x9344b07175800259691961298cA11c824e65032d": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x8e0388ecf64cfa76b3a6af159f77451519a7f9bb862e4cce24175c791fdcb0df", + "code": "0x60004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3", + "address": "0x9344b07175800259691961298ca11c824e65032d", + "key": "0x2e6fe1362b3e388184fd7bf08e99e74170b26361624ffd1c5f646da7067b58b6" + }, + "0x93747F73C18356C6b202F527f552436A0e06116A": { + "balance": "0", + "nonce": 1, + "root": "0xb9e281bd4eeb831410eb18e4fd03a36f0e5977e0c76074b27d202f879f924c87", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000f0": "f0", + "0x00000000000000000000000000000000000000000000000000000000000000f1": "f1", + "0x00000000000000000000000000000000000000000000000000000000000000f2": "f2" + }, + "address": "0x93747f73c18356c6b202f527f552436a0e06116a", + "key": "0x73cd1b7cd355f3f77c570a01100a616757408bb7abb78fe9ee1262b99688fcc4" + }, + "0x96D9eB44cA2670Feee25Ddb1359B6d36e6fFBaf5": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x96d9eb44ca2670feee25ddb1359b6d36e6ffbaf5", + "key": "0x54f5ae26f0a76f1cb1f3f6d1677c1483d53e13f47e520a1583b31a61422c02c2" + }, + "0x98689EC73E856AA045d939b320765303666Df0B4": { + "balance": "0", + "nonce": 1, + "root": "0x52d6d2913ae44bca11b5a116021db97c91a13e385ed48ba06628e74201231dba", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001c1": "01c1", + "0x00000000000000000000000000000000000000000000000000000000000001c2": "01c2", + "0x00000000000000000000000000000000000000000000000000000000000001c3": "01c3" + }, + "address": "0x98689ec73e856aa045d939b320765303666df0b4", + "key": "0xd5c9aa063e60e4cb577a1d645d09643c9074af8fa8677c78bd1240cac7b6749e" + }, + "0x9BA269ed634782aE1fd4508A841B697DEAd12744": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x5b8c99577256a15d06a28136692317076372b213abc4dff772cc8036c96d1084", + "code": "0x00caca6c725b2071171ea44f3346bf78f8d0b5597a2a408f011fa08aeebfdf2ab4b879bb3f11edf50695b610ae1ee979639a7ba524b1c699e0f89b9b31353fec6fb82ae3a889cf4e8d2c22a8349342b87eb518f9f05e15ad60fe6991d6c420cffd78ff3ecb67ba1b488f00413974097aa64512e6c708a2a6b96680df32343bb8cc5c8c706f8389f8e638c815d14b44781c79c9bd4b5aed387262c62c4249401d53be41676d5cc1f0a9d657b80dda9f476346bae3ba32459c3c42ff07ead14c2951409a2286f645e1dcaad586703c168893dccc02a1a9aad36a0076045dccedfc994a8886cc0e1ee9de6e5b5661a7c83f7243c5f0ad8c0d5c6016c5fbb8882983", + "address": "0x9ba269ed634782ae1fd4508a841b697dead12744", + "key": "0x3a8a079f2f9b3eb93f242e2d3e7158f0f6850302944c8752ac210c93463ff6ef" + }, + "0x9F50EC6C8a595869d71cE8C3B1C17C02599A5CC3": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x67d7afc302b0d54eb18853411f46998d05c8eaf4da3f2b77af1fb618626f2bdc", + "code": "0x3f1579c5434b902977fc1e0703af241fe080512fbb19dc21b0d08faa73050669a4eaa4181d8aa57552f668c2ff97a093341c3d011221f34a7505ed786b4bf2a7d6f9868dfb52c402e1d59c73c3f2f623c40a3db8774902d63940b3f50d6ef3848335fd41503dd7bc5aa80d8d618041fa501eb79009bbbf336978ac474a44ddf02e4f5055f95dbb749a90019f6e44beb69dd0487d79367dae3c2cb00571405a3eedf063063c2432b0daf4344815598e8dac7a678a6019d0efceef7dc21aa986ed588f4bad177fcafeb86bed8dfc1d9acf702e643163d5b6736d7bf35d937d255f86ceeafcdeafbc5fee426ab68fb25b6d7278bea8cc7dc7c6d8b22351c2a13639", + "address": "0x9f50ec6c8a595869d71ce8c3b1c17c02599a5cc3", + "key": "0x2705244734f69af78e16c74784e1dc921cb8b6a98fe76f577cc441c831e973bf" + }, + "0x9c6e13AE62C45c5af66061ae7d5bd7777bd73Fb3": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x920edc96a12889225908eaac095bcde16b6e5c8c252b15db65db90e1974251b6", + "code": "0xd6d11e3863c3c5c135c900a7a1f2145ef8955827c13fba8bb96e8ba136267217fa958e1be2d3d8d37da34f1c291dcec750fb1828e4bcff2846e36aa189960a9f00bc01de787f9aae8d65e5871bde106f5c7828b32fd415624a3d18da543a148d9c68d7404ea71965a39260214a95ed0602bd38a9bb003aaff75f9fef6859368a7a994dc0d23dbd6a674e00a2fecd717ed14fc668e1d60c12dd72df674ba0055d8dd1cc0c68bc6b297f58d399ad869ae785ae1f5878bb7c943cd5d51ef157568375a356d8f1fe1b56859f3da848bc73e306897a977d2988371232bbf4bf1e3f5ae5fc80b2bb06155477ca775440f681635a2010925a774478b3685b59b1c5d864", + "address": "0x9c6e13ae62c45c5af66061ae7d5bd7777bd73fb3", + "key": "0x255d91ddd310cc85afd19e6dae09c70558cca5fb7f1bb7a8ff074fc7e99cba61" + }, + "0x9f5CC913d1bB637b0cA3510A49BFAA0051deCC75": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x851cb461ed63af978778812e29b8438ce3f16aa94563d2da59fa0be03ac953e6", + "code": "0x42e4f963a3fa39ab69d625e264d630b7b8d02724b6965c3e5947a27d0128f6464e121f71c7387e782159a5ba74f560edf5f0a75236c9955a45a634893ccae10d5a6abfa0b523f1fbb68d45b199c8a459119750121cfa7e46c7afd4a8f9bb9b99ee067c1090ecd738876f3df0e706ba52760fc8dff34c0a82ab024434431f51deafdf7aaebcce7888b84b30340b3fd0b42f1628596c1a7bdf530b00a0e826bd8a0c8c25983c5dec62ddcff7ef6a7b6a0125a8e67abeacf43feb9033b61ef373d797d00f5e9af51f367376d3b4e378fe4451a9a7f795a2a7bab9aaea91f6031d6c83754adcbc6e45a35e984f70507c095d41bbef00afae3cb78028e9ccf3b0736b", + "address": "0x9f5cc913d1bb637b0ca3510a49bfaa0051decc75", + "key": "0xeceecfebcecb0c7cc1178556acca97a647ac263a51908fa44bfd209d82387baa" + }, + "0x9ffACcB3fF3D37762a5a37C4255e47f524E2C975": { + "balance": "0", + "nonce": 1, + "root": "0xb856a374cf6edfda9a89ee543cc835161764cf5dba40a87c2748d5bd14a5dbe4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000245": "0245", + "0x0000000000000000000000000000000000000000000000000000000000000246": "0246", + "0x0000000000000000000000000000000000000000000000000000000000000247": "0247" + }, + "address": "0x9ffaccb3ff3d37762a5a37c4255e47f524e2c975", + "key": "0x93dd6c4b1d18f757fc687bfe44d81ee7eb4fb269120f91e7bc6fe3f596be47f5" + }, + "0xA1164E71D16e9eEec97392A83B253438FB36C108": { + "balance": "0", + "nonce": 1, + "root": "0xda3f636d9768b5cc17d188469438245b9115ab2c12280c4185c3aa039792b3be", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000013d": "013d", + "0x000000000000000000000000000000000000000000000000000000000000013e": "013e", + "0x000000000000000000000000000000000000000000000000000000000000013f": "013f" + }, + "address": "0xa1164e71d16e9eeec97392a83b253438fb36c108", + "key": "0x3c14ed4cc1c3cdeeb405fa351cfd8e2cabbbee07b9fe38828a2abd2eb9842cfa" + }, + "0xA90169ae859913CC39E0c24ADdAD3E74788276a3": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xa90169ae859913cc39e0c24addad3e74788276a3", + "key": "0x8c1e1a5ebeff0db0b6358fae0f6947ca7e092a3c6675d35381f2358a170eb0b3" + }, + "0xA961fF20323997A869Eb4D18E8a7Fb921690E793": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x672ac0692d0cc664ef0f82004a74014b2304cd08526c32826d91d6ca2e895070", + "code": "0xb2e2b84e9c287c35516c8c03da30b8438afb348d4d79934a428878aa29874ca0ad6f0c78bdaf95ef24d97b54420f40d55858cdd1fb13209f0d32e335a0c9e2bd7ec3c2f200843fc90126ba954586fc6de68c1a3d419d6f0667702fd695602f052f84c972fe68fabc45c457b4ff540e42699a4370cab6e165c8aa3ee904308975acaad697e97d6029fe86d542dad1d34ad3d6952dc1e276bca67b4305f914f2e385f617656293cf345cffb629940096100b80c9fbd7417ab664df65fbc8ab4ae3c3a4f9c0cd86a77a5f703bc4c9de9055aca230e85714684c3c974483c02b2238015395b57ebda58dc99e6864a8c8ae71ba95fcfb915d35ab1c5375564a181e19", + "address": "0xa961ff20323997a869eb4d18e8a7fb921690e793", + "key": "0x45a2591a446e24dacceeaa3302901481268f67a0c7a3f5e282dc54132ef54fee" + }, + "0xAB557835aB3e5c43bF34Ac9b2ab730c5E0Bc9967": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x9716c463c09b065800e539fb1d0cec27d8237686c32b94b7c0da4e49e41c02a4", + "code": "0x30cd5015e58b9c24eb2595e46f57007c5ed8a4ec876a16d456573afa20d3e9f577ebf6665d47f78de8fd49ef0f2b9e56505597ecaabf21c3af83dd603fdf48673b77fbda46b9ec81be06aaa750123ed7df8486d593acd5a63efe1ee068667c8d95bece5f6b20131d5e81b5b1776a1207bfb0e442012d2877df319d49ae267d7d37cbb42e77be277901f199d496ec2cbd5a4a969935694ab27df77ec42914a258f282e2888c324df7cb75156822c2e77eb209598344e61a2f9e26eac48e8a1c0deaa54584ad2f8e3adb41715141f532d0309f2407f7fec73992b958422fb316a3fcc52bc06864b9e3d1f7f3445c632ab994c7b676fff2b07ce1895e6627a5e6bc", + "address": "0xab557835ab3e5c43bf34ac9b2ab730c5e0bc9967", + "key": "0xc9ea69dc9e84712b1349c9b271956cc0cb9473106be92d7a937b29e78e7e970e" + }, + "0xAB9025D4a9F93c65cD4Fe978D38526860aF0aa62": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xab9025d4a9f93c65cd4fe978d38526860af0aa62", + "key": "0x17350c7adae7f08d7bbb8befcc97234462831638443cd6dfea186cbf5a08b7c7" + }, + "0xABe2b033C497E091c1E494C98c178E8aA06Bcb00": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x95e57877cb77e5808a2bcdbd9a45d097c0b3dc68abb1f465ea48b008a3148556", + "code": "0x1120594d593e46ec980fa0e64ae4f1623f0418421709dc7d6fad68015af55d1d620578150f00fe0405f3d5666527df1cd988c5f1cb8f0c21d438b7905f0afa7e378a1747347d49ceae36de53193d9d8491e80e3a2fb11519a36bfcfac52a0538f66305a61ddb824256acb564f9115b8a40970c3a191cb25bf2239e3351c867ad7689a99680307812a025bfe2515f32064fcc60dd1f88561facecb27800c6e7d8d06a3dc40d36e90357739e5267c8f470c6aa505d386b9fbc86dd03bb7df3aac74e667e8bad4edde6f56bcaa3e55b50d51f169d5647b8943e923ba4e5d9251b30c0a91aeab3466ec13dc835dabc920debb7b08929ed570a9253107510cdb18f73", + "address": "0xabe2b033c497e091c1e494c98c178e8aa06bcb00", + "key": "0x2374954008440ca3d17b1472d34cc52a6493a94fb490d5fb427184d7d5fd1cbf" + }, + "0xAC4D51af4Cb7BAb4743Fa57Bc80B144d7a091268": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xac4d51af4cb7bab4743fa57bc80b144d7a091268", + "key": "0xe42a85d04a1d0d9fe0703020ef98fa89ecdeb241a48de2db73f2feeaa2e49b0f" + }, + "0xB0eE91BA61E8a3914A7eAB120786e9E61bFe4fAF": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xb0ee91ba61e8a3914a7eab120786e9e61bfe4faf", + "key": "0x4bd8ef9873a5e85d4805dbcb0dbf6810e558ea175167549ef80545a9cafbb0e1" + }, + "0xB39590ED5AFc0053c8546F42aDCA5103127101d0": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xb39590ed5afc0053c8546f42adca5103127101d0", + "key": "0xbd016cd87ac43eda3340965f21b4c4468864a7f5bd4924913e1f872c3043752b" + }, + "0xBDda53a9729794D60e7555A0A9066b3aBCFc15a1": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xbdda53a9729794d60e7555a0a9066b3abcfc15a1", + "key": "0x8b016cf0507d02b670f348014bfbbac4ddc6c327f162ad478a4d4658a11ed051" + }, + "0xC019b892751D14Fdaa6cF0435E7f52C957E9F11A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x1d6fd9c82f1c83e2e756f73641224957124560dcc9047ba881d7c4f08bcd3866", + "code": "0x5bbfe49fc46bd3c0efd63509af9eb2a12636d52d97f4d1cf52bf53227ef389c271b77ca6c28942a6a5831a75c27e59515f05848f3eb905d816d90fe6792b6da75759ed2ce2b5d312af3edff82a4df858741988b1bddfcca1f32b72a28d1d70f0f787d5ff306ee7ea1d7b35b5cacd5a837646921c113945dbc3a3b6329ce400332b634da6ab875d88498f503820d9b51f6eb10d3d2f378c32aef2289b509f3def68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacba95205ee1597333a2b36cc31b0a8c074c0c1fa2918672c4e3dde98e6eb3460fe407979f83feb91e6e71e734e272c56671bf06f2c8bf8067684cbe31f663fccc52", + "address": "0xc019b892751d14fdaa6cf0435e7f52c957e9f11a", + "key": "0xae30ad28b2c8aab0d3c983610429e60fc0073255d1c69e538d6ae7b5d9562b4f" + }, + "0xC798205CF296141b777279868c635Cf7bb515510": { + "balance": "0", + "nonce": 1, + "root": "0x1bdb6449de127c6efa6829eef0c6b2188a66f104b5d1091f7dd3f419db0a8da6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000224": "0224", + "0x0000000000000000000000000000000000000000000000000000000000000225": "0225", + "0x0000000000000000000000000000000000000000000000000000000000000226": "0226" + }, + "address": "0xc798205cf296141b777279868c635cf7bb515510", + "key": "0xdf474a26cbbb578c227ea61f57b81c27ce1e9d917d32a818f4e13a84591d8af2" + }, + "0xC7B99a164Efd027a93f147376Cc7DA7C67c6bbE0": { + "balance": "1000000000000000000000000200000000009", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "key": "0x8e11480987056c309d7064ebbd887f086d815353cdbaadb796891ed25f8dcf61" + }, + "0xCaE62C8E777eA0541A55B5Af15D59eECc71cE2ac": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xb18b045e361de70704dd8b0b76210e158bcf3cb17d01d32af071fdcc6f599b95", + "code": "0xf3261457f4fd0b7c00a1511877ab27b74183ac470be8db3a7ecdc64335f6f979dd2cb9885bc4a6b7d63bce617b9a4981fb4dfc6d1957489e794070560e4e930da145dac0d5853e9e18103395cfe86de32038064edbc272862280672e49bb93357b2f1db823434eb2c3257b921622f3b73c33ed78ab6344072b7d0d89829cce01e9e3d0af61c0577149d8fdf930c9e5cbb4ff7a5481b41229c7576f61f8f2ec08c6d78b22ca7ce0ed62fd1a46e03059e749d11a0ae0882853a9c6848594bb8508c612924e9d43860c38e1b79881d3d6b2fbf66e000a9d5170db882dc3f048dd6fbb59cc25b8b8d576949767a0b63e0aa0df84d25f2821a2ea8cbdfce970777b41", + "address": "0xcae62c8e777ea0541a55b5af15d59eecc71ce2ac", + "key": "0x3f6c9bea2a94e47b2694dda7576291a475e5e70977c0a71fedf363ea2cb652e9" + }, + "0xD1FFA9fF507492844818d0d91Bf35B93a7c95E4a": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xde7b1b0e50a7d7bfc2941895dea4aa00ef5020617339bf6862b65a44fb9e3e7d", + "code": "0x5ee7521a899a1bbd499ad817e1d673d594eb84ef5130440e43abd9ab1110486735b47ec3f55b71d6589203440915d2ef7280ff31d26085f81a04730b0655d961b2c0f7f2035a27e69c9e7dbc21354039da07b465d84ab3b1eba23eace489d13e7bfa808024a5334b0a1e191d8e95f6724ea40d1a03d1286b6934e670f8c6924b6a1b1ef94f6deb640ab38caedbf44252d256d60e00dbeb774c18a4a570e050fc0e4439da0f5e13593fa65268ba122e984104c23e93195f67ae3ccd394337e11d8725003c645a213b2583d67f9bdc3f05a16873ac6edf6234e388904a6f2b0dde4a6beb59a7cd08dcb4592438190f4a5c641daeac5ab9b96006d018a6e01e04ee", + "address": "0xd1ffa9ff507492844818d0d91bf35b93a7c95e4a", + "key": "0x4885a02db06138818497f56f6ef6f9611b1fe93d81f6d4a03dd83ee80a119ed6" + }, + "0xD592d2BCa2E78Bf7f3Ef341A2f6B8F0BF96343c9": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xd592d2bca2e78bf7f3ef341a2f6b8f0bf96343c9", + "key": "0x07891c3045a0c538a419a3c93f75a612f61a0d8be29aa478f990555ede27620d" + }, + "0xD7678E32ceAc078dc261D151aeC9b898159E913b": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xb4930a125627ac818615f09e52738e8bd19f268bdfddc69da23bd7b4fb356d06", + "code": "0xf078381c098d7f56dca8447e60d28e39dabf16c4904f8d5980026cc19a6afa0bc7c87573e3262dc947d048fbb918b7a15536786731da04effd045b5a3482a16f9440d37190611706c0e4201f46f8693282307e769f69845197a9beef60e5f566af4553fd35816720fe0f3fda7c1e71383dbf00831aabef83faf4be5b7112ed159eae233279988a43ad0a99b0d0230f245ba8453a0accc9af91185b1ecd1a7116f29da813564266cccd5dc5a3c1b701abfaf5ac71f45fde4e18fcf60d7c41d5846ad5557a6f35d40337b6890f3b6f15a1e64adcfbc425b4bcb28ee67b2b920da212520cb5bf4d324fac63d20e3230854765e952834555d0e102dd85ff0e57cade", + "address": "0xd7678e32ceac078dc261d151aec9b898159e913b", + "key": "0x9fb96451e98ab7803d6bff5c91f131133a99711978a9a2b3bd5af43252869882" + }, + "0xD9c364A44CEF789017B5bAD4F17e197D079c76aE": { + "balance": "0", + "nonce": 1, + "root": "0xd91acf305934a60c960a93fb00f927ec79308b8a919d2449faede722c2324cb3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000153": "0153", + "0x0000000000000000000000000000000000000000000000000000000000000154": "0154", + "0x0000000000000000000000000000000000000000000000000000000000000155": "0155" + }, + "address": "0xd9c364a44cef789017b5bad4f17e197d079c76ae", + "key": "0x51c07e7aa8b36d37d8094e2bb6a81f3f8f275acdf7620f893f933a9ffb7d6377" + }, + "0xE3A8b633a20D3Bc82CFD6d6cB315dD9784b3EA41": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x6a95d1532ea10e01c45c3852bd1dc75cde391adb68e4c49179dcf4594b7750bc", + "code": "0x252b89bf90b319923f6559e774e32f611a27a81d0f532f5b807532a98a9da5dff6346df2f890680af66f02884a3534996812dc8641475d151d43319ca32915acdfb3923e257006c00eb45b8fd73a3468e2d76d01d6f08434ec78404b1eb39275fd55fc2e9ef63e16e696580fa41a16b1359de042d9d894f9176ffec1c194a98623daade2992486e297dc206712cf2981a43df9a70de4d5f3b59dea984dc1135be8aa0c96d7827d7f81d506691cca1eef157279cd2b906ec7a6ae523f2e4aacf9fd0f0a9f6943052f202072825110d2e71fe4569f7a80872d4befddcab68faab64571c490b675f7c0c08a6af51968eed01a2a796f37061d16506458d1631c4af8", + "address": "0xe3a8b633a20d3bc82cfd6d6cb315dd9784b3ea41", + "key": "0xa3f8196fd37c836d7a5bfcdd9807147e8d74957f5125bed4c6fe6da4e348dcad" + }, + "0xE4f62e66DfCeD3f18080ed3080b276edaEF0E1C6": { + "balance": "0", + "nonce": 1, + "root": "0xfe629ea231aa00b09ac842cd51a4c63ced36a60cbbc2fd49c2891b67b38cfe9f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000061": "61", + "0x0000000000000000000000000000000000000000000000000000000000000062": "62", + "0x0000000000000000000000000000000000000000000000000000000000000063": "63" + }, + "address": "0xe4f62e66dfced3f18080ed3080b276edaef0e1c6", + "key": "0x4dee48db6b3b08cbac1e06a9a3ad1d0100541ec9eafa2a1fc82e5d47ab763aa4" + }, + "0xE7d13f7Aa2A838D24c59b40186a0aCa1e21CffCC": { + "balance": "1000000000000000000000000300000000005", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "key": "0xec3e92967d10ac66eff64a5697258b8acf87e661962b2938a0edcd78788f360d" + }, + "0xE8ab29bE268a4a4447e4f7bF0B5DA4AA4734AC1A": { + "balance": "0", + "nonce": 1, + "root": "0x9a976e308ba6adecbca552a318a503b3ad99fbe0ba03c079bfb6244d3cd0e86e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000022f": "022f", + "0x0000000000000000000000000000000000000000000000000000000000000230": "0230", + "0x0000000000000000000000000000000000000000000000000000000000000231": "0231" + }, + "address": "0xe8ab29be268a4a4447e4f7bf0b5da4aa4734ac1a", + "key": "0x2f3f84580f03d8a347fdaafc9b6f755f314030839efe0886fc804c610cb37933" + }, + "0xE98D9997c3d04ed1538a05615C00A93cdbBD3b53": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x2d5da89dbc1dd4a72b762b0f02be2b019621e4eff4ae05cde7765f59fa027625", + "code": "0x59177b3ac362dfed2f5f2a6bdf40ad57c106ed436858a6006d6ca83c5f346676a29a965f7460be4b61c6850bfc18ee18bf45c79a5c6dbb1c0c895fc557ef5cb4cb1732e48e4275b8843ef6d2c0a17588ad394b156ef59f4f2f771abe2307b3f752b9e2a36c35aa2b44ce6c4b89f2a7aaf2f3fa2a112b48803d5b977a94749881440ceb88230bf2fc4edf65d2bb9a74d227c8a62abedec268e550d793dd5334e8ccd6890ea7087c2546c4c3d5264f04f94346973886db02cfa8794a31b759885d34861d98f8dcef653538193bb0f515950c5a7c054bd7a960894da70594bb33c5e71ff1efb43d93f85854e953bee84c0621efb6a50c7756c8f9231166a4df67f7", + "address": "0xe98d9997c3d04ed1538a05615c00a93cdbbd3b53", + "key": "0xd806336c4f3fbb4aac21b0058a7a4fbe4470832dd35ea3d5ee8a52a3fa870fe0" + }, + "0xE9B17e54DBa3344a23160Cb2b64F88024648c53E": { + "balance": "0", + "nonce": 1, + "root": "0xb1d2896c079496c392d81871dc5e4a7e8a1c80c3e19d90b9ce2a74982e45ee5c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000174": "0174", + "0x0000000000000000000000000000000000000000000000000000000000000175": "0175", + "0x0000000000000000000000000000000000000000000000000000000000000176": "0176" + }, + "address": "0xe9b17e54dba3344a23160cb2b64f88024648c53e", + "key": "0xb4f179efc346197df9c3a1cb3e95ea743ddde97c27b31ad472d352dba09ee1f5" + }, + "0xF0A279D2276DE583Ebcd7F69a6532f13349Ad656": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xfc7ac100da7ec6df53d378321dc20b34177cca47f5ce7d6f640a7d377dba751b", + "code": "0xbed52935ceac91f9e56488c9c56a4ef4668325f0a4b3c9d4f59d0ca1f55873d4bbe9cd6f2ec3bfaf65e3dedea335e6580be1b90f02a28ba4334c14331d83537d461fa69d479e93c39ece03263cf3188143876d720ddc370708f917dd5a84899be033ac067c55ffa15276c1e7e852433fbe5b06aff21c9e12052d01007cfb4f63bbdfb9fbd5a250e303de7582d54b86c5073c3b3f8b2a52103e1be92f6afa665fda42636e2a248443cf028fedd444727b22ed1346bb793d0c53ce70ab162113cab28fc5200528140e039cbf5bb18ca2a92163357f6f90819a1a81c4fb0b7930fdda11920abf8ace283badaa3b53848cae08e30f173a07c3429625c5529361fb05", + "address": "0xf0a279d2276de583ebcd7f69a6532f13349ad656", + "key": "0x11eb0304c1baa92e67239f6947cb93e485a7db05e2b477e1167a8960458fa8cc" + }, + "0xF2C93BECbB050bA17dc9a2811A4d0DB97d0B1295": { + "balance": "0", + "nonce": 1, + "root": "0x2fd7b839f5613c91ae241ba33e03e781c11b821250bae1aa3017b2fe75bac3fa", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000203": "0203", + "0x0000000000000000000000000000000000000000000000000000000000000204": "0204", + "0x0000000000000000000000000000000000000000000000000000000000000205": "0205" + }, + "address": "0xf2c93becbb050ba17dc9a2811a4d0db97d0b1295", + "key": "0xe3c90ccc988cd8abee77974903c16cf47988812f0f862dac3a11f06ae963d388" + }, + "0xF687d9CA2aCAA4DEe5f4BA6C1eF0c0B89205B92E": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xe5e61fa1465f3b1eb6e74632116b3766e24c61087fef3dc7af43dbe4fb3189b0", + "code": "0x4115ab6dee63da78950ac0a3ed6bebb017d9a5fc2e00608c82a3571125cfc38f12ee62be373328a28b316ed050591a9eac96ceb924246f86a1c0bc4f37d75b72a6bae38b5fd06c5ea81391e321be657722acd828b3352148b27a1ee3ea751aff6afc6c4beef433610998248245abb3600b2c2559a49a1cc2f3bf575b0d7b342613010f2857e6ee9389ef1e3b0d0d0b88a9cfb6ae9c58a9247e15c7e9334961e1888ab0db3616b32b3d0f09c88e675f52fafb0e7bbc38c0163460269ae83e6703d5e2e4e2abf6a871a9749909d2e6d5bb201405296004cedafbe5629981c69e1bfdc92b9060d7f6c40c01ce432c46d932dfb344659169a47bb9778e9ac38134ea", + "address": "0xf687d9ca2acaa4dee5f4ba6c1ef0c0b89205b92e", + "key": "0xddfb897c68a043e82b8d4d7751e6dd639066efea80cd177409faa10ae576676e" + }, + "0xF75b18c1a92C6C6659b3211D45Ee8E1BEFBD3a6C": { + "balance": "0", + "nonce": 1, + "root": "0x818eaf5adb56c6728889ba66b6980cd66b41199f0007cdd905ae739405e3c630", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000077": "77", + "0x0000000000000000000000000000000000000000000000000000000000000078": "78", + "0x0000000000000000000000000000000000000000000000000000000000000079": "79" + }, + "address": "0xf75b18c1a92c6c6659b3211d45ee8e1befbd3a6c", + "key": "0x6da4870a3dd2d5ee0dd0f235e6c07caaeea1e6fecf182b68a908462d1dae3edf" + }, + "0xF89374e8646084BE4525B8Da2E64aF316b570458": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xdc443b3e953eaa80fc5b5ae5ed28a3771bb30b13eed51dcc72ca2b3ee6f12441", + "code": "0x1cb7ce0668e72b96f704af9e1445a9dc6f6ac599eec355bfcfe4d3befbb001be40165e7164257b249280bf839a50283d248062ed7b0e6d8820cb6c506bfcf7d3c0c7c7c9a2a6655862feea3cc7ff13629582293fcfe0e1094efb20897bb02a656a2b6bffaca788160f671fa62d34758b717f75a90ad5a468757c50d61f33c4437f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13add1ccbf1f9f869f51cd81e6f099f905636b057f682c706fe990614b1120516928ee4750d043edce57577a49a1f0c4b389e3b8c38c27dc693bc6b7154c07280771f2e2385bc2a5be32198cd1e425186910eb1a233b2b2a22be149cee4dc72d0162", + "address": "0xf89374e8646084be4525b8da2e64af316b570458", + "key": "0x8a501498b71c00ef30dfb420ca71d286546a057bb13d56eb0e175c0e42c2f3a6" + }, + "0xa12B147dD542518f44f821a4d436066C64932b0d": { + "balance": "0", + "nonce": 1, + "root": "0x0fd8e99b1b4ab4eb8c6c2218221ae6978cc67433341ed8a1ad6185d34fa82c61", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000014": "14", + "0x0000000000000000000000000000000000000000000000000000000000000015": "15", + "0x0000000000000000000000000000000000000000000000000000000000000016": "16" + }, + "address": "0xa12b147dd542518f44f821a4d436066c64932b0d", + "key": "0xae88076d02b19c4d09cb13fca14303687417b632444f3e30fc4880c225867be3" + }, + "0xa474Ce23d592a232C3869513A64834b2e723Ccf9": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xf0477d2d7456a060329028971c32a1049d112839ad6b9a8e0d41444144926912", + "code": "0x994debe1129ece54bc3e58d0080c657e4b57b49bd13c22d7c016ed5f3a59f29b4a8f2534811696fb7ed42c0b67bc755be8c4b58555c78db94a4c7b3764768107e7be31a9c65c0ddf13f554a0804c3b81ee1c5361cd94c5b1b0d3d4b42f09361c9a5f52b0aa8b858876d6b4ca6afd4df27bc0b2c0203007b759c631d3cfff3fc13fd38f8530aa5fa5e7a7e3bbcbf778be060fcd7938f51ba61c29cfa2d7317a0ae7931a793ebad246669683fe0c2c3600ca9cee55528b0b323e7c261585a013906a6a5810011038c63a76db6bb2409835d8bbd31c9732bb760cbdfa75d621b09a5534f9be7d15052a6dc35949bed0cb4fd90ba01e43563e9b5123d82176259e2d", + "address": "0xa474ce23d592a232c3869513a64834b2e723ccf9", + "key": "0x83bdc30d3ea7e078f2d487a9110f41e0f3fe3a9f7eaf48b9b2284b23993b0d70" + }, + "0xae3b97067d3F027E8011DfCF496dcD1079dd12d5": { + "balance": "0", + "nonce": 1, + "root": "0x9ed156eb2e3d2c3ecdc5fc9e4f54a5ba305d7d1e475ebd55d1f0bf64cffe5c15", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000023a": "023a", + "0x000000000000000000000000000000000000000000000000000000000000023b": "023b", + "0x000000000000000000000000000000000000000000000000000000000000023c": "023c" + }, + "address": "0xae3b97067d3f027e8011dfcf496dcd1079dd12d5", + "key": "0xa5bc78ba16936293e296c3d3e919d76eb953b28dc00c9852ca4987ba0c82c761" + }, + "0xb787c848479278cfdB56950Cda545Cd45881722D": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x58571002dc11e8a8698ab7f378670c332e6832b49dd44a7de317c87969aaca99", + "code": "0xa46c9a5e42ee711d67cec634bfb278f07133f8b3c236b826c53d763ec9766625f1c66cd5ac352bee1084e866f7ef3ef0a14c943b098d4776ee3af92a090e1db21f3740a279cf2d77f66bcbcd8ca9363a902fba240cc78bdb7fdc53f368015d5a533822937425fd8b485f29fe6819cabe96466337e03c8bcb1508e67c7a9c0675040df0cfdbe2439420993d589140042c9218e6e20c99578d1a137f827725261d5e9d47962747e01107e18234d09097958f3f7626c12966c952111c0776febce91bc34baf0bdc39cb35028662cf837c92de8adfcc490dc213b82c0a99a2de03013191183bb78cf07513f1832ebb64acd65d49101ab3bce7606c66025fac20ea90", + "address": "0xb787c848479278cfdb56950cda545cd45881722d", + "key": "0x1098f06082dc467088ecedb143f9464ebb02f19dc10bd7491b03ba68d751ce45" + }, + "0xb917B7f3D49770D3d2F0aD2F497E5bfe0f25Dc5F": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xb917b7f3d49770d3d2f0ad2f497e5bfe0f25dc5f", + "key": "0x65e6b6521e4f1f97e80710581f42063392c9b33e0aeea4081a102a32238992ea" + }, + "0xb9B85616Fc8ED95979a5e31b8968847e7518B165": { + "balance": "0", + "nonce": 1, + "root": "0x89bde89df7f2d83344a503944bb347b847f208df837228bb2cdfd6c3228ca3df", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000011c": "011c", + "0x000000000000000000000000000000000000000000000000000000000000011d": "011d", + "0x000000000000000000000000000000000000000000000000000000000000011e": "011e" + }, + "address": "0xb9b85616fc8ed95979a5e31b8968847e7518b165", + "key": "0x6a5e43139d88da6cfba857e458ae0b5359c3fde36e362b6e5f782a90ce351f14" + }, + "0xbce2408DA01DC215E427B012d1a68546F5ffcDFB": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xbce2408da01dc215e427b012d1a68546f5ffcdfb", + "key": "0x4db0b9725504eefe9b12857cf35dca9d90d6d07bb09bdc03b7ec1974de752403" + }, + "0xc147eCDF75298b9970440371EC57161bc3B8309E": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x882d5843dd5d7da734663209498b3277b9f3847fc5cae00f2f18f8265805c347", + "code": "0xae64a54e96e21d5e6e871f7870e8711620e9d630d04b7524844b2de5b466d08aa739a51387ece9d9b8e11b8bf7e5909dc8f9657225a2c6da44cad2fed408c2dd2b68a083e1b3a60cb87c92e2ce191ad4d75579ade9934fe0d4304f1604243b84b01818f3e9f0631d183410281d3672cfa0e4d82ad4d20b2f4def7db9466081919cbbcd6da79a96e2c00832bdfed8cb53fa1ef801d1db5928e9d3c2c3cbd15933362c6fb4abf103d18f0c520f9fe75352cd942e2ab332d796e53c82787d53ca68a701929b14ac2d3f52993bf388c7bd2787e5382631ced5ceb068ae34d2902a7cee0b9e9b585169fdbe97147eee724f92c9ea9274b51e7026b85feb6d32aa4a96", + "address": "0xc147ecdf75298b9970440371ec57161bc3b8309e", + "key": "0x5bf8b42134cc2ee0654bfb8cd3f7fb4c1bf368ca51f2cd923af8eb1d7c41598e" + }, + "0xc36e899Bc3c312869B146c3B2B28a0814FfAbad8": { + "balance": "0", + "nonce": 1, + "root": "0xc784c4978b7142c2f59d78be0ea1f14a39ffec9c512f9bbe75703ef7590970cc", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001e2": "01e2", + "0x00000000000000000000000000000000000000000000000000000000000001e3": "01e3", + "0x00000000000000000000000000000000000000000000000000000000000001e4": "01e4" + }, + "address": "0xc36e899bc3c312869b146c3b2b28a0814ffabad8", + "key": "0x01e4f3a112f7034fdcb78c6ab534de5391d2c0c3772d641f69d1465e7a0bfa1f" + }, + "0xc48c3d6FA1afa2c203EBCe7d58f46CEE0c74AE2A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xc48c3d6fa1afa2c203ebce7d58f46cee0c74ae2a", + "key": "0xadc8fbbe07e1a1609c3b54342d036f018af4d93ae59dd4425f6244f5949cedc2" + }, + "0xc7a0a19EA8Fc63cC6021Af2E11AC0584D75C97B7": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xc7a0a19ea8fc63cc6021af2e11ac0584d75c97b7", + "key": "0x86d03d0f6bed220d046a4712ec4f451583b276df1aed33f96495d22569dc3485" + }, + "0xc9823569b2E62F92B406e70522aDEEe24E23a827": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x84605622999eb7f957084085b52f1c7b7409059ca2e8b3560e3d02be973114d3", + "code": "0x538474d0f64483776ed44915f71ae7f0bb8a622d35cec6d7f58631c690c1e43e334c7786e3bf81676e3a0d3736526c15df34c509bc9c3d422872d2fcec03bb4c0ee5eb80d8d139aa8aaeff0e93c5d082f8a95ab74e45ba383f83aa303ed7b715851c0a6dcea6d9c0b20e1d693e72bc7e402b6eed6a9bc52d715e1495b07edd2e4ecaefe56730f3d4c9899e811fe6b6866094124a9e94dd77caa81d8bd4d8c1ad53e6bfe60438140020269ed9fe5e9e4479f1629f851a14a4608433a904faf5c8171873f192ebc553c77ac3d91f610d9b3b5d968c33b2894a4af1d74d93346ae36c531230b5ec6213920791b4b9121f927f751c23cec4b3ac966fd3d1d6d970fb", + "address": "0xc9823569b2e62f92b406e70522adeee24e23a827", + "key": "0x683b6c03cc32afe5db8cb96050f711fdaff8f8ff44c7587a9a848f921d02815e" + }, + "0xcC29d71a7dE378E9Cc11541B48a5F4E79157673A": { + "balance": "0", + "nonce": 1, + "root": "0xf82bf2c4bf4eabb1dc579d5ba1f80bceb690e6d41bec710f78acffe87543f186", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001a0": "01a0", + "0x00000000000000000000000000000000000000000000000000000000000001a1": "01a1", + "0x00000000000000000000000000000000000000000000000000000000000001a2": "01a2" + }, + "address": "0xcc29d71a7de378e9cc11541b48a5f4e79157673a", + "key": "0xb545359603802ec567ddb83b02a16e420860ab3daea52f2530a94b02d9129bba" + }, + "0xcF26B3672851128B3d41e65C7c8563CA54837Ae1": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x8d694036b187e12b604aeaafd52aa967e7f7d184df20fcb1c8c234eea6631a69", + "code": "0xa3782a2fe6ea312a811ac4c42fe7783faf92d4cb89cfcb3782e3fa260888489023903e96f7ccc3c321ee90eaffc37f489d842d55a6c8ffa1ddb161af2d3fb72fda50f95f737dd96a2ff448425767f58b49e6bc691060be2dd7aee3b8374d3aa362d3caefc27072d8a29831635245f4b528ba9b3356b77b4a38e93725f0197aa02fb2ea1f5bff21afae24d3f3e60076cb2c3b5b5ab20a71202cf9d49fa1606d4a701b5d687eb62af0eb18eb02d71426f2205884f5e7acc1bcd7b47c1b498ea8c95ec353220bc9ea0f081d44c7fbe1f97d75f2b74a0c416d06ce7cc6ebc553754a26382593f450ee34359d1d633b07dd27a5a9c2d9d495db1f1762692243a2641d", + "address": "0xcf26b3672851128b3d41e65c7c8563ca54837ae1", + "key": "0xdaceea0041b683170f8d205a0ccd2c5e01ebe604b5731f89bb6c8b8a0f9ea776" + }, + "0xd15ec528baFC44EbbA397415Ca5340a5C2B4f417": { + "balance": "0", + "nonce": 1, + "root": "0xef3164f6238d01061c0559193be70618658b742eec056b27996308eef51b95a6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001ed": "01ed", + "0x00000000000000000000000000000000000000000000000000000000000001ee": "01ee", + "0x00000000000000000000000000000000000000000000000000000000000001ef": "01ef" + }, + "address": "0xd15ec528bafc44ebba397415ca5340a5c2b4f417", + "key": "0xcde608490277d1ddfe34418396fab0c8a7bd0bf5a1bbe962ae0f5f13453c6213" + }, + "0xd24EF00a6c137ecA8067377de36F76836B8c7EeE": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xd24ef00a6c137eca8067377de36f76836b8c7eee", + "key": "0xa3b7b9153d8f3262ef97bbfceab8bf6e2ee4e2a8d35a6042f6a5cee83415c53a" + }, + "0xd803681E487E6AC18053aFc5a6cD813c86Ec3E4D": { + "balance": "1000000000000000000000000200000000009", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "key": "0xe5302e42ca6111d3515cbbb2225265077da41d997f069a6c492fa3fcb0fdf284" + }, + "0xdA3802907F850f9b6672fc38512ae47A5778d8F9": { + "balance": "0", + "nonce": 1, + "root": "0x08495c2510c9eb2578041ec50625989b745ca0b18742fb33e6d5ee5f08e4c6f4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000008d": "8d", + "0x000000000000000000000000000000000000000000000000000000000000008e": "8e", + "0x000000000000000000000000000000000000000000000000000000000000008f": "8f" + }, + "address": "0xda3802907f850f9b6672fc38512ae47a5778d8f9", + "key": "0x1d136ad5e4cbb5095ef8259a310816109b06612ac83926e67e27142ce2bc76de" + }, + "0xdC60D4434411B2608150f68c4c1b818B6208AcC2": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xdc60d4434411b2608150f68c4c1b818b6208acc2", + "key": "0x8510660ad5e3d35a30d4fb7c2615c040f9f698faae2ac48022e366deaeecbe77" + }, + "0xdd579A11208B91980dD1cAAeD24bF04C432Cc863": { + "balance": "0", + "nonce": 1, + "root": "0xa203e4c08093be9ee80f3b95c741037314e0e38cb8fa234683fa40d39ad23e3f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000020e": "020e", + "0x000000000000000000000000000000000000000000000000000000000000020f": "020f", + "0x0000000000000000000000000000000000000000000000000000000000000210": "0210" + }, + "address": "0xdd579a11208b91980dd1caaed24bf04c432cc863", + "key": "0xe34709ccbef05a4a6e01c3e0201fd1f14abe53c2eeae29cd185c78a25936d805" + }, + "0xe57ef4A8da86f1ccd38ce12e3FAbe819fAa0a95B": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe57ef4a8da86f1ccd38ce12e3fabe819faa0a95b", + "key": "0xe69a86b4c8c8a9836fdd2617fbce1d746e4bd63be4f1a1d5cc5ba1f0f409e780" + }, + "0xe6dDdBFFDE545e58030d4B8ca9e00cFb68975B5D": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe6dddbffde545e58030d4b8ca9e00cfb68975b5d", + "key": "0xa0f5dc2d18608f8e522ffffd86828e3d792b36d924d5505c614383ddff9be2eb" + }, + "0xedA8645bA6948855E3B3cD596bbB07596d59c603": { + "balance": "1000000000000000000000000600000000000", + "nonce": 1, + "root": "0xdd43fc82ac338ab2ee3c6203da0c8f16e893e6c37720b37ce8676f0e7c68bb05", + "codeHash": "0xa5bafe820ca694bfc931cc4609c353b2311ac0709de1742204fbe051bfe9388a", + "code": "0xef01004dc5e971f8b11ace4f21d40b0ede74a07940f356", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "696e766f6b656400000000000000000000000000000000000000000000000000" + }, + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "key": "0xabd8afe9fbf5eaa36c506d7c8a2d48a35d013472f8182816be9c833be35e50da" + }, + "0xf34dA0E707b69512ca5e87e29021E6E6dC81C5Dc": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xf34da0e707b69512ca5e87e29021e6e6dc81c5dc", + "key": "0x6030160e6fde23dc02e472d8865d4601485d1a935bf320bda5f7587d194c6be3" + }, + "0xf41f36C9D43AD24Ee6De564215C047b66db1d391": { + "balance": "0", + "nonce": 1, + "root": "0x5a82aff126ffebff76002b1e4de03c40ba494b81cb3fbc528f23e4be35a9afe6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000004b": "4b", + "0x000000000000000000000000000000000000000000000000000000000000004c": "4c", + "0x000000000000000000000000000000000000000000000000000000000000004d": "4d" + }, + "address": "0xf41f36c9d43ad24ee6de564215c047b66db1d391", + "key": "0xfffae3923d4ffa22ca4150e83647a3f7a442233f4f4f6d742028c3f62016da7d" + }, + "0xf60c9dEeF62A32528b0b4652093b8B260a208827": { + "balance": "0", + "nonce": 1, + "root": "0xb7ba1d0a5343f51a519e9545efa1a5368a6d3c59a7e4463e3744c30ff35bea20", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000111": "0111", + "0x0000000000000000000000000000000000000000000000000000000000000112": "0112", + "0x0000000000000000000000000000000000000000000000000000000000000113": "0113" + }, + "address": "0xf60c9deef62a32528b0b4652093b8b260a208827", + "key": "0xd0fb2f31b364fd56c16154fe421ea6f768a5fb87c7f0e20b4d689b6816c4d8d7" + }, + "0xf61ac2A10B7981a12822e3E48671EbD969bCe9C2": { + "balance": "0", + "nonce": 1, + "root": "0x15590989a348b65eb16aa3f8d2584fb877e412a1385225f36c247b6399764c90", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000da": "da", + "0x00000000000000000000000000000000000000000000000000000000000000db": "db", + "0x00000000000000000000000000000000000000000000000000000000000000dc": "dc" + }, + "address": "0xf61ac2a10b7981a12822e3e48671ebd969bce9c2", + "key": "0xbfe5dee42bddd2860a8ebbcdd09f9c52a588ba38659cf5e74b07d20f396e04d4" + }, + "0xf8C11c750ab2B0276A272F875857cf535aBa2Fd7": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x909e99eac3d2f939aa3734152690a23ff48fe70e0bed64695466cd46b583c4e2", + "code": "0x5a2ec50db2ca06446b795168e7be7507522174c31903d424779360a3b6f0ff978162d6cc32dc75b44adf81a1e9dc0ac7f7be79fef38219137739c8af5157a313b64fbcd928f024c431e809fae07258ca41432c098236d3d43c3c8e52253217b6eca4505ea32ae1a4ee824c5255e38a00422c023b789b59b6ce92c6731bc698919de437229a9a5b71b813b2ca574feb648a19bad8f1978fc540dba421c3042f6c68eb1985abb1bca8cc77a9e3c4ceb1ed4b4c857374b7d6d3773b5c340a823c929ed76419063e05b6bd3c4b2b3da7ac5fb72330fe54743c0f00a9c1ac8afb46aed84e31a70eda71f01446d3305fdb4ca4341833b4481c4ad865d2e6179edbb744", + "address": "0xf8c11c750ab2b0276a272f875857cf535aba2fd7", + "key": "0x603aef023d668fbda50a2b26e37969e2ee93b68d0e6f8abbdf7b6f6183a9c09d" + }, + "0xf935652dc257EF89c33B2488BB18E2d068Bd35f6": { + "balance": "0", + "nonce": 1, + "root": "0x6d9d3f86b1f8f8e94248f307137ef85b10a1d57a5ac60aaf227e8cbfa2224db0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000127": "0127", + "0x0000000000000000000000000000000000000000000000000000000000000128": "0128", + "0x0000000000000000000000000000000000000000000000000000000000000129": "0129" + }, + "address": "0xf935652dc257ef89c33b2488bb18e2d068bd35f6", + "key": "0x20c6bc4ddb42f343ae3b98e9efeb1dbb7290009b8975fbeb29125e771aad2414" + } + } +} \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/newpayload.json b/cmd/devp2p/internal/ethtest/testdata/newpayload.json new file mode 100644 index 000000000000..b5327ae81629 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/newpayload.json @@ -0,0 +1,19044 @@ +[ + { + "jsonrpc": "2.0", + "id": "np0", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdc43f460541a253c0f64b6943ef83fa3bd601699a255622f088d46f7fde359fc", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x0", + "extraData": "0x68697665636861696e", + "baseFeePerGas": "0x3b9aca00", + "blockHash": "0xbd6a252af394d80904c5993b859574bd4669642cea00a116970ec7887db67533", + "transactions": [], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np1", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0xbd6a252af394d80904c5993b859574bd4669642cea00a116970ec7887db67533", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23e00fd68672e8e166a481663b147dad44c25bd30f8605d2f3c7a070881fddd", + "receiptsRoot": "0x97a526b2e32116d208b71a92e95e23a6734f413a15a057d122b5983acf25f8bc", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xf777", + "timestamp": "0xa", + "extraData": "0x", + "baseFeePerGas": "0x342770c0", + "blockHash": "0x728bf4239628d65246678bb48fbf2548facfdbe47486e28e87ca1b77a86574e8", + "transactions": [ + "0xf8938084342770c1830131348080b83c600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f38718e5bb3abd109fa04bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd8390279f0a29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b" + ], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np2", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0x728bf4239628d65246678bb48fbf2548facfdbe47486e28e87ca1b77a86574e8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x824f43a809d85b58ea76a4b1e0b378ac704e341024a50281deefee50c7ba6bff", + "receiptsRoot": "0xe078709b25bc275a65cecf4c9c5e192aa3c2cbd051b6a35279c391a3ee4d597c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x115c7", + "timestamp": "0x14", + "extraData": "0x", + "baseFeePerGas": "0x2da3371a", + "blockHash": "0xd75c28fbfeb77a45bdc1ed85b91cf830153e50fbb1036825f2ab229f28f3ebc3", + "transactions": [ + "0xf8b801842da3371b83014f7e8080b860600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef38718e5bb3abd10a0a0f4897823b552e75cd776e2271125e4b41ede67fac987809d31ed26e67204f7b6a01266df0c10c05ebae5cdc9868300926a503086397ac76a214c2843f63bb08730" + ], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np3", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0xd75c28fbfeb77a45bdc1ed85b91cf830153e50fbb1036825f2ab229f28f3ebc3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6081c4f8052b95cb18ad02ea085a642125f9d5a9221cd75eb6056771cf008620", + "receiptsRoot": "0x6b31afc4d4cc15d8a534d4ffd4b09d1833513affcf76811fdfa76719b2a468e5", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x14823", + "timestamp": "0x1e", + "extraData": "0x", + "baseFeePerGas": "0x27ef8174", + "blockHash": "0x0f51f7687109662f4fc576d9db5e25cec453d9c7e34b766301028adc6d3ddc45", + "transactions": [ + "0xf8f8028427ef8175830181ce8080b8a0600d380380600d6000396000f36000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd8718e5bb3abd10a0a0c5cbfef60cb4e80e7c1e67d3a7efce942c2c9ab8ef4b45d684725b7f6cb06192a01387d0e3b29b6c7eefc31dc3b07ca2ccb27bcbd1e4eb6c8c660573c1fcf9cb4e" + ], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np4", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0x0f51f7687109662f4fc576d9db5e25cec453d9c7e34b766301028adc6d3ddc45", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x142ebbf7309e33533bb3fb5e2294f37c78469eb08a1488bb9de24ce5d914db6f", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x28", + "extraData": "0x", + "baseFeePerGas": "0x22f2487c", + "blockHash": "0x36f99b2e62608f2ea5567d69ded0f20f485e46a4fee846d8aaf1b5c4f0cdc2f6", + "transactions": [ + "0xf885038422f2487d8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0c3620843ed1efb2564e9752094ba5d1e11801e881d4548cee10a44a7b2db7dcfa068bab5711937b0b6cf883318d78729a993c5cf1cba522778c9f45ef00697e1dc" + ], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np5", + "method": "engine_newPayloadV2", + "params": [ + { + "parentHash": "0x36f99b2e62608f2ea5567d69ded0f20f485e46a4fee846d8aaf1b5c4f0cdc2f6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x59e2de990d89e2f2b3eba24141b807554f7dbef4cf0fc1e8bd98072d6d7d235c", + "receiptsRoot": "0x399a62e49d637d071f11c70ab4fd9aca6de920b3fddb2b1c9739e107d60d683f", + "logsBloom": "0x00000000000000000000000000000000000000000008000000000000040420000000008000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000080000010000000000000000800000002000000000000000000000000000000000000000000000000004000080000000000000400000000000000000000000000000000000000000000000040000000004020000000800000000000000000000000000010000000000000010000000042000000080000006000000000000000000000000000000000000000000000200000200000000100200000000000000200000020000100000000000000080", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x32", + "extraData": "0x", + "baseFeePerGas": "0x1e94c951", + "blockHash": "0x082b9e67d24da6ba292e97c571714a810c6fa187fc70171b761b47c450f14229", + "transactions": [ + "0xf87c04841e94c95283011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a088cb362c8a80ddfd6e0492ea884a21d1af16ba5ed270c20690f564324586ff68a0706ab5efcd4295bf32eeaca07aeac18b3df84225967ea65e40007837e53cdb0b" + ], + "withdrawals": [], + "blobGasUsed": null, + "excessBlobGas": null + } + ] + }, + { + "jsonrpc": "2.0", + "id": "np6", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0x082b9e67d24da6ba292e97c571714a810c6fa187fc70171b761b47c450f14229", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1a3e48fd8aeed880df1bc87896b1a7c182e882b54579810e549443c6df2ca89", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x3c", + "extraData": "0x", + "baseFeePerGas": "0x1ac29c11", + "blockHash": "0xf23d9c0afa4431611e843a618a98181b4c5a6dba2a448c43b3e5eb057128d126", + "transactions": [ + "0xf86705841ac29c128302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0a4f2fec763d302705e1addb2d70408e971d740c06a9ebbd2d448db9cf916fb70a02d1c26bd68d9238dc291250d4544e7b603659bf9c587bf54b9977956df7e1bac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd" + ] + }, + { + "jsonrpc": "2.0", + "id": "np7", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0xf23d9c0afa4431611e843a618a98181b4c5a6dba2a448c43b3e5eb057128d126", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x19b3325ebeb449a0d98d17512c9cb8821ae076bfaa6c678721e98de125b907e6", + "receiptsRoot": "0xab3d679c59ae2bd60b09801e3dcaa843b6231d88f744e2d4fb89607f4232b7ab", + "logsBloom": "0x00000100000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xbfac", + "timestamp": "0x46", + "extraData": "0x", + "baseFeePerGas": "0x176af771", + "blockHash": "0x473e30aad90c807a9b4d16ec01b7f03296b16bbbc62824a9e7034db8d623afda", + "transactions": [ + "0x02f8d6870c72dd9d5e883e060184176af772830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7e2e8b49f93a4f1f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a03569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f01a094465f8e0098f0ff2023b5a401f6c83f951866ce96c0f496198dc8562cc5c2f1a0595084d2e72d16377a3200e2b602143939b17d80e637534ec01fba789311ba91" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e" + ] + }, + { + "jsonrpc": "2.0", + "id": "np8", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0x473e30aad90c807a9b4d16ec01b7f03296b16bbbc62824a9e7034db8d623afda", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8b926982786c38e5d363b6c0b8bcd5f190ba4309b447724334e365418e9ac423", + "receiptsRoot": "0x59df46f0e6bac1dc285d10ccd74b357af596460248be25ef75fc47c7fac1a39c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000001000000000000000000000000000000000000004000000000000200000000000000000000000200002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x50", + "extraData": "0x", + "baseFeePerGas": "0x147dd744", + "blockHash": "0xe7925f8091671141f5d8dc167b12d37a1f64242c996f6889babde63839e6963a", + "transactions": [ + "0x01f8d5870c72dd9d5e883e0784147dd745830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c92c0a3cd8b571ac5656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0881a8434f98b103a2ee48727304618ca54234f1474c44bef70c21accc4dbc0a780a0e2d1ea38dc487de618477d0e38d189765addf5fedf5190cf606fa35b0c12033ea05d26448c5b071496b2f991133b9f65928a4b2a685395b5648580a36b9a3a1688" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67" + ] + }, + { + "jsonrpc": "2.0", + "id": "np9", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0xe7925f8091671141f5d8dc167b12d37a1f64242c996f6889babde63839e6963a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x654f55922865e39ca98c5998bc2a02d0de19a8facefbb9fa34c4fac2a36e5bd8", + "receiptsRoot": "0x7427faac1fbc3e399bb731da9429aa768a3c2c054e1ec11c64625942bb2ba0c3", + "logsBloom": "0x00000000000000004000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x5a", + "extraData": "0x", + "baseFeePerGas": "0x11ee5668", + "blockHash": "0xc849ee85e61206d41e4a84b6f96eccddad3181a8f4d3fcb9c250dfc27f7247d3", + "transactions": [ + "0x03f8fc870c72dd9d5e883e08018411ee5669830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ca66c701845710c6c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a063cde520fb894276a981d2c9099bef9beb949121c1be98f3abe1b721d880899f83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0b42b328c611e0fd94d62f85deb12d2d9a504bd2760581b3cca3ba07e56403c09a05021570d8585e98b5bf49004db7d90ec09595ff87e72fd013d2af5a5b578196e" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78" + ] + }, + { + "jsonrpc": "2.0", + "id": "np10", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0xc849ee85e61206d41e4a84b6f96eccddad3181a8f4d3fcb9c250dfc27f7247d3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8237acbbfa9bd4194321f36611240dd5966509ae0a76e63b66da49385f775e90", + "receiptsRoot": "0x4478e3b373311a23ee4d53203c0bd7e990e5e81cd616e690fdc8eb2a784e5020", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000100000000001000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x64", + "extraData": "0x", + "baseFeePerGas": "0xfb0be66", + "blockHash": "0x29219089f7ea2e7ee590b815240304490baf2a2562eb8c71f71dbd2dfecb74e3", + "transactions": [ + "0xf87709840fb0be67830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c06072144caa6635a656d69748718e5bb3abd109fa07e5a5e5799539e1bdc54fe8322878120970f40ddec8ef4ae11398925a56644e6a02761c08cf79048f11752b09381e24ace2613c771eace32a2e36e75b346c94cd4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd0122166752d729620d41114ff5a94d36e5d3e01b449c23844900c023d1650a5" + ] + }, + { + "jsonrpc": "2.0", + "id": "np11", + "method": "engine_newPayloadV3", + "params": [ + { + "parentHash": "0x29219089f7ea2e7ee590b815240304490baf2a2562eb8c71f71dbd2dfecb74e3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd14b9628bb9f5857619fc3f4728d5cc49e9dcc35336a702c45c13bd033e8af62", + "receiptsRoot": "0xf3a28a355739a86089c6d4787342faa0715befb3233623f4174ccdb0db5218e5", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x56f2a58", + "timestamp": "0x6e", + "extraData": "0x", + "baseFeePerGas": "0xdbad13f", + "blockHash": "0xc2edbf6987d529aeb53f0446650f0c76fd4aac53d87319bd3906700461531e28", + "transactions": [ + "0xf86b0a840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0060a6a836a44684639ef8ed0f7204f457fd973b55da0b4d3b66c8f6ccff16707a0480a1af9cecbf3d37245c19a47397b2036f9a2524c5e2e64cd0afc971c2e9fc8", + "0xf86b0b840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0638bfda948e5c187854a8add419315a42b1df21c15987f04772953465e801375a03e928122969c694cfddeee640b1fa0e790046666b23d5146390bbeb1c009a5af", + "0xf86b0c840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a09a2edad519690563258759508a898df82bdb9f408191aa0079ae5e9756e74c40a03f563b9d9e602dd0bb668c56943bffbca60506d44438b888fcc9d5a335e8ceea", + "0xf86b0d840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a06ac6618b278b0e1318863a91fe203261f8ee5df34b195b6d91a27adc63e41409a064b5ae48ca2b67407a7aabf8931b5f921a758cfb3f6f07436bb3153b9fc28d0e", + "0xf86b0e840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a02f40a5218eda11e6f1fad4842b53456a6c278f8c718995281a81d32e8551c264a04dc53af93a9b4bd86741abe1ab17453b2a9f5767d4511722626128b58250a76f", + "0xf86b0f840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0a2e2ba0f486fc14e6d58303362a72b51806098ce9887f6b490670710858b3e9da02d9adcaff934e2b20977de9a179531502bf848c047ea37145f51fcaf7eb9c151", + "0xf86b10840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0cfc44bbbab9da16643ccecd90577f1d21743c424d62858772e342e21529fde34a02647b1fdf866593847ca3951ea05b9c44c243d14d3429ee6b508eb831ab72b19", + "0xf86b11840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a022fc38175f83ac06447f422aed377cefca994fdbddb2f6aa75166f0f6095cc50a0595171bb2aac874629a81374705277b3c250921d3346a5c0fd0b5ee47291c5e8", + "0xf86b12840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0b7a5ca9171575d69f7b1091f9730cf783f13112f8af53897a55bdc226a8a12e9a02170fcff5cac92eac7c2565ba096f9e6893f90a1ac0d89ddcc9c1ec0882a5f76", + "0xf86b13840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0f01f5c7654f62e2eefc87845eeb9e0845cc2b90823257cca63520d15bd33d95fa039ec90117e19629be1fb59a411a20ee67c28aa09ab95a86e021baa2e20b33591", + "0xf86b14840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0420cc50892e5c7eedefe4435da5699d33948fce6b9b9ca2b63c87ab629c540faa0500bc84d8acd87ecef0a195a57ad94b9eddf80aa67829e88f5ad9fbae4708a20", + "0xf86b15840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0495da220099c70ec6b9e83300eb8b3377007849a8272a160b57cbbbef2a2ab63a06ef72c9b22dc5180ffe2f6dea4cdb4afb04c02a2cd0bbd93334dc7c14c0e9b80", + "0xf86b16840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a02397f7b681c73a677f8f2585cf53a90f5e42d0f86610892ff4c93925e5db8e38a02cc58fd6423aebfc544a386e03d04c2e31609e3b820b089b950374fe9095284f", + "0xf86b17840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa06e92957c7d28f52e286210f8435fcaf911fd4acadfc57d3c965bd629b141a748a024e393928a755068e71a4b9b5e2168d1a8e084a3fb0adcdd327bb118cc57689b", + "0xf86b18840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0cfbd36c74d424cda119a40a62d08db755860b7d0eb5ba2658bcd25c005917707a02370319d26b9830067dccc6c105266b753a43a83c72986fe19333b2565b60778", + "0xf86b19840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa074ecc8edea50cafb80ba9c60935f4a666188c6be49575edeb5f3d70dd5671112a077f9fb4f34119f4d7ebd16e7755db476285c9e09c72fcfa714fb04d39eab4358", + "0xf86b1a840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0ea7684569fe50be776abe088bf8543f87d97a6dd1944ce5d717a472f198e1850a058e193c82c62c3d73337ef43805b1937ff9bb0870fd710e957b8c7a8b3f76943", + "0xf86b1b840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0b2a332d784def48e24ba963f6e702636f39cbbbb56b7882eb900296f6615cfe9a00b210739e9cbb2dcc733ddb3ca4e4558fcdfb6c32057e4a6da58edb8b1661886", + "0xf86b1c840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a03624214091f93d21521544b8cb7e93faf8737051202ff9f2800088cf127bacc4a07577042e20768cf2cd929b1de9ff069f660d65aa52178ea641aa97ca87cd5ba2", + "0xf86b1d840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a060f12ef39523644f134b4480ebbc1a7e1123535ccfdbeaf9a7f897708ca32f75a01708d66ab7ba596de1c1c3a5386d47d1cea995326e24478474c427a250d83d92", + "0xf86b1e840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0548594d45851cb1ea7ad4c5171465c938d8eed84de515aeb08744ac93ef7b808a00dd5d2dd5a4505a801a29072791e8386494963ee17010f0b2110615744e2b95f", + "0xf86b1f840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa08db61cf15a694bae68c3329019b07cd2fb8301c9ad954dd000023349d2e14b9ca06b7fc40eccc565de423d69dd3c340b502e7465d8e8bdd7163076a33ea5fe9b9b", + "0xf86b20840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa04dc70ede29948a29fcf42e50f2804cb2445395fd268506e17f0d3e6147689b8aa0750f560de32d82e6ae5ed45ede053a49285b87e6533b499daf24f86874f76a0f", + "0xf86b21840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0c0c55f52a0cbbd8b22b112c9972291b453c7bc434747f07c8dcc4b2b6f63ebb7a001867890b6e29ff99f8f2068cc6ff8bbf45f32072140310390600646b230d6c3", + "0xf86b22840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0f46f282c689c811e33116625fe6119527ca380ed9b931ee8f445b05839798c8fa0631721fe60529ba2da01a5c70313a4bd381be5c16029cac70f92b4ed61e121ff", + "0xf86b23840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0bb19159d6a7c7b5024e4f1fffe57749eafee9635ec546d41a2fccf8caf97dd6aa0215308ae67f9ab88c7280d075194c8153118358bacd62ccf40b09b1bf6497538", + "0xf86b24840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa01225dadac9cf8e2ba0bec73ef248cd363334c0d78b1f8b5e0d98a4feda6620d8a039fa9e778a792853965c54b8add7f3fe9dc8a5a634cab43adb88ca252b132e2e", + "0xf86b25840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a01b9a4ea9a82cdd0f91f76f444f3f3dc42bea7bf1d04771afbffd9b392990416ba06c8bd75045c15c291e2f7ee1e477358d173c7cc0571ba7fc1edbb54ba8f32cad", + "0xf86b26840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0767e765c1ac0bb5a344b4af14486775c2c2d1757f8ed2c686878d4eaca0afde5a00c3daafd17d6f6e4e1ad7e1755a8a9043787195177dbef7629554414c55b5fc2", + "0xf86b27840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0e1aac35219301b58a49eb944553e103497c4ede0be1a9ce4ad84b2cc94497ec6a072ca5fb40f7a9b6a8558c3e4dce03bb5e2f4cd27faad293d410634851601dfed", + "0xf86b28840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a09c452ac6ec4d2e35cc24e0839137d47be044f00d848796fc65557f56d4f67038a060fcc91de163c162afc0fa80efd6a8b63fd1a02b43c00e8394821848e2549426", + "0xf86b29840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa00f3c92f8679ac5f1801714ffa74ef211c9eedf6e14742cd00aaf98d227f85420a062195bb65c91f17f92121640326ab9091b4c434283cd24d1a8daf15c46f3725f", + "0xf86b2a840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0c641996cf5b8015c3981535bd892f14355b4f7277d3ec96e95f5b2e668be2f81a0349f1f66f2ffb544be70cb53447b6b64884b16c28b04bc961fe730516c9a7bc9", + "0xf86b2b840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0da0ce619a88bd01a7f2c6227950446be3e19c58d8b410cf8d625a6f879bf659ba04ea3a11a64f65a80a8d653375acdb6561a07e22641079c570864d48c2c8b4194", + "0xf86b2c840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0a84627a1e6d0f0ac36b6b0b13bb94e4fa5cc9747942e7b9118274af6fcfe8de6a07cb0e5b3338d042671bb55b95a381a9fc73db0cf8bdddb3935e0a17deea5614c", + "0xf86b2d840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa06639660bb59ef8cccad4033082b47af20ed3e099ffcfd8b5c27e169bebb35155a01355e2193aea0d9d861529a6b48f9e526a3a167101e6acb6d2608ab7253c9398", + "0xf86b2e840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa03b452b7cc5bc8ee1395ca8b20fe9abbd7975eda3bd68d3ae983fb2dd16d5f9bca04c27b31e1cc4a91b332f5cbeda438228ddefa0515955f1d7fe5280206b5ab437", + "0xf86b2f840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0829bcb7861ff510c72f125e85f2a84fab10d67334da46a7162fcedb2200c6d91a01f6467f80652001981294388f2c7085896a0e5e706319639df6761c790f50cb5", + "0xf86b30840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a07e6d86cb2511e2b430de99b1f693fd355f5f49a628136c4ca6ed1f013be94983a06d13d6a4a03139fa79bb928cf1d1d0ff24a94895aecd679b367e913afbe69bc2", + "0xf86b31840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0bdd7ef416f1bba4f95e3b0e8589ab843fe13f2dc17b114e0fc7052242fac7423a00f3fc584e0c614a0f9d0324ed8f50a07c4d5c605aa630fab8e3164fe7e57521d", + "0xf86b32840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa01fac2355edf58cca0b855cbb0b22020e091e6cc005cb157d59c88c48796fd41ba048175c688d69cf760cffe51a9f10af6710026ee409fa8fcac1305fdcf16740b9", + "0xf86b33840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0e612287ad2d26780c62b08c05e50b52c99175b4bb82b844c3fb4e53e59043b6fa076c380af8a1d56a436d29ec15c7a56a38ccb6780a82ad434de2926c3f4c450ae", + "0xf86b34840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a084c6a71cb2dc8ec1c043077e9d8a286206fdd7d5208d050184ede16787339e72a0086545d7e5cfefb9b80c70407e6e9cba45d42764196f885c6acc244585d9f7cb", + "0xf86b35840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a01f598656efade45f7162d391407a113f5bf3d37000a932a13c9843aad0555a8fa03500d192cd8eca8ea3d817308ddb6a06cda7656ae2b581d05f4f5682b6811719", + "0xf86b36840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0dcd026db847233875ce87cb3a76cb0642d309d7f0064dd1f9a25110c7e396b56a00a8e0c7d3b8940263eb311432402f76dc64b1a59e5fcb7259013fa8bc114833e", + "0xf86b37840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0be2242fdfe22f5a8d954c9a6f6121d1802def0ce28c0b26f802dd75190c5a209a05159d049dba56843d954cd30c01e22b92c4d5719053cf8a1b20a013295d937c5", + "0xf86b38840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0f6ac311df226aa9c056a50d52ac5a9a7eff0fd5f9e769eb4246a85e7dba851e9a07b3018eafe83b112ae5cab6613c0e232a23be802ba9a794ed5c829218179dc32", + "0xf86b39840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a06b3934dbfa85b7c568d9bd27f6fa0d5ae3706d4d398f7f9d4019d6b44a5878fca04300596f37fe39fdf6bfd46466b2eac00c563aae354842f9fc1d071c593e45a8", + "0xf86b3a840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa08f38036099c59808c4d0d119d1762b368c85263020cba34a7957ab670bdf1d57a055d5bdc38deedc0a5c2c4b1165f040120d5402043d2af2cda1fe1f5ce10fc688", + "0xf86b3b840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0a7f52c6681b6e2187f5977bb350eaa5155d4939453c28ba747fd8da231ebc316a043098bbc0372a4d377942c07f5034f655ad00f98844c03773536282bc0e872a8", + "0xf86b3c840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a02ca79809610eca633936917b5533c33e6794798a6f7db48a97749afb7953facfa026778202f95bb963c18ab61af0f1f098131fa1df41c48ffe1f12b2470a7d9795", + "0xf86b3d840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa07292476592838b3633834075318fa1f0cf49ff6436170f8faf35e3ff75a38492a0107c7eb72a64156b369d3af33aa5ebe02da8bf6fd6584932626126100ec04b08", + "0xf86b3e840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa08810c5b2fc1e46ce53d9b01576060fc0a2f58ed939b306c7a1a5709eac11ae4da051df54b5ef5bbc8eae34558f5080518beee54ddaf3770078404d619bfa2dd986", + "0xf86b3f840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd10a0a0b116d34b2e6d2d4a73d4ded705cca85dcac9e1c3a7e4ee918fe5f7edf0794b37a05ab18a2bc09fde1e6c7e39cad506861e2ea9bad2153d39b7adc2a13840b6abec", + "0xf86b40840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa0ce5601db035883ea12ea00c38e1da64adc35eedc039bdc730fffe6210962ed1fa0629ce0178fc3ce483baf32ccbc709c69eff28ad5d73a827a6b1f68c556953c0c", + "0xf86b41840dbad1408318d7a1948dcd17433742f4c0ca53122ab541d0ba67fc27ff80808718e5bb3abd109fa08d0611d940b6ffe8a94be47e1b38db5a0499175ac14ce4f5e384762de57764aba0157b81dc3d4f2f653869b2e98352e5f6247560d887805ca4cf662c5902ee0b04" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x60c606c4c44709ac87b367f42d2453744639fc5bee099a11f170de98408c8089" + ] + }, + { + "jsonrpc": "2.0", + "id": "np12", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2edbf6987d529aeb53f0446650f0c76fd4aac53d87319bd3906700461531e28", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x66fdc6cf3203f8b3e6ae74fda946e0af609adb8054fcb57bcd84a1e2e65aec91", + "receiptsRoot": "0xa073f3de39b2256f0a223d83925e01b3ba1924797d00c334d406fa19adc17631", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc", + "gasLimit": "0x11e1a300", + "gasUsed": "0x21b95", + "timestamp": "0x78", + "extraData": "0x", + "baseFeePerGas": "0xd0e81f2", + "blockHash": "0x0263c20a17979b8bab4b53b9a8b028faee4ae62a22fd604e17c72a1c5113c5ab", + "transactions": [ + "0xf87a42840d0e81f383011c328080a3600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff38718e5bb3abd10a0a0b45c37f931427032a0c03102b40207dc61a86ffe4b441817b93de10cbe878805a06d80157ebcdd81ed19c7cbf0ab4867b9454c55acbeb73fc274ea03b028f35031", + "0x04f8d2870c72dd9d5e883e4301840d0e81f382b3b09400000000000000000000000000000000000000008080c0f863f861870c72dd9d5e883e944dc5e971f8b11ace4f21d40b0ede74a07940f3568080a0b1374c6ae2e6a067776f1cf11b547c3f0d6658b92e131c31d50d19b0468506fea078843e0f436d58049f084c8057701c490bd8b3e6cd7dc018c5d5ef26c4f8fed380a00781a3a7695968cd136e3c91bd6c368021855323fd121a565d394b3e6b5c6522a04421609cf1f129c97c305cdf6395064d9bece86d609e5fce621e4b69c1f58d88", + "0xf87244840d0e81f38301117094eda8645ba6948855e3b3cd596bbb07596d59c6038087696e766f6b65648718e5bb3abd109fa0eed30d4827a6094bfbd36d418b62422ced674f50d9e6d53c27499ef79af232d6a044c03f449fda39275856086d2fdc5d577f4d3d28ed6a44b864dd0daae42e57f7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6ee04e1c27edad89a8e5a2253e4d9cca06e4f57d063ed4fe7cc1c478bb57eeca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np13", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0263c20a17979b8bab4b53b9a8b028faee4ae62a22fd604e17c72a1c5113c5ab", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8899c6e3a9ed9597ff128c704dd93e40c42d1d6c22cc13b8c306576979996064", + "receiptsRoot": "0xe4c268cbbfa69cbaf9df3ba67fbc172a06bcbc45b5328a21232249c3fa7cd65d", + "logsBloom": "0x00000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd", + "gasLimit": "0x11e1a300", + "gasUsed": "0x21259", + "timestamp": "0x82", + "extraData": "0x", + "baseFeePerGas": "0xb6d1434", + "blockHash": "0x96767c27f1be95f86f185bdc4f2ad2b9d0cf8fe0179912270b9f09a56dd885db", + "transactions": [ + "0x02f8ab870c72dd9d5e883e4502840b6d1435830249f09400000961ef480eb55e80d19ad83579a64c007002843b9aca00b838b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80c080a064c7e81464d6887c191d7fb7a79085ecc793aaa58b0412c3e14955e58ddf34d6a01a785503cd7104aae3e8c6a71c5bb38c99a9f6b1098a0a95ff2cb9a60f7d5793" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x36616354a17658eb3c3e8e5adda6253660e3744cb8b213006f04302b723749a8", + [ + "AXQ17TCotK6wh3zvDG6M/+g064ZfuRfP3A0lty1Vz5TbMo4WKbf0/eLDDNrPhztmRBb3agx/fMUMn3Kjy4S+iBRM3pElgA0AAAAAAAA=" + ] + ] + }, + { + "jsonrpc": "2.0", + "id": "np14", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x96767c27f1be95f86f185bdc4f2ad2b9d0cf8fe0179912270b9f09a56dd885db", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x96887a3713f1535d1e6177897815a84ef67458961637bc5765d4da7c2fdfa7dd", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x8c", + "extraData": "0x", + "baseFeePerGas": "0x9ffc667", + "blockHash": "0x998edaa40eab431c0cb0907adfbbc45bd0559758eda2cc11ac1d0142783db4f7", + "transactions": [ + "0x02f86d870c72dd9d5e883e46018409ffc6688252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c080a06c83d9175fbe6a4b8efdcf0d342435b8c47bb34c317cd6ec57ced5c02defdcc6a054ad6cd4d8d639ee951ea7395355c67c9cec481ac9f2b7d1120dc426cd8dc2e4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc13802d4378dcb9c616f0c60ea0edd90e6c2dacf61f39ca06add0eaa67473b94", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np15", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x998edaa40eab431c0cb0907adfbbc45bd0559758eda2cc11ac1d0142783db4f7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9639d7f2d0b564d1153f42ef9b400f12647c1374af7ecc694f1c0ac8ba6b92a7", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x96", + "extraData": "0x", + "baseFeePerGas": "0x8bfd912", + "blockHash": "0x32c4b00fa9800092d28ee17d5a2941a100ed6ac3ec1514b774890b9b226ffd43", + "transactions": [ + "0x01f86c870c72dd9d5e883e478408bfd913825208940c2c51a0990aee1d73c1228de1586883415575080180c001a07f16edf66b60ecf1cefead739d8a2f6ece3e8dd063c392257221e3105d3733bda01503e22a37408297f890193f4600eb6f3b2dfc77aea493a25791bdbab5cae817" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8b345497936c51d077f414534be3f70472e4df101dee8820eaaff91a6624557b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np16", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x32c4b00fa9800092d28ee17d5a2941a100ed6ac3ec1514b774890b9b226ffd43", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc9528c5d71c325b0172dcffdbf9d3f8047967ce3f159447b613584e7fef0736f", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa0", + "extraData": "0x", + "baseFeePerGas": "0x7a7e7f9", + "blockHash": "0x827cbc8dc6bd4a545993d61ce2833f7baa3ffafccf0c43da845780b2c60c4f0a", + "transactions": [ + "0xf86a488407a7e7fa825208945f552da00dfb4d3749d9e62dcee3c918855a86a001808718e5bb3abd109fa0bddd0dad61ac2ebf00459eb8ab9b1d2e1a0f0a11cb97e579709fdc60f63279d8a03c7bc06147ac3a2e11f37394ee5203c236a8388db7fb76c92f99f2722af9b558" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe958485d4b3e47b38014cc4eaeb75f13228072e7b362a56fc3ffe10155882629", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np17", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x827cbc8dc6bd4a545993d61ce2833f7baa3ffafccf0c43da845780b2c60c4f0a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8b88e66f13eb3b1b3af037cbaf9200b8a44163830c2e16a921a5864dfaea8c65", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xaa", + "extraData": "0x", + "baseFeePerGas": "0x6b2f3c2", + "blockHash": "0x8be0f38f24af217357167bb37fa76e4bb07257cbdebbd7060c012dee3685a2b7", + "transactions": [], + "withdrawals": [ + { + "index": "0x0", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3346706b38a2331556153113383581bc6f66f209fdef502f9fc9b6daf6ea555e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np18", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8be0f38f24af217357167bb37fa76e4bb07257cbdebbd7060c012dee3685a2b7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xffa52234e07c007038859c6ae172dd87b5fd80ac02c3fc9adacbf9c47f7a4028", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xb4", + "extraData": "0x", + "baseFeePerGas": "0x5dc954a", + "blockHash": "0x33cd3f00a5d4b4786f1028871a2431b2a5cc06abcc1f06d56f520c05c8d709aa", + "transactions": [ + "0xf885498405dc954b8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0c3d40969eb851a36dc39dd77d4c187ba169591eb600ce686f073f53968e9bd40a077c7ccce3b8a8b1326378a2e2e303f04c25da916556897375537a8446fbd6df9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x346910f7e777c596be32f0dcf46ccfda2efe8d6c5d3abbfe0f76dba7437f5dad", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np19", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x33cd3f00a5d4b4786f1028871a2431b2a5cc06abcc1f06d56f520c05c8d709aa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6136aa26f9580a8ecacc573d7362769f2a78f6acb779f9b2c84a5970378e2490", + "receiptsRoot": "0xe1449c6203504ff907027c42359f8ddd569284262e60f37920af530362fd4e37", + "logsBloom": "0x00200000000200000000000000200002000000000082000000202000000000800000000000000000000000000000000000000400000008000000000000000000000000000000000000000000000000800000000008000004000000000000000000010000000000000000000000000100008000000000000000000000000000000000000000800000000000000000400000000000000000000000000000100002002000400000000000000002000000080000000000000000080000000000000000000000000000000400400000000000000000000000000001020000000000000000000000000000000000000000000020000000000000000400000010000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xbe", + "extraData": "0x", + "baseFeePerGas": "0x521247e", + "blockHash": "0x6d69508bcfee6a79ab1f9b2654eaa9767beabc4aabd0777b4d16a1c7fe2308d8", + "transactions": [ + "0xf87c4a840521247f83011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a065b92c9da324aafbf8ee7597b18a6c053420a67e5e01d4c2562a9f6532473939a07f80878b7bc0e69700b617f7b71a365cd22ee8083684c452b4948ea93eae6fa7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe62a7bd9263534b752176d1ff1d428fcc370a3b176c4a6312b6016c2d5f8d546", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np20", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6d69508bcfee6a79ab1f9b2654eaa9767beabc4aabd0777b4d16a1c7fe2308d8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6cf73a178c89645e1ba6560e820ac1f8ec2e48c5098a56aec817886392e5f701", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xc8", + "extraData": "0x", + "baseFeePerGas": "0x47d1208", + "blockHash": "0xdccd539eebea31af7d83c77ba7b57529a1111630bf3eff5da9eaaf3bdb06cdc7", + "transactions": [ + "0xf8674b84047d12098302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa018aaef4670194514f969dbc57def43702154924c076d18bf7ac86627a6511d83a0745918e2423a243a37ca9271170dd1b2781d3ebb10d9c6914a39bee31e2a58f8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xffe267d11268388fd0426a627dedddeb075d68327df9172c0445cd2979ec7e4d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np21", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdccd539eebea31af7d83c77ba7b57529a1111630bf3eff5da9eaaf3bdb06cdc7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x078874dfd661d73b906ad5e4548d3927246130bb95e8a117c0d3fe9ce36265ec", + "receiptsRoot": "0xd43ad2c6a6199c3bf72c8d94db3521e4ec54a2306e4169e32b25fb1658733a52", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000800000000000000000000000000000000000000000000000004000000000000200000008000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xd2", + "extraData": "0x", + "baseFeePerGas": "0x3ed8d1d", + "blockHash": "0xb4125effbc4875925712ea7af12b9b8efd356f9daf371e37982d9d80986500dc", + "transactions": [ + "0x02f8d6870c72dd9d5e883e4c018403ed8d1e830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c470b103921f87d93656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0f77c749ecb156f605e2334b14caea388100bed09b4c16579c952a96e9035562980a061df014fe4d23be90180a1d75fa180aa296f3823dd0dba66af2fbdbb542ddbfba01dcb0288830bc474904670db31bb73ea8e48421f8f8ce650c33ff00da97f8edb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x23cc648c9cd82c08214882b7e28e026d6eb56920f90f64731bb09b6acf515427", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np22", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb4125effbc4875925712ea7af12b9b8efd356f9daf371e37982d9d80986500dc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0e0d167eecdeb9f13a37a28d9a90447fc9f903ce7ac9780a33e4ed1a37ce4742", + "receiptsRoot": "0xbe9ef7c757d2a2b1aaa03c629ce078d0e7901c24d43642a14578828946a4c3a8", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xdc", + "extraData": "0x", + "baseFeePerGas": "0x36fe69a", + "blockHash": "0x153171ce62d3a05bfc910c2dc9dbfe08d0b674de9053c4ba50989d55ba75545c", + "transactions": [ + "0x01f8d5870c72dd9d5e883e4d84036fe69b830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3e08783bf128a680656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b01a031155cd409042d494806233f781edad3fd63af1e0e26441da60518bdbba8515aa04ef6d5eac346649880a8be9e5475b1eed4d9fe25225a10159bd63e0cc9340af7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x47c896f5986ec29f58ec60eec56ed176910779e9fc9cf45c3c090126aeb21acd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np23", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x153171ce62d3a05bfc910c2dc9dbfe08d0b674de9053c4ba50989d55ba75545c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x875e51bd6ee9967c39df029032246575c4620111db4fb9997386398c3d193951", + "receiptsRoot": "0x2b9c45f5edbc0a1a16575d9f6914226fb1959bf5300be90abf5994350f6a8510", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xe6", + "extraData": "0x", + "baseFeePerGas": "0x301f384", + "blockHash": "0x631eb6b3e5d105379784bae7414c1a87100222dfaa82de3cbbd449cdbdddfda0", + "transactions": [ + "0x03f8fc870c72dd9d5e883e4e01840301f385830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038caaccee2fba6608ff656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a6d01173df2aa437fb0118d181e64a8f8e05713fc01c42fbfd2250516639ae9583020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a05ea87f1fc01a228fbf6854e8a91bf346502fd8fe0a0c865914cce118f8acf677a0333dc42ba62418aafcc729befb496de989106e8700d46ca92bf7ae9f17f95535" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x6d19894928a3ab44077bb85dcb47e0865ce1c4c187bba26bad059aa774c03cfe", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np24", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x631eb6b3e5d105379784bae7414c1a87100222dfaa82de3cbbd449cdbdddfda0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x98f98d5860f1175754c43063cf0aca259fb8a4a5a6b9d8ee4131c2d24bafdcdc", + "receiptsRoot": "0x0c0a430537eaa59021451b67574cba560be2ce825b3d200d5aa616f6030c8f8b", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xf0", + "extraData": "0x", + "baseFeePerGas": "0x2a1bd99", + "blockHash": "0xdb9610ac987150d64e0c47bf2bf4b4b6c225f7c869a8a3c21a8b4ed42a779da7", + "transactions": [ + "0xf8774f8402a1bd9a830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c0e394e7c8a2b32c9656d69748718e5bb3abd10a0a03ac30f903afc19ddcdfde20f7c30ea3652e1fffd337a4f90a29df20ce3193298a0663531b7fc7c3d4bbb382109f64ebcb76e400c7d2c20ba8ff4bb1dce1bd8cc61" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xefc50f4fc1430b6d5d043065201692a4a02252fef0699394631f5213a5667547", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np25", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdb9610ac987150d64e0c47bf2bf4b4b6c225f7c869a8a3c21a8b4ed42a779da7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc71e0f04e779cbf8a9423909f9063cc7b1b4611b121724c1d03b7810b50df2cf", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xfa", + "extraData": "0x", + "baseFeePerGas": "0x24d8d0e", + "blockHash": "0x484dfda7c0064b4361c5bb164ab29ab46b2f6e4ad1e4d08e054cf87092c301cc", + "transactions": [ + "0x02f86d870c72dd9d5e883e500184024d8d0f825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c080a063abd293402ee36462779cb52b1abb2fd46339431db2f1014b32c7f82bdf635ba0314e4f4aa5069de4e5fed2e0dbc5c5e0ad4b6d6b6c19e09c6684002ead3ba833" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np26", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x484dfda7c0064b4361c5bb164ab29ab46b2f6e4ad1e4d08e054cf87092c301cc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa5d4cda71b3c18323bd8e5d87601ae2b3271bde24bf03f44181538deea797097", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x104", + "extraData": "0x", + "baseFeePerGas": "0x203de11", + "blockHash": "0xb83ddbaec179e4a8ca479524a47d3ae87cf9d0d9cbf10f36e4cd27b095f03487", + "transactions": [ + "0x01f86c870c72dd9d5e883e51840203de12825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c001a001d2a0dadb06d7004b8eed1d40effaab9349184c371d9dd071f6c835b14977b4a03012553df7d85cc5b48d8abc14375bd89f8b6bc4177fd9508c02ee498a992e16" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x63eb547e9325bc34fbbbdfda327a71dc929fd8ab6509795e56479e95dbd40a80", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np27", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb83ddbaec179e4a8ca479524a47d3ae87cf9d0d9cbf10f36e4cd27b095f03487", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x29857c3c62622338c183d17a92937e96428f392d79b3f58f5139d34ebad83c54", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x10e", + "extraData": "0x", + "baseFeePerGas": "0x1c3649f", + "blockHash": "0xd17fa84bf309999af41acc3a1e006f5f9bc96a7c6bd8343f8dcd851171f89bbd", + "transactions": [ + "0xf86a528401c364a082520894d803681e487e6ac18053afc5a6cd813c86ec3e4d01808718e5bb3abd109fa03aaab096853b8b89c362af7701b60c747ce1dbda9b0d6adea14922c1fa9d83caa07677f467155ee7733eb77d144e1d282a4fab20609b9dd6bb18fbfcdc32adbac8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x67317288cf707b0325748c7947e2dda5e8b41e45e62330d00d80e9be403e5c4c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np28", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd17fa84bf309999af41acc3a1e006f5f9bc96a7c6bd8343f8dcd851171f89bbd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfabfe1983020fe6ec0e808ffe1ea76625ab329c87f7fda62c8c5815bc5279346", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x118", + "extraData": "0x", + "baseFeePerGas": "0x18afa11", + "blockHash": "0xf95e9ebf1649ad621dce264eb56c4695b2c12bcfdff445f4081d42a1bf35cb93", + "transactions": [], + "withdrawals": [ + { + "index": "0x1", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7fc37e0d22626f96f345b05516c8a3676b9e1de01d354e5eb9524f6776966885", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np29", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf95e9ebf1649ad621dce264eb56c4695b2c12bcfdff445f4081d42a1bf35cb93", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb161ffc85f1cbcaf74e168a1473080af3d4ad7dd23d415558189987992e6b34c", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x122", + "extraData": "0x", + "baseFeePerGas": "0x1599acf", + "blockHash": "0xecb61d653cb6ebe9236bb36c31afd4637f6ebfaf9a84b53c8ab8d5557a177e57", + "transactions": [ + "0xf885538401599ad08301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a09f1b35dda68089f7818f7d2bb921c4237ebfec4c808906374a28bb7d2112c3e1a01c4235777f7011088a60497dbcfee1cab58bd04119115d37748adb3bcee25427" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc8c5ffb6f192e9bda046ecd4ebb995af53c9dd6040f4ba8d8db9292c1310e43f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np30", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xecb61d653cb6ebe9236bb36c31afd4637f6ebfaf9a84b53c8ab8d5557a177e57", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x06be7e1abb9f72accc6b70db7f9a573eab98ab7e2f8dff05a6d9c5fb3d196284", + "receiptsRoot": "0x94c061dc8cf44763063b10b8f8bc801f41da75cfdc7f4a26e00c609a3562689e", + "logsBloom": "0x00000000000000000000000001000000000000000000000000000800000000000000000000040000000000000600400100000000000000000010000200000000000010000000100000000004000000000000000004000080000000000000000000000000000000000000000000000000000000000000000000000000000010000000200101000000000001200000400000000000000000000000200000400000000000000000000000000000000000000000000000200000000000000000000000000000000020000000000000080000020000000000000800000000000000000000000000000000000008100800000000000000010020000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x12c", + "extraData": "0x", + "baseFeePerGas": "0x12e6f42", + "blockHash": "0xd454d2e47ddd6508e26a8e6f5f7739c4816e682f72940004b983798e9874db24", + "transactions": [ + "0xf87c5484012e6f4383011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0f11fc2cc9d668bc2f1ce8adf2dff1ca7818b5d9e8a0e3eadabdefd42fb7e86a8a07b510479619b99b260a6d295cc0a50ea5ff303e8e350a3c3349726043092022f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe40a9cfd9babe862d482ca0c07c0a4086641d16c066620cb048c6e673c5a4f91", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np31", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd454d2e47ddd6508e26a8e6f5f7739c4816e682f72940004b983798e9874db24", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x10dfe0fd982218a67c090422ed47c79f949401cedce7e80a8b9b41db0e7a70b0", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x136", + "extraData": "0x", + "baseFeePerGas": "0x108a585", + "blockHash": "0xcb4c113282733de5e500f67e1e2d34dcb1f5ba78d50fd1ee64f589985cbc2e79", + "transactions": [ + "0xf86755840108a5868302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0bf0586ff59796b985d3268c815acb05e6ddaf36566f259e489a27e036cf440d8a023c7b9cdde40c3b93b2a4711ad2f09ce06afd5817a6ae347a8f93c1fb059239b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe82e7cff48aea45fb3f7b199b0b173497bf4c5ea66ff840e2ec618d7eb3d7470", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np32", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcb4c113282733de5e500f67e1e2d34dcb1f5ba78d50fd1ee64f589985cbc2e79", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2e378cbae568de2e8ec7902c5673180bac5fef3a48b50936bef95cddd8374c24", + "receiptsRoot": "0x0df732142d4ea95fe58044d306b7759fd0fbb757b3ad00be44e5c6dfb27ab8e3", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000040000000000000000000000000000000000000000000000000000002004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x140", + "extraData": "0x", + "baseFeePerGas": "0xe79796", + "blockHash": "0x279a30e5b6459ce8cbb11314c86ce121cd09ccfa94e8431da318c389ced90f1d", + "transactions": [ + "0x02f8d5870c72dd9d5e883e560183e79797830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cb524830fb1b95fef656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce80a02a6350c90c33b23b64b38353c26a0b33b4f030c0cf2246f241d9c77db486391ca040fcf9e872242a744c1daa7361c69eb0919cbc4d20a28e95d42edfb678abb05f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x84ceda57767ea709da7ab17897a70da1868c9670931da38f2438519a5249534d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np33", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x279a30e5b6459ce8cbb11314c86ce121cd09ccfa94e8431da318c389ced90f1d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3ed25f92d59f556698b7bb57cabe553090feb66893446b3aa7f9b319cfa5c058", + "receiptsRoot": "0x1a38ee5591dc15bbeec2de9b55d200df038a259385745527052cc81337289c86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000800000000000000000008000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x14a", + "extraData": "0x", + "baseFeePerGas": "0xcaa734", + "blockHash": "0xbfa427b49c4b9c8ac6629f2a2d1b62c0e2d3d4e793e603af64d9eb7438b694a1", + "transactions": [ + "0x01f8d4870c72dd9d5e883e5783caa735830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cbf21e84fccd0c2c0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b2416e7ca12669406e6cd5154ad5177841b7d0cddeb2760249c28e1aa151f97080a0891a7f5d5aaf642d425bcb20d715704a021979d36cb724eb88d87b815a28059aa002df2e16a34ee0c18dbb1ca557831ca519dce2746e8760c2b5568e1eaf868051" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe9dcf640383969359c944cff24b75f71740627f596110ee8568fa09f9a06db1c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np34", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbfa427b49c4b9c8ac6629f2a2d1b62c0e2d3d4e793e603af64d9eb7438b694a1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6662a1b6375759074ea267245e8fa293b084dc885a31e81435da3df797575560", + "receiptsRoot": "0x7947328dc40a62c0cb58142e2b83fd7b60da8388084cf2a6a3010d086de333aa", + "logsBloom": "0x00000000000000000000000000000000000000000200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x154", + "extraData": "0x", + "baseFeePerGas": "0xb1548c", + "blockHash": "0x8595bd36d4362be24f82626e410c5240689ad948822510812add6669c17e60bf", + "transactions": [ + "0x03f8fb870c72dd9d5e883e580183b1548d830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cfd7bf8757ddb24d9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e94d0b2545ec05c3ce3431c4d45c3b62fcab156563e8308fae1ebd27a2810c1a83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0e8addc83080c5d2bf2f7da936f4b683a6fa31da3e7399af871bfe8e34dcb27aba032921280f671f62041ed7e56b37344143cef82036baa6b17b47a0b04b85c723e" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x430ef678bb92f1af44dcd77af9c5b59fb87d0fc4a09901a54398ad5b7e19a8f4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np35", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8595bd36d4362be24f82626e410c5240689ad948822510812add6669c17e60bf", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x48c5107855960c19360eede30647cb174c36e5026c37bb2fb613d198349de0dc", + "receiptsRoot": "0x6981ee91b3f58a0d3682d3425aac8c6da5488cf1f8e5390716d80bef02faa6e2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000020000000000000000000000000000000000000000000000000000001000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x15e", + "extraData": "0x", + "baseFeePerGas": "0x9b2bf1", + "blockHash": "0xabaae2a5e966b2e2b1de55c4cd3ae9d8eed5a7a96994eb8627465ed0d9d15fa6", + "transactions": [ + "0xf87659839b2bf2830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c95297b6a5c01e24f656d69748718e5bb3abd109fa0324005dca5a2e0d753c04b9ba3b36fc8f09dabf63a4f22f9c1ccb22c48f4fe9fa0733c734fc9a6e1d9f16602abc97ead797bbd1da81092277069ab9791626dd355" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf7af0b8b729cd17b7826259bc183b196dbd318bd7229d5e8085bf4849c0b12bf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np36", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xabaae2a5e966b2e2b1de55c4cd3ae9d8eed5a7a96994eb8627465ed0d9d15fa6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x175e804afca7dbe19134805ce3ec22251edd4feaa8eed1e95114884d73496791", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x168", + "extraData": "0x", + "baseFeePerGas": "0x87c819", + "blockHash": "0xebaf8a77d6fe68c176d3074a8f4b9c702c4b5e96b801a1410291fbe2cc6421e2", + "transactions": [ + "0x02f86c870c72dd9d5e883e5a018387c81a825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0124496e8b49822c38a85f4aa83983d04eea11983e9d12020a1a30a564bf0bd15a038da406edaaf30fc3ed0e8a9c638e84dbe04e35d0f5233a1740bb3c3c3ef50df" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe134e19217f1b4c7e11f193561056303a1f67b69dac96ff79a6d0aafa994f7cb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np37", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xebaf8a77d6fe68c176d3074a8f4b9c702c4b5e96b801a1410291fbe2cc6421e2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf142e4351d4387ecf5f6a92aa5b26e5c192e0478bea50e4861c158e89e090827", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x25", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x172", + "extraData": "0x", + "baseFeePerGas": "0x76cfb2", + "blockHash": "0x8a76724de35afb575efb81ef8ab58346825486d654168ef5aeb2f80912e61a78", + "transactions": [ + "0x01f86b870c72dd9d5e883e5b8376cfb382520894c7b99a164efd027a93f147376cc7da7c67c6bbe00180c001a05c5ab0a8c8d2f0517b2afc28a6e1efb3747161f98622edbf553fc50f37713087a0518ace41f0e0f9e26de1bfd4bf464a701bbdb0164943acce193756ab5824f609" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9cc58ab1a8cb0e983550e61f754aea1dd4f58ac6482a816dc50658de750de613", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np38", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8a76724de35afb575efb81ef8ab58346825486d654168ef5aeb2f80912e61a78", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x052e4e1dfa221ec796dff3e3cc3d43f1742b7338dfacbb618b7ff36e26536a58", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x26", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x17c", + "extraData": "0x", + "baseFeePerGas": "0x67f645", + "blockHash": "0x9463185605c120f1bbec5549f567ffb50e0a4dd1bb5d202a312640cb3faf5e72", + "transactions": [ + "0xf8695c8367f64682520894e7d13f7aa2a838d24c59b40186a0aca1e21cffcc01808718e5bb3abd10a0a0b4d96228bdd1ae700c02bab06e72db922af3b8559da9fb106aba7b35a69be5c9a03008207c3d5df936f349306843588c448eb7fe21c6fc4bf0a9305ed7bef08d2f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x79c2b067779a94fd3756070885fc8eab5e45033bde69ab17c0173d553df02978", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np39", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9463185605c120f1bbec5549f567ffb50e0a4dd1bb5d202a312640cb3faf5e72", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x009886205d2a87aa86f8dc4aa96bea797885b03905ac63134e283d483699d5f4", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x27", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x186", + "extraData": "0x", + "baseFeePerGas": "0x5af7f4", + "blockHash": "0x817c992ddaad0c33d972ff29048a8ec435e562707950ec4c0d9fb77dbdd84ae1", + "transactions": [], + "withdrawals": [ + { + "index": "0x2", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd908ef75d05b895600d3f9938cb5259612c71223b68d30469ff657d61c6b1611", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np40", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x817c992ddaad0c33d972ff29048a8ec435e562707950ec4c0d9fb77dbdd84ae1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfa2ab79f3edf55b5380b99be5336e14ad787788d54dcaa05c2e0745d1472468d", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x28", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x190", + "extraData": "0x", + "baseFeePerGas": "0x4f98f6", + "blockHash": "0x8d61211d9778e2315598b11c7b715f8a96a3e7b3f7242a280a590aa728a2c2cc", + "transactions": [ + "0xf8845d834f98f78301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa08dbf399f45ff95b249fcd46c8d53d5c017ce5bcc7d02e79baa2bdc679bad2f99a00ed9eb5d88e831995889ea38ae8acbaddcabac5e4c283ea003bfa1c0ac0f0863" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe0d31906b7c46ac7f38478c0872d3c634f7113d54ef0b57ebfaf7f993959f5a3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np41", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8d61211d9778e2315598b11c7b715f8a96a3e7b3f7242a280a590aa728a2c2cc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5a77b5730c4b55882b1964206b1d8113821dbe1ab7aa4e774e8286e68e6b6d6", + "receiptsRoot": "0xf0e4228053d0e4a98c002b31036028bdc76c8866da8ad254ccc4983196cf9ffc", + "logsBloom": "0x00000000000800000000000004400000000000000000000000000002012000000000000000200000000000000000000000002040000000000000000000000000000000028000400000400000000000000000000040000000000040000000000000000000004010000000000001000000000000000000000001000000000000000000000000000000004000000000000000001000000000002000008000001000400000000000000000000004000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000048000000000400000004000000000000000100000000000000000000200000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x29", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x19a", + "extraData": "0x", + "baseFeePerGas": "0x45a7a4", + "blockHash": "0xcb0a318ccf7de5604a9beb6772ba12ddde924fbf0e1074246c5a6864c203c020", + "transactions": [ + "0xf87b5e8345a7a583011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0ea419b94c0d56d5028977a327e643518b01c91591aeed770a425cccb247cb849a01e24556467589fea695f87fe3a49d860e6c9b6949d1dbb350c5c6f564b968ea9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2318f5c5e6865200ad890e0a8db21c780a226bec0b2e29af1cb3a0d9b40196ae", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np42", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcb0a318ccf7de5604a9beb6772ba12ddde924fbf0e1074246c5a6864c203c020", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x794a080cd09e161af78f49b6aaed7a1a5a8d2f98bf3ee5c81729df3fc6517a40", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1a4", + "extraData": "0x", + "baseFeePerGas": "0x3cf3a6", + "blockHash": "0x9634b9df44977f0b85afbb35da1ffd571858e7ab44f2ab3e440f920031e57fe4", + "transactions": [ + "0xf8665f833cf3a78302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a00261d826899befcde2c186617fd45a56062345f4a73aa8b33d3c5119986f7c56a031b2eee3d8c2cc7c2eea79968ad847553a8cb036d8069caf70364d8ec17b3490" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x523997f8d8fed954658f547954fdeceab818b411862647f2b61a3619f6a4d4bc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np43", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9634b9df44977f0b85afbb35da1ffd571858e7ab44f2ab3e440f920031e57fe4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2f2c9f6e1e8304b2ee9412dabe36312f99007622057f5900e9986d935ccbe93f", + "receiptsRoot": "0x84d61de81263a9ae82c0332b91fec6b9aece65a3b475508f0bafac05b73f0c43", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000200000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000008000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1ae", + "extraData": "0x", + "baseFeePerGas": "0x3556c0", + "blockHash": "0x9f769468769e89b9dc650168649eb0c666f70c82600be471f072caefe08c9d55", + "transactions": [ + "0x02f8d5870c72dd9d5e883e6001833556c1830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ceec855297bb026a7656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a089c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e5680a00433a43ec306f5266774cfe99da271ec19c1c4578de077d7b04e417e49352112a02cb440a099221deb207d755acf96c594c74c29542a4a2bbe7a8eb9d8f11863bc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbe3396540ea36c6928cccdcfe6c669666edbbbcd4be5e703f59de0e3c2720da7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np44", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9f769468769e89b9dc650168649eb0c666f70c82600be471f072caefe08c9d55", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2bfa5cdb21678fe08dc24caaf048e65249c12c4f33a9ea751925f324a4b02b9d", + "receiptsRoot": "0x3583fc0e5b1a423557d4c71016a89100e46ef7f652a47871a925385ccaf5e63e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000400000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1b8", + "extraData": "0x", + "baseFeePerGas": "0x2eac80", + "blockHash": "0x4cb55e0dfa4d8e35270542ce0d83991a2b2fddd789475d675f8af1c7c9715594", + "transactions": [ + "0x01f8d4870c72dd9d5e883e61832eac81830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c2276cc05d723a1e7656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a011f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa01a0bcba956774ce13fc430468f7baa792a3fb1be066f4bff5c91b42bea18ed423c4a07dc200add9d8245e1673dd414410a55274b01e8380f550a4ad57a88c5df161dc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2d3fcfd65d0a6881a2e8684d03c2aa27aee6176514d9f6d8ebb3b766f85e1039", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np45", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4cb55e0dfa4d8e35270542ce0d83991a2b2fddd789475d675f8af1c7c9715594", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5067c5e9581e6ad98b545fb754f6e5b19480afbee8039230f11ebda3a3f0f3e2", + "receiptsRoot": "0x0c1073d8c51aba6619e6f1b2ee9c89a99c042612749538ccff05e390ce5e6e0b", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000020000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1c2", + "extraData": "0x", + "baseFeePerGas": "0x28d775", + "blockHash": "0x5cda29c5e65864ba897efa8e61cbefabb0653e2c90aa6317cc66f8b7ea849855", + "transactions": [ + "0x03f8fb870c72dd9d5e883e62018328d776830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c580abd8a903ed7d3656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06551251b96ca27f3af8a2c500d6dd1ea5b9ab7002b3d923b66db0493f4a7123e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a02f5adb260968bedf29862dd1224abbdc35c6184c3d7938ccf3d588e0df024208a00c4219fd23c6cff6f9fb31ede5fa47953e3a58fe68f9bec110cd6989f348e42f" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x7ce0d5c253a7f910cca7416e949ac04fdaec20a518ab6fcbe4a63d8b439a5cfc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np46", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5cda29c5e65864ba897efa8e61cbefabb0653e2c90aa6317cc66f8b7ea849855", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc6a9cb94f56b6bcc3165bb550fd7faa650023515adab2b2975271d31e0308d04", + "receiptsRoot": "0x339d975219ef9a145e813a6df1e3ffbacc69a5b4bac7146356aedca4dca023f4", + "logsBloom": "0x00000040000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000008000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1cc", + "extraData": "0x", + "baseFeePerGas": "0x23bcfb", + "blockHash": "0x4fab41210b0a89ad65ef56cccce7146b0c7792e631cb57f9d45f2c390c0930e8", + "transactions": [ + "0xf876638323bcfc830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c1652c4d6db8ff1e1656d69748718e5bb3abd10a0a078526c3e19804e68c0fa3f35a65313654a6abcd8dc081a25936f97ae21e96345a032b8eea38263558ac3c8a13f03bdb1f888fd54018bacf36c47501a9015fcb885" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4da13d835ea44926ee13f34ce8fcd4b9d3dc65be0a351115cf404234c7fbd256", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np47", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4fab41210b0a89ad65ef56cccce7146b0c7792e631cb57f9d45f2c390c0930e8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4f2ae5c737d65adeed947135195017ffd5be54da2d42d61f17d81637d1f5bbfa", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1d6", + "extraData": "0x", + "baseFeePerGas": "0x1f45bd", + "blockHash": "0x7bab3d8b7342961697225b52e7d8bb83b46cc34903907b0e4661947eb109afdc", + "transactions": [ + "0x02f86c870c72dd9d5e883e6401831f45be825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c001a01748da08db49d847acad96b1d4af30504d6eee036ab35f8828a4c2e4f21d21a3a03ba294f61faf848a43c69a3dcadf78a45734c3e46b40ae6e9fa4b37606b58b0b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc5ee7483802009b45feabf4c5f701ec485f27bf7d2c4477b200ac53e210e9844", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np48", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7bab3d8b7342961697225b52e7d8bb83b46cc34903907b0e4661947eb109afdc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf6394085c8ebd8e530dd4f89b4dae409c07a8035264dc316fc6450fe8ece4132", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x30", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1e0", + "extraData": "0x", + "baseFeePerGas": "0x1b5d2a", + "blockHash": "0xbfeba0d543fa88ab54802a9d5206fd41b5718136dfd21a9c821efb609698750b", + "transactions": [ + "0x01f86b870c72dd9d5e883e65831b5d2b8252089483c7e323d189f18725ac510004fdc2941f8c4a780180c001a0029616fc18705b16b8c9b4e8bc43e76f2fd38183a6fa0dae10667282f8d67b88a03b7a41fe2c99b08eccf79a8b77871a09e796e8224360a0960c4b7054aacf718a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0fc71295326a7ae8e0776c61be67f3ed8770311df88e186405b8d75bd0be552b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np49", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbfeba0d543fa88ab54802a9d5206fd41b5718136dfd21a9c821efb609698750b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4528ce89fc87b464a0cdf50e2ebd92a622451c4bf29236f3d5d94b7dcda48ebb", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x31", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1ea", + "extraData": "0x", + "baseFeePerGas": "0x17f1a5", + "blockHash": "0x0050e8364ebc7a92e7caf312e0b10aa59f685d32073de47561185a14dfb3fce1", + "transactions": [ + "0xf869668317f1a682520894d803681e487e6ac18053afc5a6cd813c86ec3e4d01808718e5bb3abd10a0a0877c2154ffb76b5feb76e93d1c93398c99ec12a16f88fbde76d0fb89dd133556a004909a51d865376fa682042d498affdab8ea4f47a9c3870010e18b7c2c8a54b0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7313b4315dd27586f940f8f2bf8af76825d8f24d2ae2c24d885dcb0cdd8d50f5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np50", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0050e8364ebc7a92e7caf312e0b10aa59f685d32073de47561185a14dfb3fce1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5254811a5c2755a7ac85595209aaeec699ff0bd3930d86610527317f83d05563", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x32", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1f4", + "extraData": "0x", + "baseFeePerGas": "0x14f38c", + "blockHash": "0xcf0550d9f0e956ea4aea8fd5d4412812acb72922b3c6bd47c8a0086bd0c4abf5", + "transactions": [], + "withdrawals": [ + { + "index": "0x3", + "validatorIndex": "0x5", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2739473baa23a9bca4e8d0f4f221cfa48440b4b73e2bae7386c14caccc6c2059", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np51", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcf0550d9f0e956ea4aea8fd5d4412812acb72922b3c6bd47c8a0086bd0c4abf5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3ac0f155614dfcf08a5284382b3352011663fd33c8cc2a7422be722f30f542a", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x33", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1fe", + "extraData": "0x", + "baseFeePerGas": "0x12551b", + "blockHash": "0x80994d3ef7108fd26e8124978fbad74e9223d3205785161c272f91311e7481b9", + "transactions": [ + "0xf884678312551c8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a001e316cedf4998e68c19455626c86444d00ee8de19af86d9343d5197fc602872a0302ee512ee50e575f905ccca9b087afca4532b9114325b703e1d0c5a9749309c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd4da00e33a11ee18f67b25ad5ff574cddcdccaa30e6743e01a531336b16cbf8f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np52", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x80994d3ef7108fd26e8124978fbad74e9223d3205785161c272f91311e7481b9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4dc84b9445ef8b7f20493698c0acaadf021d02a3c4146d03915edb63d5699391", + "receiptsRoot": "0xe787458a52a5467278d4d6772533ece20b0cd70e458347d122e98995c73f85cf", + "logsBloom": "0x00000020001000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000004000080008000000000000400000000000000000000010000000000000000004000000000000800000000000000000000000040000000000000000000080000000000000000000000000000000002008008000004002000000000000000000000000000000000180000000000000080000000000000000000000000010000800000000000000002400000000000200040000000000000000000080000001000000000000101000000000000000000000001000000080000000000000000000000800000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x34", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x208", + "extraData": "0x", + "baseFeePerGas": "0x100ae2", + "blockHash": "0x164df48af3dddb7478b82f0c716a3e991ce37c2c13a60959409e4e1ffd139f49", + "transactions": [ + "0xf87b6883100ae383011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa06ada20d747ecb015772bafb3195f0fdb8dfe7c11d4aa4ac79bb24002bb932b72a05275dca89d6591422a4e1f80843c15f2c09c3ac8e54141c77df9e12c3c63e697" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe651765d4860f0c46f191212c8193e7c82708e5d8bef1ed6f19bdde577f980cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np53", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x164df48af3dddb7478b82f0c716a3e991ce37c2c13a60959409e4e1ffd139f49", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba18c47045f1d22f34df69c0e3450a33254bea64e1191f1fa2754b6b30bcd49c", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x35", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x212", + "extraData": "0x", + "baseFeePerGas": "0xe09bf", + "blockHash": "0x2c22e6b47f0dc7b95265f02e285984be0c2d2462a9646c69b0c7369b93ab859b", + "transactions": [ + "0xf86669830e09c08302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0f51698fb9c38430a1243bc7e0c35434f6fae3ebd8cc290d26b34450bb0706c3aa02206c685b7506d874c925fbdcab9afd49f90df6c8ca816eb1222d11109a39e03" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5b5b49487967b3b60bd859ba2fb13290c6eaf67e97e9f9f9dda935c08564b5f6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np54", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2c22e6b47f0dc7b95265f02e285984be0c2d2462a9646c69b0c7369b93ab859b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7da858bd9ffeecf4bdc441ba8fdbb63a257bfe8ff7a0b563a5e2884e2002efe0", + "receiptsRoot": "0x6928e95da80558d961c0a6dc15e81d34f230bf4d42d763d26e5bd89d47546b3d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000002000000000000000000000004000000000000200000000000000000000000000002000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x36", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x21c", + "extraData": "0x", + "baseFeePerGas": "0xc48e3", + "blockHash": "0xc11fc865b8f4414834cdc0b3d92d5ff380c8078f3b61eca63c3f05a33d0ed9b7", + "transactions": [ + "0x02f8d5870c72dd9d5e883e6a01830c48e4830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5201fc7d087c0d9b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a09038344c39b01167bfa8e99a6425d34bca24c27ceb191e8eba70ab5a8f719ce501a0e0966f74387580c0164cf8efdeebae697624386c6ed5a2697c88847737accf3ca00fdaa5809b2728a85d7652c435e864bff6af5c092429b2741ff25fae8019368e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x57b73780cc42a6a36676ce7008459d5ba206389dc9300f1aecbd77c4b90277fa", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np55", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc11fc865b8f4414834cdc0b3d92d5ff380c8078f3b61eca63c3f05a33d0ed9b7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x995f953236c31742eed6d6ce7d0ce6c0e1381f24aa773f4748b605cb204943a5", + "receiptsRoot": "0x7f635468d01df617f5f6bd5abf3a1015737db6cbd860eefac9fa3f24bd4e6037", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000004000000200000000000000000000000000002000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x37", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x226", + "extraData": "0x", + "baseFeePerGas": "0xabfea", + "blockHash": "0x7f47b785f867aacca1b27d55186dbb6a7a9a6b83754e6d2d0d2b9f1698f32f27", + "transactions": [ + "0x01f8d4870c72dd9d5e883e6b830abfeb830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ce62b8536019651e7656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a08460e232c64e6cd9f816c02d855c892755984ebbb91592e683cda80aaba4ba2201a02559b89237cbb7c1c024467392c1083aa32590e8e8d0d9a28df74485e2c75af6a00f08ec235061bcd8b3f1bb17792dceb30a5284b27c258a619fb14238a0fc5a53" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x217e8514ea30f1431dc3cd006fe730df721f961cebb5d0b52069d1b4e1ae5d13", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np56", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7f47b785f867aacca1b27d55186dbb6a7a9a6b83754e6d2d0d2b9f1698f32f27", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xddce5378bef297b245d35e3795388f10c00044b010a89f4a354bee02175cfc9c", + "receiptsRoot": "0x87a409cc89dd0fd67b46999dc1d3c04d4fe154f7d31ac7f1d5cc32dab0b0d4a7", + "logsBloom": "0x00000040000000000000000000000000000000000040000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x38", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x230", + "extraData": "0x", + "baseFeePerGas": "0x9680c", + "blockHash": "0xc0df0d295b403cc825a0825f741923f806f603ff53aafcc04f6b91f39dd35198", + "transactions": [ + "0x03f8fb870c72dd9d5e883e6c018309680d830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c74fb911b03a9f447656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0fa29cff134420b6526f434ab690a9c3a140aa27b8479ae3d8d83b6c799acbc2383020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a01b75abfd139972c90f4493f3e7b818e9437ad4db371d961862f09b73b38b4778a020bfca36ce5c2e2c4800663aa36e4a9154486712bdefd8ed5328b63e3c33f942" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x14b775119c252908bb10b13de9f8ae988302e1ea8b2e7a1b6d3c8ae24ba9396b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np57", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc0df0d295b403cc825a0825f741923f806f603ff53aafcc04f6b91f39dd35198", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7cea7741eaea66430085cc95526eb540432857dcd8c2301aa432fbbf6b65ffb", + "receiptsRoot": "0x99ed340dbe91050b3fc6ca6aa348f7c1b8bc0a85be44d8e3c6c14c810a8c1ce6", + "logsBloom": "0x00000000000000000000000000000000000000000200000000000002800000000000000000008000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x39", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x23a", + "extraData": "0x", + "baseFeePerGas": "0x83b26", + "blockHash": "0x9f7f274336bcfaf82e4f7696590eb831dee46dbe71821c14a197810edcb2834a", + "transactions": [ + "0xf8766d83083b27830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cd3e32cccb15d8b65656d69748718e5bb3abd10a0a0ecc2f008ce3a742e1b054d0bf507156b897156a4ed0598daef1e4a9ec2d1a481a007da830d27ff00aad22718653bc3cedcf22082b248f07d2f878a7449abb84b1b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe736f0b3c5672f76332a38a6c1e66e5f39e0d01f1ddede2c24671f48e78daf63", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np58", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9f7f274336bcfaf82e4f7696590eb831dee46dbe71821c14a197810edcb2834a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb247e20af3081900fffb8529138f90154b9e6bf4ee70e3afae3d85245415f3de", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x244", + "extraData": "0x", + "baseFeePerGas": "0x733d8", + "blockHash": "0xabc3fbe0c41b79c30f91b2834dfa28a2a3ca23aff7505b53ef5383f3fef45987", + "transactions": [ + "0x02f86c870c72dd9d5e883e6e01830733d9825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c001a02db9ba21034d6d62a8b1997c6beb5ce965cbb5f6a011e75c00674cd452858126a0586e8d8ef2601881468ad3b2fc6b663781b528a93727175a8fdb50633208959b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7d112c85b58c64c576d34ea7a7c18287981885892fbf95110e62add156ca572e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np59", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xabc3fbe0c41b79c30f91b2834dfa28a2a3ca23aff7505b53ef5383f3fef45987", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb05cfb0b57d2beb5b6ff5a361057afef5a11ab641b7f90073e856d848e0e1114", + "receiptsRoot": "0xbe3866dc0255d0856720d6d82370e49f3695ca287b4f8b480dfc69bbc2dc7168", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x24e", + "extraData": "0x", + "baseFeePerGas": "0x64d66", + "blockHash": "0x761bd27a0e51092eee4eaa4a545708b2df734d240ec2e5909e784e478752626f", + "transactions": [ + "0x01f86b870c72dd9d5e883e6f83064d6782520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a00de2602b708e8efb0cfd73660ad2dda2e5e1602ab9de18dd725e1c005bf7e50ba00dd41de8f8fb6ed0f5adeb0ef8718da775cad6ce8585602d584c39e455ad2804" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x28fbeedc649ed9d2a6feda6e5a2576949da6812235ebdfd030f8105d012f5074", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np60", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x761bd27a0e51092eee4eaa4a545708b2df734d240ec2e5909e784e478752626f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8a768be0bdcd6258f177e1fa0b68d6a2ceae367186afeb3bd14ca23bfe50d4e5", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x258", + "extraData": "0x", + "baseFeePerGas": "0x583c1", + "blockHash": "0xfee26a4ca9c8d56be94795b13f522d026f47a749fb3969c5f5ffa7465acefd36", + "transactions": [ + "0xf86970830583c282520894e7d13f7aa2a838d24c59b40186a0aca1e21cffcc01808718e5bb3abd10a0a0adf6eef3b27cd6d5ec8de3fa62efb9e9217693837fe48bb007d00b822458f8a4a05c37acc91f44d9ae418a88e72eb7fba781def6146cb447544ce6763dfa39aaaa" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6f7410cf59e390abe233de2a3e3fe022b63b78a92f6f4e3c54aced57b6c3daa6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np61", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfee26a4ca9c8d56be94795b13f522d026f47a749fb3969c5f5ffa7465acefd36", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3dba76642c4eb32df53e7f15deb6e14cd5f314893d6d84b98c82cf6875249e66", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x262", + "extraData": "0x", + "baseFeePerGas": "0x4d350", + "blockHash": "0xd99ba2e7fce99a98dec8caee0bf6422887042e79facfcb081e4c5d04a3f8fdb6", + "transactions": [], + "withdrawals": [ + { + "index": "0x4", + "validatorIndex": "0x5", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd5edc3d8781deea3b577e772f51949a8866f2aa933149f622f05cde2ebba9adb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np62", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd99ba2e7fce99a98dec8caee0bf6422887042e79facfcb081e4c5d04a3f8fdb6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x25d950bb56cc65ee4c44f70dcb9894858d2a8433c6a6972307e9065d13f86416", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x26c", + "extraData": "0x", + "baseFeePerGas": "0x438e6", + "blockHash": "0x1ac60d9a0fbdd7d5779432344ddb1cc080b7d70d8049631e9a5767f94dfc0fb0", + "transactions": [ + "0xf88471830438e78301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa057079c9077c3232a4f91efd2b4f84dfce1a679facf8c6290c59b2548d2258f97a008023fccd46ee398d35a5f82e4d0663a96bada0efbce6f6dcb4c47ab3ee10c60" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x20308d99bc1e1b1b0717f32b9a3a869f4318f5f0eb4ed81fddd10696c9746c6b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np63", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1ac60d9a0fbdd7d5779432344ddb1cc080b7d70d8049631e9a5767f94dfc0fb0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb034aadc849aa478d255949d503c0d25679dcfbe117545e5f4094bc426cebe5d", + "receiptsRoot": "0x1efb5076ec1f4f5cb2b603c551c50de2f00dae69dcfa5160a217576a9f6551de", + "logsBloom": "0x00000000100000000102000000001000000000000002000008000000000000000000000000000000800000200000000000000000000040000002400000000000020002000000000000000000040000000000000000000000000000000000000100000000000002000000000400001000000000000000000000000000000000004000200000000000000000040000000000000000000000002002000000000000000008000000008000000000000000000000000040000000000000000000000000000000000000000000000000000000000100000000000000000000000000101000000000000002000000000020080000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x276", + "extraData": "0x", + "baseFeePerGas": "0x3b1e2", + "blockHash": "0x0592a18e16fdecf8028cfd0172fbd99a44287f9fa77970a947623c4305aff927", + "transactions": [ + "0xf87b728303b1e383011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa03cdf945881ecaa78ff016a6f8ec7e26cc8ed55984d846133e2f8158839c6f9e4a025d0995c64961fc82c032d3236de123ebb467551301d2d925c53572e5e3df84e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x91f7a302057a2e21d5e0ef4b8eea75dfb8b37f2c2db05c5a84517aaebc9d5131", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np64", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0592a18e16fdecf8028cfd0172fbd99a44287f9fa77970a947623c4305aff927", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x765a22e55593f83268d99b38f8a055963be0b8e886293899167fc7b2c63a7858", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x40", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x280", + "extraData": "0x", + "baseFeePerGas": "0x33bb3", + "blockHash": "0xe276709cf0da03abbe0672cd6542c8823ba1a79ced1d077331d26a4bfbe4664b", + "transactions": [ + "0xf8667383033bb48302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a03064d3c81552b2f7c755a56e3679ebcb88a0bf3f13e813f602bb295e0296387da06bdcc96db69bd03db606db527de86f95db09095a11a8e79164de8a4c08da57f5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x743e5d0a5be47d489b121edb9f98dad7d0a85fc260909083656fabaf6d404774", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np65", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe276709cf0da03abbe0672cd6542c8823ba1a79ced1d077331d26a4bfbe4664b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4f01b084f910cc06f872778327aa44fe90539990dcd5c91b72543a3113ad75a5", + "receiptsRoot": "0x2e9c0e40c154746c3b1ce61786b868384f1c7545b0e7a8b50fb140c45ebce26f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x41", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x28a", + "extraData": "0x", + "baseFeePerGas": "0x2d452", + "blockHash": "0xdc32af56e34daa6037e96a2990d6485815b9dbb16ed0fd48e19e794b16d78d52", + "transactions": [ + "0x02f8d5870c72dd9d5e883e74018302d453830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3f2b9739dd517491656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04b3120af8064823e074758c51cd6cd0954587c0d94b5b37b336261fc7aa2ddb380a00945194e5e0e0e8f8d4beb2742ced81be8ccf85bcc21421034985cd93cda13cca037b277e7ab9549fac0f305fd40ecf1684db94b9445a306488746b6e023277d6a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcdcf99c6e2e7d0951f762e787bdbe0e2b3b320815c9d2be91e9cd0848653e839", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np66", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdc32af56e34daa6037e96a2990d6485815b9dbb16ed0fd48e19e794b16d78d52", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5e9446f68d570b553da6d0412e990de655b3fb769d6d42d3e828b0af590bf89", + "receiptsRoot": "0x8a3e160a97c192e4e39bd411702fd7936d10b2726925e81452d8a00a76ff84c4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000400000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x42", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x294", + "extraData": "0x", + "baseFeePerGas": "0x279d0", + "blockHash": "0x2256ff7bd7ede2f79b3392f7898790b3bfcc1dc7bb0143c654a33f2e2f5888ae", + "transactions": [ + "0x01f8d4870c72dd9d5e883e75830279d1830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c4f2fdd3d218cddc4656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e7d55978188f31ab090b1f10d8d401a66356b11ca8c296384a0a51e36e6ec11f80a08c13050003ddcd771f0fec8d1b89878ce5a27e037db9429f1d109aaef82789f5a018ee9dccf551e5444ce9833475c88d1c0ddb2101104f7164126c7856ad4c1164" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcc9476183d27810e9738f382c7f2124976735ed89bbafc7dc19c99db8cfa9ad1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np67", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2256ff7bd7ede2f79b3392f7898790b3bfcc1dc7bb0143c654a33f2e2f5888ae", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0aef69115f48eb6fbb8edd230c372b670502469d2172a2bebed94e19c97bf267", + "receiptsRoot": "0xe3c4e63900d391a75cfe5ee6bb7369b9098e65dc9696f770dbfbcb859b46a2a2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000009000000000000000000000000000100000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x43", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x29e", + "extraData": "0x", + "baseFeePerGas": "0x22a9e", + "blockHash": "0x6163d0b7f02b214352ded0703f0e17a07ffd6b732cf37498e0ea7326863972eb", + "transactions": [ + "0x03f8fb870c72dd9d5e883e760183022a9f830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c830865895079ba54656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0412379b7f583981ea6e84408cba75ced69039e07ce9cdaa32a8a9dac997aaafb83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0fef9b70f4e7ee3d672ab232eed3bec3848bc09d3605a903b2441923255454e68a05758f2d31da55b029c5a2c3171f9403fdde911d63722385217e2def96d11b87c" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xf67e5fab2e7cacf5b89acd75ec53b0527d45435adddac6ee7523a345dcbcdceb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np68", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6163d0b7f02b214352ded0703f0e17a07ffd6b732cf37498e0ea7326863972eb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x80781ed49b23a46e97b31ec8dcd53fe51b069cbe29c9059f8b773c2c93303ace", + "receiptsRoot": "0xf8e5ad4aed3c039edc467864aff788852767d1c4a20c83f3fa61007cde5a8acc", + "logsBloom": "0x00000400000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000008000000000002000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x44", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x2a8", + "extraData": "0x", + "baseFeePerGas": "0x1e551", + "blockHash": "0xa5662af7bb63607ebbc0c5ba713be53a59b376199c9f702b141d4b2cf75571b8", + "transactions": [ + "0xf876778301e552830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ca45bff2be728c2a3656d69748718e5bb3abd10a0a0637b96978972ace94aa6b3dc16863c4c205f86005b7ad7876604edd0b5dcffcea005525d14e41366ef8e2d7a7dac83ea9beda14c6271773fe543dc053b22bc939f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe20f8ab522b2f0d12c068043852139965161851ad910b840db53604c8774a579", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np69", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa5662af7bb63607ebbc0c5ba713be53a59b376199c9f702b141d4b2cf75571b8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd4dc380582a6502e31b2981b10348a41e347cce67dbefd9cd0b256ecae8497ba", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x45", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x2b2", + "extraData": "0x", + "baseFeePerGas": "0x1a8ad", + "blockHash": "0xc2f77b16764d5704a9c3fc3ccdc291c2301b512341ed07de3420e05814f38f44", + "transactions": [ + "0x02f86c870c72dd9d5e883e78018301a8ae825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0b180dd7d638a1ee48b760f539880f22ce181f24c4f19cd81a3bd9bc4889771e5a01a78726e8eaf502fac630205fd3a783e99717fc0d01a97b13c2e0e0ce0ebbb79" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf982160785861cb970559d980208dd00e6a2ec315f5857df175891b171438eeb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np70", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2f77b16764d5704a9c3fc3ccdc291c2301b512341ed07de3420e05814f38f44", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x06ea061dfa57f22d1f8e3ffb69d504b38f4c81e4c79f885a292e06f6f797448f", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x46", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x2bc", + "extraData": "0x", + "baseFeePerGas": "0x1739a", + "blockHash": "0x0f684901e87fafdad7d7ffe9f324a534b06cfc52bb98cfd6937ad3373edbe050", + "transactions": [ + "0x01f86b870c72dd9d5e883e798301739b825208942d389075be5be9f2246ad654ce152cf05990b2090180c001a0ef28e0030d89af2f11006a9ba0f24be22336f00c930a4650e0c527e12c697992a07b186a3fa04ad8a6ad04b637060a816f58e68bc71fca5d8fe15f0dc670657f2a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x230954c737211b72d5c7dcfe420bb07d5d72f2b4868c5976dd22c00d3df0c0b6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np71", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0f684901e87fafdad7d7ffe9f324a534b06cfc52bb98cfd6937ad3373edbe050", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xeeebbcb11f4cae22dc094529622b5447de8cf3711f5f62d61e91c03d58dfbd87", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x47", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x2c6", + "extraData": "0x", + "baseFeePerGas": "0x14529", + "blockHash": "0x7ac52282fa3642fe038111e06c27e42bb80e6687faff3a80802b98c0046cff14", + "transactions": [ + "0xf8697a8301452a82520894654aa64f5fbefb84c270ec74211b81ca8c44a72e01808718e5bb3abd109fa0d8f3e3854eebe13f0c2c5a9a086625e9a783dd5f78abaa521f9373df8d72c1d0a063c664d9e97dcc81eca63119405dc35becafccfb5b916b142cd6719001cb3899" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb7743e65d6bbe09d5531f1bc98964f75943d8c13e27527ca6afd40ca069265d4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np72", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7ac52282fa3642fe038111e06c27e42bb80e6687faff3a80802b98c0046cff14", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc02ebc764f72e04d2c52303b225236c219a3b495bb71bbe714422ba3ebc275df", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x48", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x2d0", + "extraData": "0x", + "baseFeePerGas": "0x11c86", + "blockHash": "0x6ac35d9c3afb594c2625d6aa43c248e7f1ebca6cbb3ab4381e8532390005e4d4", + "transactions": [], + "withdrawals": [ + { + "index": "0x5", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x31ac943dc649c639fa6221400183ca827c07b812a6fbfc1795eb835aa280adf3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np73", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6ac35d9c3afb594c2625d6aa43c248e7f1ebca6cbb3ab4381e8532390005e4d4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x691f24e77ccb290db740fdc2461d6e88e7399b205bbf1b3f277eed2f504bef78", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x49", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x2da", + "extraData": "0x", + "baseFeePerGas": "0xf8f6", + "blockHash": "0x1e3f81c1be76102b47f9d823bb475a6061f72286e53a8d72abc2d363567498ba", + "transactions": [ + "0xf8837b82f8f78301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa01a2c152b4497e19b7e724411e8a6fbd5f83a68170a9df80cc84ae05e8ca999b7a022ed8a35c5c8b0c78c05bdb2f4c8cf37acfdb3e2185b51ab4192549aec484e6d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xded49c937c48d466987a4130f4b6d04ef658029673c3afc99f70f33b552e178d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np74", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1e3f81c1be76102b47f9d823bb475a6061f72286e53a8d72abc2d363567498ba", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b0d0fe24e13177b0cb5a28d6373d104236ccb98fbf6cb10ed29d1ba67fa9dd3", + "receiptsRoot": "0x3969065861bedbd5387fb8b39289a77281e33297ca1e3ba1ff99ee964a5784f3", + "logsBloom": "0x000800000000000000000000000000000900000000000000002000000000c0080000000000000010000000020000000000000004100000000400008020100000000000000000000000000000001000200000000000000010000010000000000000000000000000000000000000000000040000000000000200000000000000800001000000000000000000000000000000000004000000000000000800000000008000800000000001000000000002000000000000000000000000000000080000000000000000000400000000000000000000000000000000000000000000000000080100000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x2e4", + "extraData": "0x", + "baseFeePerGas": "0xd9dd", + "blockHash": "0xb3633d86d73d0b3c8ee7b906a5a0d4bc5ea1bed0490eb0211164833cf5a4b3f4", + "transactions": [ + "0xf87a7c82d9de83011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0f7d00688d1f40250cdb8c619eda10279419faf6472ee3aa7d1feaa1e0bf7efdda017d632024676f4ef25a13722ed514b057ea2cbd71ee991d87a3af5d8482e0a1d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa0effc449cab515020d2012897155a792bce529cbd8d5a4cf94d0bbf141afeb6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np75", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb3633d86d73d0b3c8ee7b906a5a0d4bc5ea1bed0490eb0211164833cf5a4b3f4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c4a0b2cd0d38b00231f79f70a66a68702d667bd74b7aa1330760bcb768900dd", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x2ee", + "extraData": "0x", + "baseFeePerGas": "0xbea5", + "blockHash": "0x502288a02dc23356064d1f98cd38f8e346943b6f6837f0bf98f63534c2027ca9", + "transactions": [ + "0xf8657d82bea68302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0516d936b4d302f4b4b967654d6241e7994da2c03543a97f4d80bc07fee475f58a012daa6b095ce29321e499ec8d2e7d3e769608987216e241d64f84b6579714ca6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1f36d9c66a0d437d8e49ffaeaa00f341e9630791b374e8bc0c16059c7445721f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np76", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x502288a02dc23356064d1f98cd38f8e346943b6f6837f0bf98f63534c2027ca9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb6a97798efa3805c67d7259cf491abfae020063aaf5f2feed35e93dcfea9f172", + "receiptsRoot": "0xbd7ba02f42baaba5afcb42284037349a6efa8e3f3d7ab3708a0699ddd73c601c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000080000000000000000000000000000000000000004000000000000200000000000000000000000400002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x2f8", + "extraData": "0x", + "baseFeePerGas": "0xa6d6", + "blockHash": "0xb2145a089c38b7db50fc671aa89fca64e00fa383f540f3c704ed51e7f2179f3a", + "transactions": [ + "0x02f8d4870c72dd9d5e883e7e0182a6d7830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3acdabed71e665d0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a041565ae6f06f2555139f444c467d6b709b45180aa0c6b15bb5b1388d55ef952c01a0cffc0f208f83285346026b83f2f5ba195f945ad960f36ce58acb16009de6cfaca068fd55444b5a2fce5d02a87a91ad6dc56928196a22068fa1758bb2457c15da4c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x34f89e6134f26e7110b47ffc942a847d8c03deeed1b33b9c041218c4e1a1a4e6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np77", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb2145a089c38b7db50fc671aa89fca64e00fa383f540f3c704ed51e7f2179f3a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c77ef683c268de05888918e6561811589e39b2847f09eca14cd12df1264b96a", + "receiptsRoot": "0xe680fa7144191a3cf69ccec9595d61c7d7d0c32d5ee17d9b5438f3532262508f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000080000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x302", + "extraData": "0x", + "baseFeePerGas": "0x91fe", + "blockHash": "0xf0c902bd6d37bdecc5d0b17b012dbabf6856efe771bc52c790be6127b8b8a9ed", + "transactions": [ + "0x01f8d3870c72dd9d5e883e7f8291ff830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3bcdbc5784078a41656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a024a4daf5b3cac3bf3066902cda09da0fc862e0a6723c47981ed601782ad6907901a0ee85123914a3aa5f95b01a79655cc1f7fb805fb946305eb4a4e6c45e63b61146a06f65c10b513b8c62ec6eca0817a310160feef72e30640bd0dcade50073d4f2a6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x774404c430041ca4a58fdc281e99bf6fcb014973165370556d9e73fdec6d597b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np78", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf0c902bd6d37bdecc5d0b17b012dbabf6856efe771bc52c790be6127b8b8a9ed", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1ffd3bf8da28d4c548f4e514d43d10194031b9dc5cf5eaed1ff5a57ab36711cb", + "receiptsRoot": "0x4a34ffe81cd211ed9e5fe067a9cfa19fb29d00dfaeabc3f54cf50382500a0019", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200004000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000020000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x30c", + "extraData": "0x", + "baseFeePerGas": "0x7fc0", + "blockHash": "0x0e065a7c1d66be9a7505eaa9846edba1efbc5a2643b0cde0dc11ab9b0e82d2fb", + "transactions": [ + "0x03f8fb870c72dd9d5e883e818001827fc1830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c2d5a0323bb16361f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a087dfa85154edde1626e3a09196eab4b60f71887ec7b50ccbbe7ec76c0be6bdff83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a03a16a62e2d20179fb36e647559caed5f827dd7fdc1777b3e687239c0bc331b40a0750b6366c5221fc164daf878b0d8c10fbf8c1cabaffa2733423a85854ce197c5" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xd616971210c381584bf4846ab5837b53e062cbbb89d112c758b4bd00ce577f09", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np79", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0e065a7c1d66be9a7505eaa9846edba1efbc5a2643b0cde0dc11ab9b0e82d2fb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb9782d7da020d4884445bb656b079722cb8bb4583a4a2eca1c5974c258554751", + "receiptsRoot": "0x91e123290f40baef855faafc638e4a0fb8e66f75f017102a0d0868297be67cfb", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000200000000000000000000000000002000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x316", + "extraData": "0x", + "baseFeePerGas": "0x6fca", + "blockHash": "0x7a5a9823699ec0f335d977fc08ca50d0786b044c177fadab0f36957d5ee8a6ef", + "transactions": [ + "0xf8768181826fcb830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c17df9eb398ae59f4656d69748718e5bb3abd10a0a003340fecb9ea01552af2504c98160019eaa42c855ed117749d37b724ce620601a04d9acc9f0e3232018c44e7b5321d22662a3dbb54c4697ddf4f1145ca67d10965" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcdf6383634b0431468f6f5af19a2b7a087478b42489608c64555ea1ae0a7ee19", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np80", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7a5a9823699ec0f335d977fc08ca50d0786b044c177fadab0f36957d5ee8a6ef", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x182f327169e1cb576c48d7a9572fbb0cf7f0d225e54d20a954c5e578d69fd53d", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x50", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x320", + "extraData": "0x", + "baseFeePerGas": "0x61d2", + "blockHash": "0x0c2f74470c7439c7e783de2e128f65e66d794d01c2bbabe225599eb81927f680", + "transactions": [ + "0x02f86c870c72dd9d5e883e8182018261d38252089416c57edf7fa9d9525378b0b81bf8a3ced0620c1c0180c080a0ebc44bd7b8c39ecdc6cc765d875b385d9fb0cf045e32c1b4ab3d22241e7fb4b7a03d190e6a241ee75b8c85438d705c262ca58659710dfe38b97c761d7d13d446a8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x00ec22e5df77320b4142c54fceaf2fe7ea30d1a72dc9c969a22acf66858d582b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np81", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0c2f74470c7439c7e783de2e128f65e66d794d01c2bbabe225599eb81927f680", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd4e910f9fd994562b4360fb5559afc2bc1110371b11abf616c4bb965845d0bcb", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x51", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x32a", + "extraData": "0x", + "baseFeePerGas": "0x5599", + "blockHash": "0x7489436084d1c2fbd1ef76bd84ee9ff43e054e6ca744fb1ad299f8fb6a5171c6", + "transactions": [ + "0x01f86b870c72dd9d5e883e818382559a825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c001a02a7d2a3e2d41438dfe5475471cec7e56bd1c81266f47344535c6318b3a99fd68a00991dca22170ff4884e9f4303163e10c25960dd9348eadc244e05f8e5229c56b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcb32d77facfda4decff9e08df5a5810fa42585fdf96f0db9b63b196116fbb6af", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np82", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7489436084d1c2fbd1ef76bd84ee9ff43e054e6ca744fb1ad299f8fb6a5171c6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc87c01bb88b69df7936fde7d5eebbe8c8f7f5f2a9e0b2dd73e362cca15a9ebd3", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x52", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x334", + "extraData": "0x", + "baseFeePerGas": "0x4ae7", + "blockHash": "0xb535bb07496aa8764a751097afb4fda7881b9de41e6f3c4c329360a808caff31", + "transactions": [ + "0xf8698184824ae882520894717f8aa2b982bee0e29f573d31df288663e1ce1601808718e5bb3abd109fa086a4fc9f76099c05095cb8e166ac7c4787800a2068ce52721c78e642270fd987a04ee2856ebdcb0ac92d683f3d6e7ca3a149f8fbc77bad4ac767c29a256e42ac6b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6d76316f272f0212123d0b4b21d16835fe6f7a2b4d1960386d8a161da2b7c6a2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np83", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb535bb07496aa8764a751097afb4fda7881b9de41e6f3c4c329360a808caff31", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7aa894a3689264d49f1055a6842e045acdf00ae2b5e12b211cd40d70c47a4e05", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x53", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x33e", + "extraData": "0x", + "baseFeePerGas": "0x418b", + "blockHash": "0x1237af5eec8dabdae0efd403a87ef5588b2dbd724946f41c7e161df50328e468", + "transactions": [], + "withdrawals": [ + { + "index": "0x6", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2de2da72ae329e359b655fc6311a707b06dc930126a27261b0e8ec803bdb5cbf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np84", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1237af5eec8dabdae0efd403a87ef5588b2dbd724946f41c7e161df50328e468", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe38021b2014f295451d83e2b8f68f31f2faa6a43e27900f628cd836f8f6e422a", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x54", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x348", + "extraData": "0x", + "baseFeePerGas": "0x395a", + "blockHash": "0x7bb88dc7b037cc2aa86a83318f9e2db824f840e0c04526f61fd2921f327eab14", + "transactions": [ + "0xf884818582395b8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a04a7a1795e316e2ad3abceb425aa55df15927308048e2a9dea4b486d66658f123a06ca3114fcbc80ca53c48072c795e1ce3d391808e75463a63f1e191838d9609b8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x08bed4b39d14dc1e72e80f605573cde6145b12693204f9af18bbc94a82389500", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np85", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7bb88dc7b037cc2aa86a83318f9e2db824f840e0c04526f61fd2921f327eab14", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb714b8ca31d57e62146b43e6442498002810cbfb49bbc5b6a08a5b160bfc3970", + "receiptsRoot": "0x0138ed3983b7647acc046786b4b6d86708d0f183403b9a77ea595644e149a5ff", + "logsBloom": "0x14000000000000000000000000000000000000000000000000000000000000004000000000000000000020000000000000200000000000000000000000000000000000000000000000002000020000000000000000000000400000000000000000000000000000000000000000000000000000000001002000001000000000000000800000100000000000004000000000002000000002000000000000000000100000000000000000000002000000000000000800008000000000000000020000120000040000000000000000000000000000008400000000000000000800004000004000000000000080280000000000000000000000000000000000000010", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x55", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x352", + "extraData": "0x", + "baseFeePerGas": "0x3231", + "blockHash": "0xe8235717342e9768bf65d0600947b88bebc1d922822b1cc577075dd7ef002462", + "transactions": [ + "0xf87b818682323283011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa014e3aefe0eff66f1d9ad9528bd9da9b03983e8cff43a31b2e778efcbda8930f5a0077f29ae0c9b1d26866c2eafc0527772517fbdbe18df4478308d662358250f77" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe437f0465ac29b0e889ef4f577c939dd39363c08fcfc81ee61aa0b4f55805f69", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np86", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe8235717342e9768bf65d0600947b88bebc1d922822b1cc577075dd7ef002462", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1841c9f0c510c24ab42d67869a29f5adfd06b6d6c5b5ddee06c4cfcbe5c5d0f9", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x56", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x35c", + "extraData": "0x", + "baseFeePerGas": "0x2bec", + "blockHash": "0xf321197dfc592eb856c14ffe0ed175cbb25105b435473559447d58154769bcc0", + "transactions": [ + "0xf8668187822bed8302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0aa147aa4c44e555f9e8873cd8b3afb39b241323cfa077523a747495b3ca29e63a05c3d48da118d887c83a4261eb09f7d83c948b9e3f24ddce4708deaa62c5d98e3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x89ca120183cc7085b6d4674d779fc4fbc9de520779bfbc3ebf65f9663cb88080", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np87", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf321197dfc592eb856c14ffe0ed175cbb25105b435473559447d58154769bcc0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x41dcdaa9f663b966c234de0aedd89a4a1692c0bf0275081261e82139194bf60a", + "receiptsRoot": "0x336786bdc663d43ebabeb886381cb2e7ca199608ccc0465cc994123bbbbdff0d", + "logsBloom": "0x00000000000000000000000000000100000000000000000000000000800008000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x57", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x366", + "extraData": "0x", + "baseFeePerGas": "0x2670", + "blockHash": "0x2b09c7fb6f54983fcee6cbcd8eef58ac886978c5ccf72edd52795a95ce956c1f", + "transactions": [ + "0x02f8d5870c72dd9d5e883e818801822671830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8e5b86c510108d5c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a000f7ca033c24d91f8fc39cbf0edc8a43192507f93d7316f311b05eeb85921eed80a078ec0616bbfe023736d088366d8893c2170c658abc2ec2b8f06ff6fa5fc256cfa07b6597cc5c652edc098335e1f1f16424e77e21e9446cb2d9e7d2be7b54f2aef6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb15d5954c7b78ab09ede922684487c7a60368e82fdc7b5a0916842e58a44422b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np88", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2b09c7fb6f54983fcee6cbcd8eef58ac886978c5ccf72edd52795a95ce956c1f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0a92d83649ae6489939a153a7e3cb81bc0325aacb18b9575afb916d8d270beff", + "receiptsRoot": "0x5f1c9b9dc8dca44c88617679768cc2d1ad31b0ebe7c614d1fafee6d9999c9152", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000010000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x58", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x370", + "extraData": "0x", + "baseFeePerGas": "0x21a3", + "blockHash": "0xc39e1323f7b6949a21a1bb6f98d9ebd22d3e776e07676c4cce9fc4174deda0dd", + "transactions": [ + "0x01f8d4870c72dd9d5e883e81898221a4830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdc2a7ef24edc33ac656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a07c24a68c92e3b68daa153ae82eff9be1ebbab973384e0f4b256f158f93c5d52580a0831b8f078baa90df02337d5459d784fe392f1ca33a4ca7fb35ae5dc178470c42a035748828f384b1b35b60f8b8590dbfb5911dc0dc3e33bd6fcb487d9d7147af51" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xad13055a49d2b6a4ffc8b781998ff79086adad2fd6470a0563a43b740128c5f2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np89", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc39e1323f7b6949a21a1bb6f98d9ebd22d3e776e07676c4cce9fc4174deda0dd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x47f0051f4be1a77be57f28680637127ef2d03fec527c038b066f492063465932", + "receiptsRoot": "0x5406859786ff896ef8beba8d78f442b4d12652ab0fafe3938e9169ada2ecbd27", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000008000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x59", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x37a", + "extraData": "0x", + "baseFeePerGas": "0x1d6f", + "blockHash": "0x8b79d25d91549e398a5fa94bf6f56b1837b11d042b65811411fe53100ee18c2e", + "transactions": [ + "0x03f8fb870c72dd9d5e883e818a01821d70830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cd458dc07963e0c5c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06e2466f20ef20cb42d216dbf4a0d934199213e9b8d75bedc9c2d3e038a58747483020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0433af35ed09ed9256baa86d2e0c2c30ea9bd210e6962686f2d3a8b4da1908f15a03f98e493e855d7c3e4c4600bda0508ead72e28a07a24226727208a15c3091c94" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x9e9909e4ed44f5539427ee3bc70ee8b630ccdaea4d0f1ed5337a067e8337119f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np90", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8b79d25d91549e398a5fa94bf6f56b1837b11d042b65811411fe53100ee18c2e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc66042410497fe5b80bc68d333229ae61dca3b0e109c6daaa3bfff8d8faa7908", + "receiptsRoot": "0x9670d0efa9339a29aa56b91a617ed8f9b2e2f133afefa3835004ad7437127b96", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000400000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x384", + "extraData": "0x", + "baseFeePerGas": "0x19c2", + "blockHash": "0x5d33f0b59d254d470019eac98e38a2a90468e5873067bb5e3cf8e0ccb84ad048", + "transactions": [ + "0xf876818b8219c3830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cb465b4f1541b4582656d69748718e5bb3abd10a0a0375b35765fb3e1e7e1c2677f15c2c1a583822be8a48c4ed15199ea13a7d5e76da079c3a952c79c81ecfbf37ab16b18ef010572ee9f7ed965ce29d04baf09ade62b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbf1f3aba184e08d4c650f05fe3d948bdda6c2d6982f277f2cd6b1a60cd4f3dac", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np91", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5d33f0b59d254d470019eac98e38a2a90468e5873067bb5e3cf8e0ccb84ad048", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe47d0c7ab29cdf81e0e85896ea7ae19d982b9d703113997a48b4df8dd86a76bb", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x38e", + "extraData": "0x", + "baseFeePerGas": "0x168b", + "blockHash": "0xae8ff3f7d1bde73dbd36f2293e845fa059a425576be62bffdc4ba6a2e1be5afa", + "transactions": [ + "0x02f86c870c72dd9d5e883e818c0182168c82520894d803681e487e6ac18053afc5a6cd813c86ec3e4d0180c080a085716712d538ede8849aaca9d7b79c7c91c4cae166df0f6d381e7667f0c2f732a0471c89e0b46db402eebfa4ac5495101b36b275cc3fa88a58dceacadf514047c5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbb70fe131f94783dba356c8d4d9d319247ef61c768134303f0db85ee3ef0496f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np92", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xae8ff3f7d1bde73dbd36f2293e845fa059a425576be62bffdc4ba6a2e1be5afa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4e68ea06813576e3022b778d12baa3a0c6e08f1d56794a95210a87219e860bb6", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x398", + "extraData": "0x", + "baseFeePerGas": "0x13ba", + "blockHash": "0x8d1fd7f00d80dd8d4c799dd381b71eb349e695d4190f97e206550ddde559adf4", + "transactions": [ + "0x01f86b870c72dd9d5e883e818d8213bb8252089416c57edf7fa9d9525378b0b81bf8a3ced0620c1c0180c001a0e4568a847a164ca753f4b1ffeb8198bdb0d3118950051738177269c588c50548a073417a8864d9dcf956ed9226081dbcd9bbf7530eff2f7ba55b64793c70ea13dc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6a81ebd3bde6cc54a2521aa72de29ef191e3b56d94953439a72cafdaa2996da0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np93", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8d1fd7f00d80dd8d4c799dd381b71eb349e695d4190f97e206550ddde559adf4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x87962ddb7af98bac117f959ef2a9db93891f07c7eb14ce6462fbdb98ccdd2598", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x3a2", + "extraData": "0x", + "baseFeePerGas": "0x1143", + "blockHash": "0x16b224e441aa3817c03949a4e7930d87e0ff9240d0f2955fdebf23a7f410148a", + "transactions": [ + "0xf869818e821144825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd10a0a092972bf43d78d5819a1bdf53e7efeb459eb8a792ff3e234ada208d7c5e4053d3a067fe419c0dd23c87fcc35b22c456148d64fda89bcb7cc42d09611d6891d988ca" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4c83e809a52ac52a587d94590c35c71b72742bd15915fca466a9aaec4f2dbfed", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np94", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x16b224e441aa3817c03949a4e7930d87e0ff9240d0f2955fdebf23a7f410148a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e706e5f82ffa370e285ac51e5448ab881d94fb03e4de6309fe23c97190ae7fb", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x3ac", + "extraData": "0x", + "baseFeePerGas": "0xf1b", + "blockHash": "0xcf191216637f378d2ee7f2dd47d9a330b3cdd0e20d7a27f8c8bbfb1df421a9eb", + "transactions": [], + "withdrawals": [ + { + "index": "0x7", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x268fc70790f00ad0759497585267fbdc92afba63ba01e211faae932f0639854a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np95", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcf191216637f378d2ee7f2dd47d9a330b3cdd0e20d7a27f8c8bbfb1df421a9eb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb042a00ed6a77273755ab545b03fc1144ddf3db74032f1e81d69dd8431a17bee", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x5f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x3b6", + "extraData": "0x", + "baseFeePerGas": "0xd38", + "blockHash": "0x962e7b0b218852cf9c41bbb7fd8908baceece8e7e4c8b2b5d2ab5390f0561b02", + "transactions": [ + "0xf884818f820d398301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0f373452c20d1ec4a5f1f9255b970391bb33a96fb2428012cdc7d2402f50f9510a014d393105d47c725cb239a6dc7929f41cec85ea2791245ec7328bf909b801825" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7e544f42df99d5666085b70bc57b3ca175be50b7a9643f26f464124df632d562", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np96", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x962e7b0b218852cf9c41bbb7fd8908baceece8e7e4c8b2b5d2ab5390f0561b02", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc3d437dbca917bed12247fd4d677cfda795617d2a0cac9b1eb4d84dbcf3e4e40", + "receiptsRoot": "0xb405ff6fd8cc52640cb348d177599ba52ce5dc59921931c9d718f749ae77516d", + "logsBloom": "0x00000000010000000020000000000000002000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000800000400004000400000002080000000000004000000000000000000000010000000000000000000000000000802000000000800500000000000400000000000040000008000000000010000000000000400000000000000000000000800000000000000400000000000000000090000001000000000000000000000000000000000000040000000000000040000000000000000000000000000008000000000000000010000000000000000000000000000000000000000100000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x60", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x3c0", + "extraData": "0x", + "baseFeePerGas": "0xb92", + "blockHash": "0x13dc0c8daad8b71fc3f0e62a209b9710cc78934504a6c2e990549a2e473152ed", + "transactions": [ + "0xf87b8190820b9383011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0c1298064eb80e75637fcdff710a12e9dc1605aca384b5b592253529c1e8b355da0073cbdd116c442617c0dc6851a8da08694352b93c7a5dc7efcab67166a3be3bf" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd59cf5f55903ba577be835706b27d78a50cacb25271f35a5f57fcb88a3b576f3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np97", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x13dc0c8daad8b71fc3f0e62a209b9710cc78934504a6c2e990549a2e473152ed", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x34225405226610fb240063eb3c644c4127c0ea7851574098de3bd90bd276da11", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x61", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x3ca", + "extraData": "0x", + "baseFeePerGas": "0xa20", + "blockHash": "0x333cea669c831ec4b078f39fb05de11664b438741df8d8cd37ea771049dc1f30", + "transactions": [ + "0xf8658191820a218302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a09f934cddc23c26d67cf15b795a2722166f9569fc065a5268ccd163511bd858e3a0305fa6b3562156f48c780d8082402a8c6c9a217f075ade3369217238f169e3bd" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x551cced461be11efdeaf8e47f3a91bb66d532af7294c4461c8009c5833bdbf57", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np98", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x333cea669c831ec4b078f39fb05de11664b438741df8d8cd37ea771049dc1f30", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xea8d727fd31590d4639fc0cc8c1b2f0e6ac99087f54b79a828771d0142e91bb7", + "receiptsRoot": "0xc2b73eff237f18f6bce6ce993ae0f47ddc37bbbd547c4088022e93ed833e1597", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020009000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x62", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x3d4", + "extraData": "0x", + "baseFeePerGas": "0x8dd", + "blockHash": "0xe377c7a76084c79781cecc442ff79d5a76ab95710878ef19fbaa2ae3b3806d2e", + "transactions": [ + "0x02f8d5870c72dd9d5e883e8192018208de830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c899b80c8dc11d5c2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0761bf5fb1730fee0e499bb1806b9ae14394e673ab9c1dc12e95b9d3f1647cecd80a09b91b35faf73278875d8b28749c5dd841293b70dfbdc96e04d89cb42cda3b03ea063366cbfc247a591f88a6bddbb9cddc21eadea8110091b1d22c7c57acba40d5b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc1e0e6907a57eefd12f1f95d28967146c836d72d281e7609de23d0a02351e978", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np99", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe377c7a76084c79781cecc442ff79d5a76ab95710878ef19fbaa2ae3b3806d2e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9017d746d09d04aca579fe8eb3c9e71c7bce382d5bae554cef86e49f875aa41b", + "receiptsRoot": "0x54b3b8ed5b54b9ec9b5971b24e235b772e34ad7a5bdd4fd296b48ba684baa071", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000004000000000000010000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x63", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x3de", + "extraData": "0x", + "baseFeePerGas": "0x7c2", + "blockHash": "0x583000818d360ecba85c0924bee169e64dc799c21d5e468711324c423ae1246c", + "transactions": [ + "0x01f8d4870c72dd9d5e883e81938207c3830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c913746d244054c52656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a002bd9d62880450596e11c3417f2644a81f7cc233a05394bbbfb58428ed53f41301a0f1cd3b7cc4ea54fad0018a7fb75e8d0f107bf31f5c71442703c9b0c683959285a031e17437c91b89caf38aaecf3844414afa1a3f07821d339049b45706a16ab08d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9d580c0ac3a7f00fdc3b135b758ae7c80ab135e907793fcf9621a3a3023ca205", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np100", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x583000818d360ecba85c0924bee169e64dc799c21d5e468711324c423ae1246c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x338950c7ec1e65de1294e3016ca6d64e3f0ff6e1fa53151aa5724c9a52ae4f92", + "receiptsRoot": "0x7f9dc480827d9967528a81ce3e2ab6861814297b6d40c45cead1101effd467c4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x64", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x3e8", + "extraData": "0x", + "baseFeePerGas": "0x6ca", + "blockHash": "0x89628d10b5c915f51b8def1dd2ea8a9b2e89b30da4435cbe0f5003651bb05e8a", + "transactions": [ + "0x03f8fb870c72dd9d5e883e8194018206cb830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c019f76127757f5d2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d75c9abb1414054ca164bba2f8c09917fb90c24789feaa311ee34a0b3f4a82f083020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0289f457754837be82c7d03b5981b35a569e55d4b30eb3aea79316d672c7b0536a06482af279d5b870ce13e9635e3fcb9186d92418967247ca510cbad40dcd9153b" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xa7fd4dbac4bb62307ac7ad285ffa6a11ec679d950de2bd41839b8a846e239886", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np101", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x89628d10b5c915f51b8def1dd2ea8a9b2e89b30da4435cbe0f5003651bb05e8a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xad6b17cc65d1fdd8f28fcb3ee39f548408af6b1af05380c1961828bc9dba46f0", + "receiptsRoot": "0x8981ee59e3934e570ba1fb69f44a1d8986c1446a4f48f2e0756a24fa1f740f3d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000002000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x65", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x3f2", + "extraData": "0x", + "baseFeePerGas": "0x5f1", + "blockHash": "0x0de163e9e16a0d88854f6e66f30e50d44d2e569f9f581e9a368adaf1f4a5ca6a", + "transactions": [ + "0xf87581958205f2830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c18c281524d7c4ff0656d69748718e5bb3abd109fa0f047c5b762e2efed8e71c169f23fd0c53ab5fcf34d3d472ddc0310b05ff226209f3cd176171de0ef5bcecbd510427783369ffd540c7bde1c61f43a140ff99685" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6ba7b0ac30a04e11a3116b43700d91359e6b06a49058e543198d4b21e75fb165", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np102", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0de163e9e16a0d88854f6e66f30e50d44d2e569f9f581e9a368adaf1f4a5ca6a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x23a81b5965be134234ba9fab880fea28a11443538394a1a251bbbfa47e925c38", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x66", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x3fc", + "extraData": "0x", + "baseFeePerGas": "0x533", + "blockHash": "0x0220ce36b8436b0b234a97413f91bd64f6d41cf4b10fd0bd10e53d8b8f7d79ea", + "transactions": [ + "0x02f86c870c72dd9d5e883e819601820534825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c001a013a8f22d2dd004d6646400fc702d2e61e66b617312e69c8e550ebfb0d84c5d3fa03358b4f85b43c55fb6e153cd64120ff6ee2ec0f4a43dbf8cead59653c4c3271f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8835104ed35ffd4db64660b9049e1c0328e502fd4f3744749e69183677b8474b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np103", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0220ce36b8436b0b234a97413f91bd64f6d41cf4b10fd0bd10e53d8b8f7d79ea", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba4c766f7fa091672b98e7db67aa7c2573d85102eecb603daa4447ca95903960", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x67", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x406", + "extraData": "0x", + "baseFeePerGas": "0x48d", + "blockHash": "0x73d6ae295486e56af688dc96243f9841a3a40c4100ea132f2c0d3c7a92d7a724", + "transactions": [ + "0x01f86b870c72dd9d5e883e819782048e825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c001a0a5d1e43dad93fe87054a2f49c363c340be697f12e993168de197bd80f052100da012aacc66ff5d1aa9b6baa6744c91d795609889866c9a8d427cd761a9199df346" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x562f276b9f9ed46303e700c8863ad75fadff5fc8df27a90744ea04ad1fe8e801", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np104", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x73d6ae295486e56af688dc96243f9841a3a40c4100ea132f2c0d3c7a92d7a724", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x52eb22576f77ca03957b5f63ade7342c6bf8aacb784592a3909868a7a21f4374", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x68", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x410", + "extraData": "0x", + "baseFeePerGas": "0x3fc", + "blockHash": "0xc57eea72ca6da6fa23e48e0a02d56ccaa84b59f4f663d04d492ba107f6989475", + "transactions": [ + "0xf86981988203fd82520894717f8aa2b982bee0e29f573d31df288663e1ce1601808718e5bb3abd10a0a097a3b18f6239b6aec0a821a378cae98a6623db266debcbd9eed9c1d5bc40f6baa0490640fa301fc984f82ce5c262befaff288336d97bc20d3ceae26eb01689cc04" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd19f68026d22ae0f60215cfe4a160986c60378f554c763651d872ed82ad69ebb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np105", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc57eea72ca6da6fa23e48e0a02d56ccaa84b59f4f663d04d492ba107f6989475", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x97dabc3756587832d8b03b3acffca7fb7466a2ead707cc537dba31ab484880f7", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x69", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x41a", + "extraData": "0x", + "baseFeePerGas": "0x37d", + "blockHash": "0x38aa8a3150af9b19993b8d4cb3e670bb365853c341f1a24d57ba8e1328afb1ad", + "transactions": [], + "withdrawals": [ + { + "index": "0x8", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf087a515b4b62d707991988eb912d082b85ecdd52effc9e8a1ddf15a74388860", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np106", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x38aa8a3150af9b19993b8d4cb3e670bb365853c341f1a24d57ba8e1328afb1ad", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa97f3e742d168891905997ef57a1f86ecaea7d77ef1f7b2377a4460a5e2cd5ab", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x424", + "extraData": "0x", + "baseFeePerGas": "0x30e", + "blockHash": "0x853b45ca33c271b321625535fbd242f5edd582be0056641890b66a2b1fbe0677", + "transactions": [ + "0xf884819982030f8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa041897d6afedb5cb20754c2b134459edf01d22d468c5b28dcd54802a1f69fde17a04a32652d45cd541b994dcddc0ce35cf9b98cf14d19870d967ae5e6c3b5c5d4db" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf7e28b7daff5fad40ec1ef6a2b7e9066558126f62309a2ab0d0d775d892a06d6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np107", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x853b45ca33c271b321625535fbd242f5edd582be0056641890b66a2b1fbe0677", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x80c9e740cae1ac0f1eb2206c5c2b80d6a306e943f495ce8dab2a0b926ce9214b", + "receiptsRoot": "0xa6212db9ce25b219d93a8a29f40769b126d4bafd6ffccbc0880c77dbc5fa7f36", + "logsBloom": "0x00800100000000000000000000000000000000000000000000000000000000008000000000000000002000000000000000040000000000800400000000000000000000000000000000000810000000000005000000000000208000000000000000000000000000000000000200000000100280000000000100000000008000000010000008000000000000000000000000000000000000000000000000020000008000001000000000002000000000000000000000000000000000000000000000200000000000000004000000000040000000000000000000000000000000000000000000000000400000000000000000004084000000000000000000000080", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x42e", + "extraData": "0x", + "baseFeePerGas": "0x2ad", + "blockHash": "0x7bd34591adec12322873c046b6d45fc55defd4891f58e6f26970c14e964bce5e", + "transactions": [ + "0xf87b819a8202ae83011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0a17e60599dac5123759f100bab44aab2cad0a13e91134df6b840f68c47a7f020a04fe10fa48eaed38510105f9e49289da16ce716fc19af3f45434aaa50d7a16cfe" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x77361844a8f4dd2451e6218d336378b837ba3fab921709708655e3f1ea91a435", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np108", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7bd34591adec12322873c046b6d45fc55defd4891f58e6f26970c14e964bce5e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3e580ee5e9d009a82d2c87540a4263af7596886ce20ac7261a2e27c083fecd7a", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x438", + "extraData": "0x", + "baseFeePerGas": "0x258", + "blockHash": "0x8f288d915f33362322143bec0749279cdfb9f0b72e7a6c379af08c7b4f88b24c", + "transactions": [ + "0xf866819b8202598302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0b32880b6ede949484b92e883b687bd0ce727c757bd623dae2415f028b62e4e7aa02ce71b46c90e0065768640c5aa3acb7516fe5b4db286a8338b0515d406197bca" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe3cb33c7b05692a6f25470fbd63ab9c986970190729fab43191379da38bc0d8c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np109", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8f288d915f33362322143bec0749279cdfb9f0b72e7a6c379af08c7b4f88b24c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1ce25437b8a589f13b7085f231b8f7f5c4a93f885c25eb8d944886c431eb59be", + "receiptsRoot": "0x43c5f978670ef0dae590498c6d0518e967b7c7ed52111d5b13185a938af5d41a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000009000000000001000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca90", + "timestamp": "0x442", + "extraData": "0x", + "baseFeePerGas": "0x20e", + "blockHash": "0x6886974a4794aa2d984957964c2480cce1346776b180888a3777857b4405e26c", + "transactions": [ + "0x02f8d5870c72dd9d5e883e819c0182020f830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9ede968e005a23ff656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0468eae0ffdb87a4dc081a86c494969801637f690e1e1da15fb4a9d2c78272da880a0e6c33e69ea565fe18cbd379c02857aa56dfe3a972204697ac14d6619e48b2305a002b2af300ad5e3dc36b0e265c4d65cf6c13d5556cb4a1a700a8cdd719d251ee9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc893f9de119ec83fe37b178b5671d63448e9b5cde4de9a88cace3f52c2591194", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np110", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6886974a4794aa2d984957964c2480cce1346776b180888a3777857b4405e26c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xca7162623f72164aeaf374fe3c32c58cd21d8066618c32ca2a4c8c90a2025775", + "receiptsRoot": "0xdcacdeb437408789ca3bf5b1b081a9b26cc7bf6c355db7aaf17443ec89cd05ef", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000400000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x44c", + "extraData": "0x", + "baseFeePerGas": "0x1cd", + "blockHash": "0x20e5954a1da37baa1f7446598fd7d4311241c09d4283fdec67782114693bdf99", + "transactions": [ + "0x01f8d4870c72dd9d5e883e819d8201ce830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cfd87400839d77a68656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00dcf6219856f226889a2440b388d8e15f5df0eb64a7b443f3a7a5dca7b87b0f201a0cff21674476cc07b9f38cc5aab097071353760a95f9aa2e8049f80caf28f4ddca031559d3752bb3432fff6b568726d9731d15ec40fb1a3b1c4714f60468cdde645" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x39c96a6461782ac2efbcb5aaac2e133079b86fb29cb5ea69b0101bdad684ef0d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np111", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x20e5954a1da37baa1f7446598fd7d4311241c09d4283fdec67782114693bdf99", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf138a6a42f8a0b01106d265649d6e1e77bb582bcb504ac5b100ed1e7987b6e0e", + "receiptsRoot": "0x207683b9380f85f9daf6ac31b5cc7ece0a2e4078cef1134779d83b7ce7bd5ce3", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000080000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x6f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x456", + "extraData": "0x", + "baseFeePerGas": "0x194", + "blockHash": "0x48ccbd91a8643d6e270829515db0595bc97d123453e4a0bc7a1baea82ca1e736", + "transactions": [ + "0x03f8fb870c72dd9d5e883e819e01820195830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ccf12b9aa38445e4b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0165e0e0cc13ca53c5af4860637550364c5c90a512906490ace14efb53487374183020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0104f471c547d944706288931b5525d9f332410ad3ebc64963d8b8d2474b01b7ca061e0d3293304121836414e3048b13fb6f884694241d6fe7058d50b22c8604893" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x72a2724cdf77138638a109f691465e55d32759d3c044a6cb41ab091c574e3bdb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np112", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x48ccbd91a8643d6e270829515db0595bc97d123453e4a0bc7a1baea82ca1e736", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7753114a456c78900ad8e9673cf870b8c95db614a0cc1428494876fce0f54cf5", + "receiptsRoot": "0xe1b2c181ff50b25faa3594385214d87e5b6ca47a01bf95a0f3c713d755270a2c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x70", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x460", + "extraData": "0x", + "baseFeePerGas": "0x162", + "blockHash": "0xef397b238df4b06cf009bacffc969cdeb71e9d300c860286ca42ac367a950d15", + "transactions": [ + "0xf876819f820163830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6f384780a449817f656d69748718e5bb3abd10a0a0c8855b327d545d197c8ea42913d6e6f1a023c8795004d55fa73d74b2f7330996a053b7ac83526f7c656dde300e49653c1a267cd492a762fa0e052417a7ed900e84" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x178ba15f24f0a8c33eed561d7927979c1215ddec20e1aef318db697ccfad0e03", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np113", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xef397b238df4b06cf009bacffc969cdeb71e9d300c860286ca42ac367a950d15", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf5f63230b011d62f47d559f3a6d736919d6b75d8f1bd2b521835b01ee35da07b", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x71", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x46a", + "extraData": "0x", + "baseFeePerGas": "0x136", + "blockHash": "0x9a191d0332521ea449a502780c73defd9d7726f61e22c2f527a03184a51364db", + "transactions": [ + "0x02f86c870c72dd9d5e883e81a00182013782520894717f8aa2b982bee0e29f573d31df288663e1ce160180c080a0aeb9d2f1b9bb9490246a5104359ec40f1585b4432d5cd05e9ddeb472efa75e29a0465de58a9af484eb91deaf00c76a59c0327c8a2382dd2c080857e2cceb7e4257" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf7b2c01b7c625588c9596972fdebae61db89f0d0f2b21286d4c0fa76683ff946", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np114", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9a191d0332521ea449a502780c73defd9d7726f61e22c2f527a03184a51364db", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe0ac7c4f27b417077446f788d8926c18413426d90adf42b625120334373041b7", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x72", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x474", + "extraData": "0x", + "baseFeePerGas": "0x110", + "blockHash": "0x340fdec47cff7b492def7053fb1e31b0b185e4dbe7cd0f4b0d382a8dafed7ddd", + "transactions": [ + "0x01f86b870c72dd9d5e883e81a18201118252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c080a0b362243ec3185de1c86033c889074dcacc86181c8aba64aea5035ac644fcecdea06cf847a804833ae95a02f0e657fb7c794ae9106def6686d4fce01e532ba07d8b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x16e43284b041a4086ad1cbab9283d4ad3e8cc7c3a162f60b3df5538344ecdf54", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np115", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x340fdec47cff7b492def7053fb1e31b0b185e4dbe7cd0f4b0d382a8dafed7ddd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcc19587cfcd1fdce2a73ad7b0d01b4b6b0831d39107ffc3ddcef74cbacee6e81", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x73", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x47e", + "extraData": "0x", + "baseFeePerGas": "0xef", + "blockHash": "0x821c99ea8afea16f7a10bfadfedd23466f35e9bbde9ec413c2c84b7c7dcc3856", + "transactions": [ + "0xf86881a281f082520894e7d13f7aa2a838d24c59b40186a0aca1e21cffcc01808718e5bb3abd109fa067f789b6dc7e2c4128bd1873dce830a92792c36a75b8bcb1d4e227b22562a1bba04a675300d70bfc167d4a7685a9f38eb8bc3a6a87f21eaa2efd3a1e92c01e1330" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0a98ea7f737e17706432eba283d50dde10891b49c3424d46918ed2b6af8ecf90", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np116", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x821c99ea8afea16f7a10bfadfedd23466f35e9bbde9ec413c2c84b7c7dcc3856", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4c8b5d435e363146a761bc4ac3b630593d83116a4eb0373cf6d131e74bd4eef3", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x74", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x488", + "extraData": "0x", + "baseFeePerGas": "0xd2", + "blockHash": "0x5f07aa290e33f4c5f100362b8dfa284c93b910b9895f066fc2a6242698b6ed52", + "transactions": [], + "withdrawals": [ + { + "index": "0x9", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7637225dd61f90c3cb05fae157272985993b34d6c369bfe8372720339fe4ffd2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np117", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5f07aa290e33f4c5f100362b8dfa284c93b910b9895f066fc2a6242698b6ed52", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb33e182a894d3f528a4a33534816e9ef8fc0451b14abe4e6c5e151878671df7a", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x75", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x492", + "extraData": "0x", + "baseFeePerGas": "0xb8", + "blockHash": "0xbbb17f7c60251f96dc948ee25b7afc5ee511eac82fe10ca186cb860349dacde2", + "transactions": [ + "0xf88381a381b98301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0a5138be66af28cbaf455d5ed952e47b76baf14544c883d15153678fca309b9a6a05e8e0383deb815320cbaac38554ff3c5327d32ba1afcff2743faa5ab5f3fcd59" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6a7d064bc053c0f437707df7c36b820cca4a2e9653dd1761941af4070f5273b6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np118", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbbb17f7c60251f96dc948ee25b7afc5ee511eac82fe10ca186cb860349dacde2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x407c941b1a23d6111bad7e16209fb3835fcfcf9bb70cc8c6c8798fe76aaf0d16", + "receiptsRoot": "0xac3ab9bfa285995e77225cba509246d3e4dadb885d2d4143a23a2fc3abe5d702", + "logsBloom": "0x0000000000000000000000000000000000000a00000000000000000000000000000000000000000000010000000000000000000000000000008000000000000048000000000000004000000000000000000008000000000000000000000020000000000000000002201010010000000000000400000000200000000000000000000000000000000000000000200000000000a000000001000080000000000000000000200000000000000000000400040000000000000000000000800000000000000000001000000000000802800000000000000000000080000000000000000000000000000000000000000000000000400000010800000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x76", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x49c", + "extraData": "0x", + "baseFeePerGas": "0xa2", + "blockHash": "0x29e7fcb64ad5f6c93603b4ce8d738253b71bc820c4d0ad9d5438ab5eacdd88c9", + "transactions": [ + "0xf87a81a481a383011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa026855ef1a5b1ca3e15375ade2c88965bf0c7dcb5309d65c78c5010e8e6c350c7a051316a95caca985d7c43fe51b4827a08fdcfc8449bd5ccc47e7a9968b7887b6a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x91c1e6eec8f7944fd6aafdce5477f45d4f6e29298c9ef628a59e441a5e071fae", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np119", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x29e7fcb64ad5f6c93603b4ce8d738253b71bc820c4d0ad9d5438ab5eacdd88c9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe341e4d29ee872f05e45b525449bdf9536c2075a04704b307ed7864c65eae6c5", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x77", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x4a6", + "extraData": "0x", + "baseFeePerGas": "0x8e", + "blockHash": "0x2021bdc5b47d00e0f11ec24e61aa59485311e5d98f657841de44e0d1750e0f2f", + "transactions": [ + "0xf86481a5818f8302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0f46012f411a6d50ffe53fc5c22ba931db152b93ddb188f6edeee8f1ca062e9339f6e327706f4e22469b36dac8a19cbf4d65756d6bb4f3fc49e3f60d8c03aab71" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa1c227db9bbd2e49934bef01cbb506dd1e1c0671a81aabb1f90a90025980a3c3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np120", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2021bdc5b47d00e0f11ec24e61aa59485311e5d98f657841de44e0d1750e0f2f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6caa67c7b30c9fdb1af5fedd55f87696738e7d193058c3f8e1c98820c1489e62", + "receiptsRoot": "0x92c8cf691dd844327c90c5bb04bcfb5345f2ef1394ae36a75e8baa4f65f993a9", + "logsBloom": "0x00800400000000000000000000000000000000000000000000040000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x78", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x4b0", + "extraData": "0x", + "baseFeePerGas": "0x7d", + "blockHash": "0xd169f3abbf7dd41949f941333a4920bc5246531e22d02fdbe8ed03361303bf13", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81a6017e830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3549372440f3505b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0dbc7a073eb54d33d8e6dec5b0b635a874204bda1c23234ff0cca057ff8ed77f580a00b2c0cf799d43e22a728841a1494e20131a1a2b52e09b9ad57dc487af379e682a01b30b5afd63250806e718773744346534319acceb55957d43ce764163a804b84" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8fcfc1af10f3e8671505afadfd459287ae98be634083b5a35a400cc9186694cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np121", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd169f3abbf7dd41949f941333a4920bc5246531e22d02fdbe8ed03361303bf13", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3f73d33f5e42371bf65da8ffb177ee93c69428644866531d9b56691404bdf289", + "receiptsRoot": "0xb10d58cf0d745c9dbce5b4ab33542a137979527e4f053cbb44167a466bad1a05", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x79", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x4ba", + "extraData": "0x", + "baseFeePerGas": "0x6e", + "blockHash": "0x9d39f6431f7fe252031d29d7ff4f65e9948d5fdc872709df7eee4e856c0a1a66", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81a76f830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c377bce5421c11bab656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00f624930606bfcd2386d583abca6ab10227d71fc1633fea53f94bd146c152b8f80a06a33ac88f439c584e45d150712b7e7692b0d7024b3dc900539ef3247853055ada0176000dc39fcf5d596d84ea91e26fe1a211a8d62805db37eceaba5ccb59e1d18" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcc1ea9c015bd3a6470669f85c5c13e42c1161fc79704143df347c4a621dff44f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np122", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9d39f6431f7fe252031d29d7ff4f65e9948d5fdc872709df7eee4e856c0a1a66", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1d9609b90685770110b2476d46f49aea2f67737c92e6e9b5c420d2f15eb415f0", + "receiptsRoot": "0x296b867543af84c3d651cbfac504068ce97d86179ba5e6cfe14bcc44e34ed95d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000200000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x4c4", + "extraData": "0x", + "baseFeePerGas": "0x61", + "blockHash": "0x289c7906360262eebacaf52eae6931669dfb87141c14408ee41ccddb738dd7c7", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81a80162830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c1e6612d36269933d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a016bee816935475cd45501fc5fd01bf913f8ef54330a43d80ef73101a4c728b3483020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a07499c73f4295100f94ea0523fce120fded78b558a61dac9d7b2535e82710cad4a0111aae152b56480ba75a3d2ac49febb0bd173ab893b702ef664ff606551fe932" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xb0a22c625dd0c6534e29bccc9ebf94a550736e2c68140b9afe3ddc7216f797de", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np123", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x289c7906360262eebacaf52eae6931669dfb87141c14408ee41ccddb738dd7c7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5cacd008a445e93a324142ab1bfc5794f5bcce2a2b392bf929e8ad0a3aea5f50", + "receiptsRoot": "0xcfb5f26b28261eac800c3507d09de63a767f7959e88b0f4037d366e5d2133d8f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000010000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x4ce", + "extraData": "0x", + "baseFeePerGas": "0x55", + "blockHash": "0x8d2db945bede6e953aaaa66c1b859b0853a8a12cab8f9f88dc1439e1ff3ea600", + "transactions": [ + "0xf87481a956830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5a3590fbe3ffbfe0656d69748718e5bb3abd10a0a0f84a2873f18ec9922dc629b684cd45ce085ce9850201eeebdee509bfff5212e9a022cce8b8816ac12e4d36cb810d0e86123b0159c6d637a11b5d5e1740728784b6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x92b8e6ca20622e5fd91a8f58d0d4faaf7be48a53ea262e963bcf26a1698f9df3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np124", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8d2db945bede6e953aaaa66c1b859b0853a8a12cab8f9f88dc1439e1ff3ea600", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e2a98e8098df21a5e3ec8f45ae22eece90f13abef7f434d63eebe3b815199f7", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x4d8", + "extraData": "0x", + "baseFeePerGas": "0x4b", + "blockHash": "0x66457f34ca4352d6bd07e3db8cfb4f37433c0f9e9d926d5fdbd1535974a28ee5", + "transactions": [ + "0x02f86a870c72dd9d5e883e81aa014c825208940c2c51a0990aee1d73c1228de1586883415575080180c080a014420e1fc7b27d46b3c887ccdf67aed952114dd72d04bd29f06f3b4eaa6b7e81a04c54d830c147d1230a380f1183af14d39e76b2b8b1bd77be8eeb6f0b587a5341" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf6253b8e2f31df6ca7a97086c3b4d49d9cbbbdfc5be731b0c3040a4381161c53", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np125", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x66457f34ca4352d6bd07e3db8cfb4f37433c0f9e9d926d5fdbd1535974a28ee5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1eadcb4a0fe52d542e5ea4f94887a525f9b5f717472c583cbdf61931834d7b82", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x4e2", + "extraData": "0x", + "baseFeePerGas": "0x42", + "blockHash": "0x6afdc529eb5072bef6f94d783505d24465dbb564d90cd22e668c549929d19615", + "transactions": [ + "0x01f869870c72dd9d5e883e81ab438252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c080a006c8f54096b844bea98112ea6365153b95771820e116040c9b5534905c828154a07cf9595cdc1661f4180a064ca64334249c8917ce90e0ecb265678eb5b1e6e92e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xea8d762903bd24b80037d7ffe80019a086398608ead66208c18f0a5778620e67", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np126", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6afdc529eb5072bef6f94d783505d24465dbb564d90cd22e668c549929d19615", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa1bbd210e8703502ba17727b89ee0db73a83a227cb5ab0133cc99398352e296b", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x4ec", + "extraData": "0x", + "baseFeePerGas": "0x3a", + "blockHash": "0x6d83bef72d2b5bae5824e9489cd9f98336df2e38500e48a8ef3664bcf9358374", + "transactions": [ + "0xf86781ac3b825208944340ee1b812acb40a1eb561c019c327b243b92df01808718e5bb3abd109fa08e5a308f2b14221042af194e912f88dbd52c261536c913cb1190e36a432f6e87a0584c48ffe6c228afac193d806b7ad4d7a73be3ddf49fe1917d758262485f6554" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x543382975e955588ba19809cfe126ea15dc43c0bfe6a43d861d7ad40eac2c2f4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np127", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6d83bef72d2b5bae5824e9489cd9f98336df2e38500e48a8ef3664bcf9358374", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x340c95da0e49447da1de182ca9a5d02ecbc34f48d02bddfd610b07fa6b0943d2", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x7f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x4f6", + "extraData": "0x", + "baseFeePerGas": "0x33", + "blockHash": "0x16712d8be0e3f51b960bc8d1a39d96d79eb37a4c4ef736357367ea38a9287711", + "transactions": [], + "withdrawals": [ + { + "index": "0xa", + "validatorIndex": "0x5", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x095294f7fe3eb90cf23b3127d40842f61b85da2f48f71234fb94d957d865a8a2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np128", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x16712d8be0e3f51b960bc8d1a39d96d79eb37a4c4ef736357367ea38a9287711", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8acbf719a58ff74e046433f815412cb38a696863ccb330893593d71a5ac248e0", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x80", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x500", + "extraData": "0x", + "baseFeePerGas": "0x2d", + "blockHash": "0xb97b02fd00e46ec8d5b47eac30dff86679166d19e3485e4b7f979bec91fa7e0f", + "transactions": [ + "0xf88281ad2e8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a094d63da6ecadc8763c6fc569386579a1c8cc77dd39edb2973a273508e39aebb0a04337e8d0a408809a2996b19be20a7b8f155256be70f44caeddfabb1f2a063e01" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x144c2dd25fd12003ccd2678d69d30245b0222ce2d2bfead687931a7f6688482f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np129", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb97b02fd00e46ec8d5b47eac30dff86679166d19e3485e4b7f979bec91fa7e0f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb27928f6d85906997f70782f19936567637c9bcb8876412a24a9adca4dd4d040", + "receiptsRoot": "0x78bf002def881b942f59bd9f0bac91ba3a525640038dcdb1e0b25e9b3249b2dd", + "logsBloom": "0x00000000080000000000080000000201000000000000000000000000000010000000000800000000000000000000000000000000000000000000000000000010020000000000000000000008400000100000000000000000000000000000000000002000000000000000080001000000000000000000000000000800000000000000000020000000000000100000000000000000000000000002000100000080000000000004002000000000000000000000002000000000021000000000000000000001000008000080000000200000000000000000000000000009000000000000000000000000000000000000000000000000000000000000001000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x81", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x50a", + "extraData": "0x", + "baseFeePerGas": "0x28", + "blockHash": "0xc407ae41449bc17863646ffe04e7a8107b4a2145152c875a5f910fdb54cc2701", + "transactions": [ + "0xf87981ae2983011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a09e2ba151002a18ce41caceb5a1e545a8fdaa62ce94b7fd48717f223aaf610eeea01edd9fb887a8a37e0b1820ed03d6efc284d387550ae400c562ec0fbd9ecc5d12" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7295f7d57a3547b191f55951f548479cbb9a60b47ba38beb8d85c4ccf0e4ae4c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np130", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc407ae41449bc17863646ffe04e7a8107b4a2145152c875a5f910fdb54cc2701", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x76e565499e484affc5c1708a70f87b11e744772b1464b91c260efbfa2bdccd80", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x82", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x514", + "extraData": "0x", + "baseFeePerGas": "0x24", + "blockHash": "0xf2253cd37aa85a5a3332dd6d777d209db9644eb59806646a39dd5869cdc496cc", + "transactions": [ + "0xf86481af258302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a05975ba53224ec111ff1bb23873600db7cc61926c3847316c4e2a492b20fa5732a02c068c3244eb42cfd7b92137b27fb9f25f911e1df7e7be93368f606cb3542ea6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9e8e241e13f76a4e6d777a2dc64072de4737ac39272bb4987bcecbf60739ccf4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np131", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf2253cd37aa85a5a3332dd6d777d209db9644eb59806646a39dd5869cdc496cc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb7ee79189b09144739cb6d6b9a15fc93fbbe226bd9c0e804a167441be168c03", + "receiptsRoot": "0xf24c9ed06c403ec3641a338b6bf76d2b8b69c09637089ec672663b52bab7a270", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000001000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x83", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x51e", + "extraData": "0x", + "baseFeePerGas": "0x20", + "blockHash": "0x4185ee3fea8a5aef0c504563c6c4e08f4ebacc343720d6c179ab5cc24c15e1dc", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81b00121830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cb3ce3e52ced1e406656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a07a9cae3647128ba14914f547c5f27444cd7325bbc37e5038abc31eea4500303480a028b8f0363d8fb373dcb8fa21b62103f630fed526ecf5a90b579c5a00d331428da04628f11ee1c58986a7609c7c1fb6eae0d7fb84ae83af6cb7e3509dc87172c1d5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfc753bcea3e720490efded4853ef1a1924665883de46c21039ec43e371e96bb9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np132", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4185ee3fea8a5aef0c504563c6c4e08f4ebacc343720d6c179ab5cc24c15e1dc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4446c578b3a536638c4b16440c3589c747d8a4d95c998bf9407de3cb775ef1b4", + "receiptsRoot": "0xe329fe07d7e78174b7a34c5069074ce4f0306ff5541b45bbfc122b4c9c2dcfed", + "logsBloom": "0x00000000000000000000000000000000000000000080000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x84", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x528", + "extraData": "0x", + "baseFeePerGas": "0x1d", + "blockHash": "0xa8c286786d85b5134461a58e930e24544971798fdb65aa5daf662cb224a9fe40", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81b11e830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9686e77044883203656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a02daaea9286d7edb7568e0803a61bfdb1e1506156d27e93bdf1942564850646c680a0200604dce713ec4a8a6b0f3825cb26b9ea9b1a0da084404a2bda2d73069952aaa070324b2af9d515556462318e4eadfe3ade90d12af7b669a351679c633bc63ce5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5f5204c264b5967682836ed773aee0ea209840fe628fd1c8d61702c416b427ca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np133", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa8c286786d85b5134461a58e930e24544971798fdb65aa5daf662cb224a9fe40", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xeb421e4444d173b5c42082f64ea03fd658a87dcca0265233b8e0eb20cc52f1b5", + "receiptsRoot": "0x49322e9c1e4cfb4f3c4c1a62084c1a153c335ce9a9715dd56a46fcde04073cf6", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x85", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x532", + "extraData": "0x", + "baseFeePerGas": "0x1a", + "blockHash": "0x8ca47a4e017b39fcff33d45a2d8be59d4a66b73516c322c950a5d8ed77d29fc8", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81b2011b830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c9080873b94ba4d37656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0af1f0d50933e49dd24b61a24c670809a5b875e3b746862636288dead8579dc4e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a049b90ae04588ab88c3c610e04057a6e6f1eb102f83a41bd86c665c87c7ec6010a07c9611e201df0beacd9c8f2340f66e6f0888028b9c938a678f64f93b8970412f" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x5ba9a0326069e000b65b759236f46e54a0e052f379a876d242740c24f6c47aed", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np134", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8ca47a4e017b39fcff33d45a2d8be59d4a66b73516c322c950a5d8ed77d29fc8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcf683f9a8fc2e09a2a7d6630f527f1c9c6b7924f5f995482516ff0c4d79b93d3", + "receiptsRoot": "0x78f959e0b126f88874a77c41bf993ed21543a27d93b487da4ad510bc20e5b96d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004000000000000200000000000000000000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x86", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x53c", + "extraData": "0x", + "baseFeePerGas": "0x17", + "blockHash": "0xc4974092ba20d3c24becf83c675956c9f6602d500d594df532c50a50eb5b2191", + "transactions": [ + "0xf87481b318830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9a0793cd2f811c2f656d69748718e5bb3abd10a0a00e15dd4043e12cdfd8ee3dec9c459492f8a3e528aa60e3ba6acbcdfd59238549a01841e554d95bb45b914d82ae2d8377aedb51c009fedeb7dc0fbee0ea2cc561f5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb40e9621d5634cd21f70274c345704af2e060c5befaeb2df109a78c7638167c2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np135", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc4974092ba20d3c24becf83c675956c9f6602d500d594df532c50a50eb5b2191", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9cee696519e3c8c9d45c6929bebf1fc35b452d1e7ae59fbe275d3f51a1e53b79", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x87", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x546", + "extraData": "0x", + "baseFeePerGas": "0x15", + "blockHash": "0xd84d3edc5cce7692db143df3abed01f05fb1aa8a6e7b468cc55e46db10c821bd", + "transactions": [ + "0x02f86a870c72dd9d5e883e81b4011682520894d803681e487e6ac18053afc5a6cd813c86ec3e4d0180c001a032e9acab0aaedc9a6d597ffaa190a36db1b49c7e56904de8e4b0de46d101aa6ca057b52014d9124de1a283ff1e1f085e494f576f067f5434ee0c3af4397e8af808" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x70e26b74456e6fea452e04f8144be099b0af0e279febdff17dd4cdf9281e12a7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np136", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd84d3edc5cce7692db143df3abed01f05fb1aa8a6e7b468cc55e46db10c821bd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x62094902d5724b10739b9bdcfeee5288699fa25553c41af941c347b457da6e87", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x88", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x550", + "extraData": "0x", + "baseFeePerGas": "0x13", + "blockHash": "0xdccdc1d4567294a4ad0281a7386e643435a612358a8687b79707541a0e572e58", + "transactions": [ + "0x01f869870c72dd9d5e883e81b514825208940c2c51a0990aee1d73c1228de1586883415575080180c080a07eec774e019caadea89c99edcd3c8201c5ed0bfa625773e6d815496f25ef561ba04000ab033e2b451ebd982ca35052e9ee2570503bef1690abfceb1d534fe9cdb8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x43d7158f48fb1f124b2962dff613c5b4b8ea415967f2b528af6e7ae280d658e5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np137", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdccdc1d4567294a4ad0281a7386e643435a612358a8687b79707541a0e572e58", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc0b8e44839fff97c5de61362219e96a8251565ada18d7a697ba7c12283401d1b", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x89", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x55a", + "extraData": "0x", + "baseFeePerGas": "0x11", + "blockHash": "0x9c338a73883a108eb3ac237422cc78ba03e073881d79758dccd91587b69164fb", + "transactions": [ + "0xf86781b61282520894c7b99a164efd027a93f147376cc7da7c67c6bbe001808718e5bb3abd109fa08f549ed1b90821980450d358705366f82e85469df9e52acde2413c95a2b04b7fa051cc4bb372f1883538285a80e001ef96b0359f2a152ff054c18783d5e2ca7741" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb50b2b14efba477dddca9682df1eafc66a9811c9c5bd1ae796abbef27ba14eb4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np138", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9c338a73883a108eb3ac237422cc78ba03e073881d79758dccd91587b69164fb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5df990c3f0155e1ce3e9314cdacbdc4ef45c93e8ca7a3a5b8ba25aa8041f96b", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x564", + "extraData": "0x", + "baseFeePerGas": "0xf", + "blockHash": "0xcdd79ad9085d20d3fd31b042a53227c3760792c62e42f29a10400382b2d8dcc4", + "transactions": [], + "withdrawals": [ + { + "index": "0xb", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc14936902147e9a121121f424ecd4d90313ce7fc603f3922cebb7d628ab2c8dd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np139", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcdd79ad9085d20d3fd31b042a53227c3760792c62e42f29a10400382b2d8dcc4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3383a866fe5d985b101657e6de0425f7ef6d214e208f7af5fd2bd61122d4eb29", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x56e", + "extraData": "0x", + "baseFeePerGas": "0xe", + "blockHash": "0x344657a467d897d67b16bf7bb922de11197ff1b4c1ea2749a82749b854f53e94", + "transactions": [ + "0xf88281b70f8301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a057308c5fd37531f5fc3ad1677290cb900caaa60b46b96155bfb98f292b70724ba07cf6c86968468dba0aef0956bf79c2706f1d6fa5a9322523e803fe3db85197b0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x86609ed192561602f181a9833573213eb7077ee69d65107fa94f657f33b144d2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np140", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x344657a467d897d67b16bf7bb922de11197ff1b4c1ea2749a82749b854f53e94", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd90a9b18190850ad23264ef71618a3492995a5498eea23c5c5df454b1a6617a", + "receiptsRoot": "0xfe5ceeab9511d0b0c785330e83642dbf57f8d67b87e3d7d54b9b0ddc3d355c0e", + "logsBloom": "0x01000000000000800400000000000000000000000020020000000000000000000000000000011000000000000000000000400000400000008000000100000000800000010000000000000000000800002020004000000000000000000000800000200000000000000000000000000000000020000000000000000000000000000000200000000000000200000000000000000000000000000000000000000000000a00000003000000000000000200000000000000000000000000000000080000000000400000000000000040000000000000000000000000000000000000000000004000000000200000000000000000000000080000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x578", + "extraData": "0x", + "baseFeePerGas": "0xd", + "blockHash": "0xc34874c1c02df9d9f0f62ff0c9451be8623e01125af8abcdfb0a3e5fd39753b0", + "transactions": [ + "0xf87981b80e83011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0c04438100b1f00f280d0e6df1df756f9e392c0c71ec4b56ac1fedf3c76a234b2a015c9453b9e2d35dce89d5443da2bf9cb24d375cba9e0afd233ae1edfc3fc061a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0a71a6dbc360e176a0f665787ed3e092541c655024d0b136a04ceedf572c57c5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np141", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc34874c1c02df9d9f0f62ff0c9451be8623e01125af8abcdfb0a3e5fd39753b0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb2dd76e38b11d311e81f7a740bcd9cb83e168f69b7fc8a2c7f007ddf5af0b055", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x582", + "extraData": "0x", + "baseFeePerGas": "0xc", + "blockHash": "0xf26963dd24f2fddb0fcb041ffd520a4a8571622f70168563809051d1f78f5952", + "transactions": [ + "0xf86481b90d8302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa09f8aa7dda49f464aa1f4f8519484cf1b673ec01872e12bd35637666bee7025fda02074a1b2b7d3290179447179f9788c0c146e42784ecacdc844da0c6edb192edb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa4bcbab632ddd52cb85f039e48c111a521e8944b9bdbaf79dd7c80b20221e4d6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np142", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf26963dd24f2fddb0fcb041ffd520a4a8571622f70168563809051d1f78f5952", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa370b7c8886acece71be21d4dea69a48c838ce0d785245f36e8b1fd0dee1dcde", + "receiptsRoot": "0x98d5a8d9463c7cfd16619a1d08b39fddab9070eac03e815b0855dff50a632a83", + "logsBloom": "0x04000000000000000000000000000000000000000000000000000000800002000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x58c", + "extraData": "0x", + "baseFeePerGas": "0xb", + "blockHash": "0x5b33c4a77a663f8420d206e8c8c677b306dd9dda3c549b73978c22385e064edb", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81ba010c830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cff183a49015bd7b5656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a02df4cc92987ab73b08a3474750456382a0add51fa25f928480762f3d993f298401a0c1256a32789b5fe90540903202afdfad4c7f5c187fc88a667184e3dcd6466d86a043d7e25ff9f0d4ce4e5b6b257b1b522c9a3a016f7019c4578b6153395166c4b0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2bc468eab4fad397f9136f80179729b54caa2cb47c06b0695aab85cf9813620d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np143", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5b33c4a77a663f8420d206e8c8c677b306dd9dda3c549b73978c22385e064edb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8e1d102032a6109e16aeef5dd9cd242d5cc66eda8a69ade9abdc95c02fd86c76", + "receiptsRoot": "0x88deff45d0fe91c2f6850181d6ad7390fde228c2f6e5abb0d3830d3459672fa0", + "logsBloom": "0x00000000000000000000000000000000000000000000200000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000200000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x8f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x596", + "extraData": "0x", + "baseFeePerGas": "0xa", + "blockHash": "0xc6e8d87cdf8be0370ba65cf1df31014d0ff6d70d4c63dec3968fd63c7fbaa74a", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81bb0b830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3a4d2a2d8e89dcaa656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0faca663a6ed04f52c0e7a8981cb438545f614a2cf84f9077659d0fce0045cda780a0b34564ae1216ed23a180648a9398609b48f7f5a4f786cd25fa7e26adf427b84da06a1f0863160a10acc0af91e4aa129b1ff0327966e52c0b14560c482757af9336" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfc7f9a432e6fd69aaf025f64a326ab7221311147dd99d558633579a4d8a0667b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np144", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc6e8d87cdf8be0370ba65cf1df31014d0ff6d70d4c63dec3968fd63c7fbaa74a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7299bbf0e68f51d3a4a053519ca1eaac62ce1b73e2f40c1ded6b0007a5e2369e", + "receiptsRoot": "0x79a3f6b00de36045af809a4ff54f7f35c3a124c4838006f6e62d62b3985e6fea", + "logsBloom": "0x00000040000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000200000200000000000000000000000000002000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x90", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x5a0", + "extraData": "0x", + "baseFeePerGas": "0x9", + "blockHash": "0x94fd8a5a17afb5aa4438bd72dddf23c73c0ed5059227e6d84a327e217593cb65", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81bc010a830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c80c3c5cf7f5cf0b5656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a05b300d53be5798f53b472dadb8966674169ff3e8d08eccb3f065bd827abd7b7783020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0f851c2d3a735c7ef307477434eb4b5ba1c30d070febbe9b4865904777447516ea045a97fc6acf7ae508165a18bcf6516660b745f80565ce9c5edf2266f40a161a0" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x949613bd67fb0a68cf58a22e60e7b9b2ccbabb60d1d58c64c15e27a9dec2fb35", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np145", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x94fd8a5a17afb5aa4438bd72dddf23c73c0ed5059227e6d84a327e217593cb65", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x709238142976a079d01661a354c91b5e6ab29d290b35d82ead568a07837d3630", + "receiptsRoot": "0x890a7fcaebc200470f3723bd29cac828f0db770ae9b1ef0e5bfec62424386fa1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000080000000002000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x91", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x5aa", + "extraData": "0x", + "baseFeePerGas": "0x8", + "blockHash": "0xdbdf9af38beb3fa29d94941294bca3788732dcd92eb6b4bf2dbb822000cbc0b2", + "transactions": [ + "0xf87481bd09830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9a8f0ecf08d4f674656d69748718e5bb3abd109fa0dccff08c49f955c959600fc7f3ab37b55d3e37b831cfd9782d555de3c0cbf7c6a045aff05f24374b0ab99facc7a467ad904e6d7beb38dafafb283a01cef49490a8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x289ddb1aee772ad60043ecf17a882c36a988101af91ac177954862e62012fc0e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np146", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdbdf9af38beb3fa29d94941294bca3788732dcd92eb6b4bf2dbb822000cbc0b2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x554b96d56fd9ab9918903c71042e054f4f0171965371f12f0a9644b5516ab29d", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x92", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x5b4", + "extraData": "0x", + "baseFeePerGas": "0x8", + "blockHash": "0x61355293082e8a9f906e7b52d9d7770877083021e6486ae90f63b2e4bccff11a", + "transactions": [ + "0x02f86a870c72dd9d5e883e81be010982520894d803681e487e6ac18053afc5a6cd813c86ec3e4d0180c001a0e7a2e65939bf5e7e1f9e4838d5a5b5a881a58609204a82900f113d8f6f416782a0509b43ba07b225240f188764f5b842cbe2f2d16fea536db1c4a81ab726af2f40" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbfa48b05faa1a2ee14b3eaed0b75f0d265686b6ce3f2b7fa051b8dc98bc23d6a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np147", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x61355293082e8a9f906e7b52d9d7770877083021e6486ae90f63b2e4bccff11a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3b251710415924109488349b79ef84225cab42d2ea65e17a834daa10943222cc", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x93", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x5be", + "extraData": "0x", + "baseFeePerGas": "0x8", + "blockHash": "0x0e1c46da0dfdbdd801d7b76c10462b10a1ff579e5f26535bcd3ab1c482043abc", + "transactions": [ + "0x01f869870c72dd9d5e883e81bf098252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c001a0071828366e1b4aaa0a35f6bbed954f6571edf0d48a5ae9a5e02510e5f793e90aa06cd2f3366b7f32f225cd9043eb54bc4645e4889445825321ce0bed640a32984f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7bf49590a866893dc77444d89717942e09acc299eea972e8a7908e9d694a1150", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np148", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0e1c46da0dfdbdd801d7b76c10462b10a1ff579e5f26535bcd3ab1c482043abc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x36e31ca597eae4ce5f115afba7ef29c573998b57082d5fd539392981d438f2f8", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x94", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x5c8", + "extraData": "0x", + "baseFeePerGas": "0x8", + "blockHash": "0x049cc427707b87414178123334cd9ccc891c192faddb16129b8d87dc945d4710", + "transactions": [ + "0xf86781c00982520894d803681e487e6ac18053afc5a6cd813c86ec3e4d01808718e5bb3abd10a0a00a6e0a8854d689d4bb96c8f7a1dc30e9be33e53c9bb42d9f63c9a849ffea0e9ba0531e3351e970d6eeb3fb92cb018ed6eb5c9b91cb096bd6a19016c8ab70fe1a2d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x992f76aee242737eb21f14b65827f3ebc42524fb422b17f414f33c35a24092db", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np149", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x049cc427707b87414178123334cd9ccc891c192faddb16129b8d87dc945d4710", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xabf995ae299a44dbc09d702a5d9d98833a13995b651ae91448d5cc32fe2a0b28", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x95", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x5d2", + "extraData": "0x", + "baseFeePerGas": "0x8", + "blockHash": "0x24e92a19adbe76129e31fa0e7968f3f65f230ea20152fa92bd8553a90040f415", + "transactions": [], + "withdrawals": [ + { + "index": "0xc", + "validatorIndex": "0x5", + "address": "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xda6e4f935d966e90dffc6ac0f6d137d9e9c97d65396627e5486d0089b94076fa", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np150", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x24e92a19adbe76129e31fa0e7968f3f65f230ea20152fa92bd8553a90040f415", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7704b78c42f88db083513a5d15a6e9487c3050e366fe0f0d5639b02ddb781e74", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x96", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x5dc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x34e0ff9f154ad49785b9a2220d5dcdb476e3cae2c513209d0dc88bc65a3a327b", + "transactions": [ + "0xf88281c1088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa037df2e80cd1cd376e703299e9bfbf3486f6187240c517fb4ba1d75c5c8014333a0395ac027c7717521d27ce4c7f0915d4247233858d81e0e5fb5f751a3cb8ad24a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x65467514ed80f25b299dcf74fb74e21e9bb929832a349711cf327c2f8b60b57f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np151", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x34e0ff9f154ad49785b9a2220d5dcdb476e3cae2c513209d0dc88bc65a3a327b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x524abb7336dd9295d1ec210102e6cc84a021ac036c8f6bd8f238cb0a52677545", + "receiptsRoot": "0xc388647b000f1383cbebb0ed7e92f352c545b9ebe2c6ac08f992463e6e09104a", + "logsBloom": "0x0010000000000000000000080000000002000000000000000000000000000000000000000000000008000000000000000000000000000000004000400000000000000000000000020000000000000000000000080000000000000000000100000a000000000000008000000000000000000000000000000000044000000000000010000003000000000080000400000000000000100000000000000840100000000000000000000000000000000000000000000000000000000000000000040000000000000000001000000000040020000010000000000000000000800000001000000000000000000000000000000000000000000004000000000002000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x97", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x5e6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa038ce1b4343a5466e32f10fc868b23f7ced36538dd115cdfe0deac9f6f21402", + "transactions": [ + "0xf87981c20883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0491326428cbf8f3791553c76c78b3a8ee32f6ed7ebc5e1a1885e8092bdbd716ca0103120ddf388ae2ceacdf2dc1134c0fb97a2d1eecaf65ad36fc01b2540962892" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcc2ac03d7a26ff16c990c5f67fa03dabda95641a988deec72ed2fe38c0f289d6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np152", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa038ce1b4343a5466e32f10fc868b23f7ced36538dd115cdfe0deac9f6f21402", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdf239bf5b245cdefcd327048fda5f415637641b66cd3a69c0372737205007160", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x98", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x5f0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4f6d29ecc1150caa2e43a7837fc7fc577bcda7cceb9de4da0c2e9da8baf8733f", + "transactions": [ + "0xf86481c3088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0b332a6454e92c8d3936b40c1df2aef29a838c16e7177ce000e35e361066d269da07a7fc53b1aeb7c083a041165d13147c6d1deae8a21a4bf3f6d62768380848615" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x096dbe9a0190c6badf79de3747abfd4d5eda3ab95b439922cae7ec0cfcd79290", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np153", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4f6d29ecc1150caa2e43a7837fc7fc577bcda7cceb9de4da0c2e9da8baf8733f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa25918ff31e91a4f99c166b9b3fa393f3453ab907d9b81459bb6844a5b12f1fa", + "receiptsRoot": "0x7fd0cf4cbbe369444e96b1f4d7533afabf16b63bb4f3eb844f027f2eebf96c2e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000009000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x99", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x5fa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd34e3051d7184c6c18e3d51f0a693baf889da9ae98d6a5e777a22d2cb96697dd", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81c40108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ca6e511cffb46c94d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0f8b0a158a81e46d2f46d268e7726acaf7c33fc321c36f6157f07abbf7fa49e5b80a028339c4317b1a4fb76d48fa0cd6a29abc826a45b563b494c0ca1c5ffef33d3b2a007bb11604c0047ca9043ea07c26349fa14c720cefe216465b33ea084395dda63" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0c659c769744094f60332ec247799d7ed5ae311d5738daa5dcead3f47ca7a8a2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np154", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd34e3051d7184c6c18e3d51f0a693baf889da9ae98d6a5e777a22d2cb96697dd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe65290d97963972989777bdfaa1152136a9e81ccc8faa979e0dbd534ee8bb2bf", + "receiptsRoot": "0x893f11f7f5a7b678432ebbac4a86a509d7656206a8810a15f466bf9acf9cfd1c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x604", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xeb5370ab05f5d8f13e2cc9a45d11eccc1ee7537478e749105b03631c2504d6cf", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81c508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9ff25288d1780279656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e6a5227fabefc934ddc0a3142a50747ad1157ad0829ec0bbc389d5e22e3282c280a03bf33993224c8a368bea3542fd6aa7858acf26e6d6502a566915ba2b9b6d1391a07571c2c9c8374a69dff4a253d7a3d55c3adab0009085d12902f9e89045712cae" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9cb8a0d41ede6b951c29182422db215e22aedfa1a3549cd27b960a768f6ed522", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np155", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xeb5370ab05f5d8f13e2cc9a45d11eccc1ee7537478e749105b03631c2504d6cf", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x412e0f4f3f6a04bf0be452ada7b442767cbc7c633343fb2d195a1c162a2cd2ff", + "receiptsRoot": "0x043045c702ca4ddfc2b93d7c6b0a72d3cac8b45d8266b9d59e9c4969fed62413", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000100000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000040000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x60e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe9419065bedd423519028a6f39e599358596a72614880942181ef4d3fbff8807", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81c60108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c67720111e9886ccf656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0970a64830f255bfc38886621b37a7f1a7284bad6c4a04b6a2442ad212e19a6a283020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a045f140f24c3576ee1c2e376e479443c1a6dbafc1dd95558b01b4763514c0d586a03c895c3bb8f1ff86db606969e2d453d89ef9b333c9711a6f9dc27d8909182fb4" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x2510f8256a020f4735e2be224e3bc3e8c14e56f7588315f069630fe24ce2fa26", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np156", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe9419065bedd423519028a6f39e599358596a72614880942181ef4d3fbff8807", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x24b0d883fc8c4f3b70cdb9d56f4ff5952ad845d9420b2bbc361992696b12ccf5", + "receiptsRoot": "0x9df0a67ac640d2a5e9b58437e352ea8fbea4cf8ef96aae000e4f818348399468", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000001000000000000000000000000000000000000000000000000000000000000000000000004000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x618", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x076da0f0e01bfd4890f2134fd5df4b54a113439e488680ec9983b81de6178a43", + "transactions": [ + "0xf87481c708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c070947bf5fba1a40656d69748718e5bb3abd10a0a08a515c5e572e72c0c656a798234dd714bd747da87004cd95e61faff98c3800d1a06fc7eed86942feb5c6da3d0736c9cfd8c57115374bc5afdce9dfbe6f534c4853" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2d3deb2385a2d230512707ece0bc6098ea788e3d5debb3911abe9a710dd332ea", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np157", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x076da0f0e01bfd4890f2134fd5df4b54a113439e488680ec9983b81de6178a43", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x43d829eb7c5b95629b2b2e9563c214eae8b0e7f523a43a0f993491911e70b48c", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x622", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1b765e0e7ef21700d430daf30c1fb898805cf27237768ae58dd82f68cd1cc26e", + "transactions": [ + "0x02f86a870c72dd9d5e883e81c8010882520894e7d13f7aa2a838d24c59b40186a0aca1e21cffcc0180c080a041c33f7a4851dd0ab1cf4b658c074d18a239d191c85bdab129679d9561e92927a0228a4a148ffac4dddd2fa3205b3a637bc23f4045cc87ddd19928e7e22c2b3f5f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1cec4b230f3bccfff7ca197c4a35cb5b95ff7785d064be3628235971b7aff27c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np158", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1b765e0e7ef21700d430daf30c1fb898805cf27237768ae58dd82f68cd1cc26e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x206012e96ed4e84110d9be1ca09ea22c443baeb684467784475ce6be4bcba9f9", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x62c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6dcc010b937b7e48545d5476b017e93f0baa2308ef3be862c1c6286911eb63c1", + "transactions": [ + "0x01f869870c72dd9d5e883e81c9088252089483c7e323d189f18725ac510004fdc2941f8c4a780180c080a08c1b326c11d9107cf8dcc4e98c2819457f420a6c3941a84ba9627e0686950fb8a03b8de73d7fff309ee86a65ce3066911038404582806e55504b384a106b9c7918" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x18e4a4238d43929180c7a626ae6f8c87a88d723b661549f2f76ff51726833598", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np159", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6dcc010b937b7e48545d5476b017e93f0baa2308ef3be862c1c6286911eb63c1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf3f5c238750592e8f53f407252bf506501f82dcfa7e794808a7120c689f65800", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x9f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x636", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x616a767f1417bf61770bdd4b9947a864fadcbda76a60ac901115b74f55948b81", + "transactions": [ + "0xf86781ca0882520894717f8aa2b982bee0e29f573d31df288663e1ce1601808718e5bb3abd109fa06b9105776265e2eb63e0bf0c4addb6783220e742b41ebe10a92bece1e6837312a05510defc6505b89b296ce8d40bd1195b1edf432bb763f4da034dc7ea1650e000" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x700e1755641a437c8dc888df24a5d80f80f9eaa0d17ddab17db4eb364432a1f5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np160", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x616a767f1417bf61770bdd4b9947a864fadcbda76a60ac901115b74f55948b81", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x55c977c17a92e1ae4d3e016af463ce8c5e60a1ad88c4ac6bf42cb2d7645a9f40", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x640", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x90f962233f21820cbfb476d1e7b58191e31a745b143fe000a7fdbfb636295ff5", + "transactions": [], + "withdrawals": [ + { + "index": "0xd", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcad29ceb73b2f3c90d864a2c27a464b36b980458e2d8c4c7f32f70afad707312", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np161", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x90f962233f21820cbfb476d1e7b58191e31a745b143fe000a7fdbfb636295ff5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x74a14c1e1011ae12f1fbb485a231299d813b54bc4d999f115a1f2324a01bd690", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x64a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9c02e583208597dda2607d80ca5dced296b7245635677699871833053f4561b4", + "transactions": [ + "0xf88281cb088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa03edf0d866ad40481335a06c4ed3935cb3bd382c3c3b3cb12fa24c8db6b34a4e8a0681998194756c6bad9dd89d8c29f6464bd0b8a8b6a7cf5465d429534ce853a41" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa85e892063a7fd41d37142ae38037967eb047436c727fcf0bad813d316efe09f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np162", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9c02e583208597dda2607d80ca5dced296b7245635677699871833053f4561b4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5357e9126528d1c6f7fe3381bcfb3ab2a116e46c744976476130b98c83d4dd05", + "receiptsRoot": "0xd1b8ea751c030fc813bb08cdcd4dc5e76acac5cdcbfb46521d83603631b88032", + "logsBloom": "0x00000000000000000000000000004000000000000000000000000000000200000000008000000000000000000000000000000010000000000000000000000000000000000008000020000000000000208008000000000000000400000000000000000000000000000000000000801000000000000000000000200000000000000000000001000000000040000000012000000100000000000000000000000000092000000010000000000000000000000040000180000000000000000018000000080000000000000000000000000000000000000000000080000000000000000000000010000001040000040000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x654", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb298175a8ca6852255acb5a528906d85a5d33fbf66c70cb786877f4ca844a7b6", + "transactions": [ + "0xf87981cc0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0c65d8f7eedad5fc65ae8507ca80feadcd774fee1dd73119d7d8ffa163cfcdb75a03ec2b4264045a0fdb87ec0a68c2713c2aa89cc88a53d6a0ba9369ba46c966b10" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x040100f17208bcbd9456c62d98846859f7a5efa0e45a5b3a6f0b763b9c700fec", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np163", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb298175a8ca6852255acb5a528906d85a5d33fbf66c70cb786877f4ca844a7b6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x565c09bc1c43c645ac8b18e100a92327c80e55d03f65b91482e37c23f89c95e6", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x65e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xcdb49313f08242666708fd58106cd77d39cac694d5109d6292d5205f0eab8cad", + "transactions": [ + "0xf86481cd088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0954dc4438b20c59dc1409dfe59a25aa4cda9c7de4d0baa465739deabf3a06f7ea03f7e67426575e9d540c0ba89f52f7ced09e3d219d43a1058dea19e7bcdc11b09" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x49d54a5147de1f5208c509b194af6d64b509398e4f255c20315131e921f7bd04", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np164", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcdb49313f08242666708fd58106cd77d39cac694d5109d6292d5205f0eab8cad", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e7780c154ed61b4eaae15d585766b657905382c8f13309fb018009f36303e20", + "receiptsRoot": "0xecb72b4d3789c1737a69c8aad641dd7e92aab30d4349c2ac74833432580cebe2", + "logsBloom": "0x04000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x668", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x141eb84f21835812981ca866915b141c199b2a6e574624de1a35b28784d70e31", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81ce0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3ca23be55f2c8073656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a085ca3ddf1ae9fb0aeadecd8109961dc5d5eaff16ef7adc672149a7826c69da9701a00434ec4941775675dbf9e46da286c975bde49d6eb7b45a4863799a3c0edf827ea06f6548537b6a064b7cabe0a5ecb83f732473423b430202fc98382a22ed98b62d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x810ff6fcafb9373a4df3e91ab1ca64a2955c9e42ad8af964f829e38e0ea4ee20", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np165", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x141eb84f21835812981ca866915b141c199b2a6e574624de1a35b28784d70e31", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4575650570f9869fbefb9cff07c26aac03b2523aaa6edbe932a0d1b83b96ecae", + "receiptsRoot": "0x9aba37ad1750da383eb0dadcff269b5cca7ae0e6aa7678f6ae229f103200d344", + "logsBloom": "0x00000000000000000000000000008000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x672", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xee6b0ee8c674e6c358ad14a9dc39c9ade98b944a4c3c97992bb882f536e976d5", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81cf08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc6f00ba448f8e0bc656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06a99e5276c6ea0c0894cfaf376fbbfdc736b359e1560a77365c14fcdf6cbbf5301a09cecaf27b88dd3958b7a344a56a8d5ab2a838c70ea04c9b1fc5b301c9a5d7c51a002f992c07a70217ec6833ffc04e0464dc87ed889970b554f407f2666dbf6ff01" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9b72096b8b672ac6ff5362c56f5d06446d1693c5d2daa94a30755aa636320e78", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np166", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xee6b0ee8c674e6c358ad14a9dc39c9ade98b944a4c3c97992bb882f536e976d5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xecda93701462231bcc24eb6dce6a0f175dc693b4832ba2545813a34543b22b99", + "receiptsRoot": "0x2ba6641c3305aa448eb231382ae874e1eea4d19ebfebff99d00bea6fddf8b779", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000080000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000001000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa6", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x67c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x56a342018c122b38dda95d4590e3be13521d9b293a469b089eec358c040cca09", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81d00108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c2989ce0858ff5f25656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0611f5b5e5ee263412fed40f169d0727f4e6e1a2bc94caf668d2bcf22cddca8c183020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0dcbbe04e77e572bde0be21e68a274bcb735a417b8876907de9c1f0a80e3d0284a01b9d3fa5c553b96642afb915a531249d1999c562dacdb0b5e06c32e687901229" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xf68bff777db51db5f29afc4afe38bd1bf5cdec29caa0dc52535b529e6d99b742", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np167", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x56a342018c122b38dda95d4590e3be13521d9b293a469b089eec358c040cca09", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x330a3944149ed44fe47b3ca2b2a1618b112f5d346d38bb9d666489ae4908a595", + "receiptsRoot": "0xea12e1bcc7a5684187716a9436c960415cfd557c403bdbdda332da3158d1cfa3", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000004000000000000000000000000000000000004000000000000200000000002000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x686", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe08d69283e46660cc7d2ec2297498bea4fc2d9e6be5a966fc62d8cc0bf79eb8c", + "transactions": [ + "0xf87481d108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028caca9e87acc060271656d69748718e5bb3abd109fa05349613da922d5ce5ebe0ed5d3bd6969f0ff6f054bbecf4cf7a5a205bacc01b7a06a1439f870fd4766fd74b6a6af2f70d564578c72b0020f3668e16b1184564089" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9566690bde717eec59f828a2dba90988fa268a98ed224f8bc02b77bce10443c4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np168", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe08d69283e46660cc7d2ec2297498bea4fc2d9e6be5a966fc62d8cc0bf79eb8c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7016b5f282139f399516d247a38e39ad6228bae9e255751d76f31be99ac34005", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x690", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x06cfd65e4ad3f00b853db8c0218f003e65ecdfa83b2cf36be05da03c9abd2b8d", + "transactions": [ + "0x02f86a870c72dd9d5e883e81d20108825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c001a0dae685ec946642a5c0e2759c376aed664fe7d5bddf439a8e1403e2d632ac90fba04112033fdc1ba221062dcaeb14c4a63b1cb46b7d8c04003d1872d00ce7d40cf3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd0e821fbd57a4d382edd638b5c1e6deefb81352d41aa97da52db13f330e03097", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np169", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x06cfd65e4ad3f00b853db8c0218f003e65ecdfa83b2cf36be05da03c9abd2b8d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7277b9a176ad81cedd383da3e909ba6044c96e228b04855b660605bf2d589131", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xa9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x69a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1eaa31322ebe3166d05d4aaecc37da61443ec14bb10abea11a0de6271ceaac31", + "transactions": [ + "0x01f869870c72dd9d5e883e81d308825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c080a02853d9147f6a2d7fc288c912a1047c24e8761a94b64f11a9bffc8698cfc8cf72a0566df35b5cc2c5a6a90d55970dc391ff6414fa840cf072faaf39abb9920ed36d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x43f9aa6fa63739abec56c4604874523ac6dabfcc08bb283195072aeb29d38dfe", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np170", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1eaa31322ebe3166d05d4aaecc37da61443ec14bb10abea11a0de6271ceaac31", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x273628b39c876725fb027c45fd15fa66ec51778ba185bf9f69a10740e95a4b97", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xaa", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x6a4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x861e741db3d23647d8a9fc61ee8361b044ab5f6472a15e33e1347d26802ae652", + "transactions": [ + "0xf86781d408825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd10a0a0a2c21da04e89413afc7bed90ed49d4f9bdb55e7c5e9d67e96a9ed52883eb36efa023b562940e61aaf3eea56e019e2cd44d02e38f367762d1974d3cf87e9d45bbc2" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x54ebfa924e887a63d643a8277c3394317de0e02e63651b58b6eb0e90df8a20cd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np171", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x861e741db3d23647d8a9fc61ee8361b044ab5f6472a15e33e1347d26802ae652", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe11eb32a68511b9e3d3ab1af9e0dbbd31a734752d8d01d3178d1288ada023c0a", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xab", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x6ae", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2cf03f61b899f9e1da26b010eec455dd52486700e03c7ac6dd5aef77e1d0ce4a", + "transactions": [], + "withdrawals": [ + { + "index": "0xe", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9e414c994ee35162d3b718c47f8435edc2c93394a378cb41037b671366791fc8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np172", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2cf03f61b899f9e1da26b010eec455dd52486700e03c7ac6dd5aef77e1d0ce4a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2ac9068ae7984536b6cba66a193cf4cb5097df3347dcdf2c4f96aa73add0e7d1", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xac", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x6b8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x63c823f9caa95abdf5aaeaea7d33753359ccd4b76e64155a760bf3355edcc73c", + "transactions": [ + "0xf88281d5088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0a4f76822624e38a1098a5068f6f67a121977d29dd56f9e166058381da8d01c53a0742ea9a61fdf179b566429a182e367ec8473848e40660a9e2445744d81b41094" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4356f072bb235238abefb3330465814821097327842b6e0dc4a0ef95680c4d34", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np173", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x63c823f9caa95abdf5aaeaea7d33753359ccd4b76e64155a760bf3355edcc73c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xabc665a965c4293132e3673c8075a7918772341f9165c93b079a745ebaed0256", + "receiptsRoot": "0xc78cbe275dbb91288da2eba36a5b552aa1833bff451f2bdaeaa349efd865a3d3", + "logsBloom": "0x00000100000000004000000004000000100000000000000000000000000000000000000004000000018004000000000000000000000000000002000000000000000020002000400000002000020000000100000000000000000080010000400000200000000200000000000000000000000000000000010000002000000000000000000000000004000100000000000000000000000000000000000000004000000000000000000000080000004000000000000000000000001000000000000100000800040000000000000000000000000000000000000000000000000000000000000000400000000000004000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xad", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x6c2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8db5431f9466088e255da8a3ba2c8687e71836d5d1945b13c7f3d9ac7c89632b", + "transactions": [ + "0xf87981d60883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0b369556d11c62983b278d0d4fe00f1409f86b5b783428e41a0c01f6d6fcdb40fa008bc2b849bbd2a50c5a6fcd542b20d9f0eeee0456905db1815d5bcd9e3ca47f4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x215df775ab368f17ed3f42058861768a3fba25e8d832a00b88559ca5078b8fbc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np174", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8db5431f9466088e255da8a3ba2c8687e71836d5d1945b13c7f3d9ac7c89632b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6df2168a34cdc84a5a95ca4e9fe06f424de8fc9fe15b265ca63cec1b91367473", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xae", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x6cc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0233de4a61a9a43ed4501eedc83ae61cc6b2f31f7681bb1de10650f724635917", + "transactions": [ + "0xf86481d7088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0648e900cc276bee3ab846c737125fbbfca11f5629571b450fb288db3af6bc317a00dd7a954f8127971ee7cbb1e9de7a915bc2572e038713a108be58abc7f476e9e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd17835a18d61605a04d2e50c4f023966a47036e5c59356a0463db90a76f06e3e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np175", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0233de4a61a9a43ed4501eedc83ae61cc6b2f31f7681bb1de10650f724635917", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf889bbcdd463f48171e33c543817751582a109051c92139e479bc718eeca99c6", + "receiptsRoot": "0x5866cd46efc1eafd675e446d2d1d2978c98c92f320876f60f5cf43c191278df7", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xaf", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x6d6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x899b58ec03cb142e0b55e1fe0ef6c351291a27b9074344bc7e2cafa96373aef6", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81d80108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c963a3b3b836863cc656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a073b2b230124967b31546c7e2fedbc5ab108a537ef6d645621fe74fcdc0644b2801a0011cfdd064c9e26b7e3138ab8645a76613b43cfa62982b70ba5e854594927e1ba03c7d9afcfae4fe514ae67a15a57ce6e7bdf32ef4dbc0106bcddf30d3310125ac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x875032d74e62dbfd73d4617754d36cd88088d1e5a7c5354bf3e0906c749e6637", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np176", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x899b58ec03cb142e0b55e1fe0ef6c351291a27b9074344bc7e2cafa96373aef6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x853abd8efed4d27ea5e08885d43378676c813de46a4d761f3bb3ffc0ae60c9ba", + "receiptsRoot": "0xfcff7b43bca1a879ee00b1cde33af7491d6ffbd5f02de3552de7d18866184f76", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000040002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000010000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb0", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x6e0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x13f99454d41f5ac10fd52abd046cde67bb8c0bf7d6010c6b17c465ecbb3ed540", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81d908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c2502e1f0dd547127656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0bdfd2b337ff30e9e15c09313bf796d3c75177943e0aa0445f479fbd2dd5c1d6e80a066e575cfc23073b657fc9251aecfeb587f2906d1c5b1381299d908522a6b38c6a054d7c2b1b04312aa07c71c338095b4993a003d277faa621e0003d7cb81e61b1f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6f22ae25f70f4b03a2a2b17f370ace1f2b15d17fc7c2457824348a8f2a1eff9f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np177", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x13f99454d41f5ac10fd52abd046cde67bb8c0bf7d6010c6b17c465ecbb3ed540", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd6e6896cfa33fe72f4f9d47f67f78fbb1957fbc4cd70f2389f0c25f7375e03c6", + "receiptsRoot": "0x5a0501a7d3c464a4d381c2295800026c7729d8b2656bb16c1300af53cce6a87b", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000002000000000000000000000000000000000000040000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x6ea", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9a2024c4823f8c503a053ffba21d3d5b8aa44bd69e0e326a3dd861d5ebacbbc5", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81da0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c72faa693d5bb5456656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04632fe8e9579f33e2e42e68811d49a09ad1af1f01a68e7ae742f765e8e797ff883020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a079ebe352f2b61d78c3276a2a94cb7198cadb8e627b35ed127031eba7e98c1bb5a02e2d14e03df516fb1127811012d0584bcc1d13db4fb633ed7d09b6732ea92ebd" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xf11fdf2cb985ce7472dc7c6b422c3a8bf2dfbbc6b86b15a1fa62cf9ebae8f6cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np178", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9a2024c4823f8c503a053ffba21d3d5b8aa44bd69e0e326a3dd861d5ebacbbc5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x531e33f5d41f49c6c731302d2fd370ac59953a63cb342c0cc82ac2def7af9635", + "receiptsRoot": "0x8d5ad869d06b7f76a71ff0573f5bc66eee7262abdca743edde6b98b2378236d3", + "logsBloom": "0x00000004000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x6f4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x97fc752f97b39827ba60179602671d30c1f05bf991650cac51f0346ee24d733d", + "transactions": [ + "0xf87481db08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3f1234d9a783e10a656d69748718e5bb3abd10a0a0b875a96cc7b43a73edd962e8bbfa4263f6034d1ce25cba2284e2bedd957be720a0639b5e0868048f5d2a42030ecacd89d86a4c271c0db1db9e9a447c03251face0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbbc97696e588f80fbe0316ad430fd4146a29c19b926248febe757cd9408deddc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np179", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x97fc752f97b39827ba60179602671d30c1f05bf991650cac51f0346ee24d733d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x350e249b7dc570b0e2f3186029b5c9951a18da70c4292b58e5cecb224fbea9fa", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x6fe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x30a494978e0eac0abda5140961431834ace71b6251f4c533c823913efd652aff", + "transactions": [ + "0x02f86a870c72dd9d5e883e81dc0108825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c080a00fedcabee43c250b1ed3963893a0936866044f218dc3b7f06d4dc2d714ff3cefa020acb4fd5af94d1f7b2eff92382a6e6e43c56d02aeef41d22042d892e6078176" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x71dd15be02efd9f3d5d94d0ed9b5e60a205f439bb46abe6226879e857668881e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np180", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x30a494978e0eac0abda5140961431834ace71b6251f4c533c823913efd652aff", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2bcd8e5c3bffa0866dde2054e9aee882c7a625e53f5b58d072cf77ee0ff49d6a", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x708", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6b5d54fd2861b26dd7f2851d7e5370a10006dda6c3030e6d3ec4165516e939a9", + "transactions": [ + "0x01f869870c72dd9d5e883e81dd08825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c080a04f6a301ae2761c56643aaf7514c0caeffe709da0547ecd30cb55463dbf15a417a05fb1e6589cb27f52e2ac658cb70feedc90d1ff9a81032d4b77fe0ab16eb39f25" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb90e98bd91f1f7cc5c4456bb7a8868a2bb2cd3dda4b5dd6463b88728526dceea", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np181", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6b5d54fd2861b26dd7f2851d7e5370a10006dda6c3030e6d3ec4165516e939a9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe0ae6430ec981d5e1c3832c665913aa0fc2f101e9dab4e5f354e90e481901e98", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x712", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4b463a47e277fe903ef73f2504075e63194e03017c299bb340ca82383bc93110", + "transactions": [ + "0xf86781de08825208942d389075be5be9f2246ad654ce152cf05990b20901808718e5bb3abd109fa0de1ebf0a5b83d01e0d1b9b25fea505af5ee5b2fb8f6a563c34a99f813ac3c7c2a0326b01a462426e82549b61283e59a12451b2416be9017fb0c710764106015ae4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4e80fd3123fda9b404a737c9210ccb0bacc95ef93ac40e06ce9f7511012426c4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np182", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4b463a47e277fe903ef73f2504075e63194e03017c299bb340ca82383bc93110", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x035c2aa50a246db44bb0dd50d4788b886b79708af7368191f55e12b56f707bfb", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x71c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x26fb93f17f20d3912165be93e6c74e30ce01bbd23b1050dc2b0e990810ad8ebe", + "transactions": [], + "withdrawals": [ + { + "index": "0xf", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xafb50d96b2543048dc93045b62357cc18b64d0e103756ce3ad0e04689dd88282", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np183", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x26fb93f17f20d3912165be93e6c74e30ce01bbd23b1050dc2b0e990810ad8ebe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x07f2da0c4c14403434a2154536785f6a3b2fb4d3211063ffd119a61459926da3", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x726", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe08e97c0e494b917d5103858981ef94e7c83ae607274785cfa6e1d58fbeb5ac7", + "transactions": [ + "0xf88281df088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a07a2594e4484e7401726b6d3d098d01ecbd35e6b17644e589b97bcba3b2c77459a07f08177d12d8069b57c85212658a3492818d0b2062923c1644b83e0ac6b2a379" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd73341a1c9edd04a890f949ede6cc1e942ad62b63b6a60177f0f692f141a7e95", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np184", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe08e97c0e494b917d5103858981ef94e7c83ae607274785cfa6e1d58fbeb5ac7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1fc1787348b8a8a51bc390b7240425a40582cdb9f7db29d2526736160f6767b3", + "receiptsRoot": "0x4486addaa38db9aebd1fe1c6c8b70d213fdb181cfc9962b444b3c8b4c8503e74", + "logsBloom": "0x00200000100000001000100000000000000010000000020000000000000000000000000000000000000000000000400000000000000000000400004000000200100000001000000008000000000000000000000000000000000000100000000000000000200000000000020000000000000000000020000000000000000000000000000000000000000000000000000000020000000000000000002000000020000000000000000000000020000000000000000000000020000200000000000000000200000000000200005000000000000020000800000000000400040000000000020000004000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x730", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xde6bf1db842cb83446e36edc46014d23163fd84aebd1c03939eb0bd290767afd", + "transactions": [ + "0xf87981e00883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a01a23a49d397fc0ab58da7ef83b06ef187ebdd01e8f76022b0e729ca6cbbfda53a052b822f9bbef37785b4a10956aebfb2ffc1104356a85f8cc66f13e79af3e8abf" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc26601e9613493118999d9268b401707e42496944ccdbfa91d5d7b791a6d18f1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np185", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xde6bf1db842cb83446e36edc46014d23163fd84aebd1c03939eb0bd290767afd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe6840cd73d8ca325ff70656c4ecded82de9a05e7212932b0abedcee5f59da334", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xb9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x73a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6bde1987ef5b8bb5fde73ccb7b722f060ce2d5f1f3cf0744498e2eded6ad2fbd", + "transactions": [ + "0xf86481e1088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0a48a7919c6813fd6419de6ac1026eb97cc5ce927050352aff02a6430e0bce5a9a0676e62102cb37a89ee4386c6192ff396f337791d3d12d6162952e5662b61a059" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfb4619fb12e1b9c4b508797833eef7df65fcf255488660d502def2a7ddceef6d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np186", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6bde1987ef5b8bb5fde73ccb7b722f060ce2d5f1f3cf0744498e2eded6ad2fbd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4ae22551484995968643becf5e15bf744ea0c792cb7155b6f9d98f51b7e4dafc", + "receiptsRoot": "0x7fcede4f85e49a01443369f7d463ec02d99314aba310830e45143af821431c90", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000010000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xba", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x744", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x02795b8afbf3b9cd3539cf5e1c373c07ef6e1be6f4deb1fdbbd6cbe365387dc5", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81e20108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6508b81f8764eb37656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a046765aab85a7ee88496ecde24f93cd5ce361b5a9fb43a2641d77bfbc9792801001a086efb5c80be03c51d8454222b0bfd296ff0e19e9d9ef9b3a7862830f74f4925ca0043fac0a6e63dac67dc062fc560a23a2e96a2fbbf462ec99aeee113249f4c154" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd08b7458cd9d52905403f6f4e9dac15ad18bea1f834858bf48ecae36bf854f98", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np187", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x02795b8afbf3b9cd3539cf5e1c373c07ef6e1be6f4deb1fdbbd6cbe365387dc5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf019e36fcbec65df2ce3027134c18b719508f70227ddc57c88435ab3619fde36", + "receiptsRoot": "0x677f708e7c661f962f797d1958ecd12718aff9362efcf2f98d4bac893d1d499a", + "logsBloom": "0x00000000000000200000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xbb", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x74e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8e4c83e5e358f39de84987818cbd14c1a963ed5c8de83717bb6f89d11ed0ed65", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81e308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5f69e43b76f789f0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a023c2e06f633f91e89e0d95cf87dce47fe1cb2b95434ff45773f1fd560ad2dcf680a0c1e6fb9cec6eab080407dd898bcafea263be141bbc087449dd270184d2726910a0416d9a5dbd083739e7846e4b7c01de859b064c9561d8b5b6b1a621e62776ea0c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdf979da2784a3bb9e07c368094dc640aafc514502a62a58b464e50e5e50a34bd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np188", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8e4c83e5e358f39de84987818cbd14c1a963ed5c8de83717bb6f89d11ed0ed65", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f3f6b79b1d42e1d290edb6a602d04f78d4c33e0a60015056d519fded78c4f1e", + "receiptsRoot": "0x46a2752a9a9314e92f22636a4d915502df5b82eb8e09f2aa0b13a3422a472d42", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000002000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xbc", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x758", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2f741c1a54dfde09c36f6f171be91f7cc50a184e29c875af602ef52ed58e6e89", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81e40108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c9d643f50f3c3ae83656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0205bcc2489f954a3af7a16da4d6042a75fcd6eb69b848c52b3448acb24b2358083020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0bf2b925dfa8018902b89a9625827eaa5500ec20b3f4c4395cfccc31472f32a42a06fbac8676fcb56b7f8b639476c8afe7354fa09cdba4de8a8b015e9dd8b188e2c" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x15855037d4712ce0019f0169dcd58b58493be8373d29decfa80b8df046e3d6ba", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np189", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2f741c1a54dfde09c36f6f171be91f7cc50a184e29c875af602ef52ed58e6e89", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x02fe0bb4eb66b26437ec7903fd7eb0eed53170157937bb735b7c00333e361481", + "receiptsRoot": "0xa22af58078ce594861d8ae9f8058938980d716301669166c1f2073b3844c1b15", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000080000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xbd", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x762", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7d60f33d7e776182fce5bd0572f488cd429e742705eb78603179446152aaec20", + "transactions": [ + "0xf87481e508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6188771ea4290e13656d69748718e5bb3abd109fa07c93f78010a094d863376ae82eb4a6d37f04442bdc09fcf74dc2a123b8ae6e74a063013dde3a3c73fff4c1d998cd90fce67a104ee5a32be271d42fab78d23d8a1d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfd1462a68630956a33e4b65c8e171a08a131097bc7faf5d7f90b5503ab30b69c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np190", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7d60f33d7e776182fce5bd0572f488cd429e742705eb78603179446152aaec20", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x665b04889d2e15ede87951b27ea61a4add7124de7f2023dbeb9f1e636e7b71ae", + "receiptsRoot": "0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xbe", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x76c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x822c072433cf13fa896fb579c98e53f0ff3d231f10168b07647d214b5e2a0c24", + "transactions": [ + "0x02f86a870c72dd9d5e883e81e6010882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a0724f2f20750b6e846792035de6314f74d67bc678eb374e7a0378a0d08aca5c58a03dc7cb7a3820fe519393e3919fefb78a91efa6fb06630951b26818f36804ed07" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xedad57fee633c4b696e519f84ad1765afbef5d2781b382acd9b8dfcf6cd6d572", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np191", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x822c072433cf13fa896fb579c98e53f0ff3d231f10168b07647d214b5e2a0c24", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb339bf1097bd9ed7a2baa28b92f5c00263a4df11bf31866ec32b39406c8bec23", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xbf", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x776", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc763e36a2d4a71b815dd3cf970327db148b6f24eb23522a4cd962848679f683a", + "transactions": [ + "0x01f869870c72dd9d5e883e81e708825208944340ee1b812acb40a1eb561c019c327b243b92df0180c080a07fe961f6b99cee70e756dc7fe479180d7855fe002c7572dabe4d7839f708cb3da07ce880477fce751e253fe79741ead343f714c620ae8e9b1d4925d4d8afe43556" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc2641ba296c2daa6edf09b63d0f1cfcefd51451fbbc283b6802cbd5392fb145c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np192", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc763e36a2d4a71b815dd3cf970327db148b6f24eb23522a4cd962848679f683a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x425443c55bf6cc11f8c742160a3355474bde4551409997d9b56ce6017628c6ce", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x780", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2ed48a4ebdefc743bcdbec0ecadc64fa641776a8ad70df8e58c6b29bf6c1a23a", + "transactions": [ + "0xf86781e808825208942d389075be5be9f2246ad654ce152cf05990b20901808718e5bb3abd109fa07ed61509c7ec5fe3ef1deb7c2bf8d01c9f501d9982d2208aecd8d3a7ddfb38afa06c74720e72af536646d725c7d49080686eb94b1d599a8bb99a1279644ca31090" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5615d64e1d3a10972cdea4e4b106b4b6e832bc261129f9ab1d10a670383ae446", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np193", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2ed48a4ebdefc743bcdbec0ecadc64fa641776a8ad70df8e58c6b29bf6c1a23a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x03ed1415ee8648d07940a6d32100ba55e7f6e14bc6ca0b3a8775013753cea0c1", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x78a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1e23bc483f7c371d9ebf493ba84b563479656771fe17f2846fd9c863fc9cfafe", + "transactions": [], + "withdrawals": [ + { + "index": "0x10", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0757c6141fad938002092ff251a64190b060d0e31c31b08fb56b0f993cc4ef0d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np194", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1e23bc483f7c371d9ebf493ba84b563479656771fe17f2846fd9c863fc9cfafe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x096099f2d7c47a0c7af6ab420ad9fa6334c7bf732790f7386ed6618672cc4fdd", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x794", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe61411b998dcbec97ad2ce9bca20014fa673980d1e884325c1075abef61f152d", + "transactions": [ + "0xf88281e9088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0de5f5b108b09654f7d8ed16787102174e2698a344aa177ab38997e0290331143a004d275d26d1ae07aefc0aaed81a95b90427dccc3d696d0db8d3e63f19825c3c7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x14ddc31bc9f9c877ae92ca1958e6f3affca7cc3064537d0bbe8ba4d2072c0961", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np195", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe61411b998dcbec97ad2ce9bca20014fa673980d1e884325c1075abef61f152d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6be2b9dd7bded88692d1e5ed6e70c8b1d7aa45c5eebfd2f3ff481387b9b14061", + "receiptsRoot": "0x024d9f09c9b45b8c40485e9f29bcee4a0d25aa4160ea228584aa418139c3d88d", + "logsBloom": "0x20000000000000000000000000000000000000008000000000000400000000000000000000000000000000000000000000000000000000000400000000000000000000001000000000800000000000000400000000000000000000000000000000000000000000000000000000000000040010000000800000000000000000000000000001000000000000000020000004000000800000000000000000000000000010040000000000000000000000000000100000000000000000000000000000000008000018000000200810000000000200000002000000101000000000020800000000000000000000000000000000000410000000000100000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x79e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf24e0907bc9948667699c8f9094931f930f8617e5eafff2271656cfbde5c2956", + "transactions": [ + "0xf87981ea0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0e42ca826d4b55e9090e794708839ec814729589638826bfb6435f3754ec9ebcfa03b0c3a0bf6311efe28815ab455878767818db4e14f6fd6f406decfabc4117fed" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x490b0f08777ad4364f523f94dccb3f56f4aacb2fb4db1bb042a786ecfd248c79", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np196", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf24e0907bc9948667699c8f9094931f930f8617e5eafff2271656cfbde5c2956", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x528c818971f8e91e1138d4713d88d762e81af2176d7db93264c3b0b8fd47cb0f", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x7a8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9587ef58a068fcb27daff28ee3da231caed47c7efa9371fb42b14fc9908767b5", + "transactions": [ + "0xf86481eb088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa02a1b6ee9e8eb5cd94cd651a3b2930c4543986132e2e215e6f9416dc8be31344ca01f7587b14f4234961447f94cae13c54280f72390b491219b98f1fc2f4a3aab0e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4a37c0e55f539f2ecafa0ce71ee3d80bc9fe33fb841583073c9f524cc5a2615a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np197", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9587ef58a068fcb27daff28ee3da231caed47c7efa9371fb42b14fc9908767b5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfa0dc9ff28e4f903721edb3b35e3b68e8315261318d7b8177e556dadcb11ef6a", + "receiptsRoot": "0xa4e6a14fb19ddad6e78264292f9df58b55152218eae0eff88e1b9348bc3fd654", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000040000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x7b2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x035aad19a0a2ed13bbbd78630f35c556bfe04d7a89bb2fdbe485ad344e6e81b3", + "transactions": [ + "0x02f8d2870c72dd9d5e883e81ec0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c2b5bb2644ee8dc40656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d0e6005ee39e02d654cc2db358df9659d8265e24d7362df88a7df9200438f6ba019fb39e93ff859f3600c01b7d7097a5a8612b77a52e73ddc099d3888b83b8aa48a00b0213a0a435161fb50eb892a0b62016e30e794657df8203ec443f4181519eaa" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x133295fdf94e5e4570e27125807a77272f24622750bcf408be0360ba0dcc89f2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np198", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x035aad19a0a2ed13bbbd78630f35c556bfe04d7a89bb2fdbe485ad344e6e81b3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x17fec881f0a46758a00b8d3f1188246eb7201d6ffbc40723236e1772001c04fc", + "receiptsRoot": "0xcb9c042b698bc6af04b2691e0a065e428419e99e72cf44d9648a8cf4d8f0914a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000009000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc6", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x7bc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5124774422b19463745f7a5aa4c1399d3e8c13abdf68cd0eb70477ba79b3bfd4", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81ed08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c28b4f9f2367ebabf656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a03c8110e03f1b54de6085ff899d0dccd87806b788d1ef3fddbca1de4c356266e701a06640a31d9e8567d5cb1bdbc8c2f8503d8baecddbb42384fbb138148ffb7c53a5a017ba1e6660bdc56e4f8d5713b7f3e336bffdbaea515ff701ee12ae5dac240318" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa73eb87c45c96b121f9ab081c095bff9a49cfe5a374f316e9a6a66096f532972", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np199", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5124774422b19463745f7a5aa4c1399d3e8c13abdf68cd0eb70477ba79b3bfd4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xef7a3636b93f0d6718bd63542c1360e0eb2b96b5eeeee35a0ef9b99f8547321c", + "receiptsRoot": "0x342eaed63cb38bea909573825289290790acecc440db7592465f2ce257905ce1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000009000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x7c6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa467cc633a88b190c7c454be97d066a22527ccfa3784a6d0eaebb099363da22a", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81ee0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cbf894c2fffdcdbd0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00a2bc3fd72bd3f8bb7f1de9a7dc9e928a7c6a831237124e65c60c25f8348af1983020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a01b1fbce7c0ef87f6f9663a0b60e65cc7677278016d927e12347e76adb5c349fca02c4342ff904879e71f5a9bc230ba38bf9a8fae1d59c8960a706ef33214d2d0d9" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x9040bc28f6e830ca50f459fc3dac39a6cd261ccc8cd1cca5429d59230c10f34c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np200", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa467cc633a88b190c7c454be97d066a22527ccfa3784a6d0eaebb099363da22a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c8db72fff2333a2033534e709f102e14a1f5d447f4f0bc8dab1593f29b9b755", + "receiptsRoot": "0x89ad6e712ff59972d0e9cb30bb1e153bcf812624c56f0b21b11f5392068d364f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x7d0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4b395a1569a2995fc5ad6e079e367cd135ae61be2315a57336faec96ff6be4f2", + "transactions": [ + "0xf87481ef08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3ea8a9234e6d52c8656d69748718e5bb3abd10a0a0f425e20bb20618d370264da280ce98b8cfc5ed905266f4a97b5410a7a13e99cea0169d5c9b136d5c55900d7bc5e9d877219bb0018ed5dec92df79f6fd7657f8095" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xec1d134c49cde6046ee295672a8f11663b6403fb71338181a89dc6bc92f7dea8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np201", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4b395a1569a2995fc5ad6e079e367cd135ae61be2315a57336faec96ff6be4f2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7eefbb5fcfd5311819571c7f36f79c4e46685e02b12d0152b08824a5a4a6e37d", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xc9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x7da", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf3574c46ee7be2f327b4c968186b9cba6ce8bc43cac0917119e3226630ac2e40", + "transactions": [ + "0x02f86a870c72dd9d5e883e81f001088252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c080a01e30abbce6dc782012eea990165f7b02747ba70b0c723f37ed8cd9798ee051b5a069bd38061c66a0605b2bd6dec21e0feff4604ffa7c0562cf735c5a095f2cbacc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3130a4c80497c65a7ee6ac20f6888a95bd5b05636d6b4bd13d616dcb01591e16", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np202", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf3574c46ee7be2f327b4c968186b9cba6ce8bc43cac0917119e3226630ac2e40", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x80b41a6c60d2170decdefb74572e5452246657529a32a9ede6c14a73215b993f", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xca", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x7e4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4b92c1e975dfdc44423fea09f15c0b0f6cd94b52f75eadaf500817dadfedc05e", + "transactions": [ + "0x01f869870c72dd9d5e883e81f108825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f0180c001a069d90c3f5ad35ea13b207c3c320c16387cea3db454e625f0837e315e7064a377a06f6640758b45d8d313870e0244e026757adfac8afe22afc443478390488ef0ac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xccdfd5b42f2cbd29ab125769380fc1b18a9d272ac5d3508a6bbe4c82360ebcca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np203", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4b92c1e975dfdc44423fea09f15c0b0f6cd94b52f75eadaf500817dadfedc05e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6710a5c1a72b3e069b6ed71011bf5f7345dbce0862c383ff43a5bf797ca65eca", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xcb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x7ee", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5f7c14e45a99709c6dd5b99043f115777e3fa2aff9baea04e819c8ea1d49ff4b", + "transactions": [ + "0xf86781f208825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd109fa04dc3febffa0fb3a85d3f7b6b04471b40f9b8ee4752919fd7eb275ab26a7e6ceea0118961b62ac804bda39a47c2fd2bb14cd20ab3f02d5d3c7857482e20c43d0703" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x74342c7f25ee7dd1ae6eb9cf4e5ce5bcab56c798aea36b554ccb31a660e123af", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np204", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5f7c14e45a99709c6dd5b99043f115777e3fa2aff9baea04e819c8ea1d49ff4b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9084f2e6fa64e170542a90022d0b1afb798b5e041c64c4d9060fe0d2fae2c4f3", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xcc", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x7f8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa6a548359521b4b239f05fd8001e74c3cdec873dccbc6e9d558942720219436c", + "transactions": [], + "withdrawals": [ + { + "index": "0x11", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf6f75f51a452481c30509e5de96edae82892a61f8c02c88d710dc782b5f01fc7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np205", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa6a548359521b4b239f05fd8001e74c3cdec873dccbc6e9d558942720219436c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e670194ebc744dd6b0999f3f8cb20b3043dd3225da24ce3585c6a5bcaa73f21", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xcd", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x802", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2fda609eaf660679f823fb4376c4bd0cadade83e2fe577f82d1ab3d9f0f42699", + "transactions": [ + "0xf88281f3088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a02289959547b578eba29dfa0768eae6a5a0f8b7d99462d204107f2686027e90d8a02713d89b93092db05cbc9a9b84afb226fffcdfceacb312dab91431ae251af3f9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7ce6539cc82db9730b8c21b12d6773925ff7d1a46c9e8f6c986ada96351f36e9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np206", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2fda609eaf660679f823fb4376c4bd0cadade83e2fe577f82d1ab3d9f0f42699", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc862aa6db897c9f52cc4720788ee061436ea3f10bbc8409d6e65185d94352c93", + "receiptsRoot": "0x3f561108b42b5d639e72338a2c50305f093b051318915b07bbd00898dc95b39f", + "logsBloom": "0x0000000000000000000000000000000800000000080000000000000040000800000000000000000000000000000000000000040004000000000040000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000200000000090000000000040000000000000000000000000000001000800000002000000000000000000000000000000000000000004000800002000000000000000000000000000000000001000000008080000000000200000000000000a020000000000000020008200002000000000002000000000000001800080000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xce", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x80c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa8551de9ee0942059b85b3390a4a8e2b4717e843f5338062877d9a125e1c5d62", + "transactions": [ + "0xf87981f40883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa00f01325060cdb378a59cdb1f33d728f6a97afa73faac18412da93354251e23b0a0778eb42239b79ccb8aea4921b4d37826c05753e963dfd8a84086fb9b54fe2a55" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1983684da5e48936b761c5e5882bbeb5e42c3a7efe92989281367fa5ab25e918", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np207", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa8551de9ee0942059b85b3390a4a8e2b4717e843f5338062877d9a125e1c5d62", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6fdfa0af2b35c52938735071dcc796a47a88984b36f4c4692d33966d070a4c7a", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xcf", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x816", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1cd2293c5df7c51a36bc8527308cfde43dde547b42129799d3f9f94f4b2a5d8a", + "transactions": [ + "0xf86481f5088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0acaf7d557190a46d89d405d0e8bddab4c67007976f47d7941d359b762419c0d9a0700a188d7fab3f77f68b79258b9fad4ecc01fc029ed4fd5186eb07e35df103e4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc564aa993f2b446325ee674146307601dd87eb7409266a97e695e4bb09dd8bf5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np208", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1cd2293c5df7c51a36bc8527308cfde43dde547b42129799d3f9f94f4b2a5d8a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa44d0a46223e903d3168caf55f0230899f101c64a42cff41438b3d496bc0fe37", + "receiptsRoot": "0xd42cf506fa4fd2e3355607964d41795f80d5bab48586be0f46bbeb8ab4626634", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800100000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000009000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd0", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x820", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xbc42869ab3a2245d1c7a2d33a982c8696aab3d3c0f9dfa69d8be2d2cc9cf1d31", + "transactions": [ + "0x02f8d3870c72dd9d5e883e81f60108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8676dcf035dc0936656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04323bceecd4ef7216d5b57b9dd12ecf03842ed56d87fe43d0959436f408f44c401a0fb473a535de94722bba71f55061aae1314b7bc78cc1cb160f3bbc481c41ddadda04e09cdf8831c9e3bda3e24a64ef78bdf96a7b332d1d52cf577d74b2829dcd8d8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9ca2ff57d59decb7670d5f49bcca68fdaf494ba7dc06214d8e838bfcf7a2824e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np209", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbc42869ab3a2245d1c7a2d33a982c8696aab3d3c0f9dfa69d8be2d2cc9cf1d31", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4aaffc98ea6a7e916cc783b132dc537a600ba35c901871cfc507f899334351db", + "receiptsRoot": "0x251f5e2c4b0c5e3dd44fc865bd15c121286aa01ae089e879659e6718e90fe9c5", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x82a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8e8b607660e0016ba139872bc35730d2efe0426136dc7e32ef6091f2c72acf50", + "transactions": [ + "0x01f8d2870c72dd9d5e883e81f708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ca2da1c555f06d1f8656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a05d7c0426d6595c1819b962730e5d2a44644703ebd960ec3ac51297ad937692f480a0adfa1f7c4c15fe13bce3258149d900ad82ecaa1066f237a6456ec3b529237754a079eedcd2a684aee1a2b771a435b3186a5da0936c6089174e8fafbf122ffa836f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6d7b7476cecc036d470a691755f9988409059bd104579c0a2ded58f144236045", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np210", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8e8b607660e0016ba139872bc35730d2efe0426136dc7e32ef6091f2c72acf50", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x480608e954ad9f709e266ca8e840f66eac2f7ff838180c130b3e348bb1c99054", + "receiptsRoot": "0xba5bc7653da51e3500f74cdd416e4eedb5414648e374233de868ac67343e50d1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000020000000000000000000000004000000000000200000000000000000000000000002100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x834", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x85ad1ea8a6413676241be28adc37e9e9eafc7d7d92838f662f89e954b1946243", + "transactions": [ + "0x03f8f9870c72dd9d5e883e81f80108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c6cb6df52764cfebc656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04c3dffb6198347c61671fa1fafd5d80f384ab67a494f5c7bc7428bcb6ca5a44583020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a066a0c94f13a1f94614e0f1df0af17cd8652599496fecceb1a7e58bc545490efba0675eb1dc9602c18b7c1eec372e8ae3daa1dd5a3aeca1a89e52c85bc4d72aa854" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x417504d79d00b85a29f58473a7ad643f88e9cdfe5da2ed25a5965411390fda4a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np211", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x85ad1ea8a6413676241be28adc37e9e9eafc7d7d92838f662f89e954b1946243", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xce71f031bbf67f2695e759640a3940d1278f1bc7c6de271994bf84d3e657c802", + "receiptsRoot": "0x85b5286a8beb7cd62c5f621a2fbb6f9afd256c9ea0f0b7e10d3fcb8a55c80bcf", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000004000000000000000000200000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x83e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x43cc37e72c9060cd84480dc2b3ad47b73ae9d3153ef17aaee77426eaea98c979", + "transactions": [ + "0xf87481f908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cfdcda6573c19394f656d69748718e5bb3abd10a0a0061608e071cc09a95aa321d3751fccb473d16626ab1626ace43d95f685ff49fba01e4c519dcaa3e93ab814cde795a6fa4c5f87f037558981f42438de11a3447302" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe910eb040bf32e56e9447d63497799419957ed7df2572e89768b9139c6fa6a23", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np212", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x43cc37e72c9060cd84480dc2b3ad47b73ae9d3153ef17aaee77426eaea98c979", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dce685a8396403165e98bd384df9ecbf5d01f7e564a347c71cfbdb3deb02c28", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x848", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x52cb7c3d0a4baf4b97c814f69a29ce7efd02b30063caeb4dd25182e4945f9443", + "transactions": [ + "0x02f86a870c72dd9d5e883e81fa0108825208942d389075be5be9f2246ad654ce152cf05990b2090180c001a06a4620766ee6615712cff89a149f4a1d4af61e13971ed8217cf05b3c84266b89a007a1673bc56c3298d9ec061ec32cf0b35be7d8a7d18ca2b122e3f8a9915a04e8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8e462d3d5b17f0157bc100e785e1b8d2ad3262e6f27238fa7e9c62ba29e9c692", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np213", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x52cb7c3d0a4baf4b97c814f69a29ce7efd02b30063caeb4dd25182e4945f9443", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7c30f7a61d25d256743ddc4f767bfe647c86218e1e04e0e81a378ddbffc2cd83", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x852", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x414140870ecffda2fd30789856025aeeeee6ed2d339c89b09142a80b5d02b2fc", + "transactions": [ + "0x01f869870c72dd9d5e883e81fb088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c080a0ea7f055ff679356b6bbc372e259d1f107d08db148907f27c2e1287bc0e0ab595a01ff11cc25aab1db903fbe7a5a12ca3f0a15551f92df97c0619e875fe72984da2" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3e6f040dc96b2e05961c4e28df076fa654761f4b0e2e30f5e36b06f65d1893c1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np214", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x414140870ecffda2fd30789856025aeeeee6ed2d339c89b09142a80b5d02b2fc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd0ddf082a0315b3a2fcd6256c25ea67d747fb54b237dcdf8ffc431286c68cade", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x85c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6d091cc14eb2771eda246d6c98884ca88b3e9c1193f9b1094786e7ac38615d0f", + "transactions": [ + "0xf86781fc088252089484e75c28348fb86acea1a93a39426d7d60f4cc4601808718e5bb3abd109fa0d12da3e860c37ac15537560dc07ea48946855a3dcb2045f27bb14034ad34e7a6a05c6a3fdcdc7318b687ae69d8fe93217851dda4df774c487d0fd025495d81eeb3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x07e71d03691704a4bd83c728529642884fc1b1a8cfeb1ddcbf659c9b71367637", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np215", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6d091cc14eb2771eda246d6c98884ca88b3e9c1193f9b1094786e7ac38615d0f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x87180f17e7aa5d9be9e242e7f923bdfb1b095d8774047d3b56ec932625df566d", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x866", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc2c1970e54d67656e78c75f59b990d4a682800dac92f32e35bbf5c9f4123080e", + "transactions": [], + "withdrawals": [ + { + "index": "0x12", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf4d05f5986e4b92a845467d2ae6209ca9b7c6c63ff9cdef3df180660158163ef", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np216", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2c1970e54d67656e78c75f59b990d4a682800dac92f32e35bbf5c9f4123080e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9ead26372087738f0a82c760bf0f9f43dcd72e44b65d094a9b53ef5ce38d0227", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x870", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9869f9d317befc2be06e35c4bb421b2f70ee3a551da726ac450fbe5683e175e9", + "transactions": [ + "0xf88281fd088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0f07ecb99ca6e3f73e8d15bbb95529e9b6889f7f9a879d2287bb7e15f7dcac49ba0487bc2fddd49b63ac5e1c05e9dd58319163ef2be8e6be6d808aaa82171a95c92" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5ca251408392b25af49419f1ecd9338d1f4b5afa536dc579ab54e1e3ee6914d4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np217", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9869f9d317befc2be06e35c4bb421b2f70ee3a551da726ac450fbe5683e175e9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0df6593528615a46f29a840e91658bc09028b232ff4d02b0fc4c889e0f188b1e", + "receiptsRoot": "0xdaeb5682484dc43ef26215a9aaf64a787fc4388eaaca288d11e605f4eca59e1e", + "logsBloom": "0x0000000000000000000000000000000000200000000080000000080100080004000000000000000000004000000000000800000000000000100000000000000000000000040000000000080010004000000000000000000000000000000000000000000000000000200000000000000002000000000000000000000000000000000000000c000001000000000100000000000000000000002000000000000000000000000000000000010008000000002000020000000000000000000000100000000000008000000000000000000000000000000000000000000000000000000000000008000000000000088040000000000000000000000000000400800080", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xd9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x87a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6cd3151a665feb73ef2fd1c09b2ba1dd622e424cf8d437491f67d7acea386a25", + "transactions": [ + "0xf87981fe0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0484f9c198cee5bbdb572ac3000910d183ca76e7a0a7728f7e8c387ca592a194ba05963cdec459e60452eba1c8a91a102e59751ed71cbd061efeb41b107e7fb5758" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe98b64599520cf62e68ce0e2cdf03a21d3712c81fa74b5ade4885b7d8aec531b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np218", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6cd3151a665feb73ef2fd1c09b2ba1dd622e424cf8d437491f67d7acea386a25", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x33ef2451a664c8d76e1ea636fd70fafc878a7789b182c93dc03ab7b5c99745df", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xda", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x884", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf12671c7915ba944f549618aa1a618c58890d1bb1374ba0d5bfe9a1d219d4e10", + "transactions": [ + "0xf86481ff088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0096dbe957c596a1274724cb8a26e91c4d0a5988acc6c4d71663631e2003c975ea06a37dd9cbf388aed02bc4c4798716068e9b5fff60f5f663a38846d109746fba9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd62ec5a2650450e26aac71a21d45ef795e57c231d28a18d077a01f761bc648fe", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np219", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf12671c7915ba944f549618aa1a618c58890d1bb1374ba0d5bfe9a1d219d4e10", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5cea96ea8b8dd8cc17ea87b5d131fee80c3508fd9b4f15fd00b1fa0df6fbaf7c", + "receiptsRoot": "0x79bd13afbabf9625dc7470703ed2e7c638bf975d014e2cadd1a11155a50a7008", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000008", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xdb", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x88e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2cc973d866118aeeb5d5a45bbda5f59f56d1824d01605eff38bde4ba082a2953", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201000108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cce282565ecdd5bc9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a081607ef8d6fd479d2d0f55ec50762ee5fc35883ee5600525ce1e9ef3398d5aa501a043097c04f7681d47ec224343d8a8a5558814dfb7460a998cf76d8391d00b8a2fa067abff87ca6315bce87430aa9c8d8e1996fbe1cd7723f494253354e33f755e88" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4d3fb38cf24faf44f5b37f248553713af2aa9c3d99ddad4a534e49cd06bb8098", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np220", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2cc973d866118aeeb5d5a45bbda5f59f56d1824d01605eff38bde4ba082a2953", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbca1b202e9a17426e5ae61f7ad2d3b503b2180cde0e6736b34e3d818d1fd6e78", + "receiptsRoot": "0x19a448cfeccf7b829cf2af44a4c5575f12b2872abf24705826ec1f2523284bc4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000804000000000000200000000000000000000000000002000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xdc", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x898", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x633313f0428dac31c59a736f610f5da75f22d0c2ea8d112987c918c7405c0440", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82010108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7c3a8ef48b3cebe9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e207f028cce1624a1fc76c56f1794c2704a692c1f214685291d618e40733ff1b01a00174c0a739a6f4744c6590a84c6b65616b2fc9e9d61747c29f63a30fd16a35ffa0403d478c44f9fad1dd7ff6e514a211e095cbfd97d880f6ba65248f8069928fd3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x36e90abacae8fbe712658e705ac28fa9d00118ef55fe56ea893633680147148a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np221", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x633313f0428dac31c59a736f610f5da75f22d0c2ea8d112987c918c7405c0440", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff3498c0882d17bdde653eac3785d898e6799bab863447e537a4baa61425e6d1", + "receiptsRoot": "0xf791bb85f6463471b2e9f6760696edbaa8ce005016d56e8455620c102a85f97d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000020002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xdd", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x8a2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xab9619afd1e6619dbab5761d6fc5da9a0fbf8b6489fb96eb864e687bbce7952a", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201020108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cf2b2ffddc2dde581656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a08a38792846734575025e5114061b62006064b0636caf6733294eb26895bda2ac83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a02abcc99a781c0f7361e7f522a801f831348da0a9fb22421d11c76c9d49a0e431a07acf8b832d0171a0227738295de6d5854861e05a321660d2470ac9a3c50fe41d" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x164177f08412f7e294fae37457d238c4dd76775263e2c7c9f39e8a7ceca9028a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np222", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xab9619afd1e6619dbab5761d6fc5da9a0fbf8b6489fb96eb864e687bbce7952a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd03023d5fd58e2b8d999c16360f778338eac694840dcb6adcc8f90a0c849192", + "receiptsRoot": "0xafd49c477f051880c7aa55ee362f5bbb56c937b1404f08f5c35e3ca9fbf5c734", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xde", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x8ac", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x827cf63f6f1bfebc2c18dc37c641eb9038174492ce580fc881027cbd447dde09", + "transactions": [ + "0xf87582010308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cabe108b68cb3921a656d69748718e5bb3abd109fa0c0a89bb8e4d7ad8bd04b96d0d7be1ffb0fa0b3708e941779034f8b7fc0e8224fa04e995d47759a912b21e632b3efae2104ed0946a2da7e32135db5df622ef33c0b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xaa5a5586bf2f68df5c206dbe45a9498de0a9b5a2ee92235b740971819838a010", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np223", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x827cf63f6f1bfebc2c18dc37c641eb9038174492ce580fc881027cbd447dde09", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5e23c4e8ec85e768ad515d8ad0f274fdfc0e2db2a98a4f7726859680a78cb337", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xdf", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x8b6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x17c4a736b0ea52a0a4f64166d211b654d10c8a6b316b7a3d151c84f1afbe2cfc", + "transactions": [ + "0x02f86b870c72dd9d5e883e820104010882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c001a02c4661994899245f1f7161c24e6476e42cf57379598cb20cc7a08b75a1673672a0377e496dd0113a554708d7c43244625559fab193cf18ee3b3edae331f9f8deb9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x99d001850f513efdc613fb7c8ede12a943ff543c578a54bebbb16daecc56cec5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np224", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x17c4a736b0ea52a0a4f64166d211b654d10c8a6b316b7a3d151c84f1afbe2cfc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc4d5ad6932daaf18ca694faec40edc097895ddef0909be79e3231f30ab039e3f", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x8c0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc7d92e27e6635446bbbf148991143322dfee51d0c6923abdfe69a9661aa51f3f", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201050882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c080a0d097876d7e2f660c01f19ad07b26bd4fa4ff1f4e21ffce5ee20a63b39f59263da018f3047c40bc77768b6b81ec939400d56a4afb151403ad33686528bd7fb3dba9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x30a4501d58b23fc7eee5310f5262783b2dd36a94922d11e5e173ec763be8accb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np225", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc7d92e27e6635446bbbf148991143322dfee51d0c6923abdfe69a9661aa51f3f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf5fe34d46eb9d7c1429d565d8aadcc47fdcd088720899bcfd735ec4c9fb46ddf", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x8ca", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7fd92767aad5a519ab7a1ee8f06e62a0869042dfaf4aba3b9e47037667137147", + "transactions": [ + "0xf86882010608825208940c2c51a0990aee1d73c1228de15868834155750801808718e5bb3abd109fa0ec1d50950b085d1abcd0edad527bc1dd6896a4ef8008a5b05bfeddcd4c86a664a01872d9a9283c4a11e2e017b5f22919b71f12a25480aa6a20b862ec014bb7f794" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa804188a0434260c0825a988483de064ae01d3e50cb111642c4cfb65bfc2dfb7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np226", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7fd92767aad5a519ab7a1ee8f06e62a0869042dfaf4aba3b9e47037667137147", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1dde1f32d73de2474f924f4693731db2140ff9b6b686a42f873d48147020847d", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x8d4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x508e549615fc6041f7c0737e69a19b2a78954a3b2e401c1e6cdfcd065f591170", + "transactions": [], + "withdrawals": [ + { + "index": "0x13", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc554c79292c950bce95e9ef57136684fffb847188607705454909aa5790edc64", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np227", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x508e549615fc6041f7c0737e69a19b2a78954a3b2e401c1e6cdfcd065f591170", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xda7bf74c9af8065830e837aa77b89ef9403692755ea65faab697c9ec7960a65e", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x8de", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x380fa604fda76b136b8d0cd29fdd1d4d947c90d328e70679c89d25fd46e30e20", + "transactions": [ + "0xf883820107088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a05dd8a8d661cd961e55957d672db81e05101fa822f0ac004ed49853a86071caeca03f56576f78f77226deb6a1e429a9ee442ae7b1d46881779f7cf9845425248784" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc89e3673025beff5031d48a885098da23d716b743449fd5533a04f25bd2cd203", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np228", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x380fa604fda76b136b8d0cd29fdd1d4d947c90d328e70679c89d25fd46e30e20", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0249e268841392bf9fdaf916572f800d9af3df2c6aa664a747e49af6424d19af", + "receiptsRoot": "0xd70a5525f8fbf21175efafcb9acbda1a8d48b1896bd4cf23a8d6c1474c59457d", + "logsBloom": "0x00000001000000000010000000080000000000000000000000000008200000004000002080000001000000000000000000010000000000080000000000000000000000000001800000000000000000000000000000000000000000000000000b00000200000000000000000000200000000000200001400000000400100000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000800000000000000000000000000000000000000000000000020000000010000080000000000000114000000000000000000000040000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x8e8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa3e71744d3faa5f9827963a5f0d659487a2d102a538122e75395ec771100c68c", + "transactions": [ + "0xf87a8201080883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a039291e6b998bc1d7a27a5cceb0045691058a4e921bb821d41618e742e432d66ca05a2a31d95742ffe4689a40e948e01edf3c6e75aa38b4bf8cec5f2445058fdcce" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x44c310142a326a3822abeb9161413f91010858432d27c9185c800c9c2d92aea6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np229", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa3e71744d3faa5f9827963a5f0d659487a2d102a538122e75395ec771100c68c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2af21bb17b0fef2cfd313f9c6cd140bbea1d7890d5ddcec58ea0463936302c7b", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x8f2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xcf2f9ba00e585e8346fe60f6bd23d83f81f57b272f3d7ee803aec61e3b66973e", + "transactions": [ + "0xf865820109088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa089f115b1426cd5610145d87fc9df3c7dd27f55689e7cecb967bf1a5f88dc7d06a00bccc3cc4a1b7dcfbef0ae543a7ddeb2f131308635a3fb752b37c41506e23f44" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xae3f497ee4bd619d651097d3e04f50caac1f6af55b31b4cbde4faf1c5ddc21e8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np230", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcf2f9ba00e585e8346fe60f6bd23d83f81f57b272f3d7ee803aec61e3b66973e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe1f9b9144e9dc8182d6530aec489863d8509ca6ebc136ae0c15e73acf9a44238", + "receiptsRoot": "0x59e63920eb582c6c1ae19664c57b68675b05075e549bdd56ac27d2fa7cdbe3b7", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000000004000000000000200000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe6", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x8fc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x66730b682308530fd5172418ae2100a58c0c78d8e2a4cf3962f74bb5d08a2ad1", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82010a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cf92aa615f9b4e91c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b36949b816cb2ec4ab90f345d0bed84f55b8fcbeffd22198724c45d8a30b20a601a061ff9c4feac16a7f8ecc5df8c184e1ef1335cd485373081b0943d8e665386fc5a06351a12031ab5030ccd9e74fc17f06a4af327e4cd75dc5b96a3e9171ab461d3f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3287d70a7b87db98964e828d5c45a4fa4cd7907be3538a5e990d7a3573ccb9c1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np231", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x66730b682308530fd5172418ae2100a58c0c78d8e2a4cf3962f74bb5d08a2ad1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcc8af6749e2ed26a08d6095101170bd336ab1a8a6e62ce01f24b780811d0efc0", + "receiptsRoot": "0xc37260f445c9b53c029d62d3d2158e5afe0f66f526fcd9a27b46710027e6f483", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000080000000000000000001000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x906", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4138427f2aaf856de7604cae4193f96636c73e0a8984e967f88eeb9cb9868235", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82010b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ca7b2474c2b69133f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a018fbf0ae0e2133584c461cbd43169854c7c7e818e8b5779892da244f24d27b5680a00de88175878b02e140c2e76f3fa2c6ea350b2115fb956aa96f8918d227fae23da072ce3850569847f9c6bd3b6a1ffc680c759e67b96690fa87308b5ab1a234fb0f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb52bb578e25d833410fcca7aa6f35f79844537361a43192dce8dcbc72d15e09b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np232", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4138427f2aaf856de7604cae4193f96636c73e0a8984e967f88eeb9cb9868235", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7d4a41062a1ebaf74eb039e9ca60cfa45e8690a27384180f36064472aefec560", + "receiptsRoot": "0xa3f96ff7d0b57b15707ad579b78988215c35c11d442ec707893281de3dcb9b8e", + "logsBloom": "0x00000000000002000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x910", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xff6c572142173aee3cce05872637e9fa20576e126122f8f096b26c2d7ab562ca", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82010c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ca3b82995153488b2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e70ed54757ba10a0b95454f6483d3d2e11613828f13d57d50b8a3a98e2c8df1c83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0c60e26947a2dbf98447511e72332b2ca362b880fea4fb64fc03462b11b4ba092a038d4b9510bfef9146677f146fc8a1b3c5bc614e54ad5d9a4d6b4d2399cfbeb8b" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xff8f6f17c0f6d208d27dd8b9147586037086b70baf4f70c3629e73f8f053d34f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np233", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xff6c572142173aee3cce05872637e9fa20576e126122f8f096b26c2d7ab562ca", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf80c6c2a65d77db9477b6f676680863460670fa7046e68e566a4ff9a7306f4cf", + "receiptsRoot": "0x647efb03cf0003f7b38e68d1ecc9fb1c211ce88915481adcdf5d3fb6d8c81eda", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000100000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000009000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xe9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x91a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfc3daf2feab4448c624c2b6de75cee4ba8555bfedb236a6dabd08625ee75fb8a", + "transactions": [ + "0xf87582010d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5bf69af19e2c4d7e656d69748718e5bb3abd109fa0c2503c301bf0681ea966f102db7699fa826963b8df17a946954326bb0cb6dbada037aa73c91078f86f187d56b09ef9d2ea8f48db84166ec5c49e78f78fb5ef6e43" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x70bccc358ad584aacb115076c8aded45961f41920ffedf69ffa0483e0e91fa52", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np234", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfc3daf2feab4448c624c2b6de75cee4ba8555bfedb236a6dabd08625ee75fb8a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3285403b266677669b7500a603d1554194888122e7bc7184693687023540b695", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xea", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x924", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x56a716225b0c189b6dfe04eb8dd9012e50bab4fde5c850b3ac032b0bb74c5916", + "transactions": [ + "0x02f86b870c72dd9d5e883e82010e0108825208940c2c51a0990aee1d73c1228de1586883415575080180c080a033a4673c9a8472f5a5ccc2a5de380f0fda913f9862c1586db4ec85045104f242a075d9175ffec2c56075f9656daedf1326c52ee8a96ba5d77be995fa8546bcd89f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe3881eba45a97335a6d450cc37e7f82b81d297c111569e38b6ba0c5fb0ae5d71", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np235", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x56a716225b0c189b6dfe04eb8dd9012e50bab4fde5c850b3ac032b0bb74c5916", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x989911af2991818b56381d69809f0899154d0bc06c90160a4b7cc170e484b53c", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xeb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x92e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5fb1bbafb479d9b6bb8f0d6a832717b2d585af05d70edc9938597e9c349ccb1e", + "transactions": [ + "0x01f86a870c72dd9d5e883e82010f08825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c080a06453186f6a9c55fb36454e34d41c27d13fc0049f5af658fa7490cc8362744190a0504fbaa0f5e9507b29e006587d014651b19bf2dcb8218e14d965236d548ffb39" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2217beb48c71769d8bf9caaac2858237552fd68cd4ddefb66d04551e7beaa176", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np236", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5fb1bbafb479d9b6bb8f0d6a832717b2d585af05d70edc9938597e9c349ccb1e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe584cc11999a6c0160d771fcdd009ca6d340893ec577572315234fc2c8f5bce8", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xec", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x938", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x520f6482328ec8e1a2d2f759d3718f9527046b4eec351d127b4d10920ae7c02c", + "transactions": [ + "0xf8688201100882520894d803681e487e6ac18053afc5a6cd813c86ec3e4d01808718e5bb3abd10a0a03b970b860fc60d5aee40e41743c1eb009255cf8bf7c82dd12f64d675ff24c7f0a06a08d813a4649df981fa4e95c1e425514989b0cc86c10bf5fc46ae9d7530836a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x06b56638d2545a02757e7f268b25a0cd3bce792fcb1e88da21b0cc21883b9720", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np237", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x520f6482328ec8e1a2d2f759d3718f9527046b4eec351d127b4d10920ae7c02c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x90aa516f7634bde1bc39f6e1544693038238b3788c5fd7ec5caf70979bdef707", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xed", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x942", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x89d7de3b3cc3f788c75f502ad3c5194de01d53e6d01675bb8e7319084bb044e8", + "transactions": [], + "withdrawals": [ + { + "index": "0x14", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xebdc8c9e2a85a1fb6582ca30616a685ec8ec25e9c020a65a85671e8b9dacc6eb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np238", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x89d7de3b3cc3f788c75f502ad3c5194de01d53e6d01675bb8e7319084bb044e8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe80483c4ed93170ee2a52821d16553f4ec3b7423733606f1f76c8737ff6f1b9b", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xee", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x94c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xea6c0f8842754decf0722e63340f9ce8fbe8d0ad696225c4942eeff7c815cfe3", + "transactions": [ + "0xf883820111088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa02c77f1a00ffa8149181fe59b1219dcd106642312194ffdfb0efa3a25b739d368a019af967d474a4d25721ef42b7fa0c41572a848efdb3bf8ef229836d07e0696c3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x738f3edb9d8d273aac79f95f3877fd885e1db732e86115fa3d0da18e6c89e9cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np239", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xea6c0f8842754decf0722e63340f9ce8fbe8d0ad696225c4942eeff7c815cfe3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x37054ed1d4de8936d6b6d8309d87835e891d4cb7d403664cbff23ccfce00585d", + "receiptsRoot": "0xb3c76769874da188359ca338714937e0ae1586a0b69cea7a88db3f231f9c245e", + "logsBloom": "0x00800000000000001000000000000000000000100000000000000004400000008000000002410000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000800000000000000000000000000002000000000000000000000000000000000000002000000000004400000000000000000100000800000000000000000000040000000000004000000000000000001000200000000000000000000000000000040000000000000000000000800000000000000000000008401040000000080000000000000000000008040000040000000020000000000000000000000000000000200000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xef", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x956", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xff641c571c4ee7c6ad4776d9e6a619e15a9e9c68173a576adeb39a4d6b7cbcf4", + "transactions": [ + "0xf87a8201120883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a082a80eca863ae9c64748a354a84f40290916bcaf8413792b21b3424378e6228ca03d390881b2d45d2465a2b5d4c3544cec5f43ecda93ad6c960cfa291fcaad51eb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xae5ccfc8201288b0c5981cdb60e16bc832ac92edc51149bfe40ff4a935a0c13a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np240", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xff641c571c4ee7c6ad4776d9e6a619e15a9e9c68173a576adeb39a4d6b7cbcf4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c068ec1861153736ce04d560c6cf63b729d008c9e5c4156b8b8b4351b53577b", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x960", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc0c2d5bded8a29c205781c8126d07498355257ffe0b0a9c63513891158703356", + "transactions": [ + "0xf865820113088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a03ea334e2aa8e74511ed0ad87fcda79a9f680ae5812f88a13df8fbf5f7230c27aa054c5cc729b1ef1167f035aed984cd1aeb394e725797757c42b96bcf3285aff08" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x69a7a19c159c0534e50a98e460707c6c280e7e355fb97cf2b5e0fd56c45a0a97", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np241", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc0c2d5bded8a29c205781c8126d07498355257ffe0b0a9c63513891158703356", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7f1e0aba7bde42d7d8cdfc2d10067e723053ab75fba529a996072e3be4e3026a", + "receiptsRoot": "0xdb3d7500cd8c087e3a0392bf0fa606dcdd10b495faddc3e157febe381694bf58", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000080000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x96a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xaee5da2562edc43aae63fdbfcc1ed4a3b9584d31b515a14b6c9e974cbdb8dd29", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201140108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c420286a1fdfc0e5e656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a040c619388e6393f420e805451bd48b10c670de7d51e916a3ffe5ac3c96b8193880a0963c43efda9e42fb6774a28c7f5e012114afdd0681d067b1b6caf587004146e5a00c0e598f93f2345166df6807de074860ae1776148f8391bf32e32ffd519614ee" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4d2a1e9207a1466593e5903c5481a579e38e247afe5e80bd41d629ac3342e6a4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np242", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xaee5da2562edc43aae63fdbfcc1ed4a3b9584d31b515a14b6c9e974cbdb8dd29", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0b4814aeab2857f64293c7da4c2d9ad9e1ccbde78f61c37ec905a83812e42357", + "receiptsRoot": "0x57bab588deeaa419da929e4a6d21f5823ffae41492db9abc935466c941655403", + "logsBloom": "0x00000000000000000000000000000000000000000000000000002000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x974", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6d56c50e850214cd81f339f0febfcb4874950f0a6e6c541f448c0dd83bbdec6a", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82011508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7071be300963ff92656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e8a78860d5ffde377f4eb0849fe59ed491d4a12fd51edebc2bceab3549d8346380a00e7186da492612df60948da5e541d1ce2857a85ad3ea9f07865c9397ade6ffe8a0617e8bb930030a03d25a1b5f1f07b373d9356259d0eea3480deb3c7826d49961" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd3e7d679c0d232629818cbb94251c24797ce36dd2a45dbe8c77a6a345231c3b3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np243", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6d56c50e850214cd81f339f0febfcb4874950f0a6e6c541f448c0dd83bbdec6a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b1e160783e5eff9abed73679a7ceacc0cdd2bd1ff00adec81b0ce03bd7acb2f", + "receiptsRoot": "0xc702b9e5bef54fbd359fb825b44e4b1edd30258116936c988dc9f756d035bd48", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000400000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x97e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa0e695a82a49373c16acf2ecbd742c53ea37cadecc6dfd681e6b393bdca6c445", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201160108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c3389deedf755957b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0427b8ffdff6454ea85c8251407144400ed4e693ffb6a74f319e0238c0e72afad83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a018196be640c0bacce391e26e900787177b20c087bc92aff6671faa5841174ea2a0197c06391e39c60ba885e840bbdcb01006afcffe27d34e85fdf7fd2e853d9f0e" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xd1835b94166e1856dddb6eaa1cfdcc6979193f2ff4541ab274738bd48072899c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np244", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa0e695a82a49373c16acf2ecbd742c53ea37cadecc6dfd681e6b393bdca6c445", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6aae432319fe437eaf4806252103b8df1111b0dd91815b058fa6affdebd3dbbe", + "receiptsRoot": "0x3f253895aade44a9a272ab90feac8bca59f9ef2c9182ecaff4708c0964c4e6ad", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000041000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x988", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xee14abc18ab909a3c3ff3afbccd5f0b3844727f10754428c44a7c8898f8343ad", + "transactions": [ + "0xf87582011708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c328378d492d41023656d69748718e5bb3abd109fa062fa6a4169d9b7adfa4d6fa305c20b40b828bd2b35dc9bc5d8f69f0944618b9aa013f7457305014b59b83fdd28ac7d7d4de3578ad157e054d4295e42f8105fdf38" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1f12c89436a94d427a69bca5a080edc328bd2424896f3f37223186b440deb45e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np245", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xee14abc18ab909a3c3ff3afbccd5f0b3844727f10754428c44a7c8898f8343ad", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6df949a5989f2b5ae123a2cac652c30938649af91697084fc7393701137bbf4b", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x992", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5964eed483298c980e3372a7adab0e90ac671c5bb0fcb80e481a6fd533851ed6", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201180108825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c080a02592d6e2ddf8518f5b4d3cb227432b4e799ae5bf0c54236e085790306350398ba013d79dbea43f805f839a8a7bfbb86da979de2f4116c57cec6c97152e3185a16b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xccb765890b7107fd98056a257381b6b1d10a83474bbf1bdf8e6b0b8eb9cef2a9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np246", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5964eed483298c980e3372a7adab0e90ac671c5bb0fcb80e481a6fd533851ed6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x94dda996f1424b5b19de2493fd5feb565bc904e6d179a71ba684ccdc9a8e1c1a", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x99c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9093cd0fdc936c5e1a1cde72e4327a8b042d0153d3b268b5441631496ab5b897", + "transactions": [ + "0x01f86a870c72dd9d5e883e82011908825208944dde844b71bcdf95512fb4dc94e84fb67b512ed80180c080a08f3c930c7a4ed0fc43ffe7cfbcbe0eaa913d2422265d09304e67af8fbd1d1edea07fa116f75eb5f7eb90fbd5ad2185a718c9b29da65dcfaddc62f4f1cf9b7b7b4f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8bbf4e534dbf4580edc5a973194a725b7283f7b9fbb7d7d8deb386aaceebfa84", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np247", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9093cd0fdc936c5e1a1cde72e4327a8b042d0153d3b268b5441631496ab5b897", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x50ba0b45c64457f53d8f17fd2973f72a7e154c9ac52412a3078e1c7fdd9cdb97", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x9a6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x123f2c0202f5d919d2376513b9d5c5c9dceda4b91e6fd70f386d0d88ec067885", + "transactions": [ + "0xf86882011a0882520894d803681e487e6ac18053afc5a6cd813c86ec3e4d01808718e5bb3abd109fa0f4d74436654fa222f1dcfe045bb2f56eeb9ed8d35c962ad79e3695dbf9c13d30a07fa1183cbcb7773b1c4084568a2ff4eba4a6ee2993ab4b293ead0c228e70b866" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x85a0516088f78d837352dcf12547ee3c598dda398e78a9f4d95acfbef19f5e19", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np248", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x123f2c0202f5d919d2376513b9d5c5c9dceda4b91e6fd70f386d0d88ec067885", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x51896bacbfafd9c65c4bf4e5c828fe1dd91e2eeea39da7a1a31bdc2b7593f011", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x9b0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x03599481645edb627d61df608525160e3ea5fc6081aa353bdd9828b21f314c63", + "transactions": [], + "withdrawals": [ + { + "index": "0x15", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0f669bc7780e2e5719f9c05872a112f6511e7f189a8649cda5d8dda88d6b8ac3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np249", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x03599481645edb627d61df608525160e3ea5fc6081aa353bdd9828b21f314c63", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x430d7fbc65b1a35ad32e5cb29b13911b47d226d8edd6a587086eea71c0c0838d", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xf9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x9ba", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb70f87f8243cc700afc179251e201ce53395e86cb99d8f2de002488a632f765b", + "transactions": [ + "0xf88382011b088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a084c8d41b9787a77274d53507c769d83f917f64b919e7a2424928c9959bbdbfafa06b83df98f1e5cc5e873ae9ac9207af7dbeb000786f40cc76083afd748d337c9e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa7816288f9712fcab6a2b6fbd0b941b8f48c2acb635580ed80c27bed7e840a57", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np250", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb70f87f8243cc700afc179251e201ce53395e86cb99d8f2de002488a632f765b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7f49042388b1464946998060a0f422a3ae704bcb900166b6b531f95af7dde2ed", + "receiptsRoot": "0x0f107923c29a48b7014b6b5bb47237cd248821464a08db5f1d990d39f08c8786", + "logsBloom": "0x00000000000200000000020000000000000000000040400000040000000000000000000000000000000000220000000000000000000482000000000000000080000010402000020200000000000000002000000000000000000000000000000000000000000000000000200000000008000000000004004000000000000000000000000000000000000000000000100020000000000000000000000040000000000100000000000000000000000000000010000000000000000000000000080000000000000000000000000800000000000000000000000100000000000000004000000002000000000000000000000000000000000040000000000000000001", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xfa", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x9c4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc4bf5494f56bc45ce01dad37aee3ce9ffc45d83fdc000e12181f5f8acb8019cd", + "transactions": [ + "0xf87a82011c0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a001f0bfa70518840b6c846fc573298406585f3ae18d41bd7b09b74a4bcc5ea45aa0497baf1aa5e0080d99e9492897d489f1fd1387d65451da9d5e8e87d5d215c3d7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xda5168c8c83ac67dfc2772af49d689f11974e960dee4c4351bac637db1a39e82", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np251", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc4bf5494f56bc45ce01dad37aee3ce9ffc45d83fdc000e12181f5f8acb8019cd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc5b50d5f5bb8459ffc0293d6a89682f22e33c497c5060d2b84db9c24f8800747", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xfb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x9ce", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4a451e3d5c50c59b8f500744456ddbc1305fd7d30a3088e18b63ab514e146a5a", + "transactions": [ + "0xf86582011d088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a09802950fbf7bc635e1999203e18e5a7eb8ff2878cdeb9e4dacad002689b01b55a0676f17a2bae780db0606eafe3c28ad8ab6ba4f46a4ca3911469ef1538a566d06" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3f720ecec02446f1af948de4eb0f54775562f2d615726375c377114515ac545b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np252", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4a451e3d5c50c59b8f500744456ddbc1305fd7d30a3088e18b63ab514e146a5a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5d62e876c9fb75994f975f38a997ced53c6d9e93efa0b68782d2874d51cb796d", + "receiptsRoot": "0x98a9a37889a99b4f9f21fda3496a111b5c72b1f223748956005057dc45b50c9c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xfc", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x9d8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7e09bd28fdc45aa33de70b9cc577566820bcc691bb602bb4ea34c060240a3a34", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82011e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9a60100c3b84dcd2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a22721490cd06a0e77bc2b085bb4d57e7e5e0b459a2afc65ec4697d51926e1b880a0b289d6cf504d44238e278312e383bd74e5c41396a1b72bfa9b450aaffa7b07b1a03ae51f148de13d9dbcbb1b8b3f4d24b07fe30032979ba0e38aaceb36bd988221" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x273830a0087f6cef0fdb42179aa1c6c8c19f7bc83c3dc7aa1a56e4e05ca473ea", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np253", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7e09bd28fdc45aa33de70b9cc577566820bcc691bb602bb4ea34c060240a3a34", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x12f9955199b8b97c6b2f014a63595097abf47b3f6cb5647c81cbf2b813eb5f74", + "receiptsRoot": "0xdd239257b0e6e609ba5892c702f3cdf7bb5df0ea65d15417448bca696977ecea", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000100000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000001000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xfd", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x9e2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6b8f79e73655d6e6bf62130982a8130929598f06e537104557fafb585ef859aa", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82011f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c77a74f070310737f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a09138868b39f601dde19efa6e9a154230a51805e9a6cabaf28fed5163aea5832801a016d8f464e102d235f5b4a4cfe670e9994b533a50eac8688f258ae0fb2cc84f59a055d952ef33fb3e62215ea5259c32d7b04002b805e8a09c792b04737361d90165" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7044f700543fd542e87e7cdb94f0126b0f6ad9488d0874a8ac903a72bade34e9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np254", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6b8f79e73655d6e6bf62130982a8130929598f06e537104557fafb585ef859aa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b0f5e16afef64944c550859b5703cb5f7d1fa907857b24bf8095990f031144e", + "receiptsRoot": "0xcece2afc40f80de52e7f38fdf0e3b080356a02624715ed0e51dd82f578e52f88", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000201000000000000000001000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xfe", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x9ec", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2f59eb73c385708d16bfbdabd173a892b1aedb35aef605b39bf4ecb37e5f4d81", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201200108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c729a65bda31a91e7656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a02dd51e8325001014c6845bc5ad51b134ab237f95ab18da55cabc4275b029bf3f83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a048b3e953645fd3e4cbea431b95e043ac285045829d6532739853eeb511cea26ba00d538af75559625a07f08c4ed4259602d548b81f08a01c3e2b15fdc75883d1aa" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xf63a7ff76bb9713bea8d47831a1510d2c8971accd22a403d5bbfaaa3dc310616", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np255", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2f59eb73c385708d16bfbdabd173a892b1aedb35aef605b39bf4ecb37e5f4d81", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb56427b3a211f0a2f62a3a0b2cc41a6183f481796616214d294633846d550537", + "receiptsRoot": "0x08f1a82b6731cc83acd11b29a3f0bc0d9c641f0f090f9a4fed92b49de10c8276", + "logsBloom": "0x00000000000000000000000400000000000000000000000000000000800000000000000000000000000000000000000000000000000100000000000002000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0xff", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x9f6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xdc795b259c72a03503f2caa5002867f7321785d36a0fc325f23c6a7f0b5bc910", + "transactions": [ + "0xf87582012108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c706590b13eb1c33d656d69748718e5bb3abd10a0a08932fe032e5f900ede1c39bb840498c393f529ab619f244cd632db7668b22392a0499938e0564c1ab6ddf20ac4e3bb4eb19dbfadd170e12d62850e9bdfd2d74306" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa68dbd9898dd1589501ca3220784c44d41852ad997a270e215539d461ec090f8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np256", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdc795b259c72a03503f2caa5002867f7321785d36a0fc325f23c6a7f0b5bc910", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf2e41fdb4e72f7a36c1008b3ebe31da625d6cd0dacd4f72b5f2e81a21110a95d", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x100", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa00", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x271a4760953153009f96bed8d964dfa87d6893d05200beca8c28b05661a749a0", + "transactions": [ + "0x02f86b870c72dd9d5e883e82012201088252089416c57edf7fa9d9525378b0b81bf8a3ced0620c1c0180c080a0cdca45c3cf416d7336cd612875776e83a4852aa0d31a8eb64ed139b5cbda30c0a02abc192501a700bed7a29fa13f9c23d4685ac51f7d98226e739272b1718a28ac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x59e501ae3ba9e0c3adafdf0f696d2e6a358e1bec43cbe9b0258c2335dd8d764f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np257", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x271a4760953153009f96bed8d964dfa87d6893d05200beca8c28b05661a749a0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd4e0fc59a22ec4e6f85ee34181ee0aa62fd0e262627bde52f5a30d3d72b5aefb", + "receiptsRoot": "0xbe3866dc0255d0856720d6d82370e49f3695ca287b4f8b480dfc69bbc2dc7168", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x101", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa0a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa01a3f6a72dc1967245123b06ac7eae459690d7ef3a4d07700c0e3745a74db71", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201230882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a0bdc843dcf9fe4bfab0842fa7fe93d5a18ab077b852e42b43e45aaef6e542d18ba061e44f1be5b39592a8ba72b746d8f5387f6fdbe81721782361b958893625157c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4f19cff0003bdc03c2fee20db950f0efb323be170f0b09c491a20abcf26ecf43", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np258", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa01a3f6a72dc1967245123b06ac7eae459690d7ef3a4d07700c0e3745a74db71", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0d9cc93a6bc9a1e7acabb383958c985ed8f99e6f5520eb221e749d1dae041285", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x102", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa14", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe098e6bdfcbf458b4139ee1ebb140d43f6d606f540d989eba5b8b97435bff5ae", + "transactions": [ + "0xf868820124088252089484e75c28348fb86acea1a93a39426d7d60f4cc4601808718e5bb3abd10a0a0d435058270eac8cc8ab931fb3fab35f5c0fd1b61807a8f41dc882b5d56bb390ea045ee97f442161f5e4286ed78131e766593df3cb9607e686443d13a54b1962c76" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x52b1b89795a8fabd3c8594bd571b44fd72279979aaa1d49ea7105c787f8f5fa6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np259", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe098e6bdfcbf458b4139ee1ebb140d43f6d606f540d989eba5b8b97435bff5ae", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x79104cfc128a45bc8bec55c00d116a4cea3a32716a1d264c9b037976e7284d53", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x103", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xa1e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8820f152b3cff23de1f3b9447dd120cdc4db4b52be2289b8addfd158c2ad60b2", + "transactions": [], + "withdrawals": [ + { + "index": "0x16", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7c1416bd4838b93bc87990c9dcca108675bafab950dd0faf111d9eddc4e54327", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np260", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8820f152b3cff23de1f3b9447dd120cdc4db4b52be2289b8addfd158c2ad60b2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc9f270a3715490a6d21769ad119b76059f3bac9a0927df091b843209c6ae901b", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x104", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xa28", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9055974f536a57910076dff54ffff9856ac72456315542541730ccbd2f24ea9e", + "transactions": [ + "0xf883820125088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0ce757243cc0db6a5bc75785d39bf586d46a5d7fe15d5c7aac61ed7fdbe104a91a062efba996990699558521640d5718e65cf0861a2bd1f56539a434d296b3fc0a9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xef87a35bb6e56e7d5a1f804c63c978bbd1c1516c4eb70edad2b8143169262c9f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np261", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9055974f536a57910076dff54ffff9856ac72456315542541730ccbd2f24ea9e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7c6c05ef0a73857681154a418f8621ca2f30e4c623228dde96a1e6e82fc53a25", + "receiptsRoot": "0x55dad0db67f2a541e084a97b2740c312e248e965b1c1f7f1e31d0737bfd90305", + "logsBloom": "0x00000000000400000000000000020000000000000000001000000000000000000004000000002000000000040000000020040000000010000000000000000000000000004000020000400080000000000000008000000000000002000000000000000000000000000000000000000400000000000000000000000000000000000000040000000000000000400000000000000000000000001000000080000000100000000080000000000000000002000000000000004000000000080000000400000000000000000000000000000000000000000100000200000000000000000000000000000000000000000000000040280000000000000002000000000010", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x105", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xa32", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7102af3da7876aa9cff2e92b872cae97f9eaca3f19c6b184a9000d27dbca4e74", + "transactions": [ + "0xf8798201260883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa02d7ade69ce5b4edeaf29fbc8d988dd32569ec074296dd98dbd5914a6dd17269c9fafc4d0c1e5aadb398ed630e85c406608324043d76b3f9c8e8b49192bdd4d7d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe978f25d16f468c0a0b585994d1e912837f55e1cd8849e140f484a2702385ef2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np262", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7102af3da7876aa9cff2e92b872cae97f9eaca3f19c6b184a9000d27dbca4e74", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x13a8de182e47d58d6c065bc564dff31025097da722d82e7a8d693a14df57ba96", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x106", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xa3c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd50ce3a9f526cc3f15e8938ea731693ca87130f6ea684d06e3df024c0c2d298b", + "transactions": [ + "0xf865820127088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0185ee9769a4c97615b18b2e54cd2fff632e9115f7ad53cf2ec3c8ffe2109741da00328e76fb900029f080951acfabd4b5f061481a9dbf613e804ce7bbec0e87038" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc3e85e9260b6fad139e3c42587cc2df7a9da07fadaacaf2381ca0d4a0c91c819", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np263", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd50ce3a9f526cc3f15e8938ea731693ca87130f6ea684d06e3df024c0c2d298b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x010a4f44ff3cd9b11606dbaf036f8387acdc2004c52f6d810edc8ca4eebda97b", + "receiptsRoot": "0x316125a325d25224538bdff871ac99cf3bfb3c35d4200250353f77119403dce2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000200000000004000000000000200000000000000000000000000002000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x107", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xa46", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe87cffe7581ce382f9231fd3e5f6c6dd15670fac36f758bcaf841c44459f882f", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201280108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c1b6adcc983ad4086656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ac748acc1af284e25d06434a8c1bbbf75bb8154a06f53f75d4f36edb656a49ba01a048442e64874ab0b16121c95b466712cbdf2e87653a8df012137c53072b2cc743a06f2692920a03883be81526c7daa0b9fa309f8f6f24b4023fda243f7844f7e501" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbd2647c989abfd1d340fd05add92800064ad742cd82be8c2ec5cc7df20eb0351", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np264", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe87cffe7581ce382f9231fd3e5f6c6dd15670fac36f758bcaf841c44459f882f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x862679188996c77b1c01e201cc58bb22326c513b56a65aa1930c9fca7861c761", + "receiptsRoot": "0xae0675e593af9295b673e2aedba6455869043f45bd1182c52bed6d3517c78ca6", + "logsBloom": "0x00000000800000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x108", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xa50", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4b2ca2c24eb4cfff7f4ea2a8657efae77d1f12850557b1b3cedaf5326498a476", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82012908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6fc8c6364b779b27656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04348597bdcdee80c8e110d94f771eb7edce9c8691b2f90b71c0d11f729f086c901a0caf86e2da1e470d76d0a5e3fe70b58a3a6113abf07985e08eb193cfd96c5918ca02a8b90442569638779433a89bf2760eeef5edc15ad093b998a10c2fb381e99fd" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x99ac5ad7b62dd843abca85e485a6d4331e006ef9d391b0e89fb2eeccef1d29a2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np265", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4b2ca2c24eb4cfff7f4ea2a8657efae77d1f12850557b1b3cedaf5326498a476", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf801f0ae5e3d5a5d90ca28b461d3e0a677d9e4cf7255caf1c2eef8eb071711e5", + "receiptsRoot": "0xd593abc3db20ebd5b10a6733655958da6d1c5b35ee05b4814cdc175ee7531b30", + "logsBloom": "0x0000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400400000000020000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x109", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xa5a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6442f9445011c3fabe60fa667b6d3312a035f8b31ba11d66784657a7b1610e67", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82012a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c62087a44acecfb2c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0321c62425869f150c2cb7f489691c3e5cd49f7cd62d07ecbb7477c4148aaaa0b83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0f28cb1c217ed21fd0c1cca1ac6471a4a1e1322513803209debc62d460bbcf5bfa01d36fb08965086554afaf29e564765993a89f231d1fb7c822f9cedbf38142192" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x02a4349c3ee7403fe2f23cad9cf2fb6933b1ae37e34c9d414dc4f64516ea9f97", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np266", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6442f9445011c3fabe60fa667b6d3312a035f8b31ba11d66784657a7b1610e67", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc24cbb64371207d2535756c6e351e52664feff1f248b0bd5ec9da5b2a6ba1503", + "receiptsRoot": "0xd91270b8ced1e15e9ae15e9082afa3ab675eb35f2ef90504cd34f809be9580d1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000808000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xa64", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x957a973ad8b0b3e200ae375441704b26ce89fa5056a66550359b34ee91a2a0d4", + "transactions": [ + "0xf87582012b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc71d2dcac9d2c7d8656d69748718e5bb3abd10a0a06b7a5561adc1da4a84af285176c1278e1e457c2e6c88bd1c581986952c6a38c6a024432b3cfeb0da3431d49dcf45dbcf347efc2224f6ad8043c85b3efa66300c43" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x627b41fdbdf4a95381da5e5186123bf808c119b849dfdd3f515fa8d54c19c771", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np267", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x957a973ad8b0b3e200ae375441704b26ce89fa5056a66550359b34ee91a2a0d4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfd434f0cd7eb391ab7f027196e5f51ac834f735fcac32b8e31d6ad78d18faa3f", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa6e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x714651f961e055fb12c089df6e5c83f279400bba685d20810303f77984712cd0", + "transactions": [ + "0x02f86b870c72dd9d5e883e82012c010882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c080a07ef0599368e48f92cea08522b2af646397a75b14c5019e5100960f7c6e3621d1a07571eeaa9614c533053d49ebe30d33740bbc681996119333a84bcdc1684fa236" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc087b16d7caa58e1361a7b158159469975f55582a4ef760465703a40123226d7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np268", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x714651f961e055fb12c089df6e5c83f279400bba685d20810303f77984712cd0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7f6912c6944851e25a3496940081d559f868580a929a9b423d524fccc743495a", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa78", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0b3f682d9d441ee52d4a38112d385f970973958bc4586ed97a2ef47a202aa38f", + "transactions": [ + "0x01f86a870c72dd9d5e883e82012d088252089483c7e323d189f18725ac510004fdc2941f8c4a780180c001a078804d323a6d0022973b593c84be513f2f2479a7d370b92f94f4a944b832d913a0396694a61a6e2793d452220f9d6bcdec26754cb218a622fc6c3a1ec73cf406c0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf7a477c0c27d4890e3fb56eb2dc0386e7409d1c59cab6c7f22b84de45b4c6867", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np269", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0b3f682d9d441ee52d4a38112d385f970973958bc4586ed97a2ef47a202aa38f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x642b07f0c012d1a6cc8684db3f438e5b94bff72c3fd16afa1ffd385b5849c102", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xa82", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd6a33b58b1e38fe4ac1c3386de7de4d1db23f14871f1b0a6163750738a6844b4", + "transactions": [ + "0xf86882012e08825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd10a0a0779b187a8ebce5b522a53b7c1b541b85e639525c747ac9f29d79361d3cf113cba04013c8dcb8374c518e4cf57dc71e4c48a093002b181cfcbe8d90b312879038f2" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1cb440b7d88e98ceb953bc46b003fde2150860be05e11b9a5abae2c814a71571", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np270", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd6a33b58b1e38fe4ac1c3386de7de4d1db23f14871f1b0a6163750738a6844b4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7ce4e321ae6a7f99bf8c18556e0337125cde5f4396966ceec6cd7019d2423f62", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xa8c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7fc400f7b6c69771e1a1dd0fef6a7fcb25f9d4a2160f28c2c20ff5c8c5557396", + "transactions": [], + "withdrawals": [ + { + "index": "0x17", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x72613e3e30445e37af38976f6bb3e3bf7debbcf70156eb37c5ac4e41834f9dd2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np271", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7fc400f7b6c69771e1a1dd0fef6a7fcb25f9d4a2160f28c2c20ff5c8c5557396", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7ff2b46cdb8074ca55d4b3fc13192c9699cb0b7a76d8e9958fd73aada75e88b6", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x10f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xa96", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd40c0450e901d3193859726272a91036198d0bb55438bb30e7e2ee747bf90d07", + "transactions": [ + "0xf88382012f088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0d30b64c986d60875c723271137dda91480051141fa40b9b19fda5b35b28498d0a072b15981e23481356183bb684d92a17520fcc49b8e79bd66b01c2a3eb00e5080" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe69e7568b9e70ee7e71ebad9548fc8afad5ff4435df5d55624b39df9e8826c91", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np272", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd40c0450e901d3193859726272a91036198d0bb55438bb30e7e2ee747bf90d07", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb6617e19c771c68482094b894c8e7436cbbac7c4f17f55675ef403ea931e18f", + "receiptsRoot": "0x5622fe693f4cec7001b7b5255002970d6a43e8766dd6b65f97dcef68b4b15e73", + "logsBloom": "0x00000000000000000000000000000000000040000000000000000000000001000000000000180000000000500000100000000000000000000000000000000004800000000000000000000000000000000000040008000000000000002000000000000000001000000002000000000002000000000000000000000000000000000080000000000000000000000010000000400000000000001000000000000000000000404000000000000000000000020000800000000004800000000000001800000000020000000000000800000000000108000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x110", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xaa0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb56358c5f0686a2af5b2569179542237964b481269f589871f1d0a8494b22716", + "transactions": [ + "0xf87a8201300883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa067ce64185ff235bc6fb6d1c933db1f65991ea4268907c8029122d1338e903d4ca04dcd6718312a76e391829354b6971c306a8935e0c61eb6ff1f8dd4114a8e22be" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc3f1682f65ee45ce7019ee7059d65f8f1b0c0a8f68f94383410f7e6f46f26577", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np273", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb56358c5f0686a2af5b2569179542237964b481269f589871f1d0a8494b22716", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf7a1364bb961162f6574f5b3a8b7b56166ad532a49dc6fd5c80053712008e967", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x111", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xaaa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6db49261c82dcd68dbd907e9ae99e60e8b60a144e20fa40bc9760e6af5ae95ab", + "transactions": [ + "0xf865820131088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0963b4b682cee1ac82d2573a185fc77f4dd0bafe984dd0ec3eae6ba6c5b96f336a07bd8df7e9e06faa4484b7a99f81264ec6450f44fd7cfda336c64a771e7879cc0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x93ee1e4480ed7935097467737e54c595a2a6424cf8eaed5eacc2bf23ce368192", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np274", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6db49261c82dcd68dbd907e9ae99e60e8b60a144e20fa40bc9760e6af5ae95ab", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6337ba2546295dc867f60b1bf81165e062cea1fef20ebc7704386c0e24ed09c4", + "receiptsRoot": "0x04f73f76e4bba7f03157c98cc8882d865b925617737189a14a142449408e9f72", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000040000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x112", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xab4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x295a8e852bcd10264566f53a7c2b7010d082476d400aeee5d1067c6237964b33", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201320108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c84eb17e70e299b7f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04edb05f465bc71ee02c59ac9b5b50ddd974960ea2bd7e8cf7ae91c38c0b5789c01a0f7a778b0a09332e80f8e81093e5e1e7c52bbd27b7ffe32ecc0f7502aa17548e3a01bbb86d42cab74c611445a5952513f45d34bcc5991768a03f1c3094ab8718821" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb07f8855348b496166d3906437b8b76fdf7918f2e87858d8a78b1deece6e2558", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np275", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x295a8e852bcd10264566f53a7c2b7010d082476d400aeee5d1067c6237964b33", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd9103dad491d1411ebde692ed260f608f8a0e516b3667c19745b853d134e05ed", + "receiptsRoot": "0x54b806f301e72c5c97cd72fdb3bfe7f7bf3a33126648b0819df63ffffb9bebd8", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000400000000000000000000000004000000000000200000000000000000000040000002000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x113", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xabe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x59c54b1678dca13353be6cbe9090244300dafeeaf924758a74eccaf5d8e83cbe", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82013308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cd67b2566c143f645656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0af1c2654b2e98e9ffbb02f14d88617a245a9a1679162be29776a4836185dc2fa01a068ea7748cd8fb3a62c9c0ca526662190eb90da364aefa43f95a7fd80069f8e0da03fa5b362efa81b138425b1995031b081841e3b74d0e466406092121b431984fa" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xec60e51de32061c531b80d2c515bfa8f81600b9b50fc02beaf4dc01dd6e0c9ca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np276", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x59c54b1678dca13353be6cbe9090244300dafeeaf924758a74eccaf5d8e83cbe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3ea9fc59800a6487e43efaa31e2b75edbebac868211334f6424d27229ee9aae9", + "receiptsRoot": "0x75976c90eec5e0755df80f972dc62aa94af9d4dff4dc2348789422a62d262259", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000008002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x114", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xac8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x62434faab09991ba4832b647e7260e305c48a47556068e84a5a0f8d1cd23ca0d", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201340108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ce6d182630e8ffca8656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a01f6ebf3e4d9c96ec86b866137bbec9bbb56d188e7126babfccc6394fdcc6a3d483020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a046d328ccc281080c9cbd39806ec008e6e80362fd11dab9fea364f7671e540ea2a01ae74b5fd369a9282a2830a1c67e92416772ebb18da78a90501156733b650e99" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x2fc9f34b3ed6b3cabd7b2b65b4a21381ad4419670eed745007f9efa8dd365ef1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np277", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x62434faab09991ba4832b647e7260e305c48a47556068e84a5a0f8d1cd23ca0d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd2b92c2a4b2e37692c4fa39277a649ba09add321635433a9f5a85e10323aec38", + "receiptsRoot": "0xa4fb4fa96e26e57cd23777822feb59c66993b86b1c5fe2998054861530bc08a4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000400000000000000000000000000100000000000000000000000000000000000000004000040000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x115", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xad2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9852b90c33582df6fce102fb4e211a0e0b391b486dd80752560076c200aedf9a", + "transactions": [ + "0xf87582013508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c175564045165c9ce656d69748718e5bb3abd10a0a0b7490c29a40996e144cc3955a4c2aae7f86a138eef44a24dfd28adf7268314b2a04f5f8a7010b2c8cc4d519bf0712bdcaefc997b02d8085f945349a58b9e39ac64" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf4af3b701f9b088d23f93bb6d5868370ed1cdcb19532ddd164ed3f411f3e5a95", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np278", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9852b90c33582df6fce102fb4e211a0e0b391b486dd80752560076c200aedf9a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x16bc56677af4614198a208557d5464144cff14ed2c033401272883a09b176655", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x116", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xadc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x65240654f94bde1e2d244ef74fc438f08b54b1e9faecc7ec1ca49a7ba83ce5ce", + "transactions": [ + "0x02f86b870c72dd9d5e883e82013601088252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c080a0d9ffd12f7588d14332da52ceb4862c1c9440972503b6bea4ff2f0c814bef0d77a07bfc019e96b947ae8453633bb24a02b9d4ee42d6a61dac59acaba0b3145ab205" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8272e509366a028b8d6bbae2a411eb3818b5be7dac69104a4e72317e55a9e697", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np279", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x65240654f94bde1e2d244ef74fc438f08b54b1e9faecc7ec1ca49a7ba83ce5ce", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe6bdb5afa9a849de6b0d4bd5fe3539809083c6c836a54f36b4471339f72bd480", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x117", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xae6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9f54ff65564ec9e51c194c32c07d73fa64f558ae0df769401105131d1f438d44", + "transactions": [ + "0x01f86a870c72dd9d5e883e82013708825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f0180c001a086bdb289e75a85bb6f3b4f8b6c2749f65e4b15e58eed8cc66c2ba2d6f5de8ceaa069b4015ac783ad4aadec56b02eca50b0a31b82b72199b09043fb6ba2f4b8e00c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa194d76f417dafe27d02a6044a913c0b494fe893840b5b745386ae6078a44e9c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np280", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9f54ff65564ec9e51c194c32c07d73fa64f558ae0df769401105131d1f438d44", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcbf9bef3ad12460cbdc3971187c32f61429c42c3bedd417d57e066788b99b0cc", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x118", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xaf0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1e86080bc89bddf96fd5508dc58502c9062a2d3e496aa859dd0b10ed033ff085", + "transactions": [ + "0xf8688201380882520894c7b99a164efd027a93f147376cc7da7c67c6bbe001808718e5bb3abd109fa0a662f632deb3fef96f5ab89f3b020b503a4729d9db036e2ec67bba1bb1452df4a044fa3357f58f9bd405168dc003f6e1861a724212d0ba39b33ec537685f365a81" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa255e59e9a27c16430219b18984594fc1edaf88fe47dd427911020fbc0d92507", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np281", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1e86080bc89bddf96fd5508dc58502c9062a2d3e496aa859dd0b10ed033ff085", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a7076fae4ff76a77d4f1acafc2da76a7050a4e5ccd3ccd0d3d637a51ca47aa6", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x119", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xafa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5cb14068ec9e99fcb6e8e78e64cd2aea94f667888a9aa540844dfe0bc8a375dd", + "transactions": [], + "withdrawals": [ + { + "index": "0x18", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7996946b8891ebd0623c7887dd09f50a939f6f29dea4ca3c3630f50ec3c575cb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np282", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5cb14068ec9e99fcb6e8e78e64cd2aea94f667888a9aa540844dfe0bc8a375dd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe5e70db521666aeb73a06f9c286b7502fdacb311fdc60efac8a8da590cfeb160", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xb04", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x44aeef6943cd37a6ffff1de2e0904beb164a461631b591993ab85ccb86abf4f9", + "transactions": [ + "0xf883820139088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a02d4e1f125fb474ed8d60cfc496faf39035ebcd57af5937887ffa2ded09bcde39a03d5597e69b61d3f7abb3383a20338375b913743918ace209bec0c8d0f4f658b1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb04cbab069405f18839e6c6cf85cc19beeb9ee98c159510fcb67cb84652b7db9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np283", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x44aeef6943cd37a6ffff1de2e0904beb164a461631b591993ab85ccb86abf4f9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1d45be906d2849f6e3161e17312a2fd977b60a55636ce6cd70eed8549bfee233", + "receiptsRoot": "0x2548b2c4f6ffcaa8cae3f813cc2f88574ccc98c9cdde87e4418a4066a0bcea20", + "logsBloom": "0x00000000000000000000000000000001000000000040000000000800025000000000000000000000000000020000000000000000000080000008004000000000000000000000000000000000000041000000000008000000000000800000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000040000000000000040000000200000000081000400000000800000000010000000000000000000800000000000001000000000000000000000200000000000000000000008000000000000000000000000800000000000000080000004010000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xb0e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x61e5376ab0b484c9dca320837e8bc9dada91f2d60b550767d26adf500f5df996", + "transactions": [ + "0xf87a82013a0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0eff406704f79d3f4db5be64f739a44fe6eceee562491b506795e88167f139e25a00cf97cfb7cdad504262c0d23737384042a1d4c3fd0fa4df3cb7ad6a96d54521e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6f241a5e530d1e261ef0f5800d7ff252c33ce148865926e6231d4718f0b9eded", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np284", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x61e5376ab0b484c9dca320837e8bc9dada91f2d60b550767d26adf500f5df996", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7cd71e8b07b7bb3fa70ed94616f4887bbfa4a6cce6facaa44e6865f59ae037c6", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xb18", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xeb675d937511476e7fcc82eec7615c2910d74026ae57a3fd9e144ec4afc45a00", + "transactions": [ + "0xf86582013b088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa05732694bc88f7cc2644b44204bd328078810fb3926618d4ffdfa3e03ea000bb9a01010ef4bcf3eadac81e801f0c25e44a20dc4bd033f17e4ed09e3a0ac5a4b016e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfcfa9f1759f8db6a7e452af747a972cf3b1b493a216dbd32db21f7c2ce279cce", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np285", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xeb675d937511476e7fcc82eec7615c2910d74026ae57a3fd9e144ec4afc45a00", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x167eaa4051016ad131f5b603d25a900155c045229531514f479eb9b7bbb5aa5e", + "receiptsRoot": "0x5d14337c2d0d5f4da33e745c879800c2634b055d0f71545f3b3618e639eb1b6b", + "logsBloom": "0x00000000000000000000000000000000000500000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xb22", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1cafd78ec641f4af5d4f70f2a69c94688dab74feb7d64115401f7cafec61c7e2", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82013c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cadcad3ba169a8a51656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00678ff21f84e5213aa8d1d173b3517f8e6c3d1523959c101c75a31daa70ab94201a01918dbeecc2f61b5e9e696225c1c5f13090a04891d9a4393892109a8163ff3f7a0639e9ec95866c6dca604fb9798e992dd1989b08ffc54299a1a6dc1a2f94498ef" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdf880227742710ac4f31c0466a6da7c56ec54caccfdb8f58e5d3f72e40e800f3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np286", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1cafd78ec641f4af5d4f70f2a69c94688dab74feb7d64115401f7cafec61c7e2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x775c80d1a80b1c76fe2f1c0af49b49c4a8e7405bd8090d956d047e998795caac", + "receiptsRoot": "0xd847ae81e705bf592e83e07e114adb8ef9d33af6da479f7c3963828da86d7c41", + "logsBloom": "0x00000000000000000000000000000000000000000000040000000000800000000000000010000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xb2c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x437f7e43e11d7d3c69a7449e6cf3bb70f85495c6f84326ec4300833a445c7d8e", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82013d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8443769f598e5687656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a081260b78e72018d5773b6ba1df006b09a387fd733e59ad152c119d9848ecf1f980a07b3fc599b095127e4e675563db4952e2c13c30485fc0e4ac434bb3d175e129e8a03ed2d1e42886b4ec6a6b828f389d4a27849e8487598d5c01c0a1bc5b2c026f5b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xadfe28a0f8afc89c371dc7b724c78c2e3677904d03580c7141d32ba32f0ed46f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np287", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x437f7e43e11d7d3c69a7449e6cf3bb70f85495c6f84326ec4300833a445c7d8e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8cde4488811e966f0881d87ae02ff4dca1a2aef4f11a854fbe9cd0659f553d67", + "receiptsRoot": "0xc99124f8a46ba081e312e6db1e41f758085537c17dba467ece154417c33b0a81", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000080002000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x11f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xb36", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x28c467c36d5a76c1f47784655e0360553564b11d092613b84636d27c005a64d9", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82013e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c3f20aa6ef3a2d29e656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a09ebbf91a66183d0d37b03faf46daf8fe238c1aa2b24e6663dc14e50557d432c783020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0944a43418c2a82928098195bcd1063a0d4d5553ff905a4772c55031d9b5e188ca0269be874b42c07952b5bfc61303a8ac6ed2aefe16fd234e88f97478436f78795" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xb264d19d2daf7d5fcf8d2214eba0aacf72cabbc7a2617219e535242258d43a31", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np288", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x28c467c36d5a76c1f47784655e0360553564b11d092613b84636d27c005a64d9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf69a897df14993c56451103689053946df7a09c574a10f197c1956e036db6322", + "receiptsRoot": "0xe608d9463d18b52caf248aff389704e7a8d431adce9046d407a3929c168ffbae", + "logsBloom": "0x00000080000000000000000000000000000000002000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x120", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xb40", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xdcfb02fb51c962c7da9968cb094da0deead9be715cd80fe4edb15316afe5abd3", + "transactions": [ + "0xf87582013f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdb7522f95019b619656d69748718e5bb3abd109fa0028fb8a95e9b6be0f40433e37016b9d8aec371876c9efb6d542acfd11a6f5a63a0681fd28936f71c4e26b68dcfb31b01deec00398390ea47791fe6c670133cf93d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf2207420648dccc4f01992831e219c717076ff3c74fb88a96676bbcfe1e63f38", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np289", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdcfb02fb51c962c7da9968cb094da0deead9be715cd80fe4edb15316afe5abd3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x162e360af683c5a166d055477db0cc06b05117ed9bb7b2558930f81871a5b778", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x121", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xb4a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x54e726c63980affe15f4fcbf0649b8839b2cec81fb03ff9d4885c49c0c13e49b", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201400108825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c001a074086a3abc29275ddd4ca998950ba0189b06bf9fc4fe60336541e33abb96a44ba06021836d2af3aa84c9649616dd1248c020ac4b17b9b04af339f48afb9fecdaba" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x41e8fae73b31870db8546eea6e11b792e0c9daf74d2fbb6471f4f6c6aaead362", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np290", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x54e726c63980affe15f4fcbf0649b8839b2cec81fb03ff9d4885c49c0c13e49b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x67989baebf9aa997591e0226162add8feffae878efc188ab93d2a22ef07e5683", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x122", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xb54", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0d07c9bc86d9d0dd335a1d0b4af655218071687d5aa6a1bee5c9dcf69479624b", + "transactions": [ + "0x01f86a870c72dd9d5e883e82014108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0ff1a23dfb62a03a09b014b4bf3e691fbe52a6b78da07ad989de34eaedcfdbabba0331d3bba364e174c4e7b0776864c8abdc389a33620ab9e301cc0fbafca7dbdc9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4e7a5876c1ee2f1833267b5bd85ac35744a258cc3d7171a8a8cd5c87811078a2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np291", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0d07c9bc86d9d0dd335a1d0b4af655218071687d5aa6a1bee5c9dcf69479624b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd306e642f35fe1a4e613e1090c7c530bd153926e736d8892a27df2f21e712430", + "receiptsRoot": "0x642cd2bcdba228efb3996bf53981250d3608289522b80754c4e3c085c93c806f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x123", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xb5e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xee4bde5bb8d77b4d171c88650704849bc8308792022a9e0df731a264b6d986a7", + "transactions": [ + "0xf8688201420882520894eda8645ba6948855e3b3cd596bbb07596d59c60301808718e5bb3abd109fa084430de15b72b4529fbbc01601d015a6788bbcd471aa9b921c7b7d816fc71ca0a079bf52bdf4c4bdd192851e1e50b9257e6f6bf9a0d0bcc94eb73002ac5a9275c1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8d4a424d1a0ee910ccdfc38c7e7f421780c337232d061e3528e025d74b362315", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np292", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xee4bde5bb8d77b4d171c88650704849bc8308792022a9e0df731a264b6d986a7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c1c56ccfaa16e9979041c01127f074290f865d4ae7592866ee323ce8f87b82d", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x124", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xb68", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xed908adb5661b69ea32366f362a10182a478af8b7ae01a870be3ae36c0a4138e", + "transactions": [], + "withdrawals": [ + { + "index": "0x19", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfa65829d54aba84896370599f041413d50f1acdc8a178211b2960827c1f85cbf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np293", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xed908adb5661b69ea32366f362a10182a478af8b7ae01a870be3ae36c0a4138e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4f6a1ce7ef10269593a283f75ef466c9ba84d79f3f845a12b4d1f7162acba87b", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x125", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xb72", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2aaf777b8b9baa765e6c315b77d2ed0bf12654e466a9f5d9a4b3892c34d346ef", + "transactions": [ + "0xf883820143088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa03fd1ed4657ffde9f278a6dbd7498fbd9178afe039cf507c14562ed99832b0650a07ab31ad66326ea0083695f22435947c3f55b501c16febb9fd763573b86ad5390" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xda5dfc12da14eafad2ac2a1456c241c4683c6e7e40a7c3569bc618cfc9d6dca3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np294", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2aaf777b8b9baa765e6c315b77d2ed0bf12654e466a9f5d9a4b3892c34d346ef", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5ded562d3f6efa30dbf5691e43a3c2209bde0e1ea1b7e7e613703197991d351d", + "receiptsRoot": "0xd978bab18927277656ed7e13f23ec0784c693d4aa84da97132004c0e3c499947", + "logsBloom": "0x00000004000000000000040000000000000000180000000000000000000020000400000000802020000000010000000000000000080000000000000000000000000000000000000000000000000000000001000004000000000000000000000000000000001000000010000000000000000400000000000800000000000000000000000000000000000084000002000000000000024000000000000400000000000000000000000000001000000000000000000000000000000000000000000002000000000000000000000800000000080000000200000000200008000000000000000000000008000000000400000000000080000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x126", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xb7c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x833f91460ba1a4d3754963b49508167d180860494029996788dfe0a4b7c1898f", + "transactions": [ + "0xf87a8201440883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0a8b9c241eaf3e71ad4fd47ef1b71de7c8907a9532b5cc8a28fcdfa146b511503a06d4416bc1436c0ab12d096e4489e0d213122e05824adb8ff95a01ac9e2d42242" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x16243e7995312ffa3983c5858c6560b2abc637c481746003b6c2b58c62e9a547", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np295", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x833f91460ba1a4d3754963b49508167d180860494029996788dfe0a4b7c1898f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e9f3bc83383ca95fe5653f585731fb296de3048f13503b0a6009bb7729cf9fd", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x127", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xb86", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x55415e30e330b78eea4143896ca20531aa466962f9e7c270892c0c82b9dc52e8", + "transactions": [ + "0xf865820145088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0fd89b49a61d6883e8494ee4e49b923a929d45b1f213cd7115cc4c71bde233cfca04bfdd7ef8f5a843b7c774ac0b4d6277670d143664a6f0e44ee875b412f62c441" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb75f0189b31abbbd88cd32c47ed311c93ec429f1253ee715a1b00d1ca6a1e094", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np296", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x55415e30e330b78eea4143896ca20531aa466962f9e7c270892c0c82b9dc52e8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0490c1fa403a13e5798f6c58646769b6dc95070bb79d3a845f136f978508623f", + "receiptsRoot": "0xa7afd0b07e7a2e88b4d7cb98997e0de937a24ea996e160baa8b28357c6cf85e7", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000100000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000002000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x128", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xb90", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3fbfd523742f263285774e53c795a95cd422dfcab3af25a98440ef2d9eaded1b", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201460108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c526ae023b07bd13d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b3750ecb88b6e11e5f686cbacb3d24e61396cef4a1525b30d5a30edc4b3fdec080a081642f28c9de3fe1723ef8ccee70c49bed708f8877ce676752d45beff9536f33a078e5303b3fa3cd8038b4acae749adaa355781910f0a3fc023b6fabd75af45827" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd087eb94d6347da9322e3904add7ff7dd0fd72b924b917a8e10dae208251b49d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np297", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3fbfd523742f263285774e53c795a95cd422dfcab3af25a98440ef2d9eaded1b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf95f4921c08963ef37e942092ca3b4fcf53f0b11bac2d0c5bc0a420e0a3a4ba7", + "receiptsRoot": "0x5b0661634b1e9cb68a186435e4aa5a4bcc97a2b464a4c992a399499830e31c98", + "logsBloom": "0x00800000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000200000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x129", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xb9a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x360482b09341ef1eb6bd12fbc2290c17fbcc72f8f1128a1f0eaedd6da6350c60", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82014708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8a1488f31c40de0e656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0f9b648439e7b876f9aa1b178fc6381f44bcaee23754d8da33b2d44e78cf47bb180a0b74f33715a3d5e6c5acb5487fe7f13ee89ee0d2dcc8e8c8178733081a59ab6f5a0758d36564ed54824326dfe5d02d8a45fef7a563564df9e25ba21693dcfd456ad" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbc17244b8519292d8fbb455f6253e57ecc16b5803bd58f62b0d94da7f8b2a1d6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np298", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x360482b09341ef1eb6bd12fbc2290c17fbcc72f8f1128a1f0eaedd6da6350c60", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x42b2eebbff687a49e5ae924fcc9d17fba5ec8d503c2a07e3ec7623a0b50ccef3", + "receiptsRoot": "0x3eb919d2fcef89e2c1516e126d60ed91a86467b2e89e39d014d587c5388ff17f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000008000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xba4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe1a596d7fe5e0df44bd95f04d6e52f6942a3ca81f2c339e69436a1ab39b6cb96", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201480108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cf9a5cb54664ef5f8656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a094605c950838b2b0b1ce76f58acfb91a94c2aba787d02add7187360989745a4e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a03b8ca3a76add252f7bbd8101e13577794778385a8f1bbccb7064828def032416a02b89693ba23e931ff1c55436ea8b56c04db444414933dcf27aa7d5ac19c84d34" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x3ff8b39a3c6de6646124497b27e8d4e657d103c72f2001bdd4c554208a0566e3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np299", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe1a596d7fe5e0df44bd95f04d6e52f6942a3ca81f2c339e69436a1ab39b6cb96", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3b30cf8f701b20e556ba7642cd359cfe5c11b209ae4fa954fe9bf251e46d289e", + "receiptsRoot": "0x6c51b3f43a82c0424cf86ab4750ada1ab75eb4375120685c9031a4076901be2f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000024000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xbae", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xab15736f5f9a88b9ee82577680039c70f6ee7a1a45bcef23aa00ad68f2c4c3c1", + "transactions": [ + "0xf87582014908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c4242e5ba3689784a656d69748718e5bb3abd10a0a006f0d8139bdc84c0e072ec2975098473df9fdcfbdc075b28f89ac9d94fb3ef6da00e30d4713b01d7958df25332fd92eb5d172eace2dd409b10fa28f2903890ab27" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4d0f765d2b6a01f0c787bbb13b1360c1624704883e2fd420ea36037fa7e3a563", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np300", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xab15736f5f9a88b9ee82577680039c70f6ee7a1a45bcef23aa00ad68f2c4c3c1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3223ad04cf675fa197ecf36289db8a47181442ff0a593bd6bf5959f306c8f451", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xbb8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb09555539b48721618134671e9f09ca11c3473b6c972eefc61f7bf6e59901843", + "transactions": [ + "0x02f86b870c72dd9d5e883e82014a0108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0caed21f372ee5c4593454ade30ef1ee8224ac2ad66bc1aadb1cffa7e8e50c1ffa022bf467d785ea97c1f2b00679c759242c9099fbe548cc079ec5cdb8eef24cb9e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf6f1dc891258163196785ce9516a14056cbe823b17eb9b90eeee7a299c1ce0e0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np301", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb09555539b48721618134671e9f09ca11c3473b6c972eefc61f7bf6e59901843", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4d11bf1d5f97964995316bbb0cb6301bc72e4654e1b4bff5ac56aaab9e534534", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xbc2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfd0af364faeb502cd7a06b059c730040c89c4bb60af5f9e432062745c47a1c76", + "transactions": [ + "0x01f86a870c72dd9d5e883e82014b08825208940c2c51a0990aee1d73c1228de1586883415575080180c001a06e7e89f25881bac2942ebb15774d731ff658735063d2fc83af8a3b1e2cbfbebda02f005a584d1e67574a67f45d45c37e214ad520891e291a3a098ec7a675c09ef6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1dbf19b70c0298507d20fb338cc167d9b07b8747351785047e1a736b42d999d1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np302", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfd0af364faeb502cd7a06b059c730040c89c4bb60af5f9e432062745c47a1c76", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb8f4b54f262266ac9a6a7f7251af900e88df5d053dba8951be923734fe45c718", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xbcc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xccc479403433e4222f2c1886e3707712822a3ac130f37263b277d7f42fedf93c", + "transactions": [ + "0xf86882014c0882520894c7b99a164efd027a93f147376cc7da7c67c6bbe001808718e5bb3abd109fa0c074d8b1d59a61ddf17c7cd6d9d6d155df7d22c6b02cf6873962860e76e4c946a06bfea57fd386eef123c608f5001b2540921441d7a5518602beaf671b55db011a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc3b71007b20abbe908fdb7ea11e3a3f0abff3b7c1ced865f82b07f100167de57", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np303", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xccc479403433e4222f2c1886e3707712822a3ac130f37263b277d7f42fedf93c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x98eea718b816a398d4eec814aed057da38bcf0d0ab9ec7f87ccc3467d3adcbc1", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x12f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xbd6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xcac6455fec57cb7705d097952412eaa1e3984c8a50f703d4dc84d990e099ce9e", + "transactions": [], + "withdrawals": [ + { + "index": "0x1a", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3f45edc424499d0d4bbc0fd5837d1790cb41c08f0269273fdf66d682429c25cc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np304", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcac6455fec57cb7705d097952412eaa1e3984c8a50f703d4dc84d990e099ce9e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xce500d05e918d1eccdf5f44e824e036dae2f5a856441d076b3b0493383161822", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x130", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xbe0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc2497bf1f6196ab87d85a9b1ea008b60687721f7bc75ab3fbf8de50d455baf03", + "transactions": [ + "0xf88382014d088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0aed77e1adc4d85735ae91736955ce7d4ccb4a821ca1a354af9c21126fc56d433a0159e0e1a7f5e2eb9ebe116a56a30ce40135336d305851afba8a65a5ea6a89788" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcb8f5db9446c485eaae7edbc03e3afed72892fa7f11ad8eb7fa9dffbe3c220eb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np305", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2497bf1f6196ab87d85a9b1ea008b60687721f7bc75ab3fbf8de50d455baf03", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5fd98b8df59ff1b25ae93c21f976b037e8046ede37661d1a5e5b27ffb7f8fcf", + "receiptsRoot": "0xd0d766b35165fdf34cddcbe108f063ac07fe182d2b3a2088dc66cbf65536e9a1", + "logsBloom": "0x00000000000000000000000004000200000000000081000000000000000080000000000004000000000000000000000000000000000000010000000000000400000000000010004000100001000000000000000000040000000000000000200400000000000000000000000000000000000000000000000000012000000000000000000000802000000000000000000000020000800000000000000000000000000000000400000000000000000000000000000000400000000000000000000000000000000c00000000002000040000002080200000000000000040000000000000000000000000000000000000000100000000000200000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x131", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xbea", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x42690f0496662b95458544ff5fa9db8e9839a90c142ba6e211b2ad2fd19a8bfa", + "transactions": [ + "0xf87a82014e0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0aa853c0c43255b1996de6db7e434268a8c78acf7d547e5f77804b1f9c56c163fa0490f9b0c07434c0d825892fc0d0d96adde2f67b2fe83bc28c5332d62ddced55d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3d151527b5ba165352a450bee69f0afc78cf2ea9645bb5d8f36fb04435f0b67c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np306", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x42690f0496662b95458544ff5fa9db8e9839a90c142ba6e211b2ad2fd19a8bfa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff7e337033c82bba1ba7fda4ef78dcd73c72c96f4e4b280cc4a07d6d75b87e65", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x132", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xbf4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5dc6a2e4dea9a9151cfb8dc58b8ad3e2e2c590f73ef3659f24bbd1484f5f51ca", + "transactions": [ + "0xf86582014f088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0f811ab125d628afb503e72fc03ffcf8bf0c94b9278b04a80d4583b5bdca47058a011ed1658949375d5f114abafe92733343e1e9decf853394a04e68b8b7fe1d945" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdd96b35b4ffabce80d377420a0b00b7fbf0eff6a910210155d22d9bd981be5d3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np307", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5dc6a2e4dea9a9151cfb8dc58b8ad3e2e2c590f73ef3659f24bbd1484f5f51ca", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb7f91e8621bd652b26c1cd38102a0da65f88cb5f181daeb52efffcb0b87117a7", + "receiptsRoot": "0x8f4bc522aee40a55d1ea96544b202ffe7c48a27588ca8e0b6280f8e8771d0953", + "logsBloom": "0x00000000000000000000004000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x133", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xbfe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x170d3dd10df213b71da46b8d94023a22e58c3366eac78c70b095fbceee126712", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201500108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ce355c4e09ad571c8656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a038570ba11cfca6a25bea615c7ec09ae671516245a92a5f8fc61d2e82529454e880a0352c735b38d32df5bd6596e8984191065e4da2d6e56547f409c217868a0f56bfa05a618d58a18225ddf45f3243a69200f85a04e21a2778b3434823c21a18925a1e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xace0c30b543d3f92f37eaac45d6f8730fb15fcaaaad4097ea42218abe57cb9f4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np308", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x170d3dd10df213b71da46b8d94023a22e58c3366eac78c70b095fbceee126712", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4f8e99267b3f2c937906657a584aeb5e96845da3109e7f0f8cb517e571c70fd4", + "receiptsRoot": "0x1d42b78a784f6ac9a2e208af5dbdce6343dd4a3bc391338f5010f590e5dda60d", + "logsBloom": "0x00000000000000000000000000000000000000000800000000000000800000000000000000000000000000000000000000010000000000000000008000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x134", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xc08", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x42e46e023d7d24d978c93644717729a7fdcb0e07c67e390a2c6699c4cb7fc7cd", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82015108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7906a8e7d74f757e656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0befb4ff6aefe6c4d85158d11057517eb9cb1e1cae3e9d2d9c90ff40b2cceb54601a0d25ae0523675e0fd64ad02bf5d19902816fc5d0f836981b8d57dab847a15338da001df53840599b6eb6e5daa0a0ecda3fd0f24226b06cb0ed473458dcee396527c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf6342dd31867c9bef6ffa06b6cf192db23d0891ed8fe610eb8d1aaa79726da01", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np309", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x42e46e023d7d24d978c93644717729a7fdcb0e07c67e390a2c6699c4cb7fc7cd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x017c09a63851eb3673e1252e64d50010ba08eb374d930344b1190fb2d908c255", + "receiptsRoot": "0x1289b9de706c4e04e62cb0d571c3b3d1ca2855f8d4b220daba7d185a8b6b14c2", + "logsBloom": "0x00000000000000000000000000000200000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000008000000000000004000000000000200000000000000000000000000002000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x135", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xc12", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa7c1b6d6c5d4fc516c4b7a9e6917a1929957edf45107e164fc0768578e4e555f", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201520108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c34cb6faed8212f15656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a03eb32abcff52bfdf0887e9aebaeeaee4a61b76f2fbc9a183c2afc8552d46c3f683020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0fd544670525ed6d6fb445354933e077363014839e878ea0cb8f610c2338af4d3a06dd8877e0b44875d49819c17c4a79181047bad799c836c69ef605c70ba23b859" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xa6589e823979c2c2ac55e034d547b0c63aa02109133575d9f159e8a7677f03cb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np310", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa7c1b6d6c5d4fc516c4b7a9e6917a1929957edf45107e164fc0768578e4e555f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd8b73cb5b48d69916d97b098deda61b10f5e3f21fec80cfd678ef5b7ffce38e", + "receiptsRoot": "0x86c42eb55a78f125fe8441afa55d1dec4b294bf9314f70ef52ddb716188ec561", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000002000200000000000000000000000000002000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x136", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xc1c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0762831f8a197faace5f89136d4e8fd2bdbcd634050bb8c28593c6f62769c2f6", + "transactions": [ + "0xf87582015308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cb731385f04d97db8656d69748718e5bb3abd10a0a09abe467beb55df0823716b56ef94e1034cb4caf9f8f2befb3d03fcadae7f6f02a0548c60031efd2568057a7b428586bc61a539482aa759896d0885be892488ea46" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9ce48bc641cc1d54ffdb409aab7da1304d5ee08042596b3542ca9737bb2b79a8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np311", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0762831f8a197faace5f89136d4e8fd2bdbcd634050bb8c28593c6f62769c2f6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x347540851d85d8e1a3f6aecbe00a90100a88748f66ac59dfc2175dcb2ac705d8", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x137", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xc26", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb534a77d9471e828befa7adf86678b4a7a928e2a2db3e9ccb919eb0d2e2d7131", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201540108825208941f4924b14f34e24159387c0a4cdbaa32f3ddb0cf0180c080a027b3576746e2090eb8c591f5218834c24fc8e546cc326cd47c3d549b0000ef86a0483343082391b0902e7685358a12b24bfe74b84c21b75178790b6127f082858c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa44be801bd978629775c00d70df6d70b76d0ba918595e81415a27d1e3d6fdee9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np312", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb534a77d9471e828befa7adf86678b4a7a928e2a2db3e9ccb919eb0d2e2d7131", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x86cc1c8ec7b8a9e6864a885a24a5ad32131aa338b242b21b8872784f5ed964a6", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x138", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xc30", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x797081f69a1e07e62ab7d70958e3840489579027770db2acd79ab7da50c5684e", + "transactions": [ + "0x01f86a870c72dd9d5e883e82015508825208940c2c51a0990aee1d73c1228de1586883415575080180c080a0bd50cc3348f9c4df62c2b6819da09ad9f59d6f664ac93d858cd9c4a8a7712fb1a00dd838cd7e8b5f7ea87752357dd50603a9dba395f44148b5d074c04041d45be3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xce17f1e7af9f7ea8a99b2780d87b15d8b80a68fb29ea52f962b00fecfc6634e0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np313", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x797081f69a1e07e62ab7d70958e3840489579027770db2acd79ab7da50c5684e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf427430575efd44fff9c42db0eef2fbf16eed6170dc1f0c9e27740493e64c2dd", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x139", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xc3a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0ad3abab22df80481936bb2a0d8b50a807633495c41ede9d1570c25b59fdeaa8", + "transactions": [ + "0xf8688201560882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e01808718e5bb3abd109fa08c1fffe0d5b5dcddc5c7eec0cd0e58e596dd46e45cb71629b3a03bc43b0a03f3a0773aeca142fc242046765c6bd72997f60eb5aa72a136b641efd1c790cb6146db" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4bd91febab8df3770c957560e6185e8af59d2a42078756c525cd7769eb943894", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np314", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0ad3abab22df80481936bb2a0d8b50a807633495c41ede9d1570c25b59fdeaa8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0895c6fd3c63f4ac032cf4c14fbd1b4bc865f40ffe4ac85d47238b2eb763fa79", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xc44", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5d7d1a0c180dbae5272ccc6e6c01b45960408a2205e36e897320813cc1627af5", + "transactions": [], + "withdrawals": [ + { + "index": "0x1b", + "validatorIndex": "0x5", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x414c2a52de31de93a3c69531247b016ac578435243073acc516d4ea673c8dd80", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np315", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5d7d1a0c180dbae5272ccc6e6c01b45960408a2205e36e897320813cc1627af5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x78b3cb7b18a396757fbc27a3b254334b513e9b11632726110581a1ac9775aae4", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xc4e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x457cf3e561354b6040afd9e0d386b3fea81719cc40b3fca29fc4d4f99be875f9", + "transactions": [ + "0xf883820157088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa035f6ba62287308ffbbfb8261894edf57969a9f95630d6b145f44404efce327dea06580af4b699a96a41c5a0f39cf3a7ed3a0c6758ceb2d8d8705f88319643227f3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x647fb60bdf2683bd46b63d6884745782364a5522282ed1dc67d9e17c4aaab17d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np316", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x457cf3e561354b6040afd9e0d386b3fea81719cc40b3fca29fc4d4f99be875f9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x402bc8c855f2ccb2d737c396d499ead744bb2dee1621fa24bf74fa6a2c91f34e", + "receiptsRoot": "0x7db11edace07336d23f92ccb11a83f53ba5423dd770cebd9373a83640ab9352e", + "logsBloom": "0x00000000000002000000000000000400200000000000000000008000000000000002000000000000000000000000000004000000041000000000080000000000000200000000400010000020000000000002000000002000000000000000000000010000000000000000000000000000008200000004000000000000000000000000000000000000000000000000000000000000000000002000000000000010000000042000000000000000000000000000000200000000080008000000000000000000000000100000000000000000000000000000000400000000420000000000040200000000000000000000000000000000000000000000000000000040", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xc58", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4e8f0489aada99804a9c89679ee1fd98cf0197713766bbb480c77970a95f3f5b", + "transactions": [ + "0xf87a8201580883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0ad8dcfb4390f7fa366243f1beb1e059e2f9950088868fec28ee22311f265f35aa05eab4d60f1d1f52965202e06cbe1085e28463db4f1746426c899cbba05acda08" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfa681ffd0b0dd6f6775e99a681241b86a3a24446bc8a69cdae915701243e3855", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np317", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4e8f0489aada99804a9c89679ee1fd98cf0197713766bbb480c77970a95f3f5b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc02f0ee9f7010e2148b506712066b306ffbbc78d75b209a88daa358d20b6545d", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xc62", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8df9fb79d5b59f66814970a325d025e1e059f33616840d45bc73ee25a40f10ee", + "transactions": [ + "0xf865820159088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0f40d3332d3996cca69bc91b95b31592abb5dbe52ee89c79da915ab5c9d03c34ea07370380f1a072929757900ea593b048aae64884632dcba2edfb0cd70ab3f6c1f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x106ca692777b30cb2aa23ca59f5591514b28196ee8e9b06aa2b4deaea30d9ef6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np318", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8df9fb79d5b59f66814970a325d025e1e059f33616840d45bc73ee25a40f10ee", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8f2edfd625374a5d7beec93191a77b0fd3456319b09968da07909fa875398a36", + "receiptsRoot": "0x89fd8ceeb002cc5ef22dbfceaa45eec15c6f19cc82bc35bf2293380c9be3dd3e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000009000000004000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xc6c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1da2f81639c8614abf6f4720da2ffca4a5557ae2c62f68948a325f08dce60a71", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82015a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5bd1cbdccbb7a3a8656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d5eb8e9a486b23e10cf0092ca8690e7bd6d6c90932960cdfa5da36d1e1f2042380a0f44092a2c4d82ff06c2fed6ee5b831c59867cfcd0fb23d715503bfb6e81f86d1a077a2b1deba8fc487ce7645bb71b1341826193e05b9a9fb5f2839df7171d24682" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x494ac6d09377eb6a07ff759df61c2508e65e5671373d756c82e648bd9086d91a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np319", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1da2f81639c8614abf6f4720da2ffca4a5557ae2c62f68948a325f08dce60a71", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1c52961562bb9bf1e8ca7d75a53500f81b569d990de2e17441780ba2750f69a8", + "receiptsRoot": "0x7e6e34797a1654b05e5069d916c674f9b74f7a6429a62477147dae8d5cd50684", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000010002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000100000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x13f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xc76", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x378d38c1343aa2703f647894a5fb7330de9fc0e363c86f55beee5d8d66e1d714", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82015b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c15917920cd0da2be656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a09575996f3ad6e9709d7122224335451a59395327d297fd7967004e8dc139130880a0861b172f70afee55f8c80a2011df58329d3dcf4977721a0d81cd3b0baec58ef1a027c4d7790f49b29a2c101cc3add1e14793c20a3d799a36ddf17fdb13be5ba69b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0ae4ccd2bffa603714cc453bfd92f769dce6c9731c03ac3e2083f35388e6c795", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np320", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x378d38c1343aa2703f647894a5fb7330de9fc0e363c86f55beee5d8d66e1d714", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6e3f441e95b9277bd883cc95fa0e356cd755c77a78ce43298910126bff8c1a43", + "receiptsRoot": "0xb6746e44eeed87a9ce96f9a793b871ec3850e9b9fcb159b0d6331c6e160eb316", + "logsBloom": "0x08000000000000000000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x140", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xc80", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa2f88ca8a8ab5ef26e33eb38b5f28edf9349afb29e5f1a8435c070fbc8df25ea", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82015c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ca0eb3590d415621b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d314fafd686fcd729a24ff511ae5e19248bd6ac6de8c28c79918df72de20e63e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0fbfb4dc589628139ed92ff30a50aa483198db95f62d826b3396c3a8bb1147ad2a04e103d38c928e9c5df35c00103eb3da8be27ef8b735fa9bb9dccbc1692128de4" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xd860c999490d9836cc00326207393c78445b7fb90b12aa1d3607e3662b3d32cd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np321", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa2f88ca8a8ab5ef26e33eb38b5f28edf9349afb29e5f1a8435c070fbc8df25ea", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x105d899797d6f5405211a54971d5510e22b55e583e3d2c84dffa0551f42b406b", + "receiptsRoot": "0xbefb0d7f70ff16c79a480b2ed6c8dc4b091d44453ecb28c6678b57bf6a5bc47b", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000001000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x141", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xc8a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x54dc888fd505259107b6574dd8a20a802deb1d07bb9728a54d74795789454270", + "transactions": [ + "0xf87582015d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cd2f3a8041747db44656d69748718e5bb3abd109fa0498ebae158440b3a5a9f1fee09afb45e54d26070dfb752347789730dbe7f1bbea00607f270ceb41f8bbf3f1dc833a48e2c961c9d7bdedaf926be20b5b0905cbf74" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9587384f876dfec24da857c0bcdb3ded17f3328f28a4d59aa35ca7c25c8102cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np322", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x54dc888fd505259107b6574dd8a20a802deb1d07bb9728a54d74795789454270", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4da42e9b2ad1e02c7735e0953382c1550a5698713259b895930ed535f40d9565", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x142", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xc94", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe9b56ec487c3b9eda677017acd8c89f1a995b8edca20949d5492bd47f1278705", + "transactions": [ + "0x02f86b870c72dd9d5e883e82015e0108825208940c2c51a0990aee1d73c1228de1586883415575080180c080a05ffa0758fb568bf788d3252bf8b649f3999c5d2009d2685e996b432c69603c5aa06d233e0513203eba2b10f5b6a12e683eacf974f0e27bf938cae9563c3c662a6c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4df8093d29bc0ec4e2a82be427771e77a206566194734a73c23477e1a9e451f8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np323", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe9b56ec487c3b9eda677017acd8c89f1a995b8edca20949d5492bd47f1278705", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x87e82e69847cd556c83117835035d0e472cfcbda01e0ca2858f820aa8ebf4315", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x143", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xc9e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x411ec72e0e4ba3c70825d4d76357e30b010815babbbc1837e2c70006d33e809b", + "transactions": [ + "0x01f86a870c72dd9d5e883e82015f08825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c001a0c7038d0ff0894d50c4b3988e5e7ea777a7e62678be35d606ebabeeb5ee56fd04a03d5ae90baa01e4a58a59acad839e89d0c48c989a911847cf911fd0ce0bc50cf1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc56640f78acbd1da07701c365369766f09a19800ba70276f1f1d3cd1cf6e0686", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np324", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x411ec72e0e4ba3c70825d4d76357e30b010815babbbc1837e2c70006d33e809b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3dd0f9c76155c2f57d35021c21437aba5e1985188c0bab677194408ac703bbb2", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x144", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xca8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf92cd7abdc875dece612e2568996c3d03cef02faaf7b0924665b97123207f9a6", + "transactions": [ + "0xf868820160088252089484e75c28348fb86acea1a93a39426d7d60f4cc4601808718e5bb3abd10a0a0df4798399378df307b8a5b41a9e1ffd7e31de6e9569c116ecbfed2404267433ca05727229c50d7a6cb0b77b548ca59c83b08bc7e0955aa1bc73d5f1b308d90457c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7173d4210aa525eece6b4b19b16bab23686ff9ac71bb9d16008bb114365e79f2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np325", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf92cd7abdc875dece612e2568996c3d03cef02faaf7b0924665b97123207f9a6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf561e42206ebda045741ab8254b0d4d2756369c803084af8c151f34eb91fc39d", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x145", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xcb2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x445c164c66dbe2d97e415132e6519d7765d441454461655d1bc2fef9a5233720", + "transactions": [], + "withdrawals": [ + { + "index": "0x1c", + "validatorIndex": "0x5", + "address": "0x83c7e323d189f18725ac510004fdc2941f8c4a78", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x89698b41d7ac70e767976a9f72ae6a46701456bc5ad8d146c248548409c90015", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np326", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x445c164c66dbe2d97e415132e6519d7765d441454461655d1bc2fef9a5233720", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x47fbc9bde812f0e06d109960fe87e00942bafe4ae3c42ee5d32f1b2bf98f3934", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x146", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xcbc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfff2ffe2e7354436e669edcbb6301ebde9eb5d415e4dc27166e7a301463ead0a", + "transactions": [ + "0xf883820161088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa06422792ba59cf88fa36d63374647be8ba347cda8de184377b957e649c1966a53a0617dd0ad96166579c3178602c7b0d1e0994f0248bb6f88c344c3f8dd32570b02" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5b605ab5048d9e4a51ca181ac3fa7001ef5d415cb20335b095c54a40c621dbff", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np327", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfff2ffe2e7354436e669edcbb6301ebde9eb5d415e4dc27166e7a301463ead0a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b68dca38e932c0134b8936a72f7b7f3a6edaad6ad3ad8d7a2f0acd1dd3ef9d6", + "receiptsRoot": "0x1e7d0a3194a1f0d4e8f6cf96b9cbaf7e6a030ddc9143b6095d3492270736aaca", + "logsBloom": "0x00000000020000000000000000000000000000000000000001000000000000000000000000400000000000000000000000000000000000000800000000800000000000000000100000000000010000000000000000000004000080000000000000000000000002101000000000080002000000001000000000000000000000000000000000000000020000000000000000000000008000000000000000004004000000000001800000000020000000000000008000000000000000000000001000000000000000000200000002000000000000000000000400200000000000000000040000000080000000000001000000000000000080000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x147", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xcc6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3783621d2f500f95d6dd1f072a06f3cf7776c9b364a4d986b644f9084dc27e5d", + "transactions": [ + "0xf87a8201620883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa004c85d63e9b4217809b130798c2bd8029ff6dd85b22cd994201386124c7f238aa0447cb8fa5531097c248069a659914d8b94a66e1fa5b30c545d2844bf6ce64581" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9129a84b729e7f69a5522a7020db57e27bf8cbb6042e030106c0cbd185bf0ab8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np328", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3783621d2f500f95d6dd1f072a06f3cf7776c9b364a4d986b644f9084dc27e5d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8fd0acd1906e7050c77629d7a59ed69f6fdfc6f518284914385eb70e3a8c9fda", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x148", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xcd0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc292d2df68caf410c52129638905a541d121618c637b4b6e401ae5783369b805", + "transactions": [ + "0xf865820163088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0507acf13b05050a3d16ecdf17df7d49fe7d7e25e27ab042450ce3eef1dadee19a06095e719d861aa2688a03fdc622be9bec38e2807c7a5c1850ae1198f86f2f17b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x31a63d6d54153ab35fc57068db205a3e68908be238658ca82d8bee9873f82159", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np329", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc292d2df68caf410c52129638905a541d121618c637b4b6e401ae5783369b805", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3b1824013446c48faaeaf632a0a5ba3e95ca2777b2b37737dfe60f76c380c9e8", + "receiptsRoot": "0xeb1f423fada524e7f50d34548572c7f716405c09713466256a2f7a0d970b3a15", + "logsBloom": "0x08000000000010000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x149", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xcda", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x18c79f9a20b1eb4d040190838ad1ecb9401a4d7c6aafdff548163fa0e81a2312", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201640108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c44ae3eac6b9e5d37656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b5e95d5da3e73f937bfbc9b4990bfdbd865c6d3a3b50478657e20b507fac754180a0aeedac54dc3139a4ba210b5b116daf9a5550de57d98a76e04e5c4b4b56fe209da07a59f711fb189c0bdd003ec929938412ccedad84a93d1435e6106c392035aed6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x828641bcea1bc6ee1329bc39dca0afddc11e6867f3da13d4bb5170c54158860d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np330", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x18c79f9a20b1eb4d040190838ad1ecb9401a4d7c6aafdff548163fa0e81a2312", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5d99efcc753c5c5d4c241ffd8805eb62b5943f0ce1fef646456a5ef5eae0663", + "receiptsRoot": "0xb9379afefc656aab5c5c77974265a7cc99c2b7003acad435f5dbf5557087bb55", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000010002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xce4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x079a82efae89bae7dc9f51d23fe219551e0e8dc8d8a1783163ce664741d77c9a", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82016508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9b8c3a423a55b426656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a791ce367786fdc4c5216c8b94dfe1076746e058166dabda25b5e6a3266ce85780a02461015008be779dd9a8822bb2ff8e7e847bb5bb7d4dd8f3a06dca8551dc419ba05f3626fd4ed8ee8965c1f65d71f7ec69330d0b991625d99a3ea66a6fa51026a5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7e0752ddd86339f512ec1b647d3bf4b9b50c45e309ab9e70911da7716454b053", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np331", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x079a82efae89bae7dc9f51d23fe219551e0e8dc8d8a1783163ce664741d77c9a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x06631aceda8dc4801fdca60a168a6c9c9439e10ca0dc70892c7bb6740411164c", + "receiptsRoot": "0x33fdabd28a3754e4172eb8b07983af5ec122a6e17e25af95cd2bd17209791648", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000028000000000000000000000000000000000010000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xcee", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xbf3d02ee23b46b03fe7a0cf3e5ab2709608d2d6c237357932b73caf7bd0e5962", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201660108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c85b0cf6f2ed6a4c9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0951b3b37c2a87b5a67918e750832a50c5565298a35390bad3ffffadb2f7b4afe83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0a3c91082aa5f98cf42c4635a0312f74b7b7dbdc08c66a9b9173d87f93f61260ea00d0aab49ed35714a83897d245d244c71253b6a52271d36a52ec080fcd9cf5b37" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x31d973051189456d5998e05b500da6552138644f8cdbe4ec63f96f21173cb6a1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np332", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbf3d02ee23b46b03fe7a0cf3e5ab2709608d2d6c237357932b73caf7bd0e5962", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x84b23c952dfa8f61b6d87ee85bff87b0032b5eb70a26865a552473d5276899b0", + "receiptsRoot": "0x1931b499cde32287e47b63b488b406d2c7ac767ea3e059e789ac043bd64aba21", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000040000000000000000000000000000000000000000100000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xcf8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8f34050bd77c450b1684065a6d47f74e03a13366670639e0ffc82ce56190e7ad", + "transactions": [ + "0xf87582016708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc35bf5ec655dfd63656d69748718e5bb3abd10a0a0d4ae78d9dffb14b7db544598fc5f80423a487823dc88824385b22fa4a190ad6aa02ce93b7da454a24456708adc38859894e47577d28f46e6b73beba044fcf6c4b7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe33e65b3d29c3b55b2d7b584c5d0540eb5c00c9f157287863b0b619339c302f0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np333", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8f34050bd77c450b1684065a6d47f74e03a13366670639e0ffc82ce56190e7ad", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x07d91ddc6ee5b8bd4b862a7691ce11a8ea3eba567629b1166557b19281a63287", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd02", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1dc2e1bdcaf6cbc04adf6f2a0bec9df3fb5148469ff491701db0d36a3ccb5561", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201680108825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df0180c080a06083e02dd8339c5792974c703870779547de75c6279c216853355220975839c1a025eed1338e4e0ac887f37f02f1ddb4e3b97ad71456af950db3641bb3a46a9418" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x78d55514bcef24b40c7eb0fbe55f922d4468c194f313898f28ba85d8534df82c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np334", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1dc2e1bdcaf6cbc04adf6f2a0bec9df3fb5148469ff491701db0d36a3ccb5561", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x66d19e54834612f718e66638e4da798d11e32dee10599594af5d4ac963c31fe7", + "receiptsRoot": "0xbe3866dc0255d0856720d6d82370e49f3695ca287b4f8b480dfc69bbc2dc7168", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd0c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x03399daa6b9a5022b6c6ef393204ddd994dda29cc67998c0dbc1df5f2c7df9bd", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201690882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c001a066d0b1cb01e5b1afd0885c075801ec0cdf540c2bd6f83e80d39a7576799e97d0a034239eccc43be4c97c1b5dbff66a2f851dfaa3f24bf9eb204eac8d35795f8f5f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2e0f4be4d8adf8690fd64deddbc543f35c5b4f3c3a27b10a77b1fdb8d590f1ee", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np335", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x03399daa6b9a5022b6c6ef393204ddd994dda29cc67998c0dbc1df5f2c7df9bd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd07861e5c0a3edd3ea5ffc4245c8a65752d0ed2fc1e5fd2b02c670c97972a859", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x14f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd16", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xccc15fd8ddf55d7c8eb75b38f01938eab69a8286a525182fa302c34738c401a8", + "transactions": [ + "0xf86882016a08825208944340ee1b812acb40a1eb561c019c327b243b92df01808718e5bb3abd10a0a0039e6d44ad23b2533467c0d3cd5bb01a4e7ae614a20256b153c139d3d989f99ea00692528563f318af8a9e33e1759fd83c3b093baf1e4bcb4a860c0ff44a83872c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe1b83ea8c4329f421296387826c89100d82bdc2263ffd8eb9368806a55d9b83b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np336", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xccc15fd8ddf55d7c8eb75b38f01938eab69a8286a525182fa302c34738c401a8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5ed562333386ccae375d7fb9800a627295ef884723e4a4f545ee59a37c3eb951", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x150", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xd20", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5f1a9c738684387b66a96f080ed4606ca3b54cc6ef8fbeac69197d9d0ebc18d4", + "transactions": [], + "withdrawals": [ + { + "index": "0x1d", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4ddad36d7262dd9201c5bdd58523f4724e3b740fddbed2185e32687fecacdf6b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np337", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5f1a9c738684387b66a96f080ed4606ca3b54cc6ef8fbeac69197d9d0ebc18d4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x222c41acd75836ca90069e3f9de16c669c2e7de990533763e7af046eacba1e99", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x151", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xd2a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfdee8c650dfb4cf5fce50480224694b856fde37082e78eb3c82971a2a010f62d", + "transactions": [ + "0xf88382016b088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0e14bd8f9c55ca04ed6d545670bf80e4d5cd3753cf8e9d79de138ff52527e8706a04cd3d2765967c35cac423914086efcc5ccfe9877923bab5a397cfa8cfc9e56a5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x156c0674e46cdec70505443c5269d42c7bb14ee6c00f86a23962f08906cbb846", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np338", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfdee8c650dfb4cf5fce50480224694b856fde37082e78eb3c82971a2a010f62d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3588e1ec84f9149cbe63ebc7fb9088af1dc3d1e489bcb713e0748cb1f2822597", + "receiptsRoot": "0x7de618c7f6479943d81923081acc397007151920bb5e12ac9312cc34b8ed67d2", + "logsBloom": "0x00000000000000000000000000002000000000000000000000000000000080000000000000000000000000000000000000000000008000010000000000000000000000000000000000000000000000000800000040000420000400000000000000000000000000000000000000000000000000000000004000000000000000000200000018000000040000008400000000000000000000000000000001000000001000000010000001000400000000000000000200000000000002000000000000040400000000000000000000000000000000001000000000001000000000000000000000000080000000000004100000101000001000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x152", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xd34", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8b6e1a97ed0b60399797bc48fdc165d7bda6b855f94691276d2e5068d44e0aec", + "transactions": [ + "0xf87a82016c0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a060bbdcc20b9b67af82bc31f9f9d0089a552e568b1a903e22e854ba8d84501f4fa0232988e345d316b37a3c87b07cce6f89b328af0fb7da666eee864ad218631586" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdfc56ec6c218a08b471d757e0e7de8dddec9e82f401cb7d77df1f2a9ca54c607", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np339", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8b6e1a97ed0b60399797bc48fdc165d7bda6b855f94691276d2e5068d44e0aec", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5f7bae63cf253fb10898a003bece41c3e646441959a5351103acb233264f3c9c", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x153", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xd3e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3f9354b48f2c7bcf684bcb6ed3a7635eaca6ba81654a3fc3e4c7273c61b28583", + "transactions": [ + "0xf86582016d088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a07d8f64f397682c2dc4e4f2e9edc5e5105157947a983155dddcce221450289edca01a1edf02e97c2554ba07e9e35a81aa04c7fd1c2509a7c3a6375b2916f5666c1c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x395d660f77c4360705cdc0be895907ec183097f749fac18b6eaa0245c1009074", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np340", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3f9354b48f2c7bcf684bcb6ed3a7635eaca6ba81654a3fc3e4c7273c61b28583", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9a222c73b9c600679419a5af18189da838d947f98c638bd0474e4d68bd8f1b6a", + "receiptsRoot": "0x823e6949edb9c9bd5b0af828fb641d8aea43105774abd1fd3faada72763044b4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000800000000004000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x154", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xd48", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x54553da46a588f6dc14580c6ccb5f2ca5c6f6a189dc465c0d4d84ad2c9749a4d", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82016e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ce481f18bdff3a685656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a3e65c2aeaf352e79173be13e572f691d8d75ea1064610b8418246d95bcc421c01a039d63f63b01a369e7db2762519ce08455d58461fe8570ab07cb548909d0dd88ba073c757184c1fd8c3e74471845440ce123e4405b6ac0074caf7bd93c3fcfc465d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x84c0060087da2c95dbd517d0f2dd4dfba70691a5952fe4048c310e88e9c06e4f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np341", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x54553da46a588f6dc14580c6ccb5f2ca5c6f6a189dc465c0d4d84ad2c9749a4d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x17e9d3e4fbc706c36b789842b0eb9cf2523438df5a01e52f507b4fc1e296bb8e", + "receiptsRoot": "0x82d7f72b29e21d7d039c2bc1f2df736f0cee592c5f5e1724fb9ffe58ed8a5629", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000002000000000000000000000000000000000000000200000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x155", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xd52", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x565a7651bb85599dd4e8bb9deea8c1068fc0525ef77a602875c0ee4c27ecdc3b", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82016f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c225431167194f3d1656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06df5983ddc40ef2c7ffa2c79bf9402568f2ee0ec7b675ca15aaa20b536d2a5f201a02332db0453a44066141395c41f2e04de302344b8f118c64ed1fbad3dc317d442a01f412460ccf966d717e8a70cd28f21b6f71dd49262442f79966ac025ad03579c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf4df943c52b1d5fb9c1f73294ca743577d83914ec26d6e339b272cdeb62de586", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np342", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x565a7651bb85599dd4e8bb9deea8c1068fc0525ef77a602875c0ee4c27ecdc3b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0d71e018402a3123814c4e00c01b7bc158e78d8490bb5dea9ad281af7de8ca31", + "receiptsRoot": "0xfa3aaeda4cdf53def7263758bfbecad51a4429b1b8b80029b2fd739732612b8f", + "logsBloom": "0x00000000020000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x156", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xd5c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5a060514a5987fb5defacc69d60df530d84825bb7102f52665c197a5b7cf0d3d", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201700108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c932062c9eeeeb3ed656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e067f85eba81feba79bf640415c11ab4448d5cc4a41652fc0a200be4d266178683020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a005e73074788c05a172afc1a7c5fef991fcbd408ca579a676bd847f27135f90e2a049a59e686b76644576945598bbc9a508f2596c54ee90e5dd8666324632a330bd" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x0bb47661741695863ef89d5c2b56666772f871be1cc1dccf695bd357e4bb26d6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np343", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5a060514a5987fb5defacc69d60df530d84825bb7102f52665c197a5b7cf0d3d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x58bce5cd6dd8d9ee462efa92e639c335c83cacaa9d4ec886beb8f54c47c7fadf", + "receiptsRoot": "0xc841f2781db47e1e32867dc6d784cd6c89a5f827ca9280e5c20568d0261bfd30", + "logsBloom": "0x04000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000080000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x157", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xd66", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x37a95c1c4d8ae9548f7abf278b6d3c8fd6abce3ad831527a483b585ae5574496", + "transactions": [ + "0xf87582017108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c273de87756911775656d69748718e5bb3abd109fa0281c137f735893068d049ff9c97d9033fa5c9a6f56651ff1b6a442320ddec381a00180b3f8386e2cd45894bd0a2fd42f8e9f61a32d82b93a590f352203bd185a9e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4a1f7691f29900287c6931545884881143ecae44cb26fdd644892844fde65dac", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np344", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x37a95c1c4d8ae9548f7abf278b6d3c8fd6abce3ad831527a483b585ae5574496", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf5e39baa18e94b48282c51bc27137bdba258a3a5200b2da4fe2dea6a7a970fdd", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x158", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd70", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x02bf4c87617d99c78ee4061fcad0436ec41d1feb5768436917aad995dc1a5c46", + "transactions": [ + "0x02f86b870c72dd9d5e883e820172010882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c001a0cb87fe5f6cea3745d84f4b61df60a46ec996be8d880e124a72bae1185a32cd66a04c9f4401a5ea80dcd61c2b85eef64a24cfcc272ae5e518cc4e2eb56031510151" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9b133cc50cbc46d55ce2910eebaf8a09ab6d4e606062c94aac906da1646bc33f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np345", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x02bf4c87617d99c78ee4061fcad0436ec41d1feb5768436917aad995dc1a5c46", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2c91336305090ae48c3c695559b175c60fda5fce0b544330272c89d5b0bee540", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x159", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd7a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1c88871de6d44ab71e79a3fdbe2e43604daf0194b3a02e1a90337e837201b57c", + "transactions": [ + "0x01f86a870c72dd9d5e883e82017308825208944dde844b71bcdf95512fb4dc94e84fb67b512ed80180c080a0e662016c668666c375d9ff00087154a63129117ac762552065839cafe401f6f8a06aef1d3e9c2b42f3f4f72f00c872591c85e681079deb0a0d3f1b342e6377e376" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x473b076b542da72798f9de31c282cb1dcd76cba2a22adc7391670ffdbc910766", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np346", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1c88871de6d44ab71e79a3fdbe2e43604daf0194b3a02e1a90337e837201b57c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x572ee06dceed53734f875c218c0d293026893416aed5d4792e9003218552a52f", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xd84", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe65b0ebcbf8e53e362f198d5286b3be688e04b74109af7e41ba28fc4d7cb5df7", + "transactions": [ + "0xf86882017408825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c01808718e5bb3abd10a0a09fac97de10f5e954dc14927a4e68880f5bfe4a2469c41852c31cfa342a1679f7a033f6b2c3f5812970ba8675bef5eda9ae9f4ee085527566fe729b6040045d8503" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x225dd472ef6b36a51de5c322a31a9f71c80f0f350432884526d9844bb2e676d3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np347", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe65b0ebcbf8e53e362f198d5286b3be688e04b74109af7e41ba28fc4d7cb5df7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb6c5658fa78aca5831389ede1edf136bc1c396427b317d6f13b9a6726cf8b349", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xd8e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x675cb4223640eb85c8810a74a6fb0820d86a138a1eef666f1a22d27ba1ce730c", + "transactions": [], + "withdrawals": [ + { + "index": "0x1e", + "validatorIndex": "0x5", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x31df97b2c9fc65b5520b89540a42050212e487f46fac67685868f1c3e652a9aa", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np348", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x675cb4223640eb85c8810a74a6fb0820d86a138a1eef666f1a22d27ba1ce730c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8b8b0f72c04409635982a7e1f5288061a014232da79f52de36c759e4ce17931b", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xd98", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x05276dd8169c6699371aea9e2758f23c15c2739166b91fd5f8556101b4bb3f21", + "transactions": [ + "0xf883820175088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a010215ed3ba3ccf56eca9507dc5e826c264631d30230d14b85f7b8cf9748a88d8a07b36f2aac7a46cac9e76a2033565f48449f989fcdcae906f12c9967c6f59c746" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4416d885f34ad479409bb9e05e8846456a9be7e74655b9a4d7568a8d710aa06a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np349", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x05276dd8169c6699371aea9e2758f23c15c2739166b91fd5f8556101b4bb3f21", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1f1840c6881b5b3235e79dc812bd381db601a181f084f19f9c45b8f22a54aeaa", + "receiptsRoot": "0x97626aeb2db4486d9fe2841c5771953372c090a7db331043abf77a91bb418339", + "logsBloom": "0x20040000400000000000000000000000000000000000008000000000001000010000000000000000000000001000420000000000000000000000000000004000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000018000000000000000000000000000000000400000000000000000080000400000000000000000000000000000000000000000001000000000000040000000000000000000000000000000200200000800000000800000000000000040000008000000000000000000400000020000000000000000000000020000001000000000000000000000001000000000a00", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xda2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2bb6a28a333d633baef19929640188c26f70dfd798c0948bcb81f7b48b7e6f83", + "transactions": [ + "0xf87a8201760883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a009972e5c75852272d8e9587a45206370028150edac38eba5d91838075a5b323aa05bb3b9eb946f2f2273c735f60707a6c0bf7d2f137e64fc32e6c6f1e260446a05" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xae627f8802a46c1357fa42a8290fd1366ea21b8ccec1cc624e42022647c53802", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np350", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2bb6a28a333d633baef19929640188c26f70dfd798c0948bcb81f7b48b7e6f83", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf11800afbdc603c481b385010048719fba5062700189315fcff6ca3aba232204", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xdac", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x418ac48b8467db2e040a7b57b9f81e3f5295077d62988735ef5db301e4312d85", + "transactions": [ + "0xf865820177088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a02ce52dd89b969da3b9c18ea9cfe004e1bc316f5d57bfd03df25535c708e9a4ada0273e77e52bd6658f4ea91a07d37202381c047b8dd49cb4a1907130d75d44641b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8961e8b83d91487fc32b3d6af26b1d5e7b4010dd8d028fe165187cdfb04e151c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np351", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x418ac48b8467db2e040a7b57b9f81e3f5295077d62988735ef5db301e4312d85", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd54e91945baab2131000d844ffc2206205d11be87fd5b0bb692ca44fe04f4d39", + "receiptsRoot": "0x285d25f5101d22f9eaff4bde9abc022b398732069305daba98f23adaaf2ed5be", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000400000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x15f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xdb6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd97364746b3c009e86e4601ea8a4ec3eed223a070b3b343b33ad8a121708aad7", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201780108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c9544ff5cb729419c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0cd78e90ed1705eeff092f3df07b16a382082e9c388030ec3188daefa57a731dd80a04a6cfece11982a16f1a088d2da3c2ba7f42fe826ebeed0caf4ce8a9174b7cab4a005a8938150b068d77d10a4647a4e8f70940fa26c688282d7b5443c0d1f747cf8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc22e39f021605c6f3d967aef37f0bf40b09d776bac3edb4264d0dc07389b9845", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np352", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd97364746b3c009e86e4601ea8a4ec3eed223a070b3b343b33ad8a121708aad7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3db80d9560ba49da9f3db2dc7bb6d41f6e5344a3ff239566c73e8e2a4c26ab9c", + "receiptsRoot": "0x1b2a2ea4be7012743e0819798ac021ff08d03138c84a96f97d99f44b4fc4be25", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000020000000000000000000000000000000000000000000000000000000000000000000000004000000002000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x160", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xdc0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x915b1161ecce056ce9b09ad20e535ee47578a868802d36a1bfa38ee437beca07", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82017908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c63d51adce824b5da656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a040325cfcd159fa7bf89d8c252b6ff47cbc17aafff5e7feb92014d00285484cfd01a0cd0a6786dc03f09d4f57b430527c01761a20316ca9800fd74b2bedec8978ab42a02267603eb966f091bf5c62d000b256f1701199c2b55bafdae1df8c5c5db6ce7b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7cfa4c7066c690c12b9e8727551bef5fe05b750ac6637a5af632fce4ceb4e2ce", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np353", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x915b1161ecce056ce9b09ad20e535ee47578a868802d36a1bfa38ee437beca07", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2c5ec480f25be5621da61853aa669c019215deae07d0d43d0356b19e13d2e78b", + "receiptsRoot": "0x17c65ac03b70b69ff8d7bb62b8f0ba8fe30dc0cde6f2694c29eef9fe6ecef98d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000009000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xdca", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4f58b596ab05605431d3a936043301eeda09adbfa46a3c02e452abcd988f4b34", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82017a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cd120caade914624c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d73688caabee79f6ecf3a0b092d26e639b7e486e45c00031db80d3d7abe8c68383020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0014f1329eea5010dc0ce5c91bdc12dd6db4f6e6f64335242a2dd68139fc9e0f8a0047128a9852f2ff7470e0ad01a14101bbd076014368a0b00817d47824ca08618" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x943d79e4329b86f8e53e8058961955f2b0a205fc3edeea2aae54ba0c22b40c31", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np354", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4f58b596ab05605431d3a936043301eeda09adbfa46a3c02e452abcd988f4b34", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5066f72db27fc26d1e53522d6c5ab4ec15b43236adb9315ee560eeccd1b3a1ec", + "receiptsRoot": "0xcaf62ebcef1ad7dd1af416141ade74d405d6f79da262e49f0fa7d37af60fcf4c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000400000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x162", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xdd4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x318aec788d4efe4aba9138446d6aa0e292c18554eb34a15b827c22188fbebb46", + "transactions": [ + "0xf87582017b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc14eb1947b69c832656d69748718e5bb3abd109fa0601d55820ca29740a96aee46cf81129de59d8cf42cdfd82033eaba021f3c828fa04d69feeeb37c377d530f81aa3526ad392828615e5d8ce9308b54a9c7f16eb427" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x66598070dab784e48a153bf9c6c3e57d8ca92bed6592f0b9e9abe308a17aedf0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np355", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x318aec788d4efe4aba9138446d6aa0e292c18554eb34a15b827c22188fbebb46", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3fb21f54feb17ff64599c5f4d6219a6d841cbc243e854f16b6b4ba1fead7b9a2", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x163", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xdde", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4401d3aa9f1ff873ad2aab1d705c874c41cb5bf206ee59eed2e5daee6c6410e0", + "transactions": [ + "0x02f86b870c72dd9d5e883e82017c0108825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c080a020c3205f300f3a18173e9184024c4bee2604bddb03d4f5444f5192a0556848e8a07f31e8e53caba85a657a76e356f4d00936ff071196496fa38e6cf9561df47872" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xac8fe4eb91577288510a9bdae0d5a8c40b8225172379cd70988465d8b98cfa70", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np356", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4401d3aa9f1ff873ad2aab1d705c874c41cb5bf206ee59eed2e5daee6c6410e0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x59df92b306e8627f08bb4f6b15ec055ab32cc5e20f6a39f4d7a9200da45deb3d", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x164", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xde8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xea7938e34260a926ccd50ce03f9d1f387948af9b961c6f48ceb76ebbecaa2658", + "transactions": [ + "0x01f86a870c72dd9d5e883e82017d088252089416c57edf7fa9d9525378b0b81bf8a3ced0620c1c0180c001a034bc900da40475695628b9df027c69b53db2a329edf7eff1bd2993e662a0596ba003cc67c5a7b1ddeab871b20722ce8b604c128a3c5b3bdd4aef0c27b893913cf4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2b0018a8548e5ce2a6b6b879f56e3236cc69d2efff80f48add54efd53681dfce", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np357", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xea7938e34260a926ccd50ce03f9d1f387948af9b961c6f48ceb76ebbecaa2658", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0d8cf4596d32bf3d818719617fd18dc80e999ed27bc7075545a4ffc375680d4d", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x165", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xdf2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x08f4cc7edd04bd308dc6e7bf4cb07b806e7e2de61545abd1f51f9ad1d59cf75a", + "transactions": [ + "0xf86882017e0882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e01808718e5bb3abd10a0a02a40854304a78f963d447a4fc6ed04a83f080d70bc2b9d08830ff778f1691b40a06fc3befc469ccd25b11fe53d93ca3b7f1b17b10753d260374b10b36cb86b6b83" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x823445936237e14452e253a6692290c1be2e1be529ddbeecc35c9f54f7ea9887", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np358", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x08f4cc7edd04bd308dc6e7bf4cb07b806e7e2de61545abd1f51f9ad1d59cf75a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2d19f68d8b2ac2dc83f59e006c7ed180a7e1e2f39bcb154b7d047bad5f034f6c", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x166", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xdfc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa00622d4741d5328d26df1a386bc743d636523cbfb4ae132ef9973770be54646", + "transactions": [], + "withdrawals": [ + { + "index": "0x1f", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3051a0d0701d233836b2c802060d6ee629816c856a25a62dc73bb2f2fc93b918", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np359", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa00622d4741d5328d26df1a386bc743d636523cbfb4ae132ef9973770be54646", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9946811b1d721b495e3481d0450a058d0dffca108f1c990a2b3c6fd77e9de916", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x167", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xe06", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9f5cf2010cc5b11d8e26387a3dc7871353fc465161e0179d7a022e7fc216d894", + "transactions": [ + "0xf88382017f088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa08ded30f91eadb86aef45f8603080b77479c324a6b0461176bd05b9dc52434366a01f8e64121ef22b0a68dbb5f5fc3ee0e379d24ea28ba18716bc76924962a89efb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x44a50fda08d2f7ca96034186475a285a8a570f42891f72d256a52849cb188c85", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np360", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9f5cf2010cc5b11d8e26387a3dc7871353fc465161e0179d7a022e7fc216d894", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc32c77e18357c918a8f28263a0a462d8fbc88cb1cf30ecdbc99541d78ca50cc8", + "receiptsRoot": "0xff1547a0c5d35ecfe6c88ff5afc801fa62ef513b146587249b8f6bb774601a86", + "logsBloom": "0x00000000000000000000000000000004000000000000000400000200000000040000000000000000000000000000000040000000000000000000000000020400000000080000000001000000000000000000000000000000020000000001000000002200000000000000000000000000000000000000000200000000000000002000000200000000000000800000000000400000000000000000000200000000440000000000000010000000000000000000000040000000080300000000000000000000004000000200000020000000000000000000000000080000000000000000000000000000400000000000000000000000010000000000000000004000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x168", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xe10", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7bae673e78c9468adcbc5af662fa1a64303269928a74faf206c36e8e90d39e9f", + "transactions": [ + "0xf87a8201800883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa06ee1e2240987a5957c71668bddd78286a8a97c3605f540169dcfed9ba4479311a023858f1a8516678c55295559ae843c02f92211dfb2ebbac5a5cb039c2b7bb1df" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6e60069a12990ef960c0ac825fd0d9eb44aec9eb419d0df0c25d7a1d16c282e7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np361", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7bae673e78c9468adcbc5af662fa1a64303269928a74faf206c36e8e90d39e9f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd2fe93f9138446fa18a96211c54de9e99438eb07ee496c0f47348d731e93207d", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x169", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xe1a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf5c8e55d5ccac994718819a5e84706912e3a13ed1138af213068a1dfee7333fc", + "transactions": [ + "0xf865820181088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a01f6404f32c81c38b12d5556286f11a241ff430689390a8152fcf4d5b1e51e260a06f69bf082d07343d45159ea6f2225c15323ff958fa7df453597aacb83a5717f8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x581ddf7753c91af00c894f8d5ab22b4733cfeb4e75c763725ebf46fb889fa76a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np362", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf5c8e55d5ccac994718819a5e84706912e3a13ed1138af213068a1dfee7333fc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd8fe6161789d8b8289fce5f90ea6f929ec4053b65c5a5ee382349c23bf2b6520", + "receiptsRoot": "0xb7877e21a3193c714ca254cdfcbadfa256aa5dc5112a0dff0c627c851f8aa9bd", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000040000000000000000000000000000000004000000000000200000000000100000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca90", + "timestamp": "0xe24", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5ce347e7492dc1fae5a790ee38bbae921fa4c33c12d9728102107ff2242037df", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201820108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c5b00e11941ab7046656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0490b9d550a200295b38f2456a42525d3a43c345d2fa1431e770fea9656b2672380a0ec7b63e7f42e8247f1617fba414694633262e54c0f369e39902446fd7dbffda3a04b7b40d08a68a5ef1dd52cf072227ad975fd1d542a0ccec8a5eaa894e6c3901b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9a1dfba8b68440fcc9e89b86e2e290367c5e5fb0833b34612d1f4cfc53189526", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np363", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5ce347e7492dc1fae5a790ee38bbae921fa4c33c12d9728102107ff2242037df", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xea78b4b29e8d1e06d68d3a7de1e1c383e1876435b30cc398bfee3718d30b92d4", + "receiptsRoot": "0xb45be2085dc2fb2dfd02b696999104f86fdb1648f6e6766eae89996f38066b77", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000009000000000000000000000000800000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xe2e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x704f8986273e3ddd2829747071efe079b0ad626aa5ce53ab8b881fe2dae20407", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82018308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c0581a3f309f9b7a9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0039a54e14fa9769f840074356dec3dbd47c3588fe71fe942fb7aec5edfd0a09680a0df8454b1d2ac55fb2b56518b9af603d081fb456dc5a2d1a4f14d32a1930e0b65a05eec84799f4c8113b8e558e727c7cbd95fdac9a60a1a19337b20957589ef9670" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x54a623060b74d56f3c0d6793e40a9269c56f90bcd19898855113e5f9e42abc2d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np364", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x704f8986273e3ddd2829747071efe079b0ad626aa5ce53ab8b881fe2dae20407", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x60ca9246696f71c8c5ef48227f3d0706810e226f520d614353c5a27d1a2adc84", + "receiptsRoot": "0x686bb5690e471cbe94f0fbd0bd64178a41189bf1b22860833a753d748989a8c6", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000800000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xe38", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8b372f1d731e91f9e3e65d489488e2f5256c2db193d27c80adfd7500930bfed8", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201840108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cdddf70b2f66dd741656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0945c01f307d13fcdab0a2a3a4c4bd5ebb69a00c3dd59896a959664e01ce1069583020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a002913953086fb38270b582f9264a54a8f7a9fd52f3914c93e1c6bf61ba29c05ca0488e04b63258b9f1b21371dd85f1d48d3eb8ab573f1b7baeed6a7bdad7599698" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x1cfeb8cd5d56e1d202b4ec2851f22e99d6ad89af8a4e001eb014b724d2d64924", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np365", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8b372f1d731e91f9e3e65d489488e2f5256c2db193d27c80adfd7500930bfed8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa52cc45cb02dacad022ceafe5fbd047084ced7e1156c04a3939a063823deba23", + "receiptsRoot": "0x3d50045ea7712dabc7bc624626b661a55830490fc4abe245fd79bc3052adf0d7", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc25c", + "timestamp": "0xe42", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8037a2e6778f5a2f86243f0f68e1dc27711a83e23f17dffeadba79650efdc061", + "transactions": [ + "0xf87582018508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c00593792347501e7656d69748718e5bb3abd109fa04aec43f149d696a06905565e4456b92ab3d9291dcf6ce18bbf3e6e0b2e974bfaa05ff76d260a8b25969aaa34161113ed0948153acf0e0f6d56a8fc002712f8b22b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xad223cbf591f71ffd29e2f1c676428643313e3a8e8a7d0b0e623181b3047be92", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np366", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8037a2e6778f5a2f86243f0f68e1dc27711a83e23f17dffeadba79650efdc061", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa57db84a5de1a4aa407ead420958d26afc17b75e078728dd02a40e99a5f91790", + "receiptsRoot": "0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xe4c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x83b55c0c81d1b9e925dd8ded23f5d620d5c90ff0669978808bafe0f9cf4fba4f", + "transactions": [ + "0x02f86b870c72dd9d5e883e820186010882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a0c3c4bec7bac5ca693f7fc674a4c3230f1f3ea8dd998de09c920825d26301c011a05ff7bd766555a0e202234d8a43c208bf8c1f9a20a1b30d6c310480dd8dd54fcb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe13f31f026d42cad54958ad2941f133d8bd85ee159f364a633a79472f7843b67", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np367", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x83b55c0c81d1b9e925dd8ded23f5d620d5c90ff0669978808bafe0f9cf4fba4f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5705b5b4a3f14d552ac085df2780784da408fa2156d8cccf85527f327a387531", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x16f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xe56", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x47d1a1fd87ce37b222c945a0926df5db04b51f7cb7bbab3b5038aa755aecd57d", + "transactions": [ + "0x01f86a870c72dd9d5e883e820187088252089483c7e323d189f18725ac510004fdc2941f8c4a780180c001a0371d1a507de4da57f89a4fa71df9f02443ff37580810ea26149bd128c9d6acf5a02818244deb6894ab6b9e2c34e1e6f7c7224d53e27857cf37639cc5d0636587d7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb45099ae3bbe17f4417d7d42951bd4425bce65f1db69a354a64fead61b56306d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np368", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x47d1a1fd87ce37b222c945a0926df5db04b51f7cb7bbab3b5038aa755aecd57d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77ee4ebcbde63ea5acdb408b7126f4d9699f740c236b83e9d7d7989d6d0e6369", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x170", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xe60", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x05a64565e90b2488725a1682f087cb8eda679593d4163e606df37d717fa885f3", + "transactions": [ + "0xf8688201880882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e01808718e5bb3abd10a0a0339ee08f01a43156d5d3bb10e7ffc8dc8f15a9964de8dca936dd06895d01ae12a06168e11111c7dadee1a31c2454f90e0e833efb767d3b5ff4dfdeff164dc75196" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9d2b65379c5561a607df4dae8b36eca78818acec4455eb47cfa437a0b1941707", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np369", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x05a64565e90b2488725a1682f087cb8eda679593d4163e606df37d717fa885f3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa58038fc8f490096219df276b21b9d88303ec60cc0ccfc5f7f3bba39e4744c6b", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x171", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xe6a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3340b09045d81928d5feb249588b82048aac136feda454dc13bfa778ddaa1405", + "transactions": [], + "withdrawals": [ + { + "index": "0x20", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5855b3546d3becda6d5dd78c6440f879340a5734a18b06340576a3ce6a48d9a0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np370", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3340b09045d81928d5feb249588b82048aac136feda454dc13bfa778ddaa1405", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc32294428fa6e335bae612012e6cc9dc08d1bf2dbe9cf366f198214e4466cd40", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x172", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xe74", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x327de227ff353f33e394e8d4000f33513c924ea807b747f3cc63bfb40d9c950c", + "transactions": [ + "0xf883820189088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0c84af0e889fa167b50bfae9fd9df3027267fdf72de8d1f40dbc48af87d5d1024a04f53c349e331c4e6d3193cd6cfec2505da47cd38124a2648371e279be9cbf727" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd6a61c76ae029bb5bca86d68422c55e8241d9fd9b616556b375c91fb7224b79e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np371", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x327de227ff353f33e394e8d4000f33513c924ea807b747f3cc63bfb40d9c950c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3c040a6da222421e2f4620f2fba8740e6ea68d7f94e330746a3256c7a3d396ef", + "receiptsRoot": "0x2357cddf5a247c3284cb2c7fbf7c87db673014c9c939cb04074dd476481354f6", + "logsBloom": "0x200000000000100000000000000000000000001000000000000000000000000000000000210000000000000000000014000000000000000000000000000000000001000000000000000000000000010010000000000000000000001000000000000200010000100000000000000000808400081000000000000200000400000000000000000000000000000000000000000002000000000200000000000000000000000000000000000000000000000000000000002000000000000000200000000000000000000020000000000000000000000000040000000000000000000000000000000000000000000000000000a8000000000080080000000001000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x173", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xe7e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfd5902869946c283cf714ba1369a87a419d2efaf809ffee5828138db3998941e", + "transactions": [ + "0xf87a82018a0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0bc60b8fd75a4a6d419c09e06f388fd81cfe284c81ef1650db35c8c7fd2d5d857a00b0949182ee719e540197684cce3122e9c425479b3529d5ee69d034e409b75d3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x96ac5006561083735919ae3cc8d0762a9cba2bdefd4a73b8e69f447f689fba31", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np372", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfd5902869946c283cf714ba1369a87a419d2efaf809ffee5828138db3998941e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1694c00941781d5c70edf603dee32f6773dbbc1d9c86d2e5977868dda81a614e", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x174", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xe88", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc2ef323c573205f1f1ba96da000d08c88d09b24c95389963a37a5b5f466b8ce8", + "transactions": [ + "0xf86582018b088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0c268b7a640d08c838a6f6ef04e709f5f45931009e2d0cc43d5e34ce51a8573aba071f8e6078f9e1bdea21152d97cf745e8655622832da6c475dbe76427a29925a1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4ced18f55676b924d39aa7bcd7170bac6ff4fbf00f6a800d1489924c2a091412", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np373", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2ef323c573205f1f1ba96da000d08c88d09b24c95389963a37a5b5f466b8ce8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7b58d5e0bf2d4951c64784716b25cd2a8432ea5b3d64588c238f964c597b43bf", + "receiptsRoot": "0x2139ad9e9e6fb567eef086dfcdc3b8c592a9d00f0c493d3b8604bba23e6349a1", + "logsBloom": "0x20000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000009000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x175", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xe92", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x29f8ae9fa882fecb82cac317d253adfc23ac083ac8a57f07aa14f450e6cc3a70", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82018c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7eccf8bd8f40396c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0cb35fbd0ebf79655e6882326c19855ff90befcd2e589418566ec2e3a1efd65d801a002f43581fb7145b456d03c03f9a526a2505856e42a7178322e9f43a036141a32a021d13f8f0d56cbb9cc9fbca01d7388a6e82e9e625a459ea7b13b61c967f41ec7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc95a6a7efdbefa710a525085bcb57ea2bf2d4ae9ebfcee4be3777cfcc3e534ea", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np374", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x29f8ae9fa882fecb82cac317d253adfc23ac083ac8a57f07aa14f450e6cc3a70", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1cafae05ad0b27eeeb762833767e33aef80d349f3b52cc1fdd1ccb751137c448", + "receiptsRoot": "0x8f1aece13eb2799292b9fbff80eaf4196ce333ff2013a1a28a5c610a490d5347", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x176", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xe9c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xbc73c987e59da4fa66253e4e382bbc25daa551bcebaa40766218c84c249e2022", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82018d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cfe2939afc4f11be2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0927e4ce70caf344a9e108ea8803cd49216852109c3e4922dfed2680e9f24361d01a0d95882f987be1e86360e909070e98c792ae6eaaa4b5e2b13694a417527988975a058e9d712d8da58243e07ae56c75048e6b0af05838b776a2ca2ef62f2c3a0f2c0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2b2917b5b755eb6af226e16781382bd22a907c9c7411c34a248af2b5a0439079", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np375", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbc73c987e59da4fa66253e4e382bbc25daa551bcebaa40766218c84c249e2022", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa1bcd8e41df121cc6008d64b049472bde881c2b02c3404e257c61348fc7e98e8", + "receiptsRoot": "0x38b661822706570b109818ad3bf3889b3ba7cf457447413c4a2c5cef0742f17f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000020000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x177", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xea6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8f9e9db44c2a14d5e6f4c109568e1ed5220cbc09face49934d24593d20779eed", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82018e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cb5b303999df36021656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a03f410a22d042d915c50f9269337a2bc7155f86d79bbff1721d83f44153635ac283020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a033f479e6f3f19a32cc4ceda762c7ba3d9f72621244228a9617802b01d5d5e204a035baaf72094ac2a994d50552f4a9b2a21dbe633ce9888276f44b3aee2d961e90" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x18d5804f2e9ad3f891ecf05e0bfc2142c2a9f7b4de03aebd1cf18067a1ec6490", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np376", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8f9e9db44c2a14d5e6f4c109568e1ed5220cbc09face49934d24593d20779eed", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2472f7a374c2fca03cd15eaa484de9f3b526a0877881a36dfbc2af2eba089f44", + "receiptsRoot": "0xac03a0dc44405b2c0e2667e8fa4aa0b25fe0b1008612d6d4052eada04eb50785", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000001000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x178", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xeb0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4cbf14ace7c97bbe835d0811871f9eef77d6fe81ece5eaa55e741a4dc1fdd3d0", + "transactions": [ + "0xf87582018f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cbd669399699ff5ca656d69748718e5bb3abd10a0a05c3882ff6907deaee22070aa90082cdeffdf3770d929a3d6684f3f5832c30b35a076abd65da2e310d25032bc86d2eea4738c754f26c43887e83bb74058637aa103" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb47682f0ce3783700cbe5ffbb95d22c943cc74af12b9c79908c5a43f10677478", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np377", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4cbf14ace7c97bbe835d0811871f9eef77d6fe81ece5eaa55e741a4dc1fdd3d0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a6027ce9189bacce9c0908574485cea0ec74426bee16fd91d4a2c2092344a67", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x179", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xeba", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6958b982b14e1cffdfc4bd059530efa2eafa98b8b7f5e4d52ea1bae428329660", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201900108825208941f4924b14f34e24159387c0a4cdbaa32f3ddb0cf0180c001a0d3c0a98720b5e62ab0dd2e09c6c6a1d5febbd25768653c7a4dcd0231543b9682a049b33efb78187957b6eb5cfce6ce21711e147451aa4d0baa7f0240a7b52098fe" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe4b60e5cfb31d238ec412b0d0e3ad9e1eb00e029c2ded4fea89288f900f7db0e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np378", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6958b982b14e1cffdfc4bd059530efa2eafa98b8b7f5e4d52ea1bae428329660", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x75e7371248e8b4d09aa48c22f93e0ffdd00c3d29d642da5268241d569d495079", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xec4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xec74048a1581a2c5f60b21cd9e25bf9c356d64346df78fdd4d5ab6da471c09fd", + "transactions": [ + "0x01f86a870c72dd9d5e883e82019108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0894398d753a80224c3f5956da5fc19f14e47b8030d3a343d2d048db9b7b02e84a07820115a71ebb13d5ab484f151febbfd58299e76bd7dcac10dbc1bfa83c2b5b0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfc0ea3604298899c10287bba84c02b9ec5d6289c1493e9fc8d58920e4eaef659", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np379", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xec74048a1581a2c5f60b21cd9e25bf9c356d64346df78fdd4d5ab6da471c09fd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc75c81a1bb1dfebcbcb49def1720e9aefe91ed91083f0516a736738ce6bbf1a7", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xece", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x96f61cc569a5cc077dab9be9396177a63a089524e4afbbf0ebeb09e357665e83", + "transactions": [ + "0xf86882019208825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df01808718e5bb3abd10a0a04668f7c9201425d3f6934768909eefda549b8cfdf822cf0c1575aaaa5784f1b3a0033e7f718580e0142fc94ccc16757feae1ed14f59b7a4e7e9a590818c90e536b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4c3301a70611b34e423cf713bda7f6f75bd2070f909681d3e54e3a9a6d202e5a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np380", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x96f61cc569a5cc077dab9be9396177a63a089524e4afbbf0ebeb09e357665e83", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdbdb7b39c79c0f51a988892b44279d3f6ed5e200e3d28ca9756b5e6bd93de127", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xed8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0ca41041aeed31cf7dbf302aad1a13f021cff17dc3b30ab3ab8fb5c109bf9965", + "transactions": [], + "withdrawals": [ + { + "index": "0x21", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x84a5b4e32a62bf3298d846e64b3896dffbbcc1fafb236df3a047b5223577d07b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np381", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0ca41041aeed31cf7dbf302aad1a13f021cff17dc3b30ab3ab8fb5c109bf9965", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x189c87301bd9530fbf7526346c89f2acf21a4a1dd57cc6a4aa4ca21a6cf3261e", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xee2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf2198f4eac45134910f2f5c2f4f4bba2ee608c19e01728288f8f5c583df9b618", + "transactions": [ + "0xf883820193088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0fe7d9978bcd2d0147d75b3322de5df21f02a0869bfe5fe96c29dc4670b74fcc1a00110a8737cac1a06b33aa2c4c8d09a5308175223c16758e35b70f380337b6f96" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xff70b97d34af8e2ae984ada7bc6f21ed294d9b392a903ad8bbb1be8b44083612", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np382", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf2198f4eac45134910f2f5c2f4f4bba2ee608c19e01728288f8f5c583df9b618", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x545c993f4299dee364d8f2be4bc7761850c795b03df742693fd8e3ce2147ed82", + "receiptsRoot": "0x53e8b715d86b96a08a43b3f516f075e85d4776c7512a2c0a25b78194be60f9fc", + "logsBloom": "0x00000000000000000000000300000000000000000000000200000000000400000000000000000000810000001000100000000001000102100000000000000000000000000000000000000000020000000000000002000000100000080400000000000000000000000000400040000000000000000000000000000200000040000000000000000000000000010000000000000000080000000000000008000200000000000000000000000000000000000000000000000000000000000000000100000800000220000004000002020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xeec", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9ed60ccc2815f143b3776e728718019b7820044b0e8f1048fada365fefb130d4", + "transactions": [ + "0xf87a8201940883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa09064ce9eae2e88497aa4825b33c5780a72d7f7d495ca9a8d18fa2185e2f22edca049b610ab7217c5e910519dcbc21477ed15b9be01b566bbd18aafc049d63c047c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x73e186de72ef30e4be4aeebe3eaec84222f8a325d2d07cd0bd1a49f3939915ce", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np383", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9ed60ccc2815f143b3776e728718019b7820044b0e8f1048fada365fefb130d4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb9320ec53937dd8a33deff1261bcf4c66c5dc794cc8e60bc6d3c1f20918bc19", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x17f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xef6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9062dff550aa9077f3623061b2bfd2bd8d2c86e29909967d614bd4944d9775b4", + "transactions": [ + "0xf865820195088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a08de2c7c835ae8f6ccd20e20df057097cb6e8fe56599af11c8489579e84eba2cca002241c5d8c31bb3275de49cc635e8f80655e2cdc5d2ef90467af6c0714ef5957" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xed185ec518c0459392b274a3d10554e452577d33ecb72910f613941873e61215", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np384", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9062dff550aa9077f3623061b2bfd2bd8d2c86e29909967d614bd4944d9775b4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe2887614ef7dfd46b2eb60757d520eb36e14df3de8eec61992c4ed45ce64cdd5", + "receiptsRoot": "0x2bb262e1c2de3c524cea3467cc4102a62ffbb6e5dd8e4d3e5e01b5245a226e79", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000001000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000020000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x180", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf00", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd157f96d8cff964d61e492c245aa25b09c561e5c6336ed5452387454dd2936a1", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201960108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c036eab5d1496600f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0afc44d58dec637206e79248a528189c68365e20afc23410475deb5e5dc69c82a01a0898501fdb06f8326c17c49fbd51da51df4310e5fad6c7c800c2b8726e182ad36a064853e8169e7953b610056f9db4b7f7a095e1277984c1438f143c586fdfc6016" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5cfbad3e509733bce64e0f6492b3886300758c47a38e9edec4b279074c7966d4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np385", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd157f96d8cff964d61e492c245aa25b09c561e5c6336ed5452387454dd2936a1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa2c306a43172bcba3f96e70bf46f2c55b2189dfd9f6b2c0f8a747b6367697d73", + "receiptsRoot": "0x16cedaf9e08250d2f20ee5725d06428ee114670fba949a51f5357b4e01fccda1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000009000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x181", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf0a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb8edb732bc8eebb71c6b57b77061ba1acf052b420d919e5da1720abb3c7edb21", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82019708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ccb602560a8ca054b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e2a0b166c03b200234eacf5eaf9ea11746c9bfd00e72f55d8cab76e0eca7195a01a05060bffe7a652e40c953fb35b1e32ee82b3dbd200487895b6095d5c13b643adba077ebf6ec2af6f21adb5a0a42b2cbae112b29bcfbe2fffc372f2aa66fcf35cef8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x867a7ab4c504e836dd175bd6a00e8489f36edaeda95db9ce4acbf9fb8df28926", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np386", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb8edb732bc8eebb71c6b57b77061ba1acf052b420d919e5da1720abb3c7edb21", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb7d507270112bc4faab433198f6bd8ed283d9dfce7c48f022dbe35b2eb1e878b", + "receiptsRoot": "0x4748a7a6d1cc5092adc5b85c9c5b670600b531b5a1f8450d3b47d6cc3a789ae3", + "logsBloom": "0x08000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000040000000200400000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x182", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf14", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x15266d7b9ec958793882168c6ecb5b92093f733c0e47fa9f9885dec39977e5e0", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201980108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c7ea611ad5cf07d1b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a04b85d3d5e4e06787a4e7e6d00f4e2f6d7e0358d9e511177ab584553d4ca0603883020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0144a8ecfd93531def162b68dfaa7a049752c47ab7057ca9a403e193c15261054a04ad33f9300255a732f62f35103bb245fe6afe7d0fa04495d2cc33c5f8906b239" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x0d01993fd605f101c950c68b4cc2b8096ef7d0009395dec6129f86f195eb2217", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np387", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x15266d7b9ec958793882168c6ecb5b92093f733c0e47fa9f9885dec39977e5e0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x43a00b1aa4db0f080095e7930a6065ce834fcb8c29c2f072f2ccbc4d85cd452a", + "receiptsRoot": "0x2d99a1b319bf0d04c62af6aaf8f18092048165fcee3802270419d4acdc954cac", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x183", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xf1e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x96ad738816a0c5035be9c01fbbed53998bc70a21a08bd0fa2427288c9d4b4cfa", + "transactions": [ + "0xf87582019908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c70bbcbdfb5c84e35656d69748718e5bb3abd10a0a08cb38dfecd5d15969ea5bd2db95c50bcddf8cb5d48a5431037c46511722c4cffa03022edf33caada42b8a0f6d0c07bbd36c13a812c3bca92c6e90262aa7a702152" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8e14fd675e72f78bca934e1ffad52b46fd26913063e7e937bce3fa11aed29075", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np388", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x96ad738816a0c5035be9c01fbbed53998bc70a21a08bd0fa2427288c9d4b4cfa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd9d011d38278604ddae7d5e49d640e29f0b5128ba4e3ce8ecdafa9cdb5553cf6", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x184", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xf28", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd78dcce2b8cf4bd8d77c2e3212a31f5e1eb0c62184d07d2c0bd0dcfaf9258e67", + "transactions": [ + "0x02f86b870c72dd9d5e883e82019a0108825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c080a058796c88204f4a019fa411ee0fb065d3499c48ecd98ef4b5ff4c8f12d9936140a008d74723a6429931c2bda0c48d75cc1de3e4fe79e15dc74a9f8e81798932edba" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4ec1847e4361c22cdecc67633e244b9e6d04ec103f4019137f9ba1ecc90198f4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np389", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd78dcce2b8cf4bd8d77c2e3212a31f5e1eb0c62184d07d2c0bd0dcfaf9258e67", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c1f0cb437c8070e56df88cdbe91555b33d59248b13433075cd22430ad834811", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x185", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xf32", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x53b455b1a2321612d4750d1cb5f2154662340f0596d839583ad50db5d90c42f9", + "transactions": [ + "0x01f86a870c72dd9d5e883e82019b0882520894c7b99a164efd027a93f147376cc7da7c67c6bbe00180c001a09d5b18b761d63d1a9df732a8936576c71c3ce118a856e5dcc45bbd3ebc334545a0080b412935374e02b9713851a796e0afdc96f6eb0709c83884ed51d0a65691ec" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xec69e9bbb0184bf0889df50ec7579fa4029651658d639af456a1f6a7543930ef", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np390", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x53b455b1a2321612d4750d1cb5f2154662340f0596d839583ad50db5d90c42f9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x858cecf2b89032ee42d75787514ce9f12e640d24168d3787531a4844dc3328c2", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x186", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xf3c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe665360c7c8888bfa138a986f8ff7f890a44b9e8f80b7e736f5f43a7c8bc5349", + "transactions": [ + "0xf86882019c08825208942d389075be5be9f2246ad654ce152cf05990b20901808718e5bb3abd10a0a0e7eed0cb4b06500b37b924d33a203b5defa189b4c3d6d3fb4b8a15d547bb773ca05a505687b0397d49822226429f7d7d751b0e22e5cfbb1ba857fd6cf08fd1fdc8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xefdd626048ad0aa6fcf806c7c2ad7b9ae138136f10a3c2001dc5b6c920db1554", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np391", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe665360c7c8888bfa138a986f8ff7f890a44b9e8f80b7e736f5f43a7c8bc5349", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdef174abca6e69793809763b1d37b188934297769a4536a98c35f27da9cc7e0c", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x187", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xf46", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe5efcbb043c2a94c768287dceb47dd6b9cb7a7cfa2d9af29222678ed900368c8", + "transactions": [], + "withdrawals": [ + { + "index": "0x22", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x551de1e4cafd706535d77625558f8d3898173273b4353143e5e1c7e859848d6b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np392", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe5efcbb043c2a94c768287dceb47dd6b9cb7a7cfa2d9af29222678ed900368c8", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba682cb45dc6229bdf92ac214a08cf011d628144f6c88f59065c0769a7527b91", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x188", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xf50", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x21f6741c735a5806078a1f39d17733b135210be8033a80be4fefc59d42c45bc7", + "transactions": [ + "0xf88382019d088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa030067aafa083ba90ed5ac98c474bd13b26f75a5183b1057cf1b3e136b27c6a8aa07cccc9bd109d2b8ed64e6992f93b62781e31b3a4987c08d299562237a932f3ef" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x137efe559a31d9c5468259102cd8634bba72b0d7a0c7d5bcfc449c5f4bdb997a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np393", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x21f6741c735a5806078a1f39d17733b135210be8033a80be4fefc59d42c45bc7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x29532a6b078691fb21bfd376abeed8257e221095f8b8c605e5c83882d4c7f7b1", + "receiptsRoot": "0x408b424cfe8e4a58b00e7e016fefdee6397c334eb769ab72684a4cda56dc1e80", + "logsBloom": "0x00001000800000000000400040000000000010002000000000004000000000000000000000000000000000000000000000000000000000040000000020000000000000000000000000000000000000800000000200000000000000000000000221000000010000000000000000000000000000000000000000002000000000020000000008000002000000000000000000000000000000000000000000000100000000000000001000000000000020000000000000000000000000000000000000000000000000000020000000000000000001000000000000000200000000000000000000004000000000000000000004000080000000020000001000a00008", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x189", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xf5a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd158907e25d23731ef6dce6a9d1614ba8b69f1080f78acecf9c403a853b3e7e1", + "transactions": [ + "0xf87a82019e0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa06f959e2a059ecc0164e6c5c3f07a6ad7a53406b6c9baaae29c3a1edd2fd5664fa039353c67eed349b29feb34980aa3de22607a382bbe3bb1114c347ed65a0087ce" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfb0a1b66acf5f6bc2393564580d74637945891687e61535aae345dca0b0f5e78", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np394", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd158907e25d23731ef6dce6a9d1614ba8b69f1080f78acecf9c403a853b3e7e1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xce1f293e6e98a03a0418ac1c56114779aac94fc03eff0b0ecbbf97610ef698db", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xf64", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6fab05257a0a012b2d7ae03c844ddece0883c3c319ac1396c86f6f0e136d034b", + "transactions": [ + "0xf86582019f088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0e3e15349981a88905d5af6ec3b7e5af4805bfb673fb2e4d6fa577d357cd5cf05a05268e935e21321793bbd1a8bbd62b66a633009d365cfe6869eb2d79951367e9c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x96eea2615f9111ee8386319943898f15c50c0120b8f3263fab029123c5fff80c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np395", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6fab05257a0a012b2d7ae03c844ddece0883c3c319ac1396c86f6f0e136d034b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf561f28bb33b4623bc346f51cffbbae8ae28693c726809cf8d9fc73c1f318501", + "receiptsRoot": "0x19c705ba74035fab2b2c8330c0d306854a4c35fd804490bd12c26795086413a6", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000800000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf6e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7c1553d1737048182d4b9d286bce8cfebcf1db592863dcdb04597d033557214e", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201a00108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c885c8e7048f4f360656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a01f1860251182573015d583a718463a52050e45d795ec0f94d112206c3fd62e4501a096bc82b0394d53979f9ae1ebef4aa75f643d05c6228a48d5b1467dd903724a6ba05ed6416fb1a0a40a782fda54a4b1f2bd007238047a9006bab629e3cd8310c068" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x68725bebed18cd052386fd6af9b398438c01356223c5cc15f49093b92b673eff", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np396", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7c1553d1737048182d4b9d286bce8cfebcf1db592863dcdb04597d033557214e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc1d1402980206ba41ffc92e430b8e35fdc94736a6f5b07e310e7bf2ae2d330db", + "receiptsRoot": "0xf07cb300dfd0f69edcb7adc7b068aa9a82bb4546861e357f19be0583910716ba", + "logsBloom": "0x00000000000000000000000000000000000000800000000000000000800000000000000000000000000000000000000000000000000000000000400000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf78", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb9a2df3ba23cf8289d6075dcaecd47b52b9fb750dee39aa9a93b6477e99b348c", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201a108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cb3bbc461cd7b04b9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a092da59b68bfd8a9c1cb1ca6a302ee966f829f2727a36823b0dc7fddf7790a10801a04e402365b760304dd7885b33e0cad13b6c8de41105f23e8706aaa2e986d81610a02b0842a437c416ef9f7d3184d3ed41a83fbdb1e43de6c7902ce7d7321c4ab71a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe2f1e4557ed105cf3bd8bc51ebaa4446f554dcb38c005619bd9f203f4494f5dd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np397", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb9a2df3ba23cf8289d6075dcaecd47b52b9fb750dee39aa9a93b6477e99b348c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8b2014cc1ba5d9b7be83ed0ec428dfe1df8c8b617bab285b61c5cdf11a2fd406", + "receiptsRoot": "0x0be5e2fc34752a3c00710ad282caf7be3018221bc0333964932a60404bca82c5", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xf82", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8db428484b88609d95276b97bfc852bbad22b06dd7f40ac765e4e3333720ea83", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201a20108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c96c2e214be2bd0a2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00c8e91bcf03d65aedba99f4f76d3ff8cd007668948ce12daf4dded4761c7b19d83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0d0af7bb08c69b25a8eef5629377b5ddcf45799c33c8b1fb564edee75b88dfef8a028f3e326278765d228f6354d7ad10b1ee3fd5926cb3d5b3a8e140b4fef5b5c35" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x48ef06d84d5ad34fe56ce62e095a34ea4a903bf597a8640868706af7b4de7288", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np398", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8db428484b88609d95276b97bfc852bbad22b06dd7f40ac765e4e3333720ea83", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc7d3270843fb0721e863b71bf2e9569178c4c1772df6ffb9830dcccb98ec52a9", + "receiptsRoot": "0xc0fd8226f5464b77c8ed07cc668d831a475c36e763de8a60694e0167d21c1daa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xf8c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd52069ed6df2e1d2f640f30f418cfdf95501b1c6085ac06093c891607b0032c3", + "transactions": [ + "0xf8758201a308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c4f4dd67aabaad6c3656d69748718e5bb3abd10a0a081b8e4c24820f2e8ea5fd2d4fc084667750f08875faa805fcc4e83a4f487341ca0024d08d37c00b11e2e3f6e3d23f2a466c331f91d8bcc8afae4c4b803263e9c97" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5c57714b2a85d0d9331ce1ee539a231b33406ec19adcf1d8f4c88ab8c1f4fbae", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np399", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd52069ed6df2e1d2f640f30f418cfdf95501b1c6085ac06093c891607b0032c3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xec34f503baa8a3bf9d5b965aa73eaf7f1c59e6f77f140485375ee0838d1837a8", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x18f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xf96", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7a253f0e42ca478ad6c4ae1e4892cbddb34294950e425582a85ae2da34f8a8c2", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201a4010882520894d803681e487e6ac18053afc5a6cd813c86ec3e4d0180c001a09728fb333f0202298944f0eba61beb26ec81f57db95bcc9d7b9693432fce75f5a0183787fafb6563e8cd2f9850179759dd5b2d72aa986d21af6543b16e638a7c21" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x204299e7aa8dfe5328a0b863b20b6b4cea53a469d6dc8d4b31c7873848a93f33", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np400", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7a253f0e42ca478ad6c4ae1e4892cbddb34294950e425582a85ae2da34f8a8c2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a93c947d5396808acb6505c825ee8766d47620a3fb91bcd2e890a602199901f", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x190", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xfa0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4e526a541914f396684974eafbce8e6b898a3330278c3e7626816d435a2ef4d0", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201a508825208944dde844b71bcdf95512fb4dc94e84fb67b512ed80180c001a090a30db198c78f870c93648d4e02917e60d6aa6c9a1ae6af1ad01d8d48391ce6a07313f35931f53dd4edfbb01130a31f51813a1906ad845061ef41baaf5fb42a62" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb74eea6df3ce54ee9f069bebb188f4023673f8230081811ab78ce1c9719879e5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np401", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4e526a541914f396684974eafbce8e6b898a3330278c3e7626816d435a2ef4d0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbd3526bec68fc236a888c5edb23f1c7885fa46e2deb25fb667f03288fe7cf5f0", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x191", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0xfaa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x03dc453bfc92a17cf81454eafdde515558d116047e9d2deb26e4d653df5960cb", + "transactions": [ + "0xf8688201a608825208940c2c51a0990aee1d73c1228de15868834155750801808718e5bb3abd109fa0cef73dc4066b0c8a15b87503df3ac6e7b114ed7a6360bca4c469f3c7a1cdeb46a06912fc6d6eab8e3ab4aad5a6082f82d0cd129071c059db8fba5a911cc4dfe664" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xaf5624a3927117b6f1055893330bdf07a64e96041241d3731b9315b5cd6d14d7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np402", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x03dc453bfc92a17cf81454eafdde515558d116047e9d2deb26e4d653df5960cb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x80d8942ec16df8ea30502c625b3a4f5bf3c7a5c7a35ccf4de6869b534d2fdd30", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x192", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0xfb4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7c28f6c5bd3f408616c4374f509a34b30c118bf5d1573a2093630f20e43f2117", + "transactions": [], + "withdrawals": [ + { + "index": "0x23", + "validatorIndex": "0x5", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc657b0e79c166b6fdb87c67c7fe2b085f52d12c6843b7d6090e8f230d8306cda", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np403", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7c28f6c5bd3f408616c4374f509a34b30c118bf5d1573a2093630f20e43f2117", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe70190f6ed009bd81015684f2421d43c0c0695ccc602351a921a3ea92c1cb3fd", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x193", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0xfbe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x930fac8adfdbe31343d02ff687fcb52da1c6e61bca71f0f4a0dac8bbdbe9f243", + "transactions": [ + "0xf8838201a7088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa03ca2ba685ec1759bc7560c52f9418727274e73d6d59cb61191058cc2dd519565a017c62d2d43eed87d417edf9d377102a2e0b71fe7e552f3427e7e9a16fe1378a6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa0e08ceff3f3c426ab2c30881eff2c2fc1edf04b28e1fb38e622648224ffbc6b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np404", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x930fac8adfdbe31343d02ff687fcb52da1c6e61bca71f0f4a0dac8bbdbe9f243", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe06824207c5c1eb5931283fa74777883a8be1eb6e99ef1bc27a3c5088a84d328", + "receiptsRoot": "0x81566a1b74d5ec58900e780cbef9b6e773a0846e3666a2418de8c08a89afd8a0", + "logsBloom": "0x000000000000008000000000002102000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000400000000000000000000000000040000000000000000000200000000000000000000000001000000100000000000000010000000000000000000080000000000000000002000000900400000000000000000000000000000000000000000000000c0000000040020082000000000000000101000000000000048000000000000008010000000004000000000010000100000000000000000020000000000000000000000000000000000000000000400000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x194", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0xfc8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x899574f6e851f799bb169b1b2ff31f51b11d500716847b660fbb717340b90f14", + "transactions": [ + "0xf87a8201a80883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0f8134902b3f0afcf54b9d803218c26ee97f023a427dfc515f7d872d4ee39c0dca03f44b5313aa79c53ad01f6f331fa50aee26a6386265921b7cfa24f18b876225d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc9792da588df98731dfcbf54a6264082e791540265acc2b3ccca5cbd5c0c16de", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np405", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x899574f6e851f799bb169b1b2ff31f51b11d500716847b660fbb717340b90f14", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4f1078dbf2c9687a55b2d2567e284374928604f4ce0032a3c665953f019ea6a9", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x195", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0xfd2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7310d47dc31a6bc3bcb6dbf90735258a092efc6fc83100937e73835ee2d70531", + "transactions": [ + "0xf8658201a9088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa08207de7d895b35b441bd31c016e50ec023f27817975912b467b01a883e8dee8ca0120b129c7aaaf566631c317698caf548d5a0bf20a6e8332f541795868287c3bc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc74f4bb0f324f42c06e7aeacb9446cd5ea500c3b014d5888d467610eafb69297", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np406", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7310d47dc31a6bc3bcb6dbf90735258a092efc6fc83100937e73835ee2d70531", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x11f4034edad0b613feef6d1e991d8ba4b3364a611236fd8ee052b20b0cd37ae2", + "receiptsRoot": "0xf444c39e621724e2fceb53f84e89737a22b3af6b612abaedd4ab25b5ee65e683", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000200000000000000000000000000000000000000100000000000000000000000000000004000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x196", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xfdc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9096409d42e5525d369ed6637798f87763c39cded3d9b86b9428c86c93b61b86", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201aa0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cffdd7bff610bd696656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a019fbac480a243f8c051e10225cec11bcb7fb274fac8792ca7e36bab8e39d312c01a0ee963bcb4fb67a997b3769f7e321f72876d65a535d74c9466c16f3a73477aa63a03e568a3d2715ba5b2b11274ac55fa7aeb105913dfd4f8c1138ab6c0ae6b982a8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1acd960a8e1dc68da5b1db467e80301438300e720a450ab371483252529a409b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np407", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9096409d42e5525d369ed6637798f87763c39cded3d9b86b9428c86c93b61b86", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6c3de87f414ec08a57a84621b1f5494b34a97eebe4f8395527f60fd871010ab8", + "receiptsRoot": "0x53a86de1d09b83de67cfc4d6118e9cf5314c3eed7608c554909ae2574208b53a", + "logsBloom": "0x80000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000800000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x197", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xfe6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x12d88d0223ca1c9cf55b618b3c4874591d2ab50eedc5b7acb833cec3efc2c2c2", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201ab08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cef0bad2321e818b5656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0677a6b432bd3361f469c2e051c8e09ea92ed0d049eb563118ff8c680fc93a2a780a053276ccd02cf1655c5832a3fc3f0644ba7c5de29c41fb404fef7b1e42d743c10a032602afc3a48d2f2ce0f3e4087c5cf59888242eb8a6b72b7f67e1efa45940b4d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6cef279ba63cbac953676e889e4fe1b040994f044078196a6ec4e6d868b79aa1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np408", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x12d88d0223ca1c9cf55b618b3c4874591d2ab50eedc5b7acb833cec3efc2c2c2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdc9634fc3e1d0aff77dddafeb45a9a91afbace01a4333f0bd86d9d777577da46", + "receiptsRoot": "0xa9d01bd64bd9caeb7b4f166fe7b5e2baadfb930035dccc463e2a094af5ab77e8", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000020000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000020000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x198", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0xff0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0f52fa7983ab74a3b8f29492272435381ef85bc78db04283ef614c1fed3aa454", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201ac0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c68c46027ef4b7464656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a082a4bb68f7522b711c9f22b00f9c5e050f52cb2bc5f0f50eadcb12a5f1c3083983020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a069bfc96d7bc42e126e6348fece3369b2e46c9bd72df269c5aeabe314898bef5da0305fa207d3fc1c4f795de4132b599e0ef15486865359dd3935f9b73c3634e1c4" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x60eb986cb497a0642b684852f009a1da143adb3128764b772daf51f6efaae90a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np409", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0f52fa7983ab74a3b8f29492272435381ef85bc78db04283ef614c1fed3aa454", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8012a731e1bf0836bab09fcfb9c5b286c430cbf5bf3cf5bee5a632cfa52f3fe3", + "receiptsRoot": "0x73d6a4d5387da1c08aba18cbdff3ec5099c19fd396d23cfb5be896c8c744a18f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000004000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400080000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x199", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0xffa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x84d0bb93eddee81c91f12a28c949b30782bd4e0edba3512ec7ece7930c060823", + "transactions": [ + "0xf8758201ad08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6ae46cf81c369e21656d69748718e5bb3abd10a0a0f3af9d4836ccf9a28d01a3c8f31b8a3f65e53ac8ecf85273cf05d0acc5047900a048427de7841f09a85a37409520e5878f6fb353a385d823985d99d33cc417f5ce" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc50024557485d98123c9d0e728db4fc392091f366e1639e752dd677901681acc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np410", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x84d0bb93eddee81c91f12a28c949b30782bd4e0edba3512ec7ece7930c060823", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x49b22b8988b9ce9cf215f77389080ce8091c88236757a50c3cc2b530ff93e685", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1004", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x033fd8cb5296f3226b34e1dc1084b6a25480fa39cec6e680902d838135aa1fb9", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201ae01088252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c001a05f06d517a74de8d666613df85a2053dba339563eefcd9a968eb70ff707bf0754a04d8a63e4b8c3db8a67ab6585f08e112608faad9d2b5ce0e00dcfd96f0fa330d7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb860632e22f3e4feb0fdf969b4241442eae0ccf08f345a1cc4bb62076a92d93f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np411", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x033fd8cb5296f3226b34e1dc1084b6a25480fa39cec6e680902d838135aa1fb9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd6a79ba7a6ff238b9c9e0187c689ce8c06a1b9f2f147519d3b21913535fee054", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x100e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x737d7e54435171f7d4f1a31907fd2e6c53cce00b323b09de43222b5c27b78de2", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201af08825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c001a0d819fc2311e388306378ed79eb2e7a84d2019702015d0442a4962fc404155e2da078b1a0494387cec889d0936cd7c86bfd0cd164c8a59fdb0d92db3f544468e599" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x21085bf2d264529bd68f206abc87ac741a2b796919eeee6292ed043e36d23edb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np412", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x737d7e54435171f7d4f1a31907fd2e6c53cce00b323b09de43222b5c27b78de2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3bfbb383dc248abfa038405d9007842fc9b4f5fb6d427ce73c2ba66713aa4d8b", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1018", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa18e5315c6a7fc757c84bdcc6b663d717c0549aa53f913f05e2cffaf6d9f2227", + "transactions": [ + "0xf8688201b0088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb201808718e5bb3abd109fa0294c12c24ad5ff685c6e22560ff7c009bd0a45bd75f2794d20f0d6b22a613823a05353ecc7c5bc868be13afebdc9011268eae9dbe38d588b6c392df53fa4426021" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x80052afb1f39f11c67be59aef7fe6551a74f6b7d155a73e3d91b3a18392120a7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np413", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa18e5315c6a7fc757c84bdcc6b663d717c0549aa53f913f05e2cffaf6d9f2227", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x142436557545c30c44363b6484e74b07c37dd3b2b7a9e6784d8a35910e1c2486", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1022", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb29d54443444ecf45ee00696aecb54c788d5bf75b57f20e5130c8a9233ca4c96", + "transactions": [], + "withdrawals": [ + { + "index": "0x24", + "validatorIndex": "0x5", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa3b0793132ed37459f24d6376ecfa8827c4b1d42afcd0a8c60f9066f230d7675", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np414", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb29d54443444ecf45ee00696aecb54c788d5bf75b57f20e5130c8a9233ca4c96", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c8d981fc6b1a0f36d6f67caeacb1a1299c64d747e77b94b6676b08daea00cd1", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x102c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7c3805da218aa7f4e84fd775e7020c28243f7be58b18e624e447ac2905f40b08", + "transactions": [ + "0xf8838201b1088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0045d05afb5984928670226945103658d90226b238769ec6bb94ef4b811014bbea0520d77475cb63aa161a1660f2c8c3edf93bf7144e0b83a9ea4f26eebe3d85789" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe69d353f4bc38681b4be8cd5bbce5eb4e819399688b0b6225b95384b08dcc8b0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np415", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7c3805da218aa7f4e84fd775e7020c28243f7be58b18e624e447ac2905f40b08", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x37e39fb2cf7e5f3b4a61aa2d916d8685236e04cd39f457168496de231114e560", + "receiptsRoot": "0xfbe1a653c6dd606eb25aafa9b0d2aaadc1159b5cce2e08f3115abcdc570dd839", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000002000000000000000010000000000000000000002000000000000000000000000400000000000000000000000000000000020000000000000000000000000800000002000040000000000800000000000000000400000000000000000000000000100000100101000000000000000000000000000100000000000000001000000000000010000000000c00000000000000011000000000000008000000000000400000000010000000000000000400001000000000000000000000020000000000000002400000000000040000001000080000000000000000000040000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x19f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1036", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xfd605ccf0552f8e7b221992726e492451007e6c6fb9d16e9c9a34200886a04d1", + "transactions": [ + "0xf87a8201b20883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0b2b55ba8f16cab418721c37d01f5541cca57114991a68007b7af3dcdab25d08fa05467d2dafe6378bf9d876ba0fd4d4f6486a2d33faa2cb833af6cc9b184cae185" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x221e784d42a121cd1d13d111128fcae99330408511609ca8b987cc6eecafefc4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np416", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xfd605ccf0552f8e7b221992726e492451007e6c6fb9d16e9c9a34200886a04d1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4a14d680740cc7ff13ff5795b4760edde2bd0957554767961145c99bfe0c3e85", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1040", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x105a3b333d909958236b0da2089e6ab33cfd18fdcb2b7778c0c9d71db4298d8b", + "transactions": [ + "0xf8658201b3088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0b9bf568ddb39b91b0ad1f900ca747b72113d1ede1696c191eb367cc9a5928903a0354e8a4937be2f9bf8d165eb08b939fd37146a70b72e958f05833285ec92d427" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdcd669ebef3fb5bebc952ce1c87ae4033b13f37d99cf887022428d024f3a3d2e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np417", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x105a3b333d909958236b0da2089e6ab33cfd18fdcb2b7778c0c9d71db4298d8b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5f6d88002f6ec9dfd4bcf0d386bb420a3c80bc2de0db349737238cefb0ea1762", + "receiptsRoot": "0x5ae0afe8b3c9a6fe2753d58deee3d7a3935003d1268f603a8e9105ed066df674", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000009000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x104a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa67f1ef534a72c18b935ecdd616dfc74353d87c9a17f605056f99194ca51affa", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201b40108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c04708e04480c538d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0fb2772a3127ac292efa3da20fad64d950bf973fb209892fdf834766aa8cdc3ba80a0ddb4aeb62dbc896dba05fe7f78e1a1b56de377120bdc0b624395504f32aae2c0a0471e3f27fcc5933c147e74695e1cf14c9fd287721f8410ae6497b814e418a297" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4dd1eb9319d86a31fd56007317e059808f7a76eead67aecc1f80597344975f46", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np418", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa67f1ef534a72c18b935ecdd616dfc74353d87c9a17f605056f99194ca51affa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x81f739b4c4a80880f57fcfd8299d8a13ec3e03b5d18e0e9ebbbc22b5bf57a1ba", + "receiptsRoot": "0x1101e907ef640b6732e2561b65877e64564f7ff7f6fb22987f21a5febf783d1c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000020000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000080000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1054", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9227d788b19ed84597de40bf0d549437fac98898f323c856512eb3e4ece9dded", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201b508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c96428e7ddf22a6f5656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0250ca62bfd18dde43e70bab089d01d591ce6ab28978434258ae1017c72f12b0a80a0ba52b73bca5eeadfd26b3b0036725c4436f447d1925771334f6e9aadb39aa503a0732ccb0e4d917b530939e459c96b540978db93ed6b94f9c40c40eae3a6cc79a5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5e1834c653d853d146db4ab6d17509579497c5f4c2f9004598bcd83172f07a5f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np419", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9227d788b19ed84597de40bf0d549437fac98898f323c856512eb3e4ece9dded", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe4d2cece4ad701df6f87d2dffa991858df1c3824b479ce126d8f6ac71c91b7dc", + "receiptsRoot": "0x9d7a6982ec8b327f2d6fc89884729da67feeaf03fbc98294792a2eacef14a5a9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000004000000400000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x105e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9ac08c74df2efa845713d7c48cb120f3974a7d70270d7e43f2e30651695453a0", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201b60108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038ca4ea5930018eb6de656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ce87527a0ad3ddb4d0d57d8077e84d48a6f3810f2a5672143d3b6969b0f86d6e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a01e3eac364ebf604b3aede0ceb9ded0664b3cc8c2b95fa6d50fe63f39150369a8a03bdbf726f8daad3eccbe49523ed01cfdc7be73bc56178cfa262b6b621ffea578" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x9f78a30e124d21168645b9196d752a63166a1cf7bbbb9342d0b8fee3363ca8de", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np420", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9ac08c74df2efa845713d7c48cb120f3974a7d70270d7e43f2e30651695453a0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x91abe8be79c91da7ef24f512943bddfa049501020d7035a76b0af54c806e93ab", + "receiptsRoot": "0xa600bd75f3d3caf5636d9baf534586af3c2b4150d5a93313c34faabcbf37fc5d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000800001000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1068", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9c60b65b9e76366621f1355ea1e2e292c0f2f2be7bc0f402ad0095cf9b024598", + "transactions": [ + "0xf8758201b708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c2f18b099ede0c012656d69748718e5bb3abd10a0a0a7c1e5848166c2db947cd8e1ddcac62614bb8e27982f6c0f78478f7caa8891efa03172574a6aed5db3f18943592c15518ae1d5ed6c25485f3c8813f7ffcfa02db9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1f7c1081e4c48cef7d3cb5fd64b05135775f533ae4dabb934ed198c7e97e7dd8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np421", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9c60b65b9e76366621f1355ea1e2e292c0f2f2be7bc0f402ad0095cf9b024598", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x35aa3d8b6cb55e2a0eebd5a754a341e49bc2c605716f28de4c9336bc58e0be1f", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1072", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2198fa802b4c34aa089ce7b6ce1d7eeb5fc3c2dcc6f6db71ca3d15f8c586a230", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201b801088252089416c57edf7fa9d9525378b0b81bf8a3ced0620c1c0180c001a09520e2ec267207e2385106bd676de25575a03d987a86b3201948ad414fadcc5fa03282a47ea09ef3cc501ff025af54fdb37399806f5880dfa823ad3fbefabd06bb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4d40a7ec354a68cf405cc57404d76de768ad71446e8951da553c91b06c7c2d51", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np422", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2198fa802b4c34aa089ce7b6ce1d7eeb5fc3c2dcc6f6db71ca3d15f8c586a230", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7131e4e3048c342fbc04ae495f58613640c05b17a8183890d7ccd516b8b3ae14", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x107c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4df5952c9c5555bae758de89b1a4bef3107e63fe722a5e95161e02f4132faa78", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201b908825208940c2c51a0990aee1d73c1228de1586883415575080180c080a0bc490209934f064f57f6b56c593fbd08bfc42a695ace8b885f17fee9611d7bc8a078addf2935069355d58d1cd4a5f8809031dfcc3ed15a29f3b854e91460f5f1ea" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf653da50cdff4733f13f7a5e338290e883bdf04adf3f112709728063ea965d6c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np423", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4df5952c9c5555bae758de89b1a4bef3107e63fe722a5e95161e02f4132faa78", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa5a97915021b6a174f1e1e25e3537aeed3b459d431743574291fb3d1bf2b68c9", + "receiptsRoot": "0x642cd2bcdba228efb3996bf53981250d3608289522b80754c4e3c085c93c806f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1086", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xbf89f44ab29227a246931d0d96a52e7b788dcb2411625bca2d50be6a3797d8aa", + "transactions": [ + "0xf8688201ba0882520894eda8645ba6948855e3b3cd596bbb07596d59c60301808718e5bb3abd109fa05200e72ef6248d64e5b1b66b5b62b009fa164eb803eaf2712fbacb715884dc60a0661aa7732289934bcb684843e240c480b9b9b3df52d08d07e25db6e679efb598" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x259ab95f666ac488c7d45e2a64d6f6c2bb8dc740b23d3e94a04617a0a3fbe0eb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np424", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbf89f44ab29227a246931d0d96a52e7b788dcb2411625bca2d50be6a3797d8aa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3a9725954a60141996c988304a4431fedb18567332653f23571c53611f252789", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1090", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9d798f5f1806b22c73320500e5b0ecad6ce1e56f0bebd96df975eabd7e9307fc", + "transactions": [], + "withdrawals": [ + { + "index": "0x25", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc4b808157fad1819c40973c2712d24ce49df04f8ad955ad0373625dcbcc5aa7b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np425", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9d798f5f1806b22c73320500e5b0ecad6ce1e56f0bebd96df975eabd7e9307fc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1f5a65fcf9ad787107bdd22b6bd03f2311390e8c24b403a2196e134123f05e04", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1a9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x109a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf0688b0ce2364b1c0e3d43325d3d3c8ccd63e530630a920664d49547169d0601", + "transactions": [ + "0xf8838201bb088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0a8b429d8d8413fd79f290fb0095b068f54f005b66457d4e0fbc317325180993fa051faf81e6e050e7c985468e51a2d0e7ed2a48ba0a3ea33df3a59c6d2acd866d2" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe7c5536cfd18a67450339a94845bc86835cab1386e7f8b3eff0b4e23e706c23e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np426", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf0688b0ce2364b1c0e3d43325d3d3c8ccd63e530630a920664d49547169d0601", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf6d42ab939e8a7ec8c7f5b8d1fea7cc02a696e17692a90710070f92ae60ddc50", + "receiptsRoot": "0xd1b80c442926fe5c120d48dbba8a939553768e94cd9d3d93d689e20358cfbe4b", + "logsBloom": "0x40001000000004000000000000000000000000000000000000000000000000000000080000800000000000000000000000000004000000000000000000000000000000000000000000000000000000008000840000000000000000000000000000000000000000000000002000000000000000000000001000000000000000000400000000000000000000000000000000101000000010000000000020000000000200000000000000000440000000040200000000000000000000000040000100040000080040000001000000000000000000000080000000000050000000000000000000400000000000000000080000000000000400000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1aa", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x10a4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x08d303e510e1cc58b695d015fc2c2210daa94f0f3ff193d83ea43135bbb590b5", + "transactions": [ + "0xf87a8201bc0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0f528e7e5606653de34f71128dd2325b8d9ae69900242cc49dc3297ae729656eda06a5dcad3a7bc21867e1507f36889cfff8492c01b5a472dcee9de4c819c500508" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8f5d7fbf3369ffcc9cc71dc871a54df7fd2f391054043e91f4afd27937ad2571", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np427", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x08d303e510e1cc58b695d015fc2c2210daa94f0f3ff193d83ea43135bbb590b5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6dcc9c866eadcecfa79df027d479128cfb976f4a4f9a58b25bce25508a36a404", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ab", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x10ae", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb266835618e75e3292af2395d56e02a6e3e35264a596cb44f38148b1499ea0d6", + "transactions": [ + "0xf8658201bd088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0b09a24109a3aa2a21627335bb2db9bf7ea898fc97942727cf6ea7ed4d7fcab38a0191c9a40b0a3d226b36e86ec936f46dba272452b4583baf56e58c114e86875be" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x77b7c55aa160a8bb8011b7132e25c90653a099d1e2925643721c979dde14c1c2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np428", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb266835618e75e3292af2395d56e02a6e3e35264a596cb44f38148b1499ea0d6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbc137cf8f41cf2406c69068da0f2a206eca06cdde21e0248db73b5e8791f0203", + "receiptsRoot": "0x7387492d4f80338aa35cc796106c3c1c13d4f7856f89223f50ec2e3eb254db59", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000009000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ac", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x10b8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x301512acf2893751ec72f15dce9fdfb887dccfa96c80d6580a3487dd7857087a", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201be0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c94159fe8d22ac484656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a90642da2f095eb8128f01811cb553162395cfcecbe5b077f12c62a1effa7c8201a03a816ba4bc14949ab0ac310f3ffd9f89d92d7ab8f0a4d09c5d45c9401bbde552a032913568eddcee54e3fb9bc629f4c6703e84b9993f8803e82a7a946690b2a4de" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9cd67bbefa6a7a9ae1eab06e461086b6bad850bfb0bda838ea83dc58d0c20feb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np429", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x301512acf2893751ec72f15dce9fdfb887dccfa96c80d6580a3487dd7857087a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfe0d52fe58965589a853421ce0cfa0e5bc83c31c146f9818e494579d4233451c", + "receiptsRoot": "0xd952a215b77535449177637a95b2ca41bd0a547138df1aae9b7b876444256554", + "logsBloom": "0x00000000000000000000000000000000000000000080000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000002000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ad", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x10c2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x22c0f9622864f960991a2027fa3b70d9941bdb21189e7aa09f68660e27be1dcd", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201bf08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c79b38a395911e1de656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0cea8a961664f986542ebbc496878d052736682831cd7847bc769ae16e9eefb6580a0b38990f5679948bcd4756b2135c382f591d087ee507b4bc71215a67d003f5b48a0434451386aa5c7e22ee1e061fd0a80a8f6641ea94a4ff9474fb2d58ea02fb89d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x060aba9d44a5513488273214452bed1c1e85dc18695bf28a44d98dd24d20cee5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np430", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x22c0f9622864f960991a2027fa3b70d9941bdb21189e7aa09f68660e27be1dcd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6d3cf2ba2fa0035bd25a8262b00c1d42b4e7a16bd05f0da1de12a2947c8df893", + "receiptsRoot": "0xb98bfdbf09ddfd3ce555531f4daebba699bf7e5b2de78ebe546cc491965b6426", + "logsBloom": "0x00000000000080000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ae", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x10cc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf6131b88cdb92ad5d8d74aa040be0cef999f2adfc6adc0b8c0f2748ea1aa2e22", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201c00108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c59a78d4a871468d2656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e3cb3b98042d005e52e8bbbf49b25e11be63ec7c63ae5a5043e44c545fce633e83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0017276065030e2f613990c6df7af28405409a9fde15b9d044daa3d5e0fa92627a05d73a9a0f2f89def0f67b51d3e506afa31f4f093c097f39467c782bf2b0bbbb2" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xd5fc23888bb73b0a9c6bf06b969040c7be41d5bfcbaf51388390fe09abbfe03f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np431", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf6131b88cdb92ad5d8d74aa040be0cef999f2adfc6adc0b8c0f2748ea1aa2e22", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd2c77328e8b2d379000523d599659d6061ec088e98829ce5e9982e63329326d8", + "receiptsRoot": "0x983d9f4de1366bdb064be176064c96cfee1482a997696604372a08e4e1cdef98", + "logsBloom": "0x04000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1af", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x10d6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x558e886b4bbd77f53aa9a1a056e8e08481da9dc38b7a3859e498e410dcd973af", + "transactions": [ + "0xf8758201c108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8972e901c8e8d563656d69748718e5bb3abd109fa05a39c1b3c12064690b302e86cc1ab31ee0aabcd928370be7278f9a53e69fd744a01e19f38fe7caaf5c8bafae2337ca163e64000b534ffa83e12eb8c842d9edd772" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7e0f61114c9e1271a083af0112a3d8e75c1945bdbf4436b2d06604cdd3e48ed4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np432", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x558e886b4bbd77f53aa9a1a056e8e08481da9dc38b7a3859e498e410dcd973af", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x53ba0edc93db891b865e2607a2d19a07e198c5fdb111aef0d16fe386bbd0f532", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x10e0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2588de766ecc1af72b5f7b2a729453d703d85d9bfc027898833f2771039877e7", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201c20108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a04eb20b29b5954872fa9ca7d40c30e2f4eabddace9bded5aa80200472d3a5bb72a0356057b0f4e4d3871924ab3018271b9b721910e1d81d54a1d94c50c15fbb093e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8a6f4493c846bfcfb55e3813f2be3ce8a97c822d88bbf56ebe6070da480dca20", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np433", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2588de766ecc1af72b5f7b2a729453d703d85d9bfc027898833f2771039877e7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcb734b11977fd3bef39d9d1796a9740f2519b1e67d12837581048e67551f984c", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x10ea", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xdade7fc48d32dc68d41020ac79b868485abb3558e53bb63a2e8aa47932e39476", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201c30882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c080a031e714710112f21058257225bc17be6d429053ff06e6e00b9539445f2fbeee9aa0673f8e3872dce62f5d036b2671e4371fa956af2eaf368d7ce6071918d6d980f4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x83e6fd189fd00cd332b6a76e3806367f086beb3e0fd0060c0a3574d10cf86c8a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np434", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdade7fc48d32dc68d41020ac79b868485abb3558e53bb63a2e8aa47932e39476", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c6932274324937cf298e1c1d53df3407c6f0a80724a5611e9e81a7188057d3d", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x10f4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8ceeb2afd3646d249dccab24330b4251a5ce2d7ad671541d746f5daef884bd41", + "transactions": [ + "0xf8688201c408825208940c2c51a0990aee1d73c1228de15868834155750801808718e5bb3abd10a0a0b37ca854685d8c8d72156a029b9ff2504261800143b7e6a5a4a3a2f8b3038014a045f3c7dcb4e1f373001d2dba66eb0319cb24c3194ce752b81db843f6d4a68c61" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x775e887c6cb79392692d17fc58f861a98e70d013afd252b2a644073fa185034c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np435", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8ceeb2afd3646d249dccab24330b4251a5ce2d7ad671541d746f5daef884bd41", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x240e95ee499f741a4c783b2055041d46a0bd79e898c12110ea4cd21831fbda38", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x10fe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x24c5b68530cc49171a66f1dc312ea1a15c3b234db8561a1fb08bf8c3adb972d4", + "transactions": [], + "withdrawals": [ + { + "index": "0x26", + "validatorIndex": "0x5", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd6f95bc3e63325669aa3b41a80caaaa350031821fc65f792cec135bbfca7b9a9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np436", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x24c5b68530cc49171a66f1dc312ea1a15c3b234db8561a1fb08bf8c3adb972d4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2029e8f91c93f23a5dd780e135b953c0fad03065b297a5c5971ae7a64686a8f2", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1108", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x82f242525cebab571fe6e5fe6fcd838c55ca48eea1eb255ef7bba0fb43dea956", + "transactions": [ + "0xf8838201c5088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0298bc191f179c75529f83f3ebb570c552a1e3c7fbe738fc407692c000515004ea05d05a28bc1eeaea191904de98b8486684da78321372603f377939bd4c1b9a229" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xcbaab7c932a6465b5c3ff1d248ca02300484a6e6e9b6140983daeb58eb16a434", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np437", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x82f242525cebab571fe6e5fe6fcd838c55ca48eea1eb255ef7bba0fb43dea956", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x02d64962553a6ee9c5acb360729cf9ef45830c33ecbc7db6125fd6f4aa0d18ce", + "receiptsRoot": "0xb8b914589b743e34b5a77ea5f20820ee6309792c6238a972c5ae711e24d918d7", + "logsBloom": "0x0000002000000000000000000000000000000204000000420000000000000000000000000804002000000000800000000000000200000000000000000000000004080008000010000000000000200000000000010000100000000000000000000000000000000000000000000000000000000000000002000080c008000000000000000000000000000000000000000000000000000012210001000000000000000000000000000000000000000000000000000000000000400000000000000000000000000040000000000200000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1112", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x413f11217c8822a00b8b8b614c7e438db97162345ea9d01d1b46bd859f589395", + "transactions": [ + "0xf87a8201c60883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0144819e3ba3b7b08a6ab16f130ae8ef5ae64b7c3a9a71fb327580735b5f7bca9a00b44f7e6491d37dc3326bd6a92649ffa89df3b3d9ab652bb241fbeb12a240a50" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa0d5f4fbf6dcc49bee52b3f185c619817e08a3dff2bfd11cfae07557bf3e5727", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np438", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x413f11217c8822a00b8b8b614c7e438db97162345ea9d01d1b46bd859f589395", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd37c5e362086edd1d3a3169ae13c733ffd92063791e3907ab2bee2a8a97f08bf", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x111c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x37a642a12a17850ffc84a65efd942917d6c413e0623d9ed0dfd583f4a6dd280e", + "transactions": [ + "0xf8658201c7088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a06f1927be139e3b48d8120968bde41ffe936decbde7e43aa0d2930bc0c5d0f6daa049c95570c851c4e12be2197005208534a25c2dd4c5a5e03a14c9373e6d0c77eb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7bcd5ed57e123ed0d2a16b433c4e584231867efef22b4903b0de3dba6c0249ff", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np439", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x37a642a12a17850ffc84a65efd942917d6c413e0623d9ed0dfd583f4a6dd280e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c86a438d336a63de19080d7751184e2d26d8ac59f22caf6b4e4319e187cda6c", + "receiptsRoot": "0xdc0e6d287583eee8532625d0a03d749699dadb32658545f589010cc54cb4da12", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000001000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1126", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2319866ae408c2c16def479454f550894284b65217d988c0f0346c8b788e6f50", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201c80108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdb38dd98f8319698656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a075eb384e56c3a3a30a408622e6f0595d30705efaff129c133effc43c3b946de001a08cd129f5d58113adc5d2175265af0cbe79f04bbce7e8b5f4d6d7772d842355bda05e2bda814e12427c7dbe1ef1dceb7f72fef976ba6ae4f95912a65a011cfc96cb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x24054b31c796a86751c71d8f0113d6f56397bc46dec675697960c4ee6d1370d7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np440", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2319866ae408c2c16def479454f550894284b65217d988c0f0346c8b788e6f50", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3edc3d3e1ae71ec0935c87361343b15ad083e06ada9a65299b8f675ad0b4c4a", + "receiptsRoot": "0xb686b4df3c5763dda0313e842ba52aad7478706c4f1540c8d3ff42cf6fabc95a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000009000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1130", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x21cd372ca079c9c9a302ce46dd6604fe0dab8d1c4963735f200fa7aecf68723e", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201c908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cff9997836ba653fb656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e5f4774cc356a99594f072de9e8113739c65fb51b5d0fef3f40627cac02dd96380a055ccc88d5b46b9a98693893875ce949a2997b6b76f98d97ad4202a89ec4f079aa070330743a9d9be8865bd7b0089a3fb737d57c14fe6254facb2a51ab02be8f0fc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6a3a65f6fcf34e82edbc10f8ce17c7aac559454d22b5f8b865b0b26182a791b2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np441", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x21cd372ca079c9c9a302ce46dd6604fe0dab8d1c4963735f200fa7aecf68723e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdd55b05de585cfd2a8d41191457a953f76626f2a0cedeb1448c3902727a41859", + "receiptsRoot": "0x4e50c1a049436b10baf48b4ae3dfa5b7e19e6afc14f46c08be52adce8c6cb827", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000000004100000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1b9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x113a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x95a47db05dc3a6043cd4a648e1838876d7814cdfc2acc03b6bfd228751a193a9", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201ca0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c104809bbbe393c1d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a01fac03facd67f44699ff86330a7f959ed3745add76d323f4832bc17c35be45c983020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0db9f0f490ed8381bf486f22d4b0d5226a6e7ce6965c9769fa156db9ba394a3c9a05ab4c4a13649551a96b56599d84c048023ae831138412ee45562c9636c95cdf7" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x43a4a75cdb8ddebc28bf09b4ae12d71dc0765defafcd384de22c3711726a5d80", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np442", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x95a47db05dc3a6043cd4a648e1838876d7814cdfc2acc03b6bfd228751a193a9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf2cb5bd72087da6e81d52ae2abcf72b76331431447563452675768b1a70a7bbf", + "receiptsRoot": "0xdefbcd20212e2e430e02a0de3569f95e8eb5d21e41ed5263ee9c2f3299f5052c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000010000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ba", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1144", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe3b09d5570d946f2ab70308a08f0275c443d7ec9d9ef3c32df7c2320f790b4ec", + "transactions": [ + "0xf8758201cb08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c703c4a06d7179e4a656d69748718e5bb3abd10a0a0e7f4fd1285f514a91903757942ca5aa4781906b30e993e5fa33d34221e809822a06013f233be081d763faf9d0e8eac1c3d6029b9b67e8f6d498dfe8d3a423f7531" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0d9b141fe39d89d2bedec5f3d98f0533f43a4d7c407d4df1e3faa9a386875fb0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np443", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe3b09d5570d946f2ab70308a08f0275c443d7ec9d9ef3c32df7c2320f790b4ec", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe2cbfdba708a8b5fbc56611cd27b752ddca3923f5dc75ed84a5b43911fdb8ce6", + "receiptsRoot": "0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1bb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x114e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x590060fc82b55361ca5d13db77f55b5a5cfef362ddb300440f0a48984c9a2e28", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201cc010882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a0a20315d3ed21bb88bfd934cf3e23f53ed24dae6e6d83f8b2dab1e7922d267e4da0357155bbeee9cec7c806346a0841bc5d80be7ed07f362f924f64bd2848e93718" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x06747e12a0ff61f487ca91cc386c696148d6e20a1ece40d5a3528a3899f0536d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np444", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x590060fc82b55361ca5d13db77f55b5a5cfef362ddb300440f0a48984c9a2e28", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x14d4a55b70c236c6f56d690d0505a67793c3fc14f88c8fe55fef99a87f8d238b", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1bc", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1158", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa9b21f63b40981e09ca454b2739149666dc23a4d33f5a0014463766354cc19f6", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201cd088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c001a0799dee9c4902eea8b959e169341226e86bda96fd383dcf742a8d8ee607d452d1a016d91de400f3829a5f2957ed11d2d2590cea12e5729e3ec4f47f79652bb4dbef" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7886c0928a9559d88002185e1f2474adc78ea9c997a343656449cbb6ec97d65b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np445", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa9b21f63b40981e09ca454b2739149666dc23a4d33f5a0014463766354cc19f6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x22f7dc0d0918b910c836297e58c34a66d703869adbc00a6c1011107e96621834", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1bd", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1162", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x331d419065a5d0ffa904c435e9022d1e621315eff68f2201ec63a690fec3003e", + "transactions": [ + "0xf8688201ce08825208941f4924b14f34e24159387c0a4cdbaa32f3ddb0cf01808718e5bb3abd109fa0013753736fec54974ea7e62a21ca2d63995a9c79ef236e9d9debc400b8760c69a02973fdb3be9801e07d7a58c65212d62e8c2963af00cb0c647d8c07de15ba59b4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc00472c88e5c05094693f81159e3b89cc45cac9dde868c41e1e418f6f09c8fbc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np446", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x331d419065a5d0ffa904c435e9022d1e621315eff68f2201ec63a690fec3003e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe89ff10d95b4057957a289b060ede7881fc349c059e3d554df9dc08dcbcc03bd", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1be", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x116c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x44b075e106306c1ca24ca9dc1c5a27e68dbe86367904581bb3981acba06ce979", + "transactions": [], + "withdrawals": [ + { + "index": "0x27", + "validatorIndex": "0x5", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc8d220c2229f22cc81c69ebdd7e54d6964acbe0d550eacc6a83eb488c4d5bda8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np447", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x44b075e106306c1ca24ca9dc1c5a27e68dbe86367904581bb3981acba06ce979", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5cb0060c1b5035f04c6560f07346437d075d089ab444f8d39a603f4ba55c9819", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1bf", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1176", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6faa7c1f263480410463c1eaa2ff9a4471dee90cd7b440f9a7fffc7c49c1ab57", + "transactions": [ + "0xf8838201cf088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0a6e9bd0d3e84219311126f49695d73b24d6e3cc7f93de67a89d4aafd9a93e64ba0025abf1e6f82e07bbf8a351f2d9001232f9fd24c860e07986b7172e696133f92" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x26f2e58f0750c1fe9056a9a6392d3ef6af4c7ffc78033e2c42e9fdf96ca15361", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np448", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6faa7c1f263480410463c1eaa2ff9a4471dee90cd7b440f9a7fffc7c49c1ab57", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb9bd751abe7d66c1c1790a05bb8757fec0f057be217d02192c9f6bb5ca328493", + "receiptsRoot": "0x53ffb06514a069fddc141fc8780f7a3250e5185d19f1f03afce5c150535d3671", + "logsBloom": "0x00000000000000000000000004010001000020000000000000040000000000000000000000000000000000000001000000000080001000000000000000000400000000000800000000000000000000000000400004000000000000008000000000000000000000000000000000000000000010000008000000000000000008000000000000000000000000000000000020000004020000000000000000000002000208200000000000080000000200000000000000000000000080000020000000000001200000000000000000000000000000000000000000000000000001000000000000000000000080000000000000000000000010000000100000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c0", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1180", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x027b707ded941bf200797c580cf2a73d3dba48794d0b2b198965ff9d0aa4b46b", + "transactions": [ + "0xf87a8201d00883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa080ec0729adbc58c2d0a4e13a4edd9cbdeedf2afce5680be0d9db7e6cce0c888fa020bafea6d0c7a0c7c55be363c3b547722dc768227324c852a55ac7d96c5d2591" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x8aae197b8ccf12c586225a94624141507808c6ab7ee29e9ee6e324d01557fd5e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np449", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x027b707ded941bf200797c580cf2a73d3dba48794d0b2b198965ff9d0aa4b46b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3cafac9d93b9780d61690341e246e277cfc101f2a9827230e45d2705b38733ab", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x118a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x35c25ba5f49d95a411ef32426c443c91e887ca1dedf2a6356969292822c0d91e", + "transactions": [ + "0xf8658201d1088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a067d7bc8bd21e7870cb9a94b7a9c8f95f5dcaed9a2bc12bffb640187fcf640071a06b0f89bdc01f6d022a692dc040694ca3b987500dc5ccf4e4e8127bf666efaddb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x946d6d60fe20c81d1cf507d2a9567fc06ea539ac3a542d283373ccee3f82212d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np450", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x35c25ba5f49d95a411ef32426c443c91e887ca1dedf2a6356969292822c0d91e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd77fdf9f53d458b6a00340027e15704573a60a9b5e6d4f32582ef3d13633657", + "receiptsRoot": "0x1baab2abac477c00e188098d5643447424ec92c721137857f7c00b3d392c07a5", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000840800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c2", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1194", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x83e0cab914be2a9ba1c2be60f0ecdff76ee5c946daeef001af4b6a6aa47873dc", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201d20108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8da9dc6f96ca4d62656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a02aee290f6f3f6c60a6985d0150eab487f9de1c47962a779be7343cc0cff270f901a0ce71194d023e725d872a55051aba64d20e24d16d1a81e6da2256862aae57c673a003c574aab00604a8b86ca7e8b210a741cc8bcdfdac2f839a4822e66e2aedd640" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc43169ff521bf0728a5e972911abeacd2f597eff89b961f3132b2f91ce04dc20", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np451", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x83e0cab914be2a9ba1c2be60f0ecdff76ee5c946daeef001af4b6a6aa47873dc", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4b908a733cb9a3b988ba82a43ddd855a6f42be9d310f9933b2891a4e49b10a5d", + "receiptsRoot": "0x701448c456b1489d79ba377d9019ab44a0401af5fadc84c2756768db23324bc4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000002200008000000000000000000000002000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x119e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc735802bd46c31c8a7e3e83c2605a218c92e66f7507e88f4cb1c0f351c0a71a3", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201d308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc02a894c6c24e04c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06f9ff000b2dc3a554bbbb882ebc7726b700eb7afea141ab16e00a057f314d0db01a0d6de670436ac3ae5380c60a087ffe3eaf456f354e48a7bac2e1468679b84bab4a014801e5a1c0e20813699837922eb7c7e5d0b25bf83053e6190120f4f149fc64c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x427e24cb2c8355bd1f18d20aa668805a4e4acfa1411ef2ec980839670499c0a7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np452", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc735802bd46c31c8a7e3e83c2605a218c92e66f7507e88f4cb1c0f351c0a71a3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0b01b0650b43e5149d6fe634fc523568912e7dfc24e3fc12f76f7c9bd3fd57eb", + "receiptsRoot": "0xd2041356b6b4963f58ae843a9218173d592eee55a090752e4f05672fe2f0c690", + "logsBloom": "0x00000000000000000080000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x11a8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x781d1e3fdabfafcea2fa6d4486634b6af94498fa3562407f4caa4c4294575417", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201d40108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c8a743c95d9f14e1c656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e4c7ff156c2f31d046217715d0f193c8a6b3a7af6341d6abe0e28c49d121063883020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0eb249a5a248d6ed36e9308aad9f867cb6e1543acd0b54ee759efd99e31b27715a07c6a4d27c82be737a7dc621828dc123a5127fc704832bb0bd644ad24a9a4286f" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xb96ddc711361deb1db8cbe6a3bf2bfa883bce23e2f2260c3a0f3c6758f3fcabb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np453", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x781d1e3fdabfafcea2fa6d4486634b6af94498fa3562407f4caa4c4294575417", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcef1e895ff61074bcc7d523b2c6ae314934a2f4457c346cce68c5c8f4c525ff7", + "receiptsRoot": "0x02706fc8554e54ddc25d62368381f347f8635fbbdb1e6e9ddf7be2a8662d4bbf", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x11b2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe516c9e13a00da98680afc3265f13e142ebdd467d12da151e6e5a9677a228c6e", + "transactions": [ + "0xf8758201d508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c328289220139d4c2656d69748718e5bb3abd109fa037ff19350601c99d783120182d1a079acce8954f3349cecd6680bcdba2a5e6dba02b7141665011e9aa355d5b4ef78c12ea4aa61df652fbf19599b997e3e40591ee" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc92246b2394e70d0d0d5c3fd1a5f6c585293d1ee7589b5c8bb37e997e0985b82", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np454", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe516c9e13a00da98680afc3265f13e142ebdd467d12da151e6e5a9677a228c6e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa383b9c211851dcd74124fde5b33f90126e42511a894f8f16a37b8c89402474f", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x11bc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x666ac8fcb85fe5025a7b996eb4f4d6411019124c819a009b7e0c7f0e0c4c4c3f", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201d60108825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c080a0a70906f3b9d0186d8478f9ed31a1bd32a6825ea4ab1afe5d0c2a6cbc9037cde3a07d7777a97031d3a57bbf6ae2d834240e6b47e828b707ed6092d2794c251d19a5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x487f419b494cf102fa1813eb824fe3809d34806cc2548e6a41a9e3f755f6c131", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np455", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x666ac8fcb85fe5025a7b996eb4f4d6411019124c819a009b7e0c7f0e0c4c4c3f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7fe7149a24850748ad6a6e9bb70bd2f99400d08d71005ff580e843f8a6bb2eec", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x11c6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3c141c08a245a3db335db0f6bb0cff5848f6425057c9961cb3bef827aa0ff53d", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201d708825208944dde844b71bcdf95512fb4dc94e84fb67b512ed80180c001a0d95b3075ed5cd26fd129ff63a5f677c3285ab8a5636df2441de3570eca497511a0047269f7e8a838ffc7d01a99eae702a1bd1972a728a1546bb3b59746172d66ed" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4ae0132498c0baaa78d768792661893e0455eea248e8e334e9aabcbec8909a0c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np456", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3c141c08a245a3db335db0f6bb0cff5848f6425057c9961cb3bef827aa0ff53d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x42199969c7e33002b1bfc796611c40beaaabd61bf5c7ca2de6c9e941350a4258", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x11d0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x63dcab73a746ec6c5ac8f1ff8ddbce7cd483c26548f86554fcc40c2ccc041262", + "transactions": [ + "0xf8688201d808825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd10a0a06f658dca9087556cde4e1708d9f14e16e2b5677a8ba0cd4f330fce97a74e80aea01fc0554df07ab3adb59f1f690d9eac44c2b8a8d6d495e31a6e339af3de9b45d7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb3c4c107e197af6bc4e5542501108ae40e405c8065c54c4f75784b217cddf40a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np457", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x63dcab73a746ec6c5ac8f1ff8ddbce7cd483c26548f86554fcc40c2ccc041262", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9c9072fd7910b1ca7ebecd5c80f83b4ce7c035b862429a49a439e3e1a41d9b4a", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1c9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x11da", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3aaec8ddc0224f4b084a8ccc04efefac99cbef0e503b8a7bebc3c7aa4fe46521", + "transactions": [], + "withdrawals": [ + { + "index": "0x28", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5bb5995473e555f6b3a3649155d6c305866a8266f3a8e6d549fbb4b5c6a785a4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np458", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3aaec8ddc0224f4b084a8ccc04efefac99cbef0e503b8a7bebc3c7aa4fe46521", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6c1e3f0baedbd30d7dffdfee5739c9a99ade5bd4686afdac817a424ef05d3354", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ca", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x11e4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4dbe3b6b04f679aa9677b3a64d1dcfabc5906a12c178e5ff54b7efbfc2c79b50", + "transactions": [ + "0xf8838201d9088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0e2ee2f23a81bd341cd6b4bac5edd7402704ca1bda5f78fb3147c00e409beed43a03505f6ddc3fd70088bab88e500a4a4b9be02f5835d498a6f16a6b0b3751155ec" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x034986be3995c99d86ded5f0984cb1c60f4d01157905782157f447054303e1c6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np459", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4dbe3b6b04f679aa9677b3a64d1dcfabc5906a12c178e5ff54b7efbfc2c79b50", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb290df099cf4037d6fbed724859ccf2f96b881e7e4fdf7a75b204cdf53ba5995", + "receiptsRoot": "0xc8e21fa98e1d330dab7a033af29fe0cf36f4daab88993fcc8df33a203fecf36a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000020000000000000000040000000000000000000000000000000000000000000000000000000000000000000080000000000000800000000000000800000000000000040000000000000000000000000080000000000080000000000000000000000010000000000000000000040000000000001000000020820000002000000200000000000000000400000000040000000000000000000000000000004000041000000000000000000000000000000000000000000000000200000000000200000000000080000000200000000000040810000000000100000000800000000000000402020", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1cb", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x11ee", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x457c3a83d0815833923bd48642d056782f5fd188041e8cd92f260e2383e0361b", + "transactions": [ + "0xf87a8201da0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0237cdc137b8c4d7a982822810516a56e8e67196a758016a7e061f5eea951df9fa017c6bdf19ae12a24c00d688f69bd80246314ed28ce8d36411a447cdad435f10f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xea092ecb252e475b5493c71739404f66771dfe92e90554924e7c979b1ac68c1f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np460", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x457c3a83d0815833923bd48642d056782f5fd188041e8cd92f260e2383e0361b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb1a4a7c84c982bc22f68d702132228c58ca1bc16187b245b8ce361cda2907bb9", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1cc", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x11f8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x02522280a85179021caaa61d6482df93c045087417ba2191809b602832aa710c", + "transactions": [ + "0xf8658201db088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa01d365c507c37b8a89a02925f59c07239c2a5c2cc08c8e5475522fa289f724e1da06f98b1519f68481ec1fd84cf7d7bc9bd001f9c4309f9160247645c0fa6d20867" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x70403edcf814de8d55741ccb378648ba8de7893d6affa4ba0e5549d0de6bcb2b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np461", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x02522280a85179021caaa61d6482df93c045087417ba2191809b602832aa710c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4ea59afceb52755cf58d31eba5073167399546703c0efbbd57f8cd254814013e", + "receiptsRoot": "0xa248be07f9d0bb446a3c5e24547e89ec9f0371ca6fed43f2d435bb6f972bcb91", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1cd", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1202", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4d587bd01bcfa40e1795ad3ea5f77b546910c6870bc7e6657d40a1f2d8feede3", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201dc0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c068ce3b3f4387cea656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a041b546f355dc0dd009ac5da8bfd17c8e197595c1c1f21aabbb1f3b18343a071801a053ed4223e270f3dd37120d52db640e57e1a0ad5b928374dc62152d647920ebf4a06ef2c07bb9f0f5cb0adafc9e27bee133499dde9e89aed5c119de862f9965f5b7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb8b758a473ba28008dfe949d230cd8a73b4340bc0687cfe8b0326eded2558ba1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np462", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4d587bd01bcfa40e1795ad3ea5f77b546910c6870bc7e6657d40a1f2d8feede3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5fe5b21dfee7eef09f05fab7032c8b66f89da53dcf11de600c0cadf1b4478a5", + "receiptsRoot": "0x2cba0c3de079ded028edde282d307cfb5ec9095fa5b3362bc4490e2967c15948", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000010000000000000000000000000000000000000000000000000000000000010000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ce", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x120c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x961d29a7fc57915697ba5b2fae8d3771d8bd91576c32c05afee041ac17d848b0", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201dd08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc3396aa113bce01b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0fd6fc192aa03eedb6505372aa1dcda93dd186fb3eded0bcafdaa4f2829fe43b501a046b49012734c5a0e65cb4b74bf1886be2f71dc7b430445f07b84f26e25b57e9ea076c6c2dde207d08fb4076b5c4fc5f2a83e834d341c72019653f4a5e97bec1eea" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x76daa53b1c8d26a50bd4e4eca2703ba4bcad8248f6ad3227ed0af745d19d8ae4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np463", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x961d29a7fc57915697ba5b2fae8d3771d8bd91576c32c05afee041ac17d848b0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4647c30a119488f69aabc14383509b4114c8f059fb3ea7c563e9dc55e2265c90", + "receiptsRoot": "0xdbf406590cf69a43661fd555c05ff6cfbb66a115a4d0cee64ef14ddcc120e62e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000800000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1cf", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1216", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5c3884749debf301065e34263780232f327a57a85b4fe19376e62de3723aa5e6", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201de0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c1bf41e5570d77f5f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a09225354562a563158ba2ce0e86cfeed7fde0ed27c77342aaea09551b9c00ea1983020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0df6296070eab7c096d63549942185fcb3c14794e2c5e342f5fbb503bcb3b7280a01ea49bc7ee91a3444e64a233809b57b57929fc6c778052d54ff4fab394d5f6ee" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x2143743a63aa6ab5a7a6586dc404e48493f59fcb7021c079cd5e7efbe4a9fc62", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np464", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5c3884749debf301065e34263780232f327a57a85b4fe19376e62de3723aa5e6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e3982e8359b08fc71bb0f57a00785d1df341e1d865459fcb8c7aa277d900421", + "receiptsRoot": "0x4af70ee701dec7aa6d3fa118f2cf11272798fb644c3e37dc9316e6ee45c139ba", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000004000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d0", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1220", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x713463804bd20977b4cd34532f3d1168f0a49501d5408fb2877478a477a1f971", + "transactions": [ + "0xf8758201df08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c389d43df20b49725656d69748718e5bb3abd109fa04fe1b45a88d8e36e60f5c7b0031228371b19d91623eeafc272583c8a1a7d54bfa064c2ce10ca42d5dd64d25b3deae63ff28d5d08eae0df34405559c2f2333dfa52" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6919ec8682908f8de7753ac9fb4e8fb1b6c0b6cc2d2d1a7df12eef58d8c6c841", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np465", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x713463804bd20977b4cd34532f3d1168f0a49501d5408fb2877478a477a1f971", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x152631f6c3a90c1969cd5f2d066ce16ea6d418631f9e8473847eba018ba28744", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d1", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x122a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x461c8fd694ea0c1af8793266c605b6ceeaf7245cec97495903ea2a14ecac4380", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201e00108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a018f98563dca8b7917f8eb1be73f5d88d894d07df709e919e08faeba12208a428a015f6fe6a957f175590b2d354e0fe2068460eaf4091cb1ccf00383d896842b7aa" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3c61846fc931a63f5fc1fb0dec6dfa5bee9c19104acc5a1dbd0fdfe331827dca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np466", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x461c8fd694ea0c1af8793266c605b6ceeaf7245cec97495903ea2a14ecac4380", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x36011c9656d381ccf0ae8eba22328e64e6d94a57911ab9836e31a68e2ddf6814", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1234", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x35e31088a1515e1ba6609d0950a16e8f35cde03fa07f46e18e4b86e2cca4edc2", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201e10882520894c7b99a164efd027a93f147376cc7da7c67c6bbe00180c080a07ec461e1d7b71f934e52df449d0378122ace5caa1405c8e154179a99efb44c6aa055bdbb97e7cf0c95bf33add6a5e04eb8d38f1d012f738227d310c74daaa9bf98" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x65e7c42e7c1674ca5d52dacbd9fdc6fad75a0cd87294e8641c56aaf12092774c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np467", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x35e31088a1515e1ba6609d0950a16e8f35cde03fa07f46e18e4b86e2cca4edc2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xedbb5222d2e224a4b461c61b0f3f39a4cb6079bd8ee8c281a81423ebe476efd1", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x123e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x61ba03ccc0e0cf9cd98cdcba500e40e8129eb3eb85920d1fef44a05588d49c3c", + "transactions": [ + "0xf8688201e208825208944a0f1452281bcec5bd90c3dce6162a5995bfe9df01808718e5bb3abd10a0a0f088cde85f447d17aa52c469fc2470136b6b700db905c72ad47966bfa4d6e425a002d5e45688e4a4832e334e370d496967e653a59b8fcf820ed78b3416e5932333" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd17d5eec3cbd76848cac5f8fb453911fcf5d896670703252da7925f33f6597ca", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np468", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x61ba03ccc0e0cf9cd98cdcba500e40e8129eb3eb85920d1fef44a05588d49c3c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70aed96d46f82f4f5e9f14bc337e9f9f3b1c252dafc675c12683d547273c4b25", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1248", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x851f39c5ce5f4801b082523faa0cc03f2ff3568a0c243f620e5c339ea39da2b2", + "transactions": [], + "withdrawals": [ + { + "index": "0x29", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xaa5ae82882c7a2a53ab35d0499ae76069be55e70153ee47d3c712f48f24be400", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np469", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x851f39c5ce5f4801b082523faa0cc03f2ff3568a0c243f620e5c339ea39da2b2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa6330e611d1b54d2f4635073f1a7a17356ab1cc0df2b99100bfd1b457df73898", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1252", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x448656736cc3a9a8e8ab0c5e548319b14a51b40e45f5de7eddaf25ca390c3530", + "transactions": [ + "0xf8838201e3088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a07f59e7ae860ba10d241156b78d6f76682d3067dab13a9d1d3523353b3ed88d5ca04e3b21dc0d748f7a542108f94dffe326dc5c99b2e834e2140dff9e6131cfe88f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5cd2ace5b0d5e6867c6d71e22516a625f6c5ab69e7067998cb789a2867c96b8e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np470", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x448656736cc3a9a8e8ab0c5e548319b14a51b40e45f5de7eddaf25ca390c3530", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x91e358d29507ec8bfb636eca841fa13420f25f50274bf8de0eb3eebb1aa6d2db", + "receiptsRoot": "0x292095426e80ff11bd31daf84ac551227369f2579436815b4d1d608f57000653", + "logsBloom": "0x0000000000000100000000000c000000000000000000000000000000000000000000000000000000000000080000000000200000000000000000000000000000000000000000000800000000000004000100000000000000008000000000040080000000200000000800000001000000000000000020000000800800000000000000040000200000040100000000000000000000000000000000000080000800000000000000000000000000000000000000000080004000000000000000000000000000000000000000000000000001000000000008010000000000000020000000080000000800000000020000000000000010000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d6", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x125c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x525d5448d96a5a36b6bd87c4599662f32304d64eeea5f5c07897724a91a4d8a9", + "transactions": [ + "0xf87a8201e40883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0938be590b7b3723bf5586bd0eaefb2f94d0ff43a17ceb6081c061848426477a1a07b1ad333de362621715df1cf0fb344a008b8199415e58b6f698ef4f6531a5c8c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc5ff6ef86066abbe0d48a2de1a1a2c4a5e9c695a1be00ada4e3ab8402b15b476", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np471", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x525d5448d96a5a36b6bd87c4599662f32304d64eeea5f5c07897724a91a4d8a9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd403d08c7d8c0f028874fb847965d5ef3a214d68c07efc2b9533fbd5db668020", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1266", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3e17e4473b4356e9cf755ce3275618fd3e3d4b82d193bdf6a57a2ecc4ddef386", + "transactions": [ + "0xf8658201e5088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a04485367c62ef9ca1969823b20d6ce8fe64a021da6b1871961bd374297ecf21cea01fc5a7cdb0893792b24dde71ddd73f8111539365bc989162a0e267658817719a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1b68873106bbf102095733021e2f7f49c4822f297c0930460d6358864868e09d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np472", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3e17e4473b4356e9cf755ce3275618fd3e3d4b82d193bdf6a57a2ecc4ddef386", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x170c8cc5d0247d0d135009b21a0ae603f0c42e999359739fbccf16937a5bfe75", + "receiptsRoot": "0xc0fb8b64d307424a0d5a9e490ad7d74da1794516d7ec328ba2cdec4291ad9ad6", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000800000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d8", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1270", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7e688056a77a5d6803174648e4a6d2e982a0e02677ae38261c21c6390e90a659", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201e60108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cbf2de05a5f3c3298656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ca27d6fc8e6016df20a295f26b57b2f6ac7a8cec98224571f416ea88c0ee7b9701a0779b08a58ec2d864e553ad8c02e52783cd8dc92c3f182b0fd1a8c1687c226b5fa019fc8caadbc0e69431cf04307ecc13220fb5e531540a48c4b3be40b523210dee" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc55e7bb8bdeeaaae3b84adac51bddd9ba7a8c23b66e1a73325fef138edbe1fcc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np473", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7e688056a77a5d6803174648e4a6d2e982a0e02677ae38261c21c6390e90a659", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4cdee9ef273af6c95159af584b45cc77f2a085839708c8f7618e697a645a821c", + "receiptsRoot": "0x564111f73c7c842eb0bd76f41ca63bb0d2442cde7376c4f994becd72b9b29d2c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000400000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1d9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x127a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe2f9a4e56ef10377498499f58bc152015a2db11f8b485232541dfde10f04591f", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201e708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ca9a00d7fed08a726656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0506c0723b5e537632209d4a824a6073d5eccadb36b9b8717b2ecc9e2d5cacda201a01f265a3f554c74f8c8d093a6129bfee22d49da316557402ff5ca22a12b764909a00c8e2a3a41ea947f37a8094c476783fb030af2309a725c35aa7ae852483687af" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb9b10d869f9b60ca46c5484073a0bb44fe92a031955f3555ed291fe0ffd8328a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np474", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe2f9a4e56ef10377498499f58bc152015a2db11f8b485232541dfde10f04591f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc074a3a13d58d82b0af6ce7002f6cc820dd9e670c0f3f4d60d7d0175c0927a32", + "receiptsRoot": "0x5787dd7b4a17e226d55eb1a2ec75e4741dea9adf4a6e0a82395532f4ef505b4c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000008000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1da", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1284", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x33287f7e4ff32b8a0e6c65d03e04ea27978409381ab031fb8b26d5fe4e14fb3c", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201e80108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cc69de6f1cebe0728656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0231eb803c34ec183e74b466c105b5518b554ce215bbc31bfa52c384138b8479a83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a015131907b52a5121e8eb89d0aa72b94f20a9b9a58d68a9232396d384b13889e6a0489dd64af98876d13d25bfe420e0a64e30e6f199cde9ef8ab78520806b3b37be" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xba29f52ef7aa5b2c71b61919ff7890c9c8d37234ba7fde07a58301b90296e3b2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np475", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x33287f7e4ff32b8a0e6c65d03e04ea27978409381ab031fb8b26d5fe4e14fb3c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc00f3501b3014c75b63bef51a9f76ffebf460119a95937151d6614d9a3549a77", + "receiptsRoot": "0xeb483474067eef838278e418e2b7e436f757856a7684c74ff8666af3aaa2b49e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000010000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1db", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x128e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf6073bc7c2255ed4e3365fe8668f9529aa2327e566eea8485e105fe80d0afa5b", + "transactions": [ + "0xf8758201e908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c4748f0d7de9cec6d656d69748718e5bb3abd10a0a0c7d4ce8366b2f235acc4271275e5389f2043a7492ff26d3cc2f3900cd5d37d20a041cdc65056832a4515d6e9a0db3be2677692f1e6286b5d7bf731d0c8f94a46c0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x990f0ab0ebf53ff997b27d831eb969965736cabf07d38003adb40a66d0a758bd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np476", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf6073bc7c2255ed4e3365fe8668f9529aa2327e566eea8485e105fe80d0afa5b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd91d71d1575ddebaf88f0fee029716eb85e5f9fe35aeeb44bb084dde2ee839c9", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1dc", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1298", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf8819d443db1143c7f37606b9cd6003db500b36f8059e0a1b42587b4b7f532fa", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201ea0108825208942d389075be5be9f2246ad654ce152cf05990b2090180c001a01da39a69e12e28d7ca88d666e8e7aa7980698823e17b649e3375e7ca781113d6a062b5fe98fa598535f33aad705871cab848540282aef3a455517cf51e259733d0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbda84af9ce3c88c3243669481454971f19d18b777e3a15ab7d87a7559d77ed43", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np477", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf8819d443db1143c7f37606b9cd6003db500b36f8059e0a1b42587b4b7f532fa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3c51b97b8ace9390727db6917acd8adb3ab62007c674dfb0b8bed30cb3f6e8dd", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1dd", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x12a2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe1dbbc3e7db42e01ee269badbb49ab349b05938d0fe3840f97a9cd6c51384a26", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201eb088252089483c7e323d189f18725ac510004fdc2941f8c4a780180c080a072485996da69cfd4e9f408f5fdc5f6288d563b6f4d33e7bda3b4ea7a3e01aeb6a07c48e1d88e7888cd8c7c49e0955a8af513c63c72234c36b702a814c31577777c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2c5d55a9ee442f1a84215cfcc70e2fe9ca0504b238c4b121587b015a43a8feed", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np478", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe1dbbc3e7db42e01ee269badbb49ab349b05938d0fe3840f97a9cd6c51384a26", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1ae307592d0be62d296a59ae574a4c27eb86be7c143fa3dbedf9543543b25f74", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1de", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x12ac", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x92e9256953269935a75a21cb3a31b1797564c37a20a104d622c188d6bbbdcf89", + "transactions": [ + "0xf8688201ec08825208944340ee1b812acb40a1eb561c019c327b243b92df01808718e5bb3abd109fa04b03ab3260de9c9db8e6a7d5c33eb45368d0dc3562f761441023416de5fb3b60a03b13926c431a56db5d297eef17e5bade7d889f7328c56e4612c59eec12f277d8" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x02e3afb0a7cbd95fb5926b8e9ca36f742f6a9981ed37f1a6dec56be6bf1081bc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np479", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x92e9256953269935a75a21cb3a31b1797564c37a20a104d622c188d6bbbdcf89", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc969cd9048b452774286e82c1c8a38efc9a1053af6e602b95532a11a51b85d0c", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1df", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x12b6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0d4b4ba377d471804631f61c131ff1829b09242afb36c667f66eb3a70677bec2", + "transactions": [], + "withdrawals": [ + { + "index": "0x2a", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xead6fe3098cd7db5dbe406cbf0977458fe24bdba875ac5964f42607c7756ece3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np480", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0d4b4ba377d471804631f61c131ff1829b09242afb36c667f66eb3a70677bec2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x797dc51f8fa6b9029acb93b97263f84dffc9a7f2482c302172a3e5e55b81c7e5", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e0", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x12c0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa02fc5e98bc45d4a34dc34d16d71c95e6cdcac504157769ba0e41582d1c7c28e", + "transactions": [ + "0xf8838201ed088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa01fe54bfd95c8d7bf278cc8bdf65426bd4e6ab72015758f0b5f2478f29552b42ea0084cddd4e5630f43baebcf6407bb7d29c5adc14bd7edd4cda31812d963ad8e17" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf10709ee045c777c61651e6ccf2b40b539f12fdb42642af7eaeb020ed05b1a15", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np481", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa02fc5e98bc45d4a34dc34d16d71c95e6cdcac504157769ba0e41582d1c7c28e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2764c03f2a545c1ec2680ebd911dec206cc3a14d26cf1bcb768af950fa856b75", + "receiptsRoot": "0x03cd6eb6a3385fd00376333c1a05626d66c0921a7eba669300cf12ef2e377f98", + "logsBloom": "0x000008010000008000000800000000000000000000000100000000020000008000c0000000000000000000080000010000000000000000000000000000000000000010200000400000000000020000000000000010000000000000000000029000000000000000000000002000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000010000000000000001000000000201000000000000000000000000004000000000002000000000800000000000000000000000000000000000000000000800000000000000100000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x12ca", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x313563af27e7adf66fd7f2842209e0e0c325506fcac7f6dd3abc361d9e03d498", + "transactions": [ + "0xf87a8201ee0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0bbb63c32f8a2e23b9b4602f633aa36df1fbec569e655c3901dc8925f2a85cdc3a0281062cc40caf732aa3922eb6b66c423fdca4ba589a8cd2daa4e7e1fd74ec0dd" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd60510beb7cc6faff2dbdf5571982f0fe16806f7099f5b96be88b34c884ad75d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np482", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x313563af27e7adf66fd7f2842209e0e0c325506fcac7f6dd3abc361d9e03d498", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x54b4354c9b9d598973c271a3817acbc49f1f0b124bd12630660fa91b5982e381", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x12d4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x337fb18e572e14e967fa54af1ce06a81e52ac2a3baf227d55bcd08499dd4117c", + "transactions": [ + "0xf8658201ef088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a05e2d7258def4f606f3dbd00a8b07954b2904936c48e431ecfff630e2474bf6c5a038c4338ee8b04b290b101d71c63dee17a2cf1df63a77b49c2b2c6e3f09a21ec0" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x52d158762abaf754f45eedfacbdfe8d5d4cea5ecbca4315e9c42c14e22021a10", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np483", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x337fb18e572e14e967fa54af1ce06a81e52ac2a3baf227d55bcd08499dd4117c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x756692ec3ca2529fc666721eade8e28fc3bf2e6f748d915ae79e86fcafb63c4d", + "receiptsRoot": "0x011e1a201070905363e09002f3f9895b8f14774d3fc5202082b525f9e77a7d93", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000100000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000200000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e3", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x12de", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x497a904516fc0847ae8cadbe627a4c5999451d9c6fb9c407a20478c7f90c3820", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201f00108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ccd7535d68ec8cda3656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0d1a0570d06c0cc4198b4475cb892ec41ca3239ff670666bcd97faeb62c1db6bb80a0f72ec2e95c10423e647163811ca72f731a3a12202ec71bd4d97bcfa6facb17e2a019dd72bbf2c4d19d317ae86a3da3a022a7b0e582924288a5e207f3b660747e46" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x542256a140e92ed9eb4280c21acc962f287cb81fdb913adad4ca43b89d3a7920", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np484", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x497a904516fc0847ae8cadbe627a4c5999451d9c6fb9c407a20478c7f90c3820", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xac9ecf7757f857d61ee4ca1211cc414554ce54263aefaf7a069abf879129cf57", + "receiptsRoot": "0x3028c4498f6278049cdf4797d1163e119d4fadda69e43af341e8b4d95c4b8505", + "logsBloom": "0x00000000000000000200000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e4", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca90", + "timestamp": "0x12e8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1683f93d623b43c0071b287a4f3bba01765e6a5fa591d80e140d2f709960d5a3", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201f108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c1877e1001127f07b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a027edda711baed4a613c44d8ac8678531c9938eea106e7c5649e438f3d24b8fe380a047024ee93ab99dcc228fd1e485cca5f3010b5fe2b446aeede6c98bbcd6c9fee2a01fe50ac44ac57779c871c63ec2df5a6dfdad969fbb566eaf6c14ffb1d12d4018" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x79b058ec1c5cbe0920b5952501060f137989ac99cce216800bd06649890c3be1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np485", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1683f93d623b43c0071b287a4f3bba01765e6a5fa591d80e140d2f709960d5a3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xad689dfd4bbf472268372f49c2ec1049241d6e80073f472b565c064649238da1", + "receiptsRoot": "0x61e976734fc5e2850c9a6bd14e910990a749febb3ffe4d73b78e2a4f5def1a09", + "logsBloom": "0x00000100000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000009000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e5", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x12f2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x47bb80c5043a6c8898d1006da95899d8814b8bdc8bc7f5df945418bc33d14616", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201f20108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cba2beb3c8594f746656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a017f29f600f5128013ce183ac10efc609231aff556df37c8f5d6802c1240c22f483020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0e5de33d01e5b9d527ee677943307ee5be7b5a38c86979224b3b199211974195ca05ab07fd3d7a6b85d14bf1d13df1608e86738b172e39dd8cc6cd5af5ee77855ac" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xf4c5320c831d84242a9194e38951a279654456e3eb90f3712c14fdac4d326723", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np486", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x47bb80c5043a6c8898d1006da95899d8814b8bdc8bc7f5df945418bc33d14616", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x15e32b70e8785a70e77417d4ef9504d4aaca3a6d12f79ae45546756d816b828b", + "receiptsRoot": "0x653ebe6c9fb5db0b5a624be66ec1ec7cd215019fe1795fc4981a469cbb373f32", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000004000000000000000000000000000000000000000000000000000000000000000008000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e6", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x12fc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2365c3df9f22079331e7519296bf2f4115bee3a8fa70a357a4fbd4e21476581e", + "transactions": [ + "0xf8758201f308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c806201b9a3c840b8656d69748718e5bb3abd109fa07be0eb25643b24292dfde8273e2dfb6cd0147a45ada67c9d109d8d8523481f72a045c91bc91c4beec1a018c6c60f60580b03821b21fcc60973c76f927ef94bb132" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc00307f2fde3105322eab259007d6fdfda80cef1b9472584e82bb321d1827305", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np487", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2365c3df9f22079331e7519296bf2f4115bee3a8fa70a357a4fbd4e21476581e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1990743fabed219ac5547559b6d626d6be7c11914cfabde737f28ed3ebf5baff", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e7", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1306", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5d5980aceee17c98188ebf3255e3b3e26b8a5d38f9a4ed95a36cdc818661b619", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201f40108825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f0180c080a0777135addfe6098ee525763dd774f7721e88834d4fbfd8da87da3c62940b2026a040ce07ca2815f08f677b0cf89c53179ee3a7a2c11670f9591b3cdfa9e2a8c6b9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf64129691e90ca381d267b0e80bcd562d68049c21d623c8ac7284edf560bf253", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np488", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5d5980aceee17c98188ebf3255e3b3e26b8a5d38f9a4ed95a36cdc818661b619", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x49a0ed0a84fbfabaebeaf8a60822500b6822fb2d67efb25d48bee3f59ee24442", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1310", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa848e5ed65c70444a6d1fe529127abea702ad12603be4c42be221994762e0c08", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201f5088252089484e75c28348fb86acea1a93a39426d7d60f4cc460180c001a06995aa9dca71ef9b2d5badfc1bedfbc0f346a4612e6c76c183e097e37a3bfdbaa03b25ad942ef7828e93cedaa4f1a7042b189c901dd2ca868aa06cd4b09b7e77f6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x730279e1ea668c639d5c41d5d4cbb1b7f474dc359bc977017be59d5c4da6c2e4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np489", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa848e5ed65c70444a6d1fe529127abea702ad12603be4c42be221994762e0c08", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x66c3694db73f10f25c700132c14df95c8368216c69a7252cd50ea1178269ff2c", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1e9", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x131a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe98fe8994405578378ed95c1d4b9a45d743c652214e50ac48bc8b36a42d2a4d0", + "transactions": [ + "0xf8688201f6088252089483c7e323d189f18725ac510004fdc2941f8c4a7801808718e5bb3abd10a0a044c3a773e583e21230ea57a7e6fbbd6f2dc0df7eb24010fce0a18fc48037eaeda062fa63e7d6f6949fb9c42ff8bf387ee4c184a6b06fbb8791b55ee7edbc126975" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x09d9cafda4e28b50bba8823b4bf20a39646b273df60467b5cba6bcd04a9e417d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np490", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe98fe8994405578378ed95c1d4b9a45d743c652214e50ac48bc8b36a42d2a4d0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63746c1e716d79e76bba04f87d2cc99ede11eee8082b90037841bbebabd1fefe", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ea", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1324", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2a67633e64cfd77fe6ce3386742cde79338e1a34f5c7c904ea3eb8f64696d35f", + "transactions": [], + "withdrawals": [ + { + "index": "0x2b", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb0424ee936aae94e0394ede6947b15427dc1664a14d82a17969162ec6e838ec3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np491", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2a67633e64cfd77fe6ce3386742cde79338e1a34f5c7c904ea3eb8f64696d35f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4b1fd39d3c84f7de5b23c95d26b731554c7d7fbb8a4599476f2f57b48eae13e5", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1eb", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x132e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5d1662243b6c9f6dbf53fe2b79a220453b883e9c80bb06e31f2295e68918aecd", + "transactions": [ + "0xf8838201f7088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a06265f4fe6fabae053312352231c46d971e6d55966e9ec1bdea76d56682c30374a06fbb15c78daf63f5a7fa00678e8fd8b9df8b949b773f0091b04ab05d593d8927" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbbe5b3daa5def4caff6e3e2ccaa0d77694cb0886d68b6844888838d720c8a1ad", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np492", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5d1662243b6c9f6dbf53fe2b79a220453b883e9c80bb06e31f2295e68918aecd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdde8adf28a35e206ec2c8e0278d521ac46804e44d6b34cea7b264e2c93905117", + "receiptsRoot": "0x42633a48d7c517b6986b13a13ddf51bebfb0c2da6c2b809ed79e88f8b6a57e3f", + "logsBloom": "0x00000000000030000000000080000000000000000000000000000100000000000000000000100000001010000000000000000000000400000000000000000000000000000000000004100000000000000004000000800000000000000000000000000000000000000000000200000000000000008000000000000840000000000000001000000000000000000000000000008000050000000000000000000000000000040000000000100000000000000000000002080100004000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000005000004000100000000000002000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ec", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1338", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xeafb3303dba8dc7f4b41bb7b37f3c93e95c8eabd33c392d88dfd0582aa88dc05", + "transactions": [ + "0xf87a8201f80883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a00a5beccc3e6ccaed4bfbe069c8b3ec28887eb8779cbd8d24aa80bad7db8d2ac0a07f0837873e5a2df96b5fa4f053a038a382aba9e1f6cf7d4b8fcc6e6e519f47f6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x29cf1633458442d2d60c8597fd7e8e3032c77f715695390f6c6c79a56a1f6c41", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np493", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xeafb3303dba8dc7f4b41bb7b37f3c93e95c8eabd33c392d88dfd0582aa88dc05", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b94679eb1ac049ae1685672462af0024f4bea3fe24a7f4ed983c6cbac4ac1c2", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ed", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1342", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8658952c14dcc2b8f15ed4f1f4e861e033bcdbe4b0b17671dd7984b29d1a8ba3", + "transactions": [ + "0xf8658201f9088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0aab80d2f2a4c8bc95e431a1cfccf592ca0aa7a04dcfb04e7e4d7a857b6bc05dba046a818232a3d66ef623aa85756752da22b70d25b901d6a51ea00eeb3df940038" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xaf082fe588954fe25630edd8bb48a91725372f8615834cfa45e1994b2fe75b84", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np494", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8658952c14dcc2b8f15ed4f1f4e861e033bcdbe4b0b17671dd7984b29d1a8ba3", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x51568df621da44c017bee6679e8829703398115672f0a1904ecb0525c15c8bb3", + "receiptsRoot": "0xceb21df14a345f6ffaa4003b6a05ad0fc8b9f37fff443b452e11cb95b2cc3c90", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ee", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x134c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9a4b8616c2ab2fd6d1d94a86a6e4a5ebe988708def10c935772e47bdaefe5b0c", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8201fa0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028caf8e348bf4f0a699656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a6602e59691514abf1ee46e71c1f4c7411eddb76e687f8f4aaa1ebf305b97f6c01a04d9e82bcdb1d5195d2c75a9d5ed8c74bea34ce034ea4b867463f76fe897c9acfa03a356eed52c14df6b863950c89b4087d98291e72993290b671b01fff013cd5eb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1d2385a885bc5bbab703e39a21c87909b765fee7808ceb7d64f6e0e1dcdbeada", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np495", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9a4b8616c2ab2fd6d1d94a86a6e4a5ebe988708def10c935772e47bdaefe5b0c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x141f77f9eb7139cdc31274634d663688361d71b55e095a8909dc145e25a8a789", + "receiptsRoot": "0x86b3621195987df290f2e0187032ec98536358f92657dc5d97a75981f552999f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000080000000040004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ef", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1356", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1987f5210117e3866820238e7be09c5b972ff01bc9d3062259ac73abc9fb5d1b", + "transactions": [ + "0x01f8d3870c72dd9d5e883e8201fb08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cbfc7b909ffb8a701656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0bae4f13d358194452066fc1305964decaafbc9c56a2fd16936d25d9521a57a1901a0211fce01407f71e35b8267bdad0ebd5391dbf851bf33683953a9af52d2f94259a018e11c9d49d9344f5b96e664aff381844801869400c3dafe0ad896e645402764" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9f7e031c508d86e139947f5b167bce022363da48a40dc260d10b7056ac51cf31", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np496", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1987f5210117e3866820238e7be09c5b972ff01bc9d3062259ac73abc9fb5d1b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5338ae6528c1e13e7970622a637f1d74d94595e136e791364e3a7f75fff9c2d9", + "receiptsRoot": "0xe9d41dd663d82d4e26983666a122a7b7e2a347cd4b5873329f7d7f2d7ed0287d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800200000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f0", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1360", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xded42d295832ce8251701cc7582d068b37adcf17bf96e9728f49c7ee7dd93c7a", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8201fc0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c6cbb5e7a4b55690b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a08405cb4703a08e5160e343c37d42df5f045091f6b22664b0ec3f587df18d2d8283020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a04daf1481394f8ce2ba160b6d1cc3d26cc17bac218d8d73c24bffa94c81be5ebea005faf6eba70ae5d5e002c780638b380ac6b084fd1ad76bfa82f83c300b609a05" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xae2de0af5de73a96ed6b567a73e6a11b603d6cd010885f5c0311faafa922f2cf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np497", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xded42d295832ce8251701cc7582d068b37adcf17bf96e9728f49c7ee7dd93c7a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3e6560274c15daa2e0a04e384dfe1d6c95cc8b38ac80869cc94b5a604d2cda8", + "receiptsRoot": "0x483ea5eb66c23a317dbd69d496892e22bdc4475156c7797ed76aafd02d8bfcd8", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000040002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f1", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x136a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb9244e48395116c8a53aabace93900c569c53b973a9e3687002cd218d807f608", + "transactions": [ + "0xf8758201fd08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c19deac0d9d02f92f656d69748718e5bb3abd10a0a0253d7d68f600f2d8bf9d53020fe772e78cbaa5717e162acc8df591a2066bd201a0291572bc54c1fef91bd3cb7ad4dd0a09dafe919392d1df28a9a0fcdea6ec5078" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x25b6a571ef6a73ada1798c7c6f5c6bfafe256c766329fec4f10bf8bad197ef43", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np498", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb9244e48395116c8a53aabace93900c569c53b973a9e3687002cd218d807f608", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8cd708e3014abc0f67e0b7de8c77215d14ca6ec2e0bf5569c274ebccefa11cdd", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f2", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1374", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xca9205d2f444fffd9a22b3f45c1ae061924fe6b5d885079b4f215fd6da081c89", + "transactions": [ + "0x02f86b870c72dd9d5e883e8201fe0108825208940c2c51a0990aee1d73c1228de1586883415575080180c080a04175b4893216d653bd35be0e04a3a9392927c00bd7b2620519ba862b83365272a00bdd994d4fb2691ccdaa459935f42bc09e596067aa1e70b75c6c6d5a0fac6c5b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa13ee26b6abfa659eab111d6d431ab808f24de841d7946e3972c71f886cf3b7e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np499", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xca9205d2f444fffd9a22b3f45c1ae061924fe6b5d885079b4f215fd6da081c89", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb9a63c728fd4d69a046f9472a178d78e399dde099a9a88220d16516a36a68a30", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f3", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x137e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd6d29225f2af2f42a875f8e69837b6abac59f79c06b12476351cf46b1f721268", + "transactions": [ + "0x01f86a870c72dd9d5e883e8201ff08825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c001a03c2c9118bf1c36271b931bb65ac95e8331a6dd380c0d394a5da03c8b2fc45254a04d95a9c6f65ab0486f6859104819b6d4b8db39a16c4333ea8b42ec1b7d529c86" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7472248ce56a1577d4471f3da8cf5cde06f8950286675ca5a1194796a28a4005", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np500", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd6d29225f2af2f42a875f8e69837b6abac59f79c06b12476351cf46b1f721268", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x39badf70c7bd52bd12b4380af723bf4fafea00801a564ee0a8f16f21f5af537b", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f4", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1388", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa006e393879b70cf602f0122a886d8167c8708f8e7feef6de52675f650f07b2e", + "transactions": [ + "0xf86882020008825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd109fa014a28150001e45fd1e5c8aeac21968d48528fd2ad3cbebe0fc3e81856c72bceca056aa4cd1c773b160dd5324012b004c009f03a75f89d965417ec73244172ccbbb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb152754c5a5cc6999ca01b88a6d422090559b16c7ead087411458740c57a128a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np501", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa006e393879b70cf602f0122a886d8167c8708f8e7feef6de52675f650f07b2e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc1247f5789fadbd0acd8635083ea35818c1ac48f492726ff3c578a0281dc0c07", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f5", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1392", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8698a5e929f6712d07c38692354fc0cd108829576fcf507d8249375bb4d34e60", + "transactions": [], + "withdrawals": [ + { + "index": "0x2c", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x651093fcc06254ac1de6075cba7da2cd7406b6a90a0f1425a26c7496f2f60dab", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np502", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8698a5e929f6712d07c38692354fc0cd108829576fcf507d8249375bb4d34e60", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdaf3b9859e5c20e495cc76741c4f5dece17f47b52452c636d8b877c5dcbbfbed", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f6", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x139c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1e95d4fa85ff39313eed8480ff6f794da6cbdf6c865c33aa2c514fb097c6817d", + "transactions": [ + "0xf883820201088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a09923b9daa48437491a665744b9cd0ce294d3bc24ba845bd801454be70946bcfea0165f575ce7c9a8eeaf1de39f15d8114e9e7a6b84d9442b8ce2b05d24febe40c5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb93351b11b6a73ecb4818697b1ee7cea2eaf192a56caf8df1454b9bc7510f722", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np503", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1e95d4fa85ff39313eed8480ff6f794da6cbdf6c865c33aa2c514fb097c6817d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x47e13343df17d5b67ba4915c2263b79374d5797850dfb49b6076fd1973f57dc5", + "receiptsRoot": "0x2cfadbb06ed7cdff5d419ab398e471d5e12cc56d6a968b771ef85410ab3c4b66", + "logsBloom": "0x00000000000000000000000000000000000020000000020040000000000000000000000000000000000000000000000000000000000000000400000000000000000000000010002000000001000080000800000000000008000000000000002000000000000800000000088000200000080000000000200000000000000000000000080000000000008000000000000000000000004000000000000000080000000000000000000000000000000000080000001000000000000000001004000000000000000000000000000000000000000000000000000080020000042000000000000000200000000000001000000000000000000000400000000000004000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f7", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x13a6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x52eb082eb7be273f4d5280bbef49733796215c09a7c71ca1b20fcf9ec180affe", + "transactions": [ + "0xf87a8202020883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a0ce3ad1aeb48a11c8ce83ee5925d5412ad4604ee96fc344ff8d25ad5613bdb0daa03c1cce897babc59372b111e74bd265a7dae4e8287764ee7f461af0721810f961" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7f4e75a6d4ab8d9dbe0728bda7f7ebf8bdc1942aecc5912f25573fdb9bafe803", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np504", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x52eb082eb7be273f4d5280bbef49733796215c09a7c71ca1b20fcf9ec180affe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x223becc9e964d120cd1dac22c4ba32b31456b78b718d255c012365116dd68df4", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f8", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x13b0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd671e7ebad6a5828dbcc7932d67618bba676951ddc013cd528bf9b41a99f50b7", + "transactions": [ + "0xf865820203088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a077496f47c2c10b741cbb7f4a2a1c3fa843407d1ff64d8a1ca25bd3cfaf9b5ba6a00873c225525b82c71d00833b83812205e694a9e66d4d3027cda8b432aff5d37a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x767177cd603c7e3eb94583c38141b0d701b15631173ffb7a35beb5a7515c7fff", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np505", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd671e7ebad6a5828dbcc7932d67618bba676951ddc013cd528bf9b41a99f50b7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x27784726627f6a6eaa7c04f9eff52dbe92076a4e45e166d44ecb318cb019f92c", + "receiptsRoot": "0x0fa45692791b30d727b254ac4bde2e0c789a86df9789054ad5d617e2a5686439", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104000000000000200000000000000000000000000002008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1f9", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x13ba", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1c10e60513c164ab7482d2c33062cbc0f8191dc03f48a211fb9ba5cc9687646e", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202040108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cba96783a3c242e12656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a00a5a37a1db2e0068ee9791dbe377a74c4f7bc36bc27af57ca7e49059127e8eb080a0f21908b759628502248071901716b3e84277824718bedb0ba1ab22c611038307a058abe19656820d15ca1350c4d776193017041f731e71ee8885edbc7fc5a6b782" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb7cbac00a090b3cf081c92da779bab61f22c7f83e8b9c5dce4e91c8c1d208b7c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np506", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1c10e60513c164ab7482d2c33062cbc0f8191dc03f48a211fb9ba5cc9687646e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd080cbbec39adeafaba8b5b7a3cc932f2aa9448c5e51d2810128bc93afdcd8f1", + "receiptsRoot": "0x56163a3eed26e00e586f2678efc072a984feda04f1afd75bc134da6c9554fb62", + "logsBloom": "0x00000000000000000000000000000000000000000001000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000009001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1fa", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x13c4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3a66ebe86f285009227283701e0bd5d1ef913636a7a1331799de1c1faa5e4c29", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82020508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc1493cb1f9cdc80f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0989e02934facff928d8e788f174ab7d48838c62b07d420a8527cb7eaabdbe91b80a04007c1c4f6f6fc1c60b2d8dafa0d6a0d52d5ddf181b0bbfe369a92b133a35773a073a10d1f377d99aeee46b608507f6b2a52933f4c520d32a2c43dd362ff3e4f17" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x38a90f286b0a1fe34e7d3b9ff797c39789970041d2818e5adc11b91e0579537c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np507", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3a66ebe86f285009227283701e0bd5d1ef913636a7a1331799de1c1faa5e4c29", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfff28addd1b7fa8c13f670f43ee8aecf5fd4e8aea884117a513422e644e5b687", + "receiptsRoot": "0xc6a015ae06bab1f1d18ac5b6e54324d2b92aa4b0c32cb2529c66468a8d154fc9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1fb", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x13ce", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x062f4d4d65aba3e78d382b9f46e4d5542195003f96b51b865458dcc1f826bef4", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202060108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c4d992d778a781294656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e865c3418b47b88e94c28956b326a799298fb44c62a7a6bb55fd991f7c0442ca83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0ed85242a312a75755e1bc8248d6b19e7cc43a61f86453fe3f6e5f54b361a7336a02e7e7870938cc996edaef7553435f345932ead2769411bb771f8dcd0f940ff2a" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xc19bcd1a95bf2edb1eaa8cf59fb23d053422845e57f4a41a2832500d1f415f5a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np508", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x062f4d4d65aba3e78d382b9f46e4d5542195003f96b51b865458dcc1f826bef4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x28b12ecfc2cc82d9d1f91fc9f8c8eaf83039177a1c6bb969f957fd2aa14a2a51", + "receiptsRoot": "0x62b1a196f913cc42183a51458d294e07675ebadf511c3d4a05da2e591ac137dc", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008000000000000000200000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1fc", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x13d8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x41870d7fcfb0ba5dd5425e3a3302b3e93025132d1a2776a249a88c572fb6be05", + "transactions": [ + "0xf87582020708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cf82c55c40f1ff9a2656d69748718e5bb3abd109fa0d38c5217a65679581f1f3dc5b08806638d23232ad739fed58056327a46151846a05ce9944be58bb04737796bbdd217c8649ca8e154b545e08f7fc383a67ef4ac22" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1beb8053a04c4c9a4a885576977da294a141c196be9e4af9fd21d7801196559f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np509", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x41870d7fcfb0ba5dd5425e3a3302b3e93025132d1a2776a249a88c572fb6be05", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xac3b461b766b9c6094c55862cced1cf04309a8059ebdf92ed0460f2c24618b79", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1fd", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x13e2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7c13316eda73749098cf4575409649054e1835f58d626491b4a4b95f2a8a0564", + "transactions": [ + "0x02f86b870c72dd9d5e883e8202080108825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f0180c001a037494e00581b8418c83e72d08293e639690b050b0978070b8479021d3931d298a067014bfc84b271a6596c0aff08cafca2f0ba275c2f67671364b7ab72a43f25a7" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6514900951391e916e7d78ae0340e1fa0cd5b3e4c1319438aa4db66177eba45c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np510", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7c13316eda73749098cf4575409649054e1835f58d626491b4a4b95f2a8a0564", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaed39ace72d41eb2e4eb2770635e8249e9c6c4dd278a6c31c4681079395ede37", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1fe", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x13ec", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5fe375eb49f8ae346cfc274905e352f9d90b8e27a9557c111a4da925da1ec952", + "transactions": [ + "0x01f86a870c72dd9d5e883e82020908825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c080a0fa223e2885966d1ca3ceecec6f277bd350ee2f59e9ae82d53fd88898ec680c49a0538f2f37378b8cd670d70e8b36ae9ad172e94305ba98d641e722c8fbf1712759" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x96836b3cb8f807083b6a006ae323d1e829d82357fedc171e8d20dacfe39755a9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np511", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5fe375eb49f8ae346cfc274905e352f9d90b8e27a9557c111a4da925da1ec952", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8baf3ffb404de68289de0f11633ae838022c5b3ac5bab2cd3ac3c795e34f7d87", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1ff", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x13f6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb2e74edc8a1efbf6260ee1bab5e093a479e2f7e5cd4b857567c0f375363e9620", + "transactions": [ + "0xf86882020a0882520894717f8aa2b982bee0e29f573d31df288663e1ce1601808718e5bb3abd10a0a02cfe24f61eb9ca2f74317c6223b681e61697200e548fc4b8cc1b7f4350542eaba040ba7a29dd832f75d2dd4416b98bda4470f633e72bf8bcccd52c3d767bdbec09" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb4e2322123051b7ae894776aba06808205c6bf96a70e56b0c628a51408e5c28e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np512", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb2e74edc8a1efbf6260ee1bab5e093a479e2f7e5cd4b857567c0f375363e9620", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc8185aa95f2877e6faf46f6677254001b6b49c793a272a024d5a656fb4fef25f", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x200", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1400", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x66e753584038f784cd85643a76dbb590005f0704537ac697c648abe7cff660cb", + "transactions": [], + "withdrawals": [ + { + "index": "0x2d", + "validatorIndex": "0x5", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xdb00a732067d4f7ab43e113731f05922c7acc4c9d937dcf77cca57ed319b3290", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np513", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x66e753584038f784cd85643a76dbb590005f0704537ac697c648abe7cff660cb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5e8265bcaff3797a87a90c25aed521b31e6a692f1c97c44fa7f789b515ea1f8", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x201", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x140a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf4d20bce9d8457ff1dd755e1dfbbb89c7bd0ad0a4cbbd507a20a66a75ad9223a", + "transactions": [ + "0xf88382020b088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa02d1a66d116fb0a777bea6eb147dc41708a0bfd06e8512b1d1d3c78ce9f0f4dc1a03076348c6bb81346bc655312f2e478a19d42ffde18ac9946c59edcc283939a6d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x085cd56145b890e872ccab3784b1ec282a8adf95bb90f918fb400c03ca25b188", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np514", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf4d20bce9d8457ff1dd755e1dfbbb89c7bd0ad0a4cbbd507a20a66a75ad9223a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2a3bd842a1a1d8cd178073262255c1ea79d7f6632ef5968ed70ed1eba1c4dd82", + "receiptsRoot": "0xd48e8e5d94ee6d26c4943db2f03d6a24e765d768a78aeb663b7e269221b08db7", + "logsBloom": "0x00000000000000000000000000000000000140004000000400000000000001000000000000001000009800000000000000000000000000000000001000000000000200000000000000010600000000010008800008000800000000000000001040000040000000000000000000000000000000000000000000000000000000000000001000800000000000010000000000000000000000000000008000000000000000000004000000000000000000100000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000100000000000000000000000020000000000020000000000000000800000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x202", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1414", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8ccbef8f2661bcf3123cd1d94c22200a4ae5f196f22cc0a75a24a2eb88b18acd", + "transactions": [ + "0xf87a82020c0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a007a2f5b051d9a1041a91a371c1cbc41650761498f137e6eb6e36612176de65d4a07611eb038c947ea2b85933da24eb375ac1fa9edeedd695638c206defa8c67d7f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x43fc6f30f79ff0be21aab95d8db8fa7b819fa91382063a80f286051f9f2d9aa9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np515", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8ccbef8f2661bcf3123cd1d94c22200a4ae5f196f22cc0a75a24a2eb88b18acd", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa9cefeaea24bd9d0c3aa07342a5f53092b8b1144869aa81090e1e6d95e0b1d06", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x203", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x141e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xbf528a0231aa3fc212ff82fbc410ffd8e8e2191e9af0a3fbc6b5c246cb7ac8aa", + "transactions": [ + "0xf86582020d088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a070534015db87e0db8903f2cbc9d465d1c6c44e431d2e3490852888903f9b8096a029db6e5b30f48e7e3229cd47b4e8a76191eb8705548fe163cf2fafaeb6220d6e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbb26c41420c8eccc97109bec0db605657b7ad911842ea5c892af203f5dc72b0a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np516", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xbf528a0231aa3fc212ff82fbc410ffd8e8e2191e9af0a3fbc6b5c246cb7ac8aa", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x80aecb6dbe2c7a75962e4d89ce833f85f3af8e70f537287cda1168f8e23de9e0", + "receiptsRoot": "0x078019fe2cc83afe1b116e5dbee7fceb7fbdeaada494157bffc7bef8a2e3b5c2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000100000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000010000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x204", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1428", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x03938f3ef2d6d88872a92445d63c6617c2ad1c6729900a8263f19ec9d03d5106", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82020e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cff6bcf94f901ef8f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b50dcc47e811f76cc69369cb397936a5c70520a51f33b84f1b54591da145e82301a0954945afebc39cb2f1f0a6504e5606a4db83e50f4ea6fdaaeae212a30f54919fa0095095c34217ff20ae8d68a0a117249ee30fedf2b8bf4c0fc8a9a87699c93cc9" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x79e7d775b35bea6224afd7e2f838079f88413410f667f16dcaf54f2124a68de7", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np517", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x03938f3ef2d6d88872a92445d63c6617c2ad1c6729900a8263f19ec9d03d5106", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x30356bd77ddf676a5b105b904496f703c42f4be1ee4e1f1dba2707e4d2bb1e87", + "receiptsRoot": "0x6c1ba699b63b83808505871fe095ee486063a79c874aee1b239cbe441298869f", + "logsBloom": "0x00000001000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x205", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1432", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x76b268f5c2c12013dabdac36f0d7a87aeabf6d0b9c66afe989de308e9d8cb0ea", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82020f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cf79d15aecc7ad11f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e891146f52235abb9f53919fc0e41a678d5a8a807a2247177d67539a2bcc3d1a01a0a449b48d32bfb71a61dad3295c6857ad88ccc3e4c3954c52bdc93ae4f4f282b4a061f1cf53321cb02f0ac4067101d21989a51f7213089735ff85668ffd5653e20c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5f4be0643a56b90ece82db7ff08963e8d9796840afd11d6a1d0d39b4498fa26e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np518", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x76b268f5c2c12013dabdac36f0d7a87aeabf6d0b9c66afe989de308e9d8cb0ea", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc5d2728bde5d000988fce58ac8a8d6b12bbc29fee6e60fb5c013ee53332bc02b", + "receiptsRoot": "0x0f724fed44b731282bd5b6bd8e2afc72aaf68431ae987ed7f446f6a457d3508d", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x206", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x143c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9025f8fd00f67b94a9b19712e0ff275ddddf0638f35bcd818639f440daf3d392", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202100108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c777feac9ca0bfcc3656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ec200bf1cc6a2c5d58960dc3476cc4794ba1a9fca2ac3d09b63e7811b7299c3d83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a01c781f7fd731cd5eddd7aa29ec280813a90464401110f8dc56d109bd85b01f35a024d6dfa68f4658f54bdd52385ef635e2e8463e56b8cb91065585d14729bc3b22" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x15b308f32252d593d6f48353f3217f10c391d03cff6eb9742f3bccbe6d1d6145", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np519", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9025f8fd00f67b94a9b19712e0ff275ddddf0638f35bcd818639f440daf3d392", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcf4b63f32e658014e45a0e3f2016ac8b8ce99828d31100654db894e3b07a1722", + "receiptsRoot": "0xcfe99c24117ebf9a03d23bc0dae58444e2d52cb95e80e4429d02e38881c6b2c3", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000004000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x207", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1446", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6d6253031c30b55f6529d6543f837195d883ed16bd214ae6b065668651295a7a", + "transactions": [ + "0xf87582021108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cc6f4832da197a358656d69748718e5bb3abd109fa0aabfccd924bf15abd9fdc4aaf99c9ea89b8c0b52c3949ec070eb4b05b5aeaecaa0159ef7ad8519aab9cb77e51f407fd99b95fe9e28b678cd5f62be4cf4844f1674" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x959068ffcb9b2830276c8aba06e7272d43aa3aa1b7220b9357ccf0f57c3c004d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np520", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6d6253031c30b55f6529d6543f837195d883ed16bd214ae6b065668651295a7a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd70315b88320ba6df67cec0d83140174c0729e61b0e3651f1aa928e050866982", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x208", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1450", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3d381099b916c9111f0a6ef929f91814a584f390a9032879d7e41c6eed3f4870", + "transactions": [ + "0x02f86b870c72dd9d5e883e82021201088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c001a0ba8bd8b5385767687d7077ee8611cd17ab3d8d5c11c833a600060b9e16dc6dc0a0670a8a4b83b407418808abdb824f1659c116cb2b8cb0b88992afd1a494108731" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x00e75e86a54290b92d8664fb2f08a2f88c05b4d97d79fe482da765f8386c614f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np521", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3d381099b916c9111f0a6ef929f91814a584f390a9032879d7e41c6eed3f4870", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2d3763013786aeb5174bbd5da31e61b80c259a65693381e3effefd0546c3099c", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x209", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x145a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x915d521f633b9e30bbb9abc8024728d9f1c69a3f06fe8f490c82143ea04d2e52", + "transactions": [ + "0x01f86a870c72dd9d5e883e8202130882520894717f8aa2b982bee0e29f573d31df288663e1ce160180c080a00d216b3a8f229ef2ce66b38ee57655db833353f59ad7ffed532ac584b9b5f5a9a04f929c3fd6020f1d5fb70bcc02bcf5dd8387b927cb1cf87e83ee3842d113d895" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2b736a8b6f16cc86e1adc0f2970e29ca45ed79734255a30ecf92a40549d7bd56", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np522", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x915d521f633b9e30bbb9abc8024728d9f1c69a3f06fe8f490c82143ea04d2e52", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x97e710f46d4a4060e4d9dbaef0a028ee439812a6b45072ada40e7ef8149d4ae9", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1464", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x863e79fd3c6376662be319b3ef0eb05283fc9f713417b7856a7c8615f977d8c9", + "transactions": [ + "0xf86882021408825208940c2c51a0990aee1d73c1228de15868834155750801808718e5bb3abd109fa0463b8a6f4391ea41bc550df58b0a7269723d27f89ea39503e185b29825ab27e5a00da136a3737caa05c897b1e9394f0b603c050b6759b03a7a3ca98c00a1a8fd93" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc46c8a987f02fc5b5185de4713c08a87ff4de7c745df1d52326418c60ab262b2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np523", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x863e79fd3c6376662be319b3ef0eb05283fc9f713417b7856a7c8615f977d8c9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa593c2a149e212398ba3eec8f8eeb490ca7a1c1933946666e69cf2107368dc35", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x146e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x92017f3c5f46fc656d0b2279ed722c9ee2fefd6aaeef49a9b72a7f3988fda54b", + "transactions": [], + "withdrawals": [ + { + "index": "0x2e", + "validatorIndex": "0x5", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4c5566cbcba6320f9081048390d01c905f9bc09b731d3e7f6d41a463755a8b58", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np524", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x92017f3c5f46fc656d0b2279ed722c9ee2fefd6aaeef49a9b72a7f3988fda54b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4256a8cdaa5d1adaa4fa6f73a61ecb3c4e0e505e0f8b79a76c6e966bb32f6295", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1478", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5b54670c143ac7faa7dd65ddb7e3b7c85d6932c049e071be3a0f9f51ee3b889d", + "transactions": [ + "0xf883820215088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa0b15869920d79036b50d162705926df5f6143bca108327d7fdef8c0c15b1aa13fa024bdc8a317f2fd9a864ee29de1674c86bdc4b12de94cfc724f0eaee99aa0b73e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xda6fa07274e44043f94ee45fa0ceb22272d43aa0af21c6c9cc97edc786407138", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np525", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5b54670c143ac7faa7dd65ddb7e3b7c85d6932c049e071be3a0f9f51ee3b889d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x24d01ee8a1ac915a330883c94b58c0d88104e52919c8a6f47150046d2338c7df", + "receiptsRoot": "0x357ce885261f1ec04a6bd7de15cbe2cd9ac6c89e882b560c78050de4f04f90e0", + "logsBloom": "0x00800000000000000000000000000000000000000000000000000008000000000000002000000000200000008020000000000000010000000402000000800000200000000000000000004000000000000000000000000000800000020000000000100000000000000000001000000000000000000000000000200000000000000000000000000000000000000000000000400008000200000000080000000000840000000000004008000100000000000000000000000000000000000000000100000020000000002000000000000000000000000000100000000000000000000000000000020000000000000000200000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1482", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xdcc13010415b57cb7729b370840b98797aff553ee150d53acc57944d6880476e", + "transactions": [ + "0xf87a8202160883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa07eb9ff8d5e16ef4fa6411ab271051945fe0d16680e8c9cea42f481b11c3a98dba0180958212e5b37bf6e3ae590abdb71876d9cfb4cf5734186cdf2ead9ee9237c4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x874290457e263452e8d382faa3fbe492ccdb28cee1c8a5ff61c039977c20c053", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np526", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdcc13010415b57cb7729b370840b98797aff553ee150d53acc57944d6880476e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb8ceb7172e8b987932f130ee715a174319067b41534f6519d42c51bf08c83a22", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x148c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x2d3c7ce06501bbf1916b0a41b645130ba77f69e25b150354934ea8ea0cb3b012", + "transactions": [ + "0xf865820217088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a0668c188b5f045222d9eccc2032de6dea0afbea32eb584ff4e55b5e593f691d6ba0420ee8705676a5551e2147d23444f2ac1f699cd379b63dc3d17327874758f77f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0ffe5e304347d11e92a03004fd66c66fb058267e5c835b2ff6f4dade1ed6159e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np527", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x2d3c7ce06501bbf1916b0a41b645130ba77f69e25b150354934ea8ea0cb3b012", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x904a1249204b256c8f6954c075b83c8de19e30575b1e5208ac33d97ce882ebd5", + "receiptsRoot": "0xd95afa4c4613559483642d24acd6e5db40206d887e6964bd5c27ecdbde7a3fa2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000800000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x20f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1496", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb8489443b8bb965ee7e0cc42e8ff8c2467d199cd09434fb394df3f34a2a985b7", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202180108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c4dd208cc7281960f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0c6bea923a54f8cf570edfddbda896a2ebf7b53d33b1dac8914ed024ff0621f1801a0aba17b5a65ce9a852c8ecd7c479fd06aa9e1dffa7f9b73007599b84cbb0b6d73a060f6c1e699925c3a40cbb5d13ea0fb9554065d03f4d1158d25769ab386cdba54" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9ae315e6ecd4a85e734e737190ea4501b8d0f5d0885ccaa267509bddb290bd07", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np528", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb8489443b8bb965ee7e0cc42e8ff8c2467d199cd09434fb394df3f34a2a985b7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd60ede81eb19a10fd03c3600b55a9a5cdf0110f27da09dd6891981a5d4e129aa", + "receiptsRoot": "0xacf1ab751527f15fa748a4689f1123006cd24b65daa0e2713f8f364742dbe6fc", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x210", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x14a0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc4194a2d7270901ff947af6ebd80fa701243344f704f832880455f4041285986", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82021908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c6892c905221f3788656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ab15322a52f3de5dda0553d7abbf171524cabb9c97dacea8806c750361d472df01a080f0928379dc5edff0f44537e1b8a3b6c2225d9551b308815ae44b233bb5e34ea026b23cf8a1ef2f5fd5a5a299be0664512a45761a13130800bdc3cd02d26a0fbd" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb9808a96196fba3329eb714aa00743098723d9850510689ad18fd6952b655882", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np529", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc4194a2d7270901ff947af6ebd80fa701243344f704f832880455f4041285986", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xec9e01a9a015ef87e3b2d41db50f242fcb1fc42f17e112cc7b9672d17cd4f9e7", + "receiptsRoot": "0x00fc1c9c0d4279a6fad522a1397aa4bcdb88cf8075c1ce2a0a0eb462fed5ac88", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000002000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x211", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x14aa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1d01c2348f9ac6b46cb793467df238a9f23c29c1d3de9e454bc61644705db054", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82021a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c315c130cd091bd0d656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a009b79212fdf6dfcd322d6aabd5ba752b962d7e575cf299112bead28ab955f4c883020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0c715416384ee2899ec119959a1682f21aa8907d3eb84f387b6ac74f2a83f30b2a010f076d8bede6a714d02e8b27bbd295401c65e6e15a733e0f6ab7c54aaa92b82" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x3cacbae26791d03a0ba1bec3ba0599219257c88708b022bbddb7e7673ef818e1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np530", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1d01c2348f9ac6b46cb793467df238a9f23c29c1d3de9e454bc61644705db054", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09fa5222cabc90d86f87f8dd06feb219be169eaaa0d1985b4266aa36854a7052", + "receiptsRoot": "0x5a71db43e13b3a52004a27880670d67a960357953f6118d42eb1e3d72b26d372", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000010000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x212", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x14b4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7cdb5360f32a30019bf96d2ea2034810820d065f655f99482aa59696b371afa4", + "transactions": [ + "0xf87482021b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028caff8e65c5d46d32e656d69748718e5bb3abd109fa0f2a65c97ed86c5b4e2c278d5387dffb88aa8e21278258203337c11698baa8d2f9f50e25c1b3b57fab34b084be2aa9263723320189e1d295b9eb7212feb638ff3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x97874b014835a49286b4ea56d5a282b34220b0950c69558ef0e38877061c88d9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np531", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7cdb5360f32a30019bf96d2ea2034810820d065f655f99482aa59696b371afa4", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb2f6e94dd715d7dc986869c5eb611f51bd51c4563201719bdbc85ec3e832459a", + "receiptsRoot": "0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x213", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x14be", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd17bc796f0ad66329bca1ca889a6c67406db80c0f43200fb0926495f409432b1", + "transactions": [ + "0x02f86b870c72dd9d5e883e82021c010882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c001a0663e9d8d81442374c9eb5bfc2c647f256b417216c932c3bf75ba31d2c4866b50a02e371666983865035d0b7c87b8fbfc55fd8c931a32a9b9de4a7dc84d90408092" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x30671eff1dd3e3e79d6269eacaca22ff3b4d4fd320a192c10d9cfa56d5553c3a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np532", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd17bc796f0ad66329bca1ca889a6c67406db80c0f43200fb0926495f409432b1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdf1f33d9acce87b5dbabfa935a37a51546b99e10166d15213dca15800609adba", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x214", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x14c8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd8472a9633cefd2b65c8d169fdcc6737e60390ee74069eea5c6209c6e2ad1634", + "transactions": [ + "0x01f86a870c72dd9d5e883e82021d0882520894c7b99a164efd027a93f147376cc7da7c67c6bbe00180c001a007a998646376bad827bdfa2b8be92733e00703f2ecb6cbf2254cf3f80a63245ca00291247571b7de6e4024d131f4fbf186f0f384105376661e0f504e389dc05eb5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd8d54c092190a712f5ac8e0a4b7e10b349220075f76775f9e4c4d4890954999a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np533", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd8472a9633cefd2b65c8d169fdcc6737e60390ee74069eea5c6209c6e2ad1634", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd30e3cd0f7be062c2b863f467970e432059fa882baf20e0f5004b6bc7f270ce6", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x215", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x14d2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x619efa7e75625a7ebedc7f3f9399965b08abf5834485d1db46a18e52f18c31ee", + "transactions": [ + "0xf86882021e0882520894c7b99a164efd027a93f147376cc7da7c67c6bbe001808718e5bb3abd10a0a02c313c47f073d960dc06bb477f0d12cc143c04ab7f5f822856b697515b8175aaa01cce6e9a1cbf32acc375da6cbb5d6120a0fe6a55b61caec560b77b8f324b3e62" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb3e8460e8c6dccf295d6a48d8335d66e44d66ce1a1a422340fa5851b4eee9d88", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np534", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x619efa7e75625a7ebedc7f3f9399965b08abf5834485d1db46a18e52f18c31ee", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xedbfadfdf2d1f7d9ccb6865aec20bcf6488308e772821067fdc942762d129723", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x216", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x14dc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc2b62f015db1c1d98d0614179d0ce92635a62ab4922a2faa0139119d3d63e071", + "transactions": [], + "withdrawals": [ + { + "index": "0x2f", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x6c0b1e570cc4d4a7db18835084f04878f61c4c184bb120ade6d0079cdddc0f03", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np535", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2b62f015db1c1d98d0614179d0ce92635a62ab4922a2faa0139119d3d63e071", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x777b1a54c64e05fede625221c54318074a47d6c025c2ede671e8c860fa84a0b9", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x217", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x14e6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x58bb373fbaddaa37a1fd35bfbaedfca10e720b9517932daa0041139db7285ac0", + "transactions": [ + "0xf88382021f088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a011dd7fa5782307088d05ffd1d11037add044a77cb4bbc829bbb4eac634039afaa015df7b7332a0971fd7ddafb31de4113334576d8b7fa2f95fc38453974a0211d5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x22590be535e87808bcbfed1999053f2a159b4ec2d830ee2983ebd95b2c7cb7e9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np536", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x58bb373fbaddaa37a1fd35bfbaedfca10e720b9517932daa0041139db7285ac0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd5ed54f5fe309c1ac6a3939c3d956a15cd79ad3909229d68a47b8e8b59d3da0c", + "receiptsRoot": "0x2d9ff7a5d365e1d00478fa9158143b2e67b31c3a818e288be00a635c43a08b6a", + "logsBloom": "0x00000000000004000000000000008000000010000000000000002000000000000000000400000000000080000010000000000000000000000004000000000000000000000000004000000000024000000000000000000000040000000000000000000000000000000000040000000000000400000000000100000000000000000800000000000000000000000000000400000000100010000008000000000000000000440000000000000001000000000000031000000000000000000000400000000000000100000020000000000000000000000000000000000000000000000000000000000000000000000000000000800000080000000000000000080000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x218", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x14f0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc9e6ff8c4334da9106046cf0aa6ada5653c1c7e4e04e2625132bdf77159440d7", + "transactions": [ + "0xf87a8202200883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa01f06e1d4129ab42e72bb52b1e9410b535dc6ec558097e4dfe2a33a19120c75a2a0695aca2ee3dd5f3c254de06e6d230556cc653d6363bd81a24fcb2069d3a449cc" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5c147544dcb51e46004d656f863d8c78c08d7801fa1142e9c81e231ceab7f91c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np537", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc9e6ff8c4334da9106046cf0aa6ada5653c1c7e4e04e2625132bdf77159440d7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbc96c677aad13efe3f2d8d067ad5a84db086d5144d2c9fb1d12e44d3cbfa583e", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x219", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x14fa", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd8c58761e29f93f85ed6cba366a7bf37793501e56beb1505083593cef82267c5", + "transactions": [ + "0xf865820221088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a074883c6fbc22c51da2652c7b3af7a2ba5c22717e5c9bf833e606ea95fed9f6cca0764930ed2fc298115a761a3b936ee4e72f4bc48a5410a3a63c536078177d9734" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x9579f88762d50f0b88eb438cc616ce1a2fce24a0655bfa18c17600f37bcd84a9", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np538", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd8c58761e29f93f85ed6cba366a7bf37793501e56beb1505083593cef82267c5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe192da5f688bd047ad26395be54b9afa59d532d45dbd46bbe452eff570f6e4ea", + "receiptsRoot": "0x4fae97195c53d94669ebdff34d0aaccc4bac74fce21c7635fa7c743dce5124f9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21a", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1504", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1d090490f42aa267658565f6ca68e0d230f7d6e2c2c850276c5428f2e6feac7e", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202220108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c983c2551657b63bc656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b296a1364260e1c8d47bcf2239f26b6b909a0a7687250af4af545eff0ea95ed701a083edf46568e48b42edaeb79d3e8ee7b0b66102c9a0c4c43ffe5f6c9fc128ead0a063242a2130fb3d7bf7bb7ecba5dcd7cbf88189e4769018a0809e66ec7a22a95a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbe71754b5029b99b3f84d2f972f2f3364e404e211f30737d6e19fe2ed70bd3a1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np539", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1d090490f42aa267658565f6ca68e0d230f7d6e2c2c850276c5428f2e6feac7e", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa09fe3c9aa57bed39e8aba098b01bae1f9102747baa8d2190f251d86d0997efb", + "receiptsRoot": "0x103e3209b1a4ebafea6a2a117831dc392ef04124614f97228e1c6f309597d062", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004000000000000000020000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x150e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf0867530c5e2d8e1e6f5e8fce7da42ed7d2b62d8f996ad93efabfdb12bd3cfba", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82022308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ccb38a78682f396bb656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a06c172610999b0729fbb6bb1ba27e7a0009f1b584ad6f8307d3dcc7d24a18087480a0bc2651e817375b070b0d9f91130822e5c467312725dff25ffd146eba7a12036fa02b2296294d45cd11376edd4a348493a28de7c89ce9228f2b82e1328e2f3669be" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x72ac7ccbdef2d82e39f5ea95cccfdb59f5d1c4a9a83e7e32a275dd2cf71db91b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np540", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf0867530c5e2d8e1e6f5e8fce7da42ed7d2b62d8f996ad93efabfdb12bd3cfba", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xab4675cbf4cfed5bbcd4654aa3852c9d0cd8b4186ba58b7fe82d8eda579144d6", + "receiptsRoot": "0x51b30d8dea1a3d0bcdaf826a64f1bb286c7194c9918991a2ee3fd1dd787a1c39", + "logsBloom": "0x00000000000000000000000000000000000000000008000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1518", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb2db3d26bc5c38616a7acbaba0e72cbc0d27ddb96f8fe1f4f1437d6ea7c058f9", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202240108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c73f53dd5c5a5b8e6656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ce285eb20810f2d026bc0b62faf3735df2193835ffd85df244ecc2df24f43b0083020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0941d11643e6706c38a19d1fa80a870e7553db9ec5a28fa96765f19a5d594d278a0498241744e65d1a71b91e39257a3abddfc93c33cf8042f7ec3d4cca14f2ebbfc" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x2f72d33db4de041ba2707492686a6f045671d2b63383cc70a770a94f39244793", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np541", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb2db3d26bc5c38616a7acbaba0e72cbc0d27ddb96f8fe1f4f1437d6ea7c058f9", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff10357b70eee297cad094f5054140e825d657702345f074536db819f6aa30e7", + "receiptsRoot": "0x1fc5e8be642a0e47830d5f9cb00a1eae91931e0d8cab894c49b586d5b2603a60", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000a00000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1522", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0dbddf3e586a2f5369ac360a4fee1273047238f16f2f4e8b6e16471b2455701a", + "transactions": [ + "0xf87582022508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ce2934853c0e07a07656d69748718e5bb3abd109fa0806bcb8f517214e708a17372de5245a67396c6a5250aeab9d012af6135f5f20ea045044a58c796c3fbcaaa6841ce92ae2b54c84783d31e07c106ec325bbbb2d7b3" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x400bbdb9ea1f1982431a31e5d0830c0affe0fbd940c7083bdc1d774e0f6cd9cd", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np542", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0dbddf3e586a2f5369ac360a4fee1273047238f16f2f4e8b6e16471b2455701a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x92ddc959cb2fb1dd69692ad7bfb8f2bc298dd502b425c332fd2dee520e707e6b", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x152c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa82749ce59055410613ad90d73c4fdfe715f9b60c665689c4c377125b1dadaef", + "transactions": [ + "0x02f86b870c72dd9d5e883e82022601088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c080a05ba7aa03d805cec4b4fcdf0f85965c6640d52210dfc7d7a21f67d1dec2289472a0427f828a0df5cdb75f359b746505e42d73e5698ae804b83e892bc076eb23d39e" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe010c49cc710b1249238f6dbda9f74d529142c897b1b786eee0e01a41751ccd0", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np543", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa82749ce59055410613ad90d73c4fdfe715f9b60c665689c4c377125b1dadaef", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf5b4db74a22182e3244d6c46bfd8ef415deac2300c7bd7657fc8863215d4dd1c", + "receiptsRoot": "0xbe3866dc0255d0856720d6d82370e49f3695ca287b4f8b480dfc69bbc2dc7168", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x21f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1536", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5be3c764fef371841fdaca04c885c757d884f9ff8971250ae39d77c76e573636", + "transactions": [ + "0x01f86a870c72dd9d5e883e8202270882520894eda8645ba6948855e3b3cd596bbb07596d59c6030180c080a07cd0b848f57e8939951cf57255fdc454da314830486776b660aa6d2cd9a572eda05a20a6565e5bcb733ec560e01d446c81e38b85f66de4f359920f29ec10850ffb" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x4130c014364b543cbea200a882ca0e2ee707740042e3b252f079f4774e906e72", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np544", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5be3c764fef371841fdaca04c885c757d884f9ff8971250ae39d77c76e573636", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b1852b2db8a8e35f48485d7f315f8969b95fd277d9b533a61f75a133f52e594", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x220", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1540", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xb710b8559fdeaf52af97d3fcf0879011c37044dedb8f94dbbc338a85bfd7c61a", + "transactions": [ + "0xf86882022808825208941f5bde34b4afc686f136c7a3cb6ec376f735775901808718e5bb3abd10a0a05ceec42baa76b27fe39d9ab36d09835722c6d10baeabea922bdbb6b2d796a0b4a01c35d21343f362a283bf74dfbdd4cab090d16de909e304324c69c006be235c79" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x506cb52170cb9a25fec6c4454c306efa32f9368e4a71b333a1b211ad18a45d1b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np545", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xb710b8559fdeaf52af97d3fcf0879011c37044dedb8f94dbbc338a85bfd7c61a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa298d3c4bd50f7285630e98b96c2abdbc4eb9ce9a3bdba0e8c3da99566655de1", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x221", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x154a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6eb711b67df8460994ec6d375c26a4209acae1a918f7a62392f2a562500980c5", + "transactions": [], + "withdrawals": [ + { + "index": "0x30", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xadfba1e3ff9978ca95fd32570e09cb9ff7d6c8874aa044e0aaaaa2771443405a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np546", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6eb711b67df8460994ec6d375c26a4209acae1a918f7a62392f2a562500980c5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5285f20269553112d3fa1b74ef776f3ef4f7cbbe49fbb6285beca90542b1cc18", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x222", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1554", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1da9f51a070e2bf7a49e7631ac54fb0e79bf4034dd2b982f8929cf12c469a593", + "transactions": [ + "0xf883820229088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa01933a4971aa769804ba4ac63507f32bcf9c2b1bf5161dc27e2c465c26caa3c6ba0086c4c204789cfee0de84e151bf06d2c18d9823d6f4abc7035e9e6039f192c50" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2f527ed6b4ddae83034b3cd789d451f3b7131bd8f196126cb60f0754cf15fca3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np547", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1da9f51a070e2bf7a49e7631ac54fb0e79bf4034dd2b982f8929cf12c469a593", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd358f95f0a8aa12bd08232b92749f5e2f189a508447f6a89814509f9581062db", + "receiptsRoot": "0x9519cf62b07b8cbadc460fdc3cefec4aafe9d2bf3b3d4cc3a11d9ad733cb4826", + "logsBloom": "0x00000000008000000000000000100000900000000000000000000000000000000000000000000000000080000008010000000000000000000000400000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100010004000000000000000000000000000000410400000000010000000000000000000000000000000000050000000100800010000000000000800000000000000000000000000001000004000000000000000000000041040000000000000008000000000000000010000000000004000000000000000000100000000000000000080000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x223", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x155e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x9d719d04326acbac551edf543d8f760e26c65609601f950dc8d7271cbf40a006", + "transactions": [ + "0xf87a82022a0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a060cbd58eda040403b14eca1644f33a5246fe27034ad239413c2b33ed98d7113ca03597763dacc4c210366705368fc9f34c7dd812026df69e046746150922755936" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa72fcd0c929130353532dc56f8c43a7e4ba9748f56fa2f3cb39bff62b4ce04bf", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np548", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x9d719d04326acbac551edf543d8f760e26c65609601f950dc8d7271cbf40a006", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x21fc7f56ef62f2a6af0c85e8acd8ad3cb17ae34c757b5251e7c07b17f255b0c6", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x224", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1568", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x488537d78be3c43ce3232056b5e0b1ce2ca9a88d4d7d768f654e0698928743e0", + "transactions": [ + "0xf86582022b088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0aac243f3dc5739a48c97d8c1bf8378d7ddf5d316f6a94d1130065bf9abf2666aa06f86954f6ba0d3366b63224de6f55748f27828f807bd3504bf24a71cd38fe9e6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x295fe8a5ddc346bf5e6f66db4e8961178d57e41915af94f89da7d40ece7b8f70", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np549", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x488537d78be3c43ce3232056b5e0b1ce2ca9a88d4d7d768f654e0698928743e0", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd449037270da36f46b81bc1bc11581777b0a23eca0de0502ed5fee65686d472e", + "receiptsRoot": "0xecd16d9340092fa4b69bc2bec07184158e9217ba92b74e0c643205379a3ed4fc", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x225", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1572", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x04b7bb9acaf695da6f2e725c22098a6a6d2216ab3478a9e053526bb50e276afe", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82022c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c2dbeda6b380ad817656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0142951613bf93db71eba96bb48c57a42168fcfded6491e1229ea2b8570f77e7f80a03dc0fc4e572b227c6083e6ad856fc992d5fa235f9fbb320f913d2edf4ea64f0fa02341f3497adae073a51ee0db66676e3bf0d9953a65b539a04eaf1f027880c595" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x673fd177d3d2b3486f6250e98100855417df12d7a090b7ed709bba223e03276e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np550", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x04b7bb9acaf695da6f2e725c22098a6a6d2216ab3478a9e053526bb50e276afe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaa8508404b0b8c762b662ef018e226d1f83c73c51b84eef67747fdaaa33e9dfc", + "receiptsRoot": "0x0a490da86114d077ffdc597832c806c9215f936ea0e51ceaa334a1782825e1ff", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000004000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x226", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x157c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7181f0084b63db7479c003d7dd4291ca02dae8d4283f82becb53681d47398afb", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82022d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c909c95399f08d166656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a344ff63ecb6c6cbbd711b06a84844147910ef79a57679958664abf4af9938d380a0cf8496be36e7255631748864451cff36c50e2fbe7036a76df16e0a59aefc5dd8a0403adcbafeb9d64323127b28e306cf232099d0f120f3975f442972347ff89850" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc5ea3d95ee2c22d741f6c48ac6d87e445e826cc8f6d25a1b2c12f3d9a447a353", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np551", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7181f0084b63db7479c003d7dd4291ca02dae8d4283f82becb53681d47398afb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5a29bc7e141a8b5204a67235e6cf2c1bce99f683d255f84745d92148f9a9d90c", + "receiptsRoot": "0x649ed1c0dd1ebcbf96c00305385c490cce0bd53a5131b834fa8fd8db67dbfcc8", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000008000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x227", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1586", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x026fb7db67bd230b10afa06b1c7b20edc1219887a13c0accd594f54aba577ca2", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82022e0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c448907ad05bd07de656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0f26b2f780c4b92b3f15f1d6e90f7d5a176b58eefea6f0d9cf2f8a0d1f86a139f83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a00ccf3dd0a97645a72eb3926dd694bfa7ff8cde336db1942846b4de7a197753a7a03c34702a7d5ce59948ced0f97c212bffc972d75c29d8b61ca6b943b23a497c8b" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x4085071556a9ec9d229d1d9b802b3e89cdd093f9f9139ea42eb5abe892541ff8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np552", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x026fb7db67bd230b10afa06b1c7b20edc1219887a13c0accd594f54aba577ca2", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x23302eed23ec4d3037ed09a5c8d1cb987b85319c0c6b2ee7cd773b629740e9de", + "receiptsRoot": "0xbe2c34b575afb52dadfa7ff4470d2fdf22388347ae87c871dfec683d85f53fda", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000200800000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x228", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1590", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x60596113f907eadfb5229325292e44044821a9e22f7e575b24cab3ea58fb5190", + "transactions": [ + "0xf87582022f08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3bf5f7de7fc40580656d69748718e5bb3abd10a0a0ccb3b524b4240095f21c092cafaf4f649981463e6effd560e4ecc03245e2b29da06cf8a83ca8be11c4e6c8aa095255f57bb7898bdb3183ff669d1170abb34e9e77" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x220bddb698fba55c2a96db728cf5caffae495e6903a27d57e74e61991634a7e3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np553", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x60596113f907eadfb5229325292e44044821a9e22f7e575b24cab3ea58fb5190", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb331683494cf8e7e2b2a4a68164ae46640adcaa324e827dfa62218e36050a286", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x229", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x159a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd168573695101511d7504d9d987c5a0fa7e64b52dbba520aece42e39e9b889b7", + "transactions": [ + "0x02f86b870c72dd9d5e883e8202300108825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c001a0a5daecaa8ba4d8243ee4167aa85b9225f420e7c2c6a131e182dca618d722678ca05e69feb5985a26381b431b80fd5a0bd3ce608c5f44dfc4da0296a1c4534152ac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x1f6b1570460ec8766ca6e568bd30d50175e71cc8ae45039bfbd2e82ca991041f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np554", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd168573695101511d7504d9d987c5a0fa7e64b52dbba520aece42e39e9b889b7", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x04145bd0d53de7b5d09b43bfc479edaaa22403d5bba73db923f5e19f3ee1fe3a", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x15a4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xcde6e6e9437d8d53d9d119f59621d8af4aab0d36357ae361fc39100037289949", + "transactions": [ + "0x01f86a870c72dd9d5e883e8202310882520894654aa64f5fbefb84c270ec74211b81ca8c44a72e0180c001a04e47b90029babb8898afda6f32fb6267d7d6a46fd109e268007c4078ed201721a05d7952ca59f6203255e98664242bb052bfffe1cbc5a45a32de744356e521d056" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd323f7e63c7ee0244d6795f2d05907b6d0361e6e8b5757cdcff96f2ade53e181", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np555", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xcde6e6e9437d8d53d9d119f59621d8af4aab0d36357ae361fc39100037289949", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa8a3551dbb96af8965635f8a32f91c0b2b215eec518a95f92bdfaa4d88541527", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x15ae", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xaf7988749b7c275b2319bbe47c81260f8c3084d77e284db0b00237173851550f", + "transactions": [ + "0xf86882023208825208945f552da00dfb4d3749d9e62dcee3c918855a86a001808718e5bb3abd109fa0882015d7b266b0a114a6d06da722f8b4eb73c1081ea516ef123b498cca88af5ca04c79877c6ae33388b3e79635b23dd69fb0bb4c7f99efdf3d14c700f23efe3185" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc7709a90d90185b34b5d069558a1a0e23279c82cb5b9c80b9a054a1747a100b2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np556", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xaf7988749b7c275b2319bbe47c81260f8c3084d77e284db0b00237173851550f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcffb3fc3c48a966aaccf3265534a087a069b99b14ebff35fadfc5b76d19ad77b", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x15b8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe80952fe3298776700d0d5527b12772000caeafe16823a1d07d023c092aced4f", + "transactions": [], + "withdrawals": [ + { + "index": "0x31", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf41d4fd21005f25600285ed8c8119a41a59af6c0c295cb06a26a29f87ff25aba", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np557", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe80952fe3298776700d0d5527b12772000caeafe16823a1d07d023c092aced4f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc5b4b364d51cb425a8f27ab133549f2e58fb5417e32e874a442f5d1832a8aaa8", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x15c2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0462b045d5e548d1267a9124eede57927ff6653ee26e515e79484a37fa332fec", + "transactions": [ + "0xf883820233088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd109fa00cba1aff982def9dac39bbfdd8f498296e1c67367236597c77165ad0390378bfa06632af5a65ef5f911e0f8e786b5d695d267351987617cd9479d06ed5fe83147d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x925086e21edd2723f3b5556821ac5a4bdc2ff1f673ac084cbac931be2ba37290", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np558", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0462b045d5e548d1267a9124eede57927ff6653ee26e515e79484a37fa332fec", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x641c1debf3055a466f9aa4ccac95fb2d724f2a2e9f3a89e33c356e3c5ed735b3", + "receiptsRoot": "0x24164ae5affdfeb7ac1b0e45fb9580b20c9ebe72f1308f7ae46c04e9a98a62e2", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000008000000000000000000800000000000008100000000220000000000000000000000000080020000000000000000000000000000000000000000000000001080000000000000050000000008000000200000000001000000000000000000080000000000000400000000000010002000000000000000004000000001000001000000000a10000000000000000004000000000008000100000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000080040000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x15cc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc2379dccca93cb7af1b9495cb45ff56200395f2d0f799afda2cf7d1a8dc2207c", + "transactions": [ + "0xf87a8202340883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a013c9ae1f02d80119784f5303e3ef1b90c0e572b76521c2917586005a14236deba07acf4937f74477bbc4f9b1a7db1562a7388e6d2a493fbf30f7bdb7bbe6b9d034" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x2662096fc52fdc578d134fceb1b462236b7003d5f2228536b1b3e9642a49e0d3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np559", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc2379dccca93cb7af1b9495cb45ff56200395f2d0f799afda2cf7d1a8dc2207c", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd4bef8c5196a6887ddbdd9c798b43317e23992841c8e5fbdae002664620bbbb4", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x22f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x15d6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa7614022dce29db83d3fdfda49d693584249cd3719f6981766ee013a59c53df5", + "transactions": [ + "0xf865820235088302088a808090435b8080556001015a6161a8106001578718e5bb3abd109fa0f86d215ae7100c55f14c1ec6f53d83c3d1fa777e3e1d9c23839a167beae6e475a01c0b30892286a4ede34138e7df61813bea4df91bf9675cba296e9ca662f3bd9b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x13bc04c697ce8353ef9332bf77b0a9dfaa3b46750477b2d6c3ec0320b667fa44", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np560", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa7614022dce29db83d3fdfda49d693584249cd3719f6981766ee013a59c53df5", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd6079afb6c2ce2b1207b0ee498ee03c9130f633fa041b07920d04acacf526b23", + "receiptsRoot": "0x7cdaf89496c1a5a3c531b09245bad68268f8c9825175334217f3fa2b65ca8005", + "logsBloom": "0x00000000000000000000000000000000000000000400000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x230", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x15e0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa9a699c07f4409eab9ca244799436f35249c79448cfb16f1daac3ea84453ab62", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202360108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c1f9e851ca16e6cb9656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a99b8fb9a23a3a24ef3330a371d081c4158ea1b75c9af3c2bda5440857bc823701a02c04468982075a831b72edc190258ec5b3892f86db9e97cfce65258e812ed1e3a03ed173c6e01067ad6b4be1d2eb27d49a4b226a30df40193c7aae6cb3d69bc424" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5c9c995de8502ece5f040c187feb066888f95c5c18f19e26d22fd33c214f1797", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np561", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa9a699c07f4409eab9ca244799436f35249c79448cfb16f1daac3ea84453ab62", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8d0be3fc6e3043dcb92b33976b33b7136cdf20b5e8d85fcbfa8ee74d9102e158", + "receiptsRoot": "0xf9d700dd528cda36168b7c1b46ab2ad9b3f2d9f8f04ed2464e747e3cdbcdb948", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000080002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x231", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x15ea", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x25b92c413d927baecbcc7836cd6464336f0a89e2d65a9fa0cfbe8729fb3b2eb6", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82023708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c544caaa25bed802a656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a088edc52ba848622b1d92e73d2c311c1c83420986c621546fbadac23c3428c57080a0b586a9f73d5ffc9bb1ce68608c76aaeb65093dcf2b5506ecdfc5a71031ce677fa03c970c8cf4f1668de9c0bcbc91f7efc7227cfab82c441dc23557057ab739fa04" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x80e9466bece8ddfabc70825bcec4e24aa55e1acf4ede6dc91e58bbd507b89106", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np562", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x25b92c413d927baecbcc7836cd6464336f0a89e2d65a9fa0cfbe8729fb3b2eb6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc4be91b8c59b503cab4bc24d11919560692712526990bbf14960dc484e32f1f7", + "receiptsRoot": "0xe7ba570a13b897c5510b99633c11830f998713b3b1f736009bcdf8b43fb2c377", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x232", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x15f4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa57990630fd6f670bb7e9f46d7c3e913b5392a7b13a83e9e040118b5edce4bf1", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202380108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c714a7ce99187d89b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ab5140d25dce39c42d511dba633cde87b45465d48aa4ec211b27de998abbadfc83020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a02edc679fb6ed3885ebe5d6bb3bf437381ab42e8cd40409eb57d8de68b7a89da0a0548ae149f4ed6a40f7a033ac18c25055586e1ebaf136839c6b88a1372675c4e4" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0xb60ebee302c2151ccc37af32e3613b07defd9503e344434d344ba3f8331954fa", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np563", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa57990630fd6f670bb7e9f46d7c3e913b5392a7b13a83e9e040118b5edce4bf1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xce000de5c6f0db7899b3dbce03252e92e3007540ceefb7b66276eee38ac41ac7", + "receiptsRoot": "0xc043e7daa7e45f96db1727335498d81d0b589b81016c3e1d6dbd89fd988b5431", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x233", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x15fe", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1d6f6c4bfa2d734a2b4869d97a28ed74e5ac40595899853e85e98349788a9d58", + "transactions": [ + "0xf87582023908830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c531a2d567445d0b0656d69748718e5bb3abd10a0a09a98ac819a48f4ea3d4c12bb691465eaec672dddf796189317c9c2066bea7fd1a022eed06705e732be508890102bd1c4e1847059dbd4a27f6d93143cd7d602ea1d" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x11c42898638189fe88536cc1845ddf768fc26b99b993c356b1f5dcc14dcadccb", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np564", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1d6f6c4bfa2d734a2b4869d97a28ed74e5ac40595899853e85e98349788a9d58", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3bf8746ca1a5a50afc191189886796323d288227abc154db248a29a72c29eb24", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x234", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1608", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xe8c2b0ff9fe420948d5a90471748469f7cd018d8b62b156404626ee33a4f4edf", + "transactions": [ + "0x02f86b870c72dd9d5e883e82023a010882520894717f8aa2b982bee0e29f573d31df288663e1ce160180c001a0458b87fd7d6396257685ab25480385171ca3bed9eca7289b40c702be82263b63a04aae7b1501ca7450a82f3c2639369c4c13310358ffaf9bf44ff8d8abe3753348" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xb623473143c27ada98b34a5cfcbabf6b70860e562953e346a03770e4237b16c8", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np565", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xe8c2b0ff9fe420948d5a90471748469f7cd018d8b62b156404626ee33a4f4edf", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5baf3090db9bba2e50d74a2b0e97d3aaed18413163635d322d717d4844a2f272", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x235", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1612", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x96419b60000d8e4e9815500d8e3d69eef3c19d36997bdaedd42cfabf174ae505", + "transactions": [ + "0x01f86a870c72dd9d5e883e82023b0882520894e7d13f7aa2a838d24c59b40186a0aca1e21cffcc0180c001a0ec6af985b7f6670ae589b8b15da1147ccc88af6bb495de6ba682258cd1c0d9faa009958afe72b0ad14f51323cd570488978d8b98b3cb03234f08b4dc0e3fd70bab" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xeb4739b0ae9d202f1529006ae74d98da58dbec8dfad38902ca920e6923beb35b", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np566", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x96419b60000d8e4e9815500d8e3d69eef3c19d36997bdaedd42cfabf174ae505", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x695baba1a16890cf56027a4abec52df8010f389b85c159e4beeca0edefe7d1c6", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x236", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x161c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xffafac142daa1e5dfaa588553a29883ef5d6b9a56408401cc20dd60121467861", + "transactions": [ + "0xf86882023c08825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd109fa088128ea9ba6ec872f8a52ec25fbacca092f5cee67c79cd0cedaf1d9e4097a719a04b62d924ecf4b8c8a432f8ce37a9696014fcb741c6cb197dc0a4d51f80620760" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x506e559f06fc9dbf1609acbdc09d2ae31dc353794a5f742e2645791d3b9b92b2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np567", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xffafac142daa1e5dfaa588553a29883ef5d6b9a56408401cc20dd60121467861", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5398054f6728892e01100f6038e1bc552df25943d10ff4dbcf8fffed8910ed5b", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x237", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1626", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xeb9bc3c34aeff870450eef73debeab5d6a4e853fd5e94794de8de70f3328400b", + "transactions": [], + "withdrawals": [ + { + "index": "0x32", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x3cf622b6ae96fd95cb12ce270854ed7ae4f651268000e01e37574dfc0f33ce6f", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np568", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xeb9bc3c34aeff870450eef73debeab5d6a4e853fd5e94794de8de70f3328400b", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfa0ad05fbd9c5cee03dc844c85e34894cd8e358275a8fb4695d6ed4f7e886ccc", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x238", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x1630", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x168cb5014662382595da9de5a5d07020a00f6871e24ec2f12e4d2c01200a1021", + "transactions": [ + "0xf88382023d088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0996d3dd760a40ac198ea0625ac932a0049423f2ea1b0badff9790bdd3581de80a0405373b8832cc078d5449bd5d864b000ea7d5d05311a002b11f86354d133f606" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xeeef194c98225e4ce5119ad6bf465ff5b4a542475152471fbe5bb408035137b5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np569", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x168cb5014662382595da9de5a5d07020a00f6871e24ec2f12e4d2c01200a1021", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb65bbb0de3f324d1479391e73300b9a96d8ef970393b9c75f4b13a9f55426510", + "receiptsRoot": "0xc2438923e0df877ca3d800892d179f7cdc17b2846caae090c64ded60b4758d92", + "logsBloom": "0x000000020000000000400000000000000080000000000000000000000000000200000000000000000002000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000480000000040200000000000000020000000000000000000000000000a0008000000001000002000000000000000000008400000000001000000000400000000000000000000000002000100100000000000000001000000000000000000000001000000000008000000000000000000000000000000000000010000000000100100000000200000084100000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x239", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x163a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x12d8f16244cd8fd6024d151e6a2070009c315dffa38ee8c5330e1bd3d4c3e550", + "transactions": [ + "0xf87a82023e0883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa05bcaf8b4aabd360569527d984095742ff50fe933205b334015f9f2d4724a63e5a03e07aa87b6af37e9e8d3fea351ecef37f86685ae75a72d0dd99d79c889f0672a" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xd8d4edf4122ac50f05b76868187eefbe56393c634490733ab80b12adf4fee4ff", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np570", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x12d8f16244cd8fd6024d151e6a2070009c315dffa38ee8c5330e1bd3d4c3e550", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2e488aafed1429cc1d6e1833a29b29a042a00665358bebc6cfc6bae35da3a455", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1644", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xae534ee68fddcbb56a54e1389963b1b91f2bd81903668bc912fb38e8222616ee", + "transactions": [ + "0xf86582023f088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a06c258143226b3e0b083ceb085ed33504648cb3a1131e5fad2688cbfcdd9302f9a03178f9023079da66e69d8b7011168bca212ced59b8e8273b6b5ab0c606d309cd" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x05efbc961556af4359a25fa1bb0ade5e3dd4b058ef14e80b0aaeee81da998c26", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np571", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xae534ee68fddcbb56a54e1389963b1b91f2bd81903668bc912fb38e8222616ee", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc87653c55d2584811df8ca04b51e47c130dcdb90a6d10184b8529130af87694a", + "receiptsRoot": "0x7bd993dae053a05a7cf4a17e754878feed89e6549f4797c790a975045fccd4af", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000200000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23b", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x164e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xd17d8c2fc653829318949d721e152c1578ac66a99c02fea2ed7e9902345888ca", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202400108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c7ec75a9a44cbd37a656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b9a419e057752857f289694284890ff1fcbfbe5d736b5e52bb8568e077f4988380a0d8eb62de0723c4d3071e1e7338cd9dc052714d483705501cf2d7a43ede1ab2efa0691aeb7be0289e154e0db27233a86db840d3df0eb68c3226ae31f2667a85ec61" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x65490c264abcd05d08f11c260d49dc0f2c55f3459f2f902400cc3751ae16115d", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np572", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xd17d8c2fc653829318949d721e152c1578ac66a99c02fea2ed7e9902345888ca", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x34be0e307d6f9095e613d7c1c4ede1d624ff2ccfa921847110a3318499c3aa06", + "receiptsRoot": "0x0e59486f8a1b78699db78104935292fe0707ea9c742817a63491084a27cd878c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000001000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23c", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1658", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x8d7e0a0e7b3ae1c2af06dbe35c75cb89f39ee82eabdcc3dee776c4528e5f44ae", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82024108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdfd0fe3a4aba411e656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a07a536b71187079aaf5462b7d483063e3d25cea8e3a6790ebdbb284666fe8106880a0f6d1633a6e9bf948390d5892e601e41435c9d8e194d2420e09d0d2f46498a9e0a052e5d636c533da0e88e37ba8dd2578610f9169b94721f4ff9720a434732fb3ac" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa662fe4e7f5b359da22861957ebabef233d14df689a0a378333f9caaae8ddcc1", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np573", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x8d7e0a0e7b3ae1c2af06dbe35c75cb89f39ee82eabdcc3dee776c4528e5f44ae", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x147f4144141326f7f9ae8c80266475516cc2ec5b684b0917dad44c659a9893e8", + "receiptsRoot": "0xc640d110a9d3c3320caf892ed640488ade7bb415e95636395222ab8540b62a92", + "logsBloom": "0x00000000000800000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000004000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23d", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1662", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x1d2cf4804fe3b07289794f1cb5227e51d697cad91934eb7c4705834e36100bb6", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202420108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c48fa07464a4e8d5b656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0c558392238c2d11cdd04a6ae37065f3541a22140500f92c0d8006ff95e8df59583020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a029d3c0911a45d36d03af347109f14a7446680818bb9026183118c333c4c07d86a0598c061b1a983b2ac6f74268f8c3dc4bfb87b7ac815ab6103dd7bd7be1d3387d" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x4e99f494a9bb40f134a5ef00de1bcdf3f971b37c873330d5aeb3d49efbcb4c00", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np574", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x1d2cf4804fe3b07289794f1cb5227e51d697cad91934eb7c4705834e36100bb6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3ce5fb93422fcf699bc95fd8778f03bbd2b4a584ffa01bb9f70e88f3fe0a671c", + "receiptsRoot": "0xb1ad8fb2618c7819ec0d8ff2b6931220689bb87ef72ab6dd77f1a41420b1ac0c", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000002200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000009080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23e", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x166c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xf90b5cc6dac74d3bc26ea436c5009c72a78b680483bba81d842d5500cf2cadcb", + "transactions": [ + "0xf87582024308830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c0676fa58a1c69ae3656d69748718e5bb3abd10a0a0a98fee5db4ca354081a61973239ef94ae57943d10cb07136e4d8fbb92dfe569da017ec1654d447d17754d34c0eea157cb503aba5e67b6dba2c31dd9b7aef1b00ec" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x67e21c966ca98e58bd6989dff5e94d2bd4e74bd63e0c1419a6d1af34e7cf6a20", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np575", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xf90b5cc6dac74d3bc26ea436c5009c72a78b680483bba81d842d5500cf2cadcb", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x50dc0734b1c45d6c8d624c8773a23461205a777f6846b4817e26cd87647cac5c", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x23f", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1676", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xda50bf0b60a87259fb867f9ed72c9b70defa034f7579ef5d8b3b1fdc0dcef8fe", + "transactions": [ + "0x02f86b870c72dd9d5e883e8202440108825208944dde844b71bcdf95512fb4dc94e84fb67b512ed80180c080a0d1f25aa15ac65ba71d17caeceaeea4a0e095f92175ae2035770d1e4e7d86e714a0158a76f98ee1a2ba361fbb825d373ed56e790b07a09637c7f8d7fba072a025f2" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xe359cbd3a9dff480adcd4cd1aae545e0a0043a076ab291d897dee9316e8a6286", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np576", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xda50bf0b60a87259fb867f9ed72c9b70defa034f7579ef5d8b3b1fdc0dcef8fe", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x652ae3ffb65dba74e57debeae4c3f989a8d5873e8a4b62674ba0c19108b04664", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x240", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1680", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0ed725064a1263c0361d176ecc01bd8f3282fbf917f16c7acc8d74da1a076d5d", + "transactions": [ + "0x01f86a870c72dd9d5e883e82024508825208944340ee1b812acb40a1eb561c019c327b243b92df0180c001a0517ec55d421f419f0e343fcfa86577353588322a74e91bddfe81dbace50a8ee1a039516532a256e54763b0026a5527722b1f7aa18a10a023c3860841b67c9196d4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa35fac8a05400bf2a27ce6d8720f3c0bcaf373aede26d8b2b858ebfae843a327", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np577", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0ed725064a1263c0361d176ecc01bd8f3282fbf917f16c7acc8d74da1a076d5d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa8d21ab2906d9edc878981252da0147788dd70314a77405e31a613a5b6e6fb30", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x241", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x168a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6c84eb9a9f855cc6e5d2e3a2e3745e58a19f3dc35dc4d4b87e03fd8be4541313", + "transactions": [ + "0xf86882024608825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f01808718e5bb3abd109fa0a04c4303a6827047f885f5ce098244f44caea3ec02cb19f78fc815761b11ce15a065f4f3fab3c6b51b870a275a7099dac199129d91f96011295d7f3ee43b351811" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x5b5c8208e8820c4e2730cf589ab50d61729dfd14468f06ec0ec9f7941a64f0db", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np578", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6c84eb9a9f855cc6e5d2e3a2e3745e58a19f3dc35dc4d4b87e03fd8be4541313", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfef13c4295d27b16ab0e667de806b4cecf97fcf5cb22757d9d53319ae5c05ae1", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x242", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1694", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xdfe776d8d16b551a7020bdb98ccfbed0c74ce701b7da68a2124088f2661a3592", + "transactions": [], + "withdrawals": [ + { + "index": "0x33", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xfdc9e6eb33d8f37b2d9599ab0c98fbbb7cada3861352e1244d31d2ec5d4acf49", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np579", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xdfe776d8d16b551a7020bdb98ccfbed0c74ce701b7da68a2124088f2661a3592", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6d5ed717142863823c1e1a30822027887222f2e890c1e108595382f6168b62c3", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x243", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x169e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xff3de971bda54ed67b27bd4b95e38b9045f21d23c4b3b1613def488d9826e293", + "transactions": [ + "0xf883820247088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a039df9a0e8de2224bf52aaf601ff7bad23f0934867dd7f1363a51849c6e781c62a06eff52b6c11453d75259640c321523ed37e8263826df260da5bbbdbc2cf3a39b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x380c81a5a4ff1291139f4d753060a10393993331c5c422be8f84788bd29709ef", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np580", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xff3de971bda54ed67b27bd4b95e38b9045f21d23c4b3b1613def488d9826e293", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdcde1a92d0a85b6a47fc83c03ba46bc2d46cc74e208666bdfe3a5e8e50ed1099", + "receiptsRoot": "0xf69d56acdba1da2116fe7b0ff52cea51d28e294fb1137e9766983df99550c415", + "logsBloom": "0x02000000000000000000000000000000000000008000200400000000000000000000000000000010000000000000000000000004000000000000020000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000008000000000000000004000000000000000000000004000000000000000001000000040001000000000000400020000000000000008000000000000800000000000000000000000000000000000000180800000000100000000000000000800000000000000000000000000008000000000000000010001020000000000001009000800", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x244", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x16a8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x689a76ccb80461e78e22e1997c949bb143882516f7db6ec6aeb1062342881540", + "transactions": [ + "0xf87a8202480883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd10a0a030798404d7e574a0b486ccaeb48204b05953314a7fc90a94e161025c06ed2caba01f5c18091e4e21d0a9020534f8c9b1196140a632b752b788cb0721740a2cebd6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x84f551d9aedb25cafb6326fd75774b6bd3a7e13666cdf07ed4f43989915856f4", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np581", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x689a76ccb80461e78e22e1997c949bb143882516f7db6ec6aeb1062342881540", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x64f2b3af837014cc23fdcf675c5954f171432c9f8e5e55c20c5500a05c0673df", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x245", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x16b2", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x179654e16a3900b68bb66927ab2e714430ee0eadadf1930eb6073454bfe66d72", + "transactions": [ + "0xf865820249088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a08c673b248fe7fa166d33b9597135ac842aeaa2cf3af7e62532c629103c211cc0a0047bdd9a697f1e5be98aecf488f95e7a04f443e6f00daf280e82f533d2e703a1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x724715f1a28b0b873df27b080122f16d318ae96da7d3adc1ca1e06ed62fa7c19", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np582", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x179654e16a3900b68bb66927ab2e714430ee0eadadf1930eb6073454bfe66d72", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x65959aa2ff931be2daf44495237c367cee6c6fec1af6b2d6d52cc983fadc9ee5", + "receiptsRoot": "0xb1244d83d83209f04cfa439f7bee0ba45cd1717a5d43b67782ad7026c0d4d510", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000202000000000000000000000000802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x246", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x16bc", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7a4bcc5016b6d39420221e1206b50128e0efe3fee6a1c5eb573e6bedaab5f215", + "transactions": [ + "0x02f8d4870c72dd9d5e883e82024a0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c93e6b57cd7fc7d47656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0e0fa1a4e967a01f4a84aa6715b0977cc111d3cc0834c5d04f0f1d87e0d561a7101a0587405becdd9f7f7b949ea6524e45b1fbb5f9f0f2a9c65c0115cafc935b665efa05cae49e4f84edcceef753265da15b95cb5642d45e39119883fde73bc755cf6ef" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xa3fa3c1b9234dd7e0e566d7f8b57a65f8c4b39d7a0a2346e822afd34a6852a80", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np583", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7a4bcc5016b6d39420221e1206b50128e0efe3fee6a1c5eb573e6bedaab5f215", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaeb918d8589201b296ed6a99d6ebe6db00c29dfff95dbafbef8eb673e88790f9", + "receiptsRoot": "0xd26fd26453a9b2409f607a2d805423998851f65f00bd96ec3a7bab0b8314fe72", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000800000000000000000004000000000000200000000000000000000000000002000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x247", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x16c6", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x54d398355fd128ea6d1db1e790364b184845a3687dfa213ac446f7d298755717", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82024b08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c171fa5153d9de7dc656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0a0c2e429d47e77e9b7c98c1aa4aefb731206f41b64a6587678905a86d14a7d7501a03a036c24dba63089c6a07f0f722f3e19df2d4571d2a15f06566b9feeb0be9d90a059f82d91f48682b9f2330f33dcad8b3a28535173358773e94444c418448a7f51" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf48ee127fa2d3b4a69eff4f11cc838cf34b88ea4eb595db690e2f098af6dc64e", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np584", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x54d398355fd128ea6d1db1e790364b184845a3687dfa213ac446f7d298755717", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x97b30e98baf08c3cb8775680eb83d94aed2a81be867506bf42757d32ed1f465d", + "receiptsRoot": "0xeb1a9ea66d2a50f24352c84749d44eba91e4bea2d92e5ca4df45c4033a66f032", + "logsBloom": "0x00000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000200000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x248", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x16d0", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xc52e636696619f0055d30d50b17d0f5a62537fa775dcd349d3948956c57a578d", + "transactions": [ + "0x03f8fa870c72dd9d5e883e82024c0108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c1bea227fe2612720656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a069626497767f58c222726a6a3c65050bcfdbb9346f9e5d146ef02bf59275b3d283020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a031f0892dffde4213fe0284ac6420ef191b3aafc4857a03cb45f31f8568f0b28ea0368d809ce4f97e3291908864a932be0c231f197f067c7b1a68bb75fdc8b01109" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x0c047872d9588bf22e89ea7ec207e8be8486d0bfa775d147ea49b25a9847b3c6", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np585", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xc52e636696619f0055d30d50b17d0f5a62537fa775dcd349d3948956c57a578d", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x12011fc0bb202064b37e2073c3d16bff439bbb9c90c6cd20fef3226dcc887e86", + "receiptsRoot": "0x5a6a0dc6cbea4cdd8a1cdb1ea36a5b7e07330b3c819b58e776b3701ca28aab50", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000009002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x249", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x16da", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6c72dd1012068c32cf36641b1564e48296fb121ab7a9a9baefd5c28416d8d054", + "transactions": [ + "0xf87582024d08830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028ce44dd8ca1b4c2263656d69748718e5bb3abd109fa06ca241263493e263b18d58aa1f5db96bf7bac49aded5de38168e81fe54fc5d42a003b6588ca3402ad0b50cef554a1397d5c3f3a1eeb6d8d1741c478d9cc44ec5ce" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x855d87626620858c83ac8ac407d521c183da8a43964f92d9b9285389f90a6d02", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np586", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6c72dd1012068c32cf36641b1564e48296fb121ab7a9a9baefd5c28416d8d054", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb08cd3fc698ac319d37e19de2b37050bc499752841e2b7c7ba5063dedd0f4328", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24a", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x16e4", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xa9697418504b9f328eb3b4bb3c4a82ccdad93df60ba4f9666a9ed9d4b61215af", + "transactions": [ + "0x02f86b870c72dd9d5e883e82024e0108825208945f552da00dfb4d3749d9e62dcee3c918855a86a00180c001a0a2f63e0b0cca4620f870d79af0002a98b9cbb9e064c8b81ef0a843131cc49a67a07e9c2a4e7e425a4e875c025d609cbd3aae4f72d219664c7a494fc2226ac98ea4" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x7101dac063e1ce1cb178112d72d1b8abbd9615086ef636f6655d652e70f2aa64", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np587", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xa9697418504b9f328eb3b4bb3c4a82ccdad93df60ba4f9666a9ed9d4b61215af", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x66cdb0536095f974bdbdbaff5fe08182728bbfe241e49645d10986c5867b3f8c", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24b", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x16ee", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xeccc52333b224ed9aa4a274c7c2e6ad7043da8fec8cbd1841c4df037d272a070", + "transactions": [ + "0x01f86a870c72dd9d5e883e82024f088252089414e46043e63d0e3cdcf2530519f4cfaf35058cb20180c080a089fb7c079dc6325a8c1e2101776f25d0eaadfd9c5f170e1bc727b75d795a3003a008c2f5bf7e8ec06b9d5db13ddaaebfbf765e117298919e7fdbea7a250796c321" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x506d8aa3d5c8509b51930509c98cf6f5badc86968812fe7ab2d4762d9352f4e3", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np588", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xeccc52333b224ed9aa4a274c7c2e6ad7043da8fec8cbd1841c4df037d272a070", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x545d513c53bddb5d4002b4e88a2f11d15f63ff38ab9ef94b3df8a560a19fa362", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24c", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x16f8", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0e033ec5d1b65a42204e9caf992cf062bf74c8a309c9b2e769b858e366650d94", + "transactions": [ + "0xf8688202500882520894c7b99a164efd027a93f147376cc7da7c67c6bbe001808718e5bb3abd10a0a03e549b7984b29b1df2092f5bcc53a93bb13f9217d18040bd5f3f9ba073b1714fa01824f6d408f8ac57237b06eefffef459ea8db23afd08bc788cf6c4e78f8c9a9f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x95ea210881696a1062dddaf3b2b082b5c4bf40e8232113d7b86da72999b1d2ba", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np589", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0e033ec5d1b65a42204e9caf992cf062bf74c8a309c9b2e769b858e366650d94", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7db9c63aa71032059d5073a74cfe6ea27ab1c24ec5600bc7d2513af677438810", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24d", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1702", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x787a2bb58c6e1d4ac5d91e6fb7bbf1713c1e902ca3b86d920504167e9704e574", + "transactions": [], + "withdrawals": [ + { + "index": "0x34", + "validatorIndex": "0x5", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x0c83a90f2b9a311c3cd7c7643087802a075de0891995be8c92a6b6e1891778dc", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np590", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x787a2bb58c6e1d4ac5d91e6fb7bbf1713c1e902ca3b86d920504167e9704e574", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc3c5a6d6f2c1b107494fd143c13eb9609aa63f80edc16015e1e0ed8b7bf7a66b", + "receiptsRoot": "0xfe160832b1ca85f38c6674cb0aae3a24693bc49be56e2ecdf3698b71a794de86", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24e", + "gasLimit": "0x11e1a300", + "gasUsed": "0x19d36", + "timestamp": "0x170c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0xaa4611fb72fb0a85c2d1bc1083c160f1f316538c7f58ef556f4340ea20068ce1", + "transactions": [ + "0xf883820251088301bc1c8080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f38718e5bb3abd10a0a0f2a14202ed7395347d395732b271818fa11116b0d3f85e1e6f5ed333fb6343f2a02d0cf49b1eb8efce93816ce11f7832d15a01f0842a80f60577f3fd1e25cf3c74" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xaa9ef93934d889062636008fcf4837d7b8d272bbd14e81b50b2248a4911d7c67", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np591", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0xaa4611fb72fb0a85c2d1bc1083c160f1f316538c7f58ef556f4340ea20068ce1", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb132ef8988775a208bdf2b6899c8055ed01edbe8a9d79ca2cf8c42e9c219084f", + "receiptsRoot": "0x63da246261c11b79d6b2257757fe9bc25a2e8854f3ef308b3389316f6b6535db", + "logsBloom": "0x00800000000000000000000000000080000000000000000000000000000020000000000000000008001000000400000000000002000002000000000002000000000000000000000000000000000000000000000000040000000000000000010081000000000000000000000020080000000000000020000000400000000000080000000000000800000000000000000000000000000000000400000008000000000000000000000000000000004000000000000080000000000000000000404110000000000000002008000000000100000000000000000000000000000000000000000040000100000000000000000000000000000000000000000200000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x24f", + "gasLimit": "0x11e1a300", + "gasUsed": "0xfc65", + "timestamp": "0x1716", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5e35d6b8ace034f15f9ea52f7f1a6a1ec774e7a4234137c6c5bb913dfd733971", + "transactions": [ + "0xf87a8202520883011f588080a54360005260006020525b604060002060208051600101905260206020a15a612710106009578718e5bb3abd109fa0b160861a308a8186409f97802c5e41436e66e14606a74bffc5a64d53c0fc5538a05e314c022138bfe5565de55118d90d5e749fc772592746bc21cbdcaf5d663e2c" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x00f0c8a0bbba4bed135f2022b60bc785bd514b1c5b7f3db99c37124f5bcd403c", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np592", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5e35d6b8ace034f15f9ea52f7f1a6a1ec774e7a4234137c6c5bb913dfd733971", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb279d232e60a8f01c32bec723e64223daee4fd285506789e1051cbc25f03aa4", + "receiptsRoot": "0x8e47c51ae3cc2e7f29232aac553163472046f2668ba19aa17733e156999a8234", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x250", + "gasLimit": "0x11e1a300", + "gasUsed": "0x1d36e", + "timestamp": "0x1720", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x0a0ed30330099aaed4d9fc919882376e3624d21bc3b39691003081f575f6b27f", + "transactions": [ + "0xf865820253088302088a808090435b8080556001015a6161a8106001578718e5bb3abd10a0a065082b051f83ae94104b9807a153a05cb7eb2836f39078467253e7f0d534672ba068d1f2159b8c6045fc516e3c55dbf768a35f3134d307096629de881164298ad1" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x08e29d129649f398887792f5fa5eff38572306a1efb3604008b74eca49c40774", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np593", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x0a0ed30330099aaed4d9fc919882376e3624d21bc3b39691003081f575f6b27f", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa6f4f81752da75e187320b73c4cc6ef5333fc0d46c06c4a5f925cf4a8be7411a", + "receiptsRoot": "0x8354d2ef1f62c7c7a783ea323b1289332872be764a4f9fad5bdb89a847fb2718", + "logsBloom": "0x00000000000000000000000000800000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x251", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x172a", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x3f445c59eb76afc237ab0aff24e4afece553617597903e7c54e2e52535f5f69a", + "transactions": [ + "0x02f8d4870c72dd9d5e883e8202540108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cf395506d95a7654f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0701960547b78067b00883157f5e9fca3bbea742385129f0db7e1e69ce445dfef01a090eb34a1e3b22bc5f3751af1df6b9b965d574c80aadb09c86472283753a4052da065feaedaa76e0a9b777e3f442714d305d25146b79cb2389f094bea6fe359013f" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x64fa01a0000ef58c90fac82ae28c33b45f947097be7cf43737d60e6568486204", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np594", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x3f445c59eb76afc237ab0aff24e4afece553617597903e7c54e2e52535f5f69a", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb2c8af99b02731886eacb5fc4d5e43bb3127b0325129d8d6cd3764c2a3d72f7e", + "receiptsRoot": "0x089a9f710854e80061a0fcd4b802e49f829d4564f2fc88ceec2251af4cc62791", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000002400000000000000000000000000000004000000000000200000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x252", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x1734", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x5b913043ae15b19475bdf3bce3000c885837ce744816ee34aa4c4fa13c29e273", + "transactions": [ + "0x01f8d3870c72dd9d5e883e82025508830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c8bb77ba856e3d12f656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a048ca1081e747a7f831228b894dd5fc401d64c6496a2b9e578dd3c59b8f0df2cc01a0cb42a8410b26080d7376b8def1c490bcfa0ca62594d82e6b68d18380eb2cd3c7a019def470d2019119f86d96a8d24bb2670661c787a4cb0cc7bdc4a59193f70c19" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x18104f198e6c84cec4875b8b6d2734b6b9b8ce4bbbe158adfa81bfdb239595e2", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np595", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x5b913043ae15b19475bdf3bce3000c885837ce744816ee34aa4c4fa13c29e273", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcce9580e6a5a277358bed1921548dc0141515b0e3923ce9ce3286359bfbaadc3", + "receiptsRoot": "0xe8f72ee3af379d8d2d326d7d0bc69d74d371407807cd8ca51129af59bc1d94dd", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000400000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x253", + "gasLimit": "0x11e1a300", + "gasUsed": "0xca9c", + "timestamp": "0x173e", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x00cd4351d6d5b3636ccb5424b17c5a8b33e881f83ac158694c1f198b70290d93", + "transactions": [ + "0x03f8fa870c72dd9d5e883e8202560108830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cdbc56807623499cf656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0ee0b894f33a9643c94e4e2237077260f4191c5bf6bb3c17a2212b86af6f67df483020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a0a545f5e30bc665283edb8248dcac5114a99c8464afcf2f69435871fb45ede974a07b1ab9cd75c4e5e222ca96204393a181bfec664116be58b4f1ed72889642df01" + ], + "withdrawals": [], + "blobGasUsed": "0x20000", + "excessBlobGas": "0x0" + }, + [ + "0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68" + ], + "0x64f9ed7df2e19a503f0b6f5b79e4d7b512c66623c28887e7f8968750f081f06a", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np596", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x00cd4351d6d5b3636ccb5424b17c5a8b33e881f83ac158694c1f198b70290d93", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff585af11146778da3d20655de97626de2e292b6db3e9c3f6feee73dc2ff9fd", + "receiptsRoot": "0xa3560e3cdfbff1482ab2bf3f71bb70a7b7d912f65785d863f6b937f212cdb999", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000400000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x254", + "gasLimit": "0x11e1a300", + "gasUsed": "0xc268", + "timestamp": "0x1748", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x84dfa1c19923082db1a37ae307ef33a005c1ae987763f3537078e44a91f72cef", + "transactions": [ + "0xf87582025708830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cbee48aed349a6783656d69748718e5bb3abd10a0a03b7ea625f55336efa74b3e1d5df85cd6a73899201dae3e0d777eae286069b7b5a00d59d0faeebbe85d9e7c86c5d2db39a9f01fc707b6690230811d8c6414686695" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x020d16dfaa507ca4120cf799ddb20a8998f07a68b2dec691dc61a14e5c929b17", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np597", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x84dfa1c19923082db1a37ae307ef33a005c1ae987763f3537078e44a91f72cef", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4e2712c48c9758696c0619d7cff4034b34f17ae40d1fad8da2697b3dd479af21", + "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x255", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1752", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x4f62f1eb606efbd760b849b83f48b5080b0045364da18111e5f81faa74bdf648", + "transactions": [ + "0x02f86b870c72dd9d5e883e8202580108825208947435ed30a8b4aeb0877cef0c6e8cffe834eb865f0180c001a00bfb57a904239393551f7406c67cb7bba19973813d6a38d0c6b1441212a8772ca06b94c83d0cadf6dae03d601459712527754ee348037dbd203bf583e3908754c5" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0x792b0101e0c969be7fda601c282846dbf3f1216b265d7086b3b1acd49882cce5", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np598", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x4f62f1eb606efbd760b849b83f48b5080b0045364da18111e5f81faa74bdf648", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x87930359636f6c38717ff53ce11fff3d2dfe40300a1c005581fd9ece966db920", + "receiptsRoot": "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x256", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x175c", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x6845189fc5fffc30575935e9f8db4c343bcf5001360241b5af6a10c91f5b1003", + "transactions": [ + "0x01f86a870c72dd9d5e883e82025908825208941f5bde34b4afc686f136c7a3cb6ec376f73577590180c001a0e90c53bb3a6b15d32df5ad188aebcc3cfa97a2456a9d16557d3fe649b16debeea01ddee1a867f45c916ba53d89c4dce859812cc7af6a820a44cc6ff58a251464e6" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xc331bb6e00dfa4489c3cbe3840bd49c936bb3eb6ef0424f076e2b2a3215545ad", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np599", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x6845189fc5fffc30575935e9f8db4c343bcf5001360241b5af6a10c91f5b1003", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x62d156f5ddab09f393224bf2f3932e87a93a6c39679aca2f580234fcb4dfb3ca", + "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x257", + "gasLimit": "0x11e1a300", + "gasUsed": "0x5208", + "timestamp": "0x1766", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x7e80093a491eba0e5b2c1895837902f64f514100221801318fe391e1e09c96a6", + "transactions": [ + "0xf86882025a08825208941f4924b14f34e24159387c0a4cdbaa32f3ddb0cf01808718e5bb3abd10a0a0343078ff0a2a584258302df6ae1f2571d9ba89d1f7f3fa8fec4c0611aa2d39f1a04a2a53b393aaa218a9ef7a9f7075470a98f4be9d2be19999a4eb3e1ff437880b" + ], + "withdrawals": [], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xbf47e8a69bb557bccb9c04b516f1c68adaf982a10fdaada6bea4bb12cb40d818", + [] + ] + }, + { + "jsonrpc": "2.0", + "id": "np600", + "method": "engine_newPayloadV4", + "params": [ + { + "parentHash": "0x7e80093a491eba0e5b2c1895837902f64f514100221801318fe391e1e09c96a6", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8fcfb02cfca007773bd55bc1c3e50a3c8612a59c87ce057e5957e8bf17c1728b", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x258", + "gasLimit": "0x11e1a300", + "gasUsed": "0x0", + "timestamp": "0x1770", + "extraData": "0x", + "baseFeePerGas": "0x7", + "blockHash": "0x44e3809c9a3cda717f00aea3a9da336d149612c8d5657fbc0028176ef8d94d2a", + "transactions": [], + "withdrawals": [ + { + "index": "0x35", + "validatorIndex": "0x5", + "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", + "amount": "0x64" + } + ], + "blobGasUsed": "0x0", + "excessBlobGas": "0x0" + }, + [], + "0xf5003fc8f92358e790a114bce93ce1d9c283c85e1787f8d7d56714d3489b49e6", + [] + ] + } +] \ No newline at end of file diff --git a/cmd/devp2p/internal/ethtest/testdata/txinfo.json b/cmd/devp2p/internal/ethtest/testdata/txinfo.json new file mode 100644 index 000000000000..4cbecc1bc7c8 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/testdata/txinfo.json @@ -0,0 +1,3283 @@ +{ + "deploy-callenv": { + "contract": "0x9344b07175800259691961298ca11c824e65032d", + "block": "0x1" + }, + "deploy-callme": { + "contract": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", + "block": "0x2" + }, + "deploy-callrevert": { + "contract": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", + "block": "0x3" + }, + "randomcode": null, + "randomlogs": null, + "randomstorage": null, + "tx-eip7702": { + "account": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "proxyAddr": "0x4dc5e971f8b11ace4f21d40b0ede74a07940f356", + "authorizeTx": "0x64c47531984e4099548b480b5af0bce04ab89d29f2fe7ae36e97ba68d688539f" + }, + "tx-emit-eip1559": [ + { + "txhash": "0xf3b025eaf924500c53bc0b9f0f5733d56b59b7dade1df336ba8b39c83d92ac57", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x3569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f" + }, + { + "txhash": "0x62da81199d8ac0d4231dec90c6085f1153a58eba6bbac04f71da4d5076c9b7c1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x15", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf77c749ecb156f605e2334b14caea388100bed09b4c16579c952a96e90355629" + }, + { + "txhash": "0x7a8c4456e604a0b6210f29c6e68405d2ca5425fdce16bfcc6dfa3d3904b32740", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce" + }, + { + "txhash": "0xd1ec37a2bc2841c4dc61de447dbe772a92284714f03752bc4056eafdac74dc21", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56" + }, + { + "txhash": "0xa2b3275339e1237e6918726e0f0906f7f6a70a069cfefd3d9b5380e67c2d1305", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x36", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9038344c39b01167bfa8e99a6425d34bca24c27ceb191e8eba70ab5a8f719ce5" + }, + { + "txhash": "0xc488c5aac30312fe8365ed78fc6cc12b531f9cfc315e6ec5ddb610eac4a48976", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x41", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4b3120af8064823e074758c51cd6cd0954587c0d94b5b37b336261fc7aa2ddb3" + }, + { + "txhash": "0x7b43a1b8ddf97ab6ccb6dcab385184d1a1165e3c221013b34448223af45fc832", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x41565ae6f06f2555139f444c467d6b709b45180aa0c6b15bb5b1388d55ef952c" + }, + { + "txhash": "0x8954b9d95e7b0d5a726847449419e1cf77a624199e1fa89f311150dcac94b361", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x57", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x00f7ca033c24d91f8fc39cbf0edc8a43192507f93d7316f311b05eeb85921eed" + }, + { + "txhash": "0xb2749d3a5d1b062f85a4717ee5c3a7a686a31b03ecb2e29394bce32e15bc3e08", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x62", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x761bf5fb1730fee0e499bb1806b9ae14394e673ab9c1dc12e95b9d3f1647cecd" + }, + { + "txhash": "0xbf2b014779d3872e5b8ae89c65d8c5912e60c459698f44f7281b9f14e03e6baf", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x6d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x468eae0ffdb87a4dc081a86c494969801637f690e1e1da15fb4a9d2c78272da8" + }, + { + "txhash": "0x1d27789de7fbb33eed6c51da18ee5e7cef7b242046842d42141cfb7f4893b624", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x78", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xdbc7a073eb54d33d8e6dec5b0b635a874204bda1c23234ff0cca057ff8ed77f5" + }, + { + "txhash": "0x48369062975939c17e4695b1368d7a1e0b60d145662ef9ba0b7a61b39c3f2cd4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x83", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x7a9cae3647128ba14914f547c5f27444cd7325bbc37e5038abc31eea45003034" + }, + { + "txhash": "0x7fbb4a27af5e59af9219a6b3a63b8cedf03d7f4601f1cdb83d12ccb85f50d315", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x8e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2df4cc92987ab73b08a3474750456382a0add51fa25f928480762f3d993f2984" + }, + { + "txhash": "0xcaf24c0839480fea158a7ab6ef75a23ef77474cfd9ab3c8ac081a945aab21c4e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x99", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf8b0a158a81e46d2f46d268e7726acaf7c33fc321c36f6157f07abbf7fa49e5b" + }, + { + "txhash": "0xdae00232b88d3b90d09205f957ad48386379d37ac2d5540d8af9fe9d553fdbda", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x85ca3ddf1ae9fb0aeadecd8109961dc5d5eaff16ef7adc672149a7826c69da97" + }, + { + "txhash": "0xa10cd97b8629e989007f80e56895aefd1c1e989dbf217ea151b283f86acb2a06", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xaf", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x73b2b230124967b31546c7e2fedbc5ab108a537ef6d645621fe74fcdc0644b28" + }, + { + "txhash": "0xaea435d689fd6296e3cce8d5804b780ce50074f43d6fe6181de0342698eab582", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xba", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x46765aab85a7ee88496ecde24f93cd5ce361b5a9fb43a2641d77bfbc97928010" + }, + { + "txhash": "0x97ed8f06347509fcd1ad5b8e81c69d3aa2b17f614923eeb028932a7cd68be7a4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc5", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd0e6005ee39e02d654cc2db358df9659d8265e24d7362df88a7df9200438f6ba" + }, + { + "txhash": "0x85bdef644e1d4dd68f8d748f29ff0047b55ec15731f700b2c9a7aec250a70031", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd0", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4323bceecd4ef7216d5b57b9dd12ecf03842ed56d87fe43d0959436f408f44c4" + }, + { + "txhash": "0x81eed80ddf014a4ca8e043b52302f20d4f0ccb6a9ff9b595abcb3ee027977be0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xdb", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x81607ef8d6fd479d2d0f55ec50762ee5fc35883ee5600525ce1e9ef3398d5aa5" + }, + { + "txhash": "0x7ad3bf852c70e27efab2e2dcb39dead02b88818efbbd12b7aa0633541f7b3f38", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe6", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb36949b816cb2ec4ab90f345d0bed84f55b8fcbeffd22198724c45d8a30b20a6" + }, + { + "txhash": "0x4aef6e5f54a5115cffe06cf73a588815fa873ef550c94e89713678889585c6e0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf1", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x40c619388e6393f420e805451bd48b10c670de7d51e916a3ffe5ac3c96b81938" + }, + { + "txhash": "0xee20ead2bc204a4049915c4996e332b148ff187fc4653058dbf0df9e73b451c2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xfc", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa22721490cd06a0e77bc2b085bb4d57e7e5e0b459a2afc65ec4697d51926e1b8" + }, + { + "txhash": "0xc46b84e641877cab5374c169a802c50ed4bbb63a4be91a2d2e9ea62cc3bed0d7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x107", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xac748acc1af284e25d06434a8c1bbbf75bb8154a06f53f75d4f36edb656a49ba" + }, + { + "txhash": "0x38e848949e94f3d41ba77dd36fda8159401263178046316cf1d2321999101cd9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x112", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4edb05f465bc71ee02c59ac9b5b50ddd974960ea2bd7e8cf7ae91c38c0b5789c" + }, + { + "txhash": "0xe1bbc32cee7b6f6ff8477171315df665b211dac38a64c519aa32402dea5cb675", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x11d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0678ff21f84e5213aa8d1d173b3517f8e6c3d1523959c101c75a31daa70ab942" + }, + { + "txhash": "0x9615de1a110d38ec38ef96054453067bec5e39472ce177d0fbc8523b503edfef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x128", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb3750ecb88b6e11e5f686cbacb3d24e61396cef4a1525b30d5a30edc4b3fdec0" + }, + { + "txhash": "0x9393ec29fb5a5d71fceec3dc7301afa92a3792d77a2c1be6a29be162cd822e26", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x133", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x38570ba11cfca6a25bea615c7ec09ae671516245a92a5f8fc61d2e82529454e8" + }, + { + "txhash": "0x3f51ad5645ecb1d7229406838378a0f949a2703afba50a615d7efe57a90cf669", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x13e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd5eb8e9a486b23e10cf0092ca8690e7bd6d6c90932960cdfa5da36d1e1f20423" + }, + { + "txhash": "0x038b847a33bab554aa0ff0219acb7475ab1c51415337790b78a2a41664194361", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x149", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb5e95d5da3e73f937bfbc9b4990bfdbd865c6d3a3b50478657e20b507fac7541" + }, + { + "txhash": "0xbbff97fbb8a0fd1716b8f33e0f5b56017a9657eac41585f95559845293a34e8f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x154", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa3e65c2aeaf352e79173be13e572f691d8d75ea1064610b8418246d95bcc421c" + }, + { + "txhash": "0x72c15fd124c1097b19c923848c9b14fd73511db3416327885c156ad62252efdb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x15f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xcd78e90ed1705eeff092f3df07b16a382082e9c388030ec3188daefa57a731dd" + }, + { + "txhash": "0xc7baf1ea1dd369c9955b15edc0e2644083c227cfdd165f83ef6025ed6b02c344", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x490b9d550a200295b38f2456a42525d3a43c345d2fa1431e770fea9656b26723" + }, + { + "txhash": "0x2e221c13d1a9566863bbf42cc0cbefe015613bbd7e9e19b46a2484f4fc81fcac", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x175", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xcb35fbd0ebf79655e6882326c19855ff90befcd2e589418566ec2e3a1efd65d8" + }, + { + "txhash": "0xa1af8ade321526f139ceb3e76fa12522a5d5cdac78deb81c0f49cbb5b4a9e93e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x180", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xafc44d58dec637206e79248a528189c68365e20afc23410475deb5e5dc69c82a" + }, + { + "txhash": "0xab12c172b674032a76a6bfdf79ecc0846d337953d23523fcb709c119cded3f4c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x1f1860251182573015d583a718463a52050e45d795ec0f94d112206c3fd62e45" + }, + { + "txhash": "0xb5062802b3ebe1a560d0a84ae7405ace74a3bc1b04cbdc0f88a0e894b7cfc90c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x196", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x19fbac480a243f8c051e10225cec11bcb7fb274fac8792ca7e36bab8e39d312c" + }, + { + "txhash": "0x9e3599809a88b599b80114ddf4d2f7c38be757f998b0914954553abc81206fa7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a1", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfb2772a3127ac292efa3da20fad64d950bf973fb209892fdf834766aa8cdc3ba" + }, + { + "txhash": "0x4a2eb0bf09b80def14f483a6175281c4067fd2eb220cc47707130d3b14f0fb8c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ac", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa90642da2f095eb8128f01811cb553162395cfcecbe5b077f12c62a1effa7c82" + }, + { + "txhash": "0x6cc89bb432f442a20c17b618b075e052f9eebcecc39b21776af49a4cff501bfa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x75eb384e56c3a3a30a408622e6f0595d30705efaff129c133effc43c3b946de0" + }, + { + "txhash": "0x509133ac59b43f8954559fc0234228110b81c7272b9db1112828ee03d407030a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c2", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2aee290f6f3f6c60a6985d0150eab487f9de1c47962a779be7343cc0cff270f9" + }, + { + "txhash": "0x900a3e1ca48e9a476a45fe3d0f88a8b40134ca59f902719ff75db2b7a361a06b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1cd", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x41b546f355dc0dd009ac5da8bfd17c8e197595c1c1f21aabbb1f3b18343a0718" + }, + { + "txhash": "0x7dfe4a0c877a5193b0f3180e2d8465ee5f042e420f740edd72139dcbdbb46d56", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d8", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xca27d6fc8e6016df20a295f26b57b2f6ac7a8cec98224571f416ea88c0ee7b97" + }, + { + "txhash": "0xe67e670bef823b90351ae0811db0c4b167a6549543345128309c0281ef8365d8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e3", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd1a0570d06c0cc4198b4475cb892ec41ca3239ff670666bcd97faeb62c1db6bb" + }, + { + "txhash": "0x8f376b2834fec36a91e856fb0e7b85db94d2d764b6131f064cbb9d796bfb2a19", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ee", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa6602e59691514abf1ee46e71c1f4c7411eddb76e687f8f4aaa1ebf305b97f6c" + }, + { + "txhash": "0x66485193e1246cf388f2f6702307d7ddb4dc665b6d98a61b1e603a667b62254f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f9", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0a5a37a1db2e0068ee9791dbe377a74c4f7bc36bc27af57ca7e49059127e8eb0" + }, + { + "txhash": "0x487fb2870d14ac9e4df7b20b32afc3b499e69233aacdd983714ca9a879a690ad", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x204", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb50dcc47e811f76cc69369cb397936a5c70520a51f33b84f1b54591da145e823" + }, + { + "txhash": "0xb4226c093edab69c51ae8c63ae4572b7a5084fb3943e11d192b0587480f61827", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xc6bea923a54f8cf570edfddbda896a2ebf7b53d33b1dac8914ed024ff0621f18" + }, + { + "txhash": "0x4d1eb4c4f40faf9774d150502f66f0c95cea371c61340d48fdbda852d459716b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb296a1364260e1c8d47bcf2239f26b6b909a0a7687250af4af545eff0ea95ed7" + }, + { + "txhash": "0x6adc552ebbb9b37ef662251ae9625857551100f6560033b09f70b7f3be3e673c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x225", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x142951613bf93db71eba96bb48c57a42168fcfded6491e1229ea2b8570f77e7f" + }, + { + "txhash": "0x65adf12f5b8c2e24801a6845adbc615d2b58294f8019572e9ad56921f34507d2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x230", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa99b8fb9a23a3a24ef3330a371d081c4158ea1b75c9af3c2bda5440857bc8237" + }, + { + "txhash": "0xf58d4acaa927394b8be4a4a5c2f8594cdd47d6b994f86b40190628fac65891d0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb9a419e057752857f289694284890ff1fcbfbe5d736b5e52bb8568e077f49883" + }, + { + "txhash": "0x61d683cbcc73112161fba6dfd3ec9c70339854e7986be731313162e6a571c9a4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x246", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe0fa1a4e967a01f4a84aa6715b0977cc111d3cc0834c5d04f0f1d87e0d561a71" + }, + { + "txhash": "0x9ccd92d4101101b304db4ed5b25e14444900774ba9a8659f01846da9b8f95660", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x251", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x701960547b78067b00883157f5e9fca3bbea742385129f0db7e1e69ce445dfef" + } + ], + "tx-emit-eip2930": [ + { + "txhash": "0x76f2917dfdad8c636c493258e672938661a2044a05338bbad7d14d446fae4d45", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x8", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x881a8434f98b103a2ee48727304618ca54234f1474c44bef70c21accc4dbc0a7" + }, + { + "txhash": "0x30fc0bab35d4325db37b953f5cf26e05f2c18593adcc4c14c8fb04b28501c2c5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b" + }, + { + "txhash": "0x07032ce65db029864ffcc0c3b00ed01bf8fa90da0efc781ecf517920ed762304", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb2416e7ca12669406e6cd5154ad5177841b7d0cddeb2760249c28e1aa151f970" + }, + { + "txhash": "0x61a1ed16c11ef4e4c8036233b87753a761be8c9702514ea87fe3bc82345bbbba", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa" + }, + { + "txhash": "0x24a0922096c6a6b34668d0b06c4724db961e3b4c462c6fa645517e19293ec37d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x37", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x8460e232c64e6cd9f816c02d855c892755984ebbb91592e683cda80aaba4ba22" + }, + { + "txhash": "0xdce27eb7c2b44d61022e4923329a9b18f0dd26093a88dd5efa772fb1e52273eb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x42", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe7d55978188f31ab090b1f10d8d401a66356b11ca8c296384a0a51e36e6ec11f" + }, + { + "txhash": "0xdb7b8df9ad36fc8838cfedc2f272cb205f7ad2860cd1f5ac5e739ed1a2973784", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x24a4daf5b3cac3bf3066902cda09da0fc862e0a6723c47981ed601782ad69079" + }, + { + "txhash": "0xccf0da8511e51af458ef4ea7734531fdb77b8bb48191efd8257cf6ac16daf3f6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x58", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x7c24a68c92e3b68daa153ae82eff9be1ebbab973384e0f4b256f158f93c5d525" + }, + { + "txhash": "0xe78dac2c962f7fc240909233c4b8bbf47a6ab4b9b3b4376ecb92a4eff4e147e3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x63", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x02bd9d62880450596e11c3417f2644a81f7cc233a05394bbbfb58428ed53f413" + }, + { + "txhash": "0x2e5f23d99b09fd9f81f2fc7013c3a3bd8fea88bd6df07e2b236addad4e9e94e3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x6e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0dcf6219856f226889a2440b388d8e15f5df0eb64a7b443f3a7a5dca7b87b0f2" + }, + { + "txhash": "0x37010507fe716034116f8d945ce2bc35d3718e7c10b78ba34e4ddf780c6063b7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x79", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0f624930606bfcd2386d583abca6ab10227d71fc1633fea53f94bd146c152b8f" + }, + { + "txhash": "0xb53c6450c32830cf3be18b73370a0a290a12acbf4d734e8ad8785d4742e8035b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x84", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2daaea9286d7edb7568e0803a61bfdb1e1506156d27e93bdf1942564850646c6" + }, + { + "txhash": "0xb7b48df8d1f44601669025fe789c2a5aa05771ac35ea90bd5bef536ecdc4f92e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x8f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfaca663a6ed04f52c0e7a8981cb438545f614a2cf84f9077659d0fce0045cda7" + }, + { + "txhash": "0x938a5fc80f6fbdf6d5c8838458e4695f0b8fca8db7fc49ead340ed4f0ca2b3d3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe6a5227fabefc934ddc0a3142a50747ad1157ad0829ec0bbc389d5e22e3282c2" + }, + { + "txhash": "0xe3d00022dd63b6705c7eab12a15ad5f279b99eeff670bf4316d4ccda0045f324", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa5", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6a99e5276c6ea0c0894cfaf376fbbfdc736b359e1560a77365c14fcdf6cbbf53" + }, + { + "txhash": "0xc0f5f7053ddfd90bf909cba8f2d0ba8ec3f5ac2f9efdf7d44f6e632d02d77d51", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb0", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbdfd2b337ff30e9e15c09313bf796d3c75177943e0aa0445f479fbd2dd5c1d6e" + }, + { + "txhash": "0x06b8f91efd631d83bbc3cabc57e6e4dd311e638f32c0bcd0e2bde98454cde233", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xbb", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x23c2e06f633f91e89e0d95cf87dce47fe1cb2b95434ff45773f1fd560ad2dcf6" + }, + { + "txhash": "0x9dbd1ff97745b8fd334b4a2bc75ccaa32ded0c9bfb954baba7f5d9bb7280e6e7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc6", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x3c8110e03f1b54de6085ff899d0dccd87806b788d1ef3fddbca1de4c356266e7" + }, + { + "txhash": "0xa214e938f072e94479207b9fb4c2c5a247acdd9d6ae0af03d31783495bd82219", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd1", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x5d7c0426d6595c1819b962730e5d2a44644703ebd960ec3ac51297ad937692f4" + }, + { + "txhash": "0x24f06cd0fe391480eb99730d94c35fbba76cf55fc51c58a6afb25a1629e86964", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xdc", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe207f028cce1624a1fc76c56f1794c2704a692c1f214685291d618e40733ff1b" + }, + { + "txhash": "0x5a93049aaace1c9fdcfa440ede274acc58613f8476bfd80d17cc67a289481551", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x18fbf0ae0e2133584c461cbd43169854c7c7e818e8b5779892da244f24d27b56" + }, + { + "txhash": "0xbab062324e2bd4efa01fba78c887d8893e40aa9cfb2af72a115877cdbba7efc1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf2", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe8a78860d5ffde377f4eb0849fe59ed491d4a12fd51edebc2bceab3549d83463" + }, + { + "txhash": "0x88411eed62ba108205b74c16cb97c78eb5e670c73a462c81892decf6caf83b48", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xfd", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9138868b39f601dde19efa6e9a154230a51805e9a6cabaf28fed5163aea58328" + }, + { + "txhash": "0x79f84618f37ce72b674e601cb0a4305f2995911efc8cc403de6fee482f34acc3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x108", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4348597bdcdee80c8e110d94f771eb7edce9c8691b2f90b71c0d11f729f086c9" + }, + { + "txhash": "0xe46b05ec347dd18d056a9318a43b3d196e0c493c56cda202b97ee26f9b132af1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x113", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xaf1c2654b2e98e9ffbb02f14d88617a245a9a1679162be29776a4836185dc2fa" + }, + { + "txhash": "0xf67bb9d97909efffb323cd48f9547bf08c5051bf1bb9ea58c2e7e9929e9b5a0b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x11e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x81260b78e72018d5773b6ba1df006b09a387fd733e59ad152c119d9848ecf1f9" + }, + { + "txhash": "0x49a00cf1ab0cac049709ad4d7d7a18c5622fa59abc25e0f33f3319c154f27a69", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x129", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf9b648439e7b876f9aa1b178fc6381f44bcaee23754d8da33b2d44e78cf47bb1" + }, + { + "txhash": "0x5490dad7b381c41f8492dac1d97b40465a0291c0a9ad625c4a53d5ef74ba78e7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x134", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbefb4ff6aefe6c4d85158d11057517eb9cb1e1cae3e9d2d9c90ff40b2cceb546" + }, + { + "txhash": "0x2f02d65eb6718a9fb37ad3ac3b7811d45a161b9e07681b8b17892929212caa94", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x13f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9575996f3ad6e9709d7122224335451a59395327d297fd7967004e8dc1391308" + }, + { + "txhash": "0x3e1aacd5bbb49d73201c1b91c53abf7a7dc9633d7e4a9eeb1acb248cfd6299bb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa791ce367786fdc4c5216c8b94dfe1076746e058166dabda25b5e6a3266ce857" + }, + { + "txhash": "0x9eefff22b8fc296d66b4c0892dd021090efc184974347ba86750265ee81f4967", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x155", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6df5983ddc40ef2c7ffa2c79bf9402568f2ee0ec7b675ca15aaa20b536d2a5f2" + }, + { + "txhash": "0x1c330cf34399c5116a1f0040282be248753e2b3deadf05ad719684e06ff62a75", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x160", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x40325cfcd159fa7bf89d8c252b6ff47cbc17aafff5e7feb92014d00285484cfd" + }, + { + "txhash": "0x97e229b0d274161ce5acfe05d2770f44e1dc5f5c2390e0b001d227f01e1d56a4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x039a54e14fa9769f840074356dec3dbd47c3588fe71fe942fb7aec5edfd0a096" + }, + { + "txhash": "0x68e4f0d419f3f18f2f448f2a2a85eb33cedb8eb9baaae0c41052b3e5c5ab783a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x176", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x927e4ce70caf344a9e108ea8803cd49216852109c3e4922dfed2680e9f24361d" + }, + { + "txhash": "0x4d02d96d7dff2017f1b95c045a61000ad1c2644f342fbdfe39eccc70f3feec7d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x181", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe2a0b166c03b200234eacf5eaf9ea11746c9bfd00e72f55d8cab76e0eca7195a" + }, + { + "txhash": "0x731cb5ada167fa9cdb4b85e62eef892890f5f4310f548a6928a0aec9cfb361dc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x92da59b68bfd8a9c1cb1ca6a302ee966f829f2727a36823b0dc7fddf7790a108" + }, + { + "txhash": "0x6acbb0bc12e52870c6fb5240ffb771f703d91f3d933ecb4a228693174787552a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x197", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x677a6b432bd3361f469c2e051c8e09ea92ed0d049eb563118ff8c680fc93a2a7" + }, + { + "txhash": "0xd76726d4614e485b18408bc45046136e9cdd2d897485fe4e4dad69c9e849c3c1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a2", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x250ca62bfd18dde43e70bab089d01d591ce6ab28978434258ae1017c72f12b0a" + }, + { + "txhash": "0x238bb24148c083d631203d405f31779bf2f8cb674683d7cfaae0a45f33c6be8a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ad", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xcea8a961664f986542ebbc496878d052736682831cd7847bc769ae16e9eefb65" + }, + { + "txhash": "0x29d488a18542c3622726b62f9e223c8b43a885c568d726aee959288cfdf7b3ad", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b8", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe5f4774cc356a99594f072de9e8113739c65fb51b5d0fef3f40627cac02dd963" + }, + { + "txhash": "0x1fe0e80aaeb234d31d5c78f52564efda7ffcd74817e6231c4598eadab68b8dc6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c3", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6f9ff000b2dc3a554bbbb882ebc7726b700eb7afea141ab16e00a057f314d0db" + }, + { + "txhash": "0x05e939d864b0384a980615b891a60e3c7fd6fdd4f123a03a506c3deb1cd10bef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ce", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfd6fc192aa03eedb6505372aa1dcda93dd186fb3eded0bcafdaa4f2829fe43b5" + }, + { + "txhash": "0xfafb4b8d000ff550dbf4a1e3cc6b1f06ee2973d10dcddfedf7587ea72feefd5f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d9", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x506c0723b5e537632209d4a824a6073d5eccadb36b9b8717b2ecc9e2d5cacda2" + }, + { + "txhash": "0xcd68404c240e22562bac6dbd9ac85f0807cd263e8b9b30ae67a0d515cae30cc0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x27edda711baed4a613c44d8ac8678531c9938eea106e7c5649e438f3d24b8fe3" + }, + { + "txhash": "0xf12ae2e38e424be45a18c6b0977c009de69f6f3993c34bfbd4ed40f0501def7f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ef", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbae4f13d358194452066fc1305964decaafbc9c56a2fd16936d25d9521a57a19" + }, + { + "txhash": "0xe8a619cde23c8746d4847eead4dbe79500af69f978bf0d7b8470432eef4a5a31", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1fa", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x989e02934facff928d8e788f174ab7d48838c62b07d420a8527cb7eaabdbe91b" + }, + { + "txhash": "0x2313cd696ec9c6a7b5ad21e9daa106264d9c382c0e3a067529a56d81a4511c96", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x205", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe891146f52235abb9f53919fc0e41a678d5a8a807a2247177d67539a2bcc3d1a" + }, + { + "txhash": "0x602659a646a466a7044b066ece12a8ff17e34c2e6a4ca667bb794933f874e561", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x210", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xab15322a52f3de5dda0553d7abbf171524cabb9c97dacea8806c750361d472df" + }, + { + "txhash": "0xfc39bd0e3451001fe930e70883bb945d8373dd99baa6964973d8aa3ac74a3d34", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6c172610999b0729fbb6bb1ba27e7a0009f1b584ad6f8307d3dcc7d24a180874" + }, + { + "txhash": "0xb1d7b6a1f9fc6af8bc3fd36d72e4d8682167af0c52dad7c1d63e755ace3afc3d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x226", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa344ff63ecb6c6cbbd711b06a84844147910ef79a57679958664abf4af9938d3" + }, + { + "txhash": "0x7f1eea64084e269d16f948a767155c7c0111865f58b9e91c3f7cbe30cec180e6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x231", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x88edc52ba848622b1d92e73d2c311c1c83420986c621546fbadac23c3428c570" + }, + { + "txhash": "0xde6513995c2989b0a314800a65da7a5aa3d3bb50215909aafcabce6063ebb69b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x7a536b71187079aaf5462b7d483063e3d25cea8e3a6790ebdbb284666fe81068" + }, + { + "txhash": "0x1669770dfc06f40ec72b287e27938ff69b1e3055d68ec6e33633da92108ddda0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x247", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa0c2e429d47e77e9b7c98c1aa4aefb731206f41b64a6587678905a86d14a7d75" + }, + { + "txhash": "0x50277d3afe5e049a21cb992cd83e0c069dcc5e5bb97963693fe480cdf48c204e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x252", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x48ca1081e747a7f831228b894dd5fc401d64c6496a2b9e578dd3c59b8f0df2cc" + } + ], + "tx-emit-eip4844": [ + { + "txhash": "0x87630fa02828dad0c04ea8ffa7c5d742bf6aac72b8b0a7e72a28b7d2c0d9fdcb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x63cde520fb894276a981d2c9099bef9beb949121c1be98f3abe1b721d880899f" + }, + { + "txhash": "0x75118b029d56f192f458f1a2a38238237f19c11f88eb97e0483ad26e021ae15c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x17", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa6d01173df2aa437fb0118d181e64a8f8e05713fc01c42fbfd2250516639ae95" + }, + { + "txhash": "0x99ba6434209d91a5fc015f2c409877d1d5567287b64c46f984a64d631efa866d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x22", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe94d0b2545ec05c3ce3431c4d45c3b62fcab156563e8308fae1ebd27a2810c1a" + }, + { + "txhash": "0x17eced62882b234b280f2382a0225cf218e59de7124bd3d7214fa2da8b766188", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6551251b96ca27f3af8a2c500d6dd1ea5b9ab7002b3d923b66db0493f4a7123e" + }, + { + "txhash": "0x7cb0ae261889695ae99b64ea9f6468a493f87b90fccf073761daf15ed4868551", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x38", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfa29cff134420b6526f434ab690a9c3a140aa27b8479ae3d8d83b6c799acbc23" + }, + { + "txhash": "0x0e6a717775a24331736f5062466715bdf7a4330466d235a6ffdd746bffdcaf22", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x43", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x412379b7f583981ea6e84408cba75ced69039e07ce9cdaa32a8a9dac997aaafb" + }, + { + "txhash": "0x153401e45e9053f121b36d88763bec1515553e3762cf5f46f4d125b0700435aa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x87dfa85154edde1626e3a09196eab4b60f71887ec7b50ccbbe7ec76c0be6bdff" + }, + { + "txhash": "0x559f888f55e908ab3f4ad9d0d693b4d572ff9ab00058df6465cfe43722b45c6b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x59", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6e2466f20ef20cb42d216dbf4a0d934199213e9b8d75bedc9c2d3e038a587474" + }, + { + "txhash": "0x154de45bd8bde35c256318cb983131890d97b99689ec175d686cf88742e82fc9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x64", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd75c9abb1414054ca164bba2f8c09917fb90c24789feaa311ee34a0b3f4a82f0" + }, + { + "txhash": "0x67de1da7ebd65a1f384814112a0ef54c3907e09e18c8a0ddb5630a6883a3c8c5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x6f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x165e0e0cc13ca53c5af4860637550364c5c90a512906490ace14efb534873741" + }, + { + "txhash": "0x478293db9f43eec14e4a54b90cb07d6e85e72095f3729d3f80c7e8c33f4b0f19", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x16bee816935475cd45501fc5fd01bf913f8ef54330a43d80ef73101a4c728b34" + }, + { + "txhash": "0xd229b870b66a6c5452c88260ef6cc32ffa71363ddbd09340ccda6173af447fc8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x85", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xaf1f0d50933e49dd24b61a24c670809a5b875e3b746862636288dead8579dc4e" + }, + { + "txhash": "0xf70f764ffe1e6c2e2770eab2bf0137ece8563607cc3578c8b0e76709105553fd", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x90", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x5b300d53be5798f53b472dadb8966674169ff3e8d08eccb3f065bd827abd7b77" + }, + { + "txhash": "0xdf9bcc5831652ac45ba42e4128e057379f8c3b6fb6aa602ff2c1e490ede09321", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x970a64830f255bfc38886621b37a7f1a7284bad6c4a04b6a2442ad212e19a6a2" + }, + { + "txhash": "0xadfcdf36179a98c790d47379913a53dd22487dbd7cb1110da530a0b93247d6fc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa6", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x611f5b5e5ee263412fed40f169d0727f4e6e1a2bc94caf668d2bcf22cddca8c1" + }, + { + "txhash": "0x89a19e25a99d212f59b3f9aa2767bc896e05ce9d1117fc048ae4fcbcdc83b8d6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb1", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4632fe8e9579f33e2e42e68811d49a09ad1af1f01a68e7ae742f765e8e797ff8" + }, + { + "txhash": "0xd20b4075e81e20237b969c5e1859b24ed57dd08e7995dc33ddfaf3d13a5077a3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xbc", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x205bcc2489f954a3af7a16da4d6042a75fcd6eb69b848c52b3448acb24b23580" + }, + { + "txhash": "0x5836c415ab49b17a68c21b26c484e9a2a7d6ed3ae02d915be819657b2f0d87b5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0a2bc3fd72bd3f8bb7f1de9a7dc9e928a7c6a831237124e65c60c25f8348af19" + }, + { + "txhash": "0x002ad9234cb0fe05d594ff3261c0c0aa9834e884b9554dd2e50796bfb43d2115", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd2", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4c3dffb6198347c61671fa1fafd5d80f384ab67a494f5c7bc7428bcb6ca5a445" + }, + { + "txhash": "0xf31826ea55e1dfd9a0ef79e69c038c18ce2613ab7521dd40278a57f5abe6597c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xdd", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x8a38792846734575025e5114061b62006064b0636caf6733294eb26895bda2ac" + }, + { + "txhash": "0x8d92d60cb82c87fa52373745142a7aef3a4e61c4ef8263143b72921ded517926", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe8", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe70ed54757ba10a0b95454f6483d3d2e11613828f13d57d50b8a3a98e2c8df1c" + }, + { + "txhash": "0x8f92d8ff45acea30275dfe8b0db8275ef2788dc98e2e463f95b611c06e42605c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf3", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x427b8ffdff6454ea85c8251407144400ed4e693ffb6a74f319e0238c0e72afad" + }, + { + "txhash": "0xca302bad2ca8f5faf8b03738527fc4336d676426582ca7325fc8d056223d0800", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xfe", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2dd51e8325001014c6845bc5ad51b134ab237f95ab18da55cabc4275b029bf3f" + }, + { + "txhash": "0xa96c411f76d0a78fd803b9e54451f18c325516bf7f2425dc13a186087c7cdd6f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x109", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x321c62425869f150c2cb7f489691c3e5cd49f7cd62d07ecbb7477c4148aaaa0b" + }, + { + "txhash": "0x5453ca1ac0d4597813a0719201d71fbaf656645760f2e9552963e5ee7bac2713", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x114", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x1f6ebf3e4d9c96ec86b866137bbec9bbb56d188e7126babfccc6394fdcc6a3d4" + }, + { + "txhash": "0x6865e9e71c92547c91d69f78d48b135cf41025bcb5aed177989683f6b747e660", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x11f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9ebbf91a66183d0d37b03faf46daf8fe238c1aa2b24e6663dc14e50557d432c7" + }, + { + "txhash": "0xdaf6cde4356d00a862a0c1c651703008413f3ccc4d00f9046fc83c09ecb1ec7c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x12a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x94605c950838b2b0b1ce76f58acfb91a94c2aba787d02add7187360989745a4e" + }, + { + "txhash": "0xe72dff0e31241074f1696cfb82a60f4ce97103508edfd854fe2e8e61a694bfa6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x135", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x3eb32abcff52bfdf0887e9aebaeeaee4a61b76f2fbc9a183c2afc8552d46c3f6" + }, + { + "txhash": "0x140b3630a28806c4e07ade0b9ef16d6c46fb643dfefd197f8732ab6fd1a146ed", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x140", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd314fafd686fcd729a24ff511ae5e19248bd6ac6de8c28c79918df72de20e63e" + }, + { + "txhash": "0xdb0d10d5fb34e5ccf5b1e3bb0eb7107a0772bbc160430c02c8f9de9f1b58bde2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x951b3b37c2a87b5a67918e750832a50c5565298a35390bad3ffffadb2f7b4afe" + }, + { + "txhash": "0xd7268bce9c920c807d1c5a4bdd9ad35e6229feba835b3a0ffdf1226bd47e4f40", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x156", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe067f85eba81feba79bf640415c11ab4448d5cc4a41652fc0a200be4d2661786" + }, + { + "txhash": "0x94018987b14bf2d6796924a52406f3659776f92832953fdd62d44673dd7e817d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x161", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd73688caabee79f6ecf3a0b092d26e639b7e486e45c00031db80d3d7abe8c683" + }, + { + "txhash": "0xe9d9cd83cb08f1dce82791973d9cda526004b154ab7c41c2115af0db4f9c3494", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x945c01f307d13fcdab0a2a3a4c4bd5ebb69a00c3dd59896a959664e01ce10695" + }, + { + "txhash": "0x9412fef1c0313b43d6bcee24f8fedf864ff075a158b254e1f47250347459935f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x177", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x3f410a22d042d915c50f9269337a2bc7155f86d79bbff1721d83f44153635ac2" + }, + { + "txhash": "0xe26d038ae4f3490bd88bffc6dd8c673cec148d00d1332958a94e0155146bd688", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x182", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4b85d3d5e4e06787a4e7e6d00f4e2f6d7e0358d9e511177ab584553d4ca06038" + }, + { + "txhash": "0x50f46bf3575161f98d3e823b1e8708627ef2c2705e9fba8b43de84032d791306", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0c8e91bcf03d65aedba99f4f76d3ff8cd007668948ce12daf4dded4761c7b19d" + }, + { + "txhash": "0xbaee8142b7fd3fa6fa047a67ea1d12b9e366bcde62535d93534f32386fda0222", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x198", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x82a4bb68f7522b711c9f22b00f9c5e050f52cb2bc5f0f50eadcb12a5f1c30839" + }, + { + "txhash": "0x168c04757e530b0f6a19b88bb769693adc15ac857c48a2aa3fa67dceab97a484", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a3", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xce87527a0ad3ddb4d0d57d8077e84d48a6f3810f2a5672143d3b6969b0f86d6e" + }, + { + "txhash": "0x95e1fd4c38074c94083bed06f882b6b2f88364de3413f7ab8fd47a57cfe239e3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ae", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe3cb3b98042d005e52e8bbbf49b25e11be63ec7c63ae5a5043e44c545fce633e" + }, + { + "txhash": "0x59b762afe595324d884387df2e79ac368fe6e8f5a8985c913b7f447459c91b79", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b9", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x1fac03facd67f44699ff86330a7f959ed3745add76d323f4832bc17c35be45c9" + }, + { + "txhash": "0x1a11fc2d6215e58d2d50ccb49c641e0ff870d7eeb54d7315b4151031bf9cde4f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe4c7ff156c2f31d046217715d0f193c8a6b3a7af6341d6abe0e28c49d1210638" + }, + { + "txhash": "0xdb923b2884944f8adbf8a4e771e4001de4b8da897191c7aa9a9153338e6d0a78", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1cf", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9225354562a563158ba2ce0e86cfeed7fde0ed27c77342aaea09551b9c00ea19" + }, + { + "txhash": "0xf9d3b87c7fc9b4c13eeec16198e8af4ed75c954de57fc5d9a9faf23a6607642b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1da", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x231eb803c34ec183e74b466c105b5518b554ce215bbc31bfa52c384138b8479a" + }, + { + "txhash": "0xbc52633dc609189d4ff57b01d62bdb08f9d72ffc41b56948bf14cf6e6d4155f6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e5", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x17f29f600f5128013ce183ac10efc609231aff556df37c8f5d6802c1240c22f4" + }, + { + "txhash": "0x7faacc820e63e7d98aa1bbf4f06e6b834ea0c09f92cf7f0215b9a362e626dee8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f0", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x8405cb4703a08e5160e343c37d42df5f045091f6b22664b0ec3f587df18d2d82" + }, + { + "txhash": "0x44982cdb60b916247d171d4601a276d35fdf2b4609b8f284c9c1a370d8b83f9f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1fb", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe865c3418b47b88e94c28956b326a799298fb44c62a7a6bb55fd991f7c0442ca" + }, + { + "txhash": "0x98977c7f5978be5e730e77d48d8c6a424d8fc5e2dac8054091fb267d39c7f283", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x206", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xec200bf1cc6a2c5d58960dc3476cc4794ba1a9fca2ac3d09b63e7811b7299c3d" + }, + { + "txhash": "0x571efdba0d0d1d75f25fee27437772f66e3b5eae7b7360d46cfd10f543a48714", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x211", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x09b79212fdf6dfcd322d6aabd5ba752b962d7e575cf299112bead28ab955f4c8" + }, + { + "txhash": "0xb762b9e7af89f7a7798ade8f2bc6445262220ac9938dfcc16a6a6594d1e0db89", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xce285eb20810f2d026bc0b62faf3735df2193835ffd85df244ecc2df24f43b00" + }, + { + "txhash": "0xd6145f9061be63bed4d88f14de088ca1ad8e4b928cea570fb529d3ea6321b6e6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x227", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf26b2f780c4b92b3f15f1d6e90f7d5a176b58eefea6f0d9cf2f8a0d1f86a139f" + }, + { + "txhash": "0xbaf1e1bc18bad6d7788791cbc1ae5bb91e2dd4a09c50c999385a8c1835414e35", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x232", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xab5140d25dce39c42d511dba633cde87b45465d48aa4ec211b27de998abbadfc" + }, + { + "txhash": "0xcef14bcb034bec993d8d12107db4dbdcf23f730dcf5d42091ce3a1ea6f7ac13c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xc558392238c2d11cdd04a6ae37065f3541a22140500f92c0d8006ff95e8df595" + }, + { + "txhash": "0x3c84318e56935f73527aca010331231b010ad0903bfe8939994ad9680f6d3d25", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x248", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x69626497767f58c222726a6a3c65050bcfdbb9346f9e5d146ef02bf59275b3d2" + }, + { + "txhash": "0xf654d5f9c472097f745521cdecdd9854b4c4f1e23c7c027121724d67be42cc42", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x253", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xee0b894f33a9643c94e4e2237077260f4191c5bf6bb3c17a2212b86af6f67df4" + } + ], + "tx-emit-legacy": [ + { + "txhash": "0xc9e729de373f2fcab9ddd36402c047cb117522ef48b25435bd415b9bcf794bb9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9" + }, + { + "txhash": "0xfe4c001ff9cbf3338dd712296b718a6467ab734617ca225ce7ce4e3a9547be41", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33" + }, + { + "txhash": "0xffde4e2fd1cd2f5e51e564b08216b9ef80978c586098221cd19f1ee742db1c03", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626" + }, + { + "txhash": "0x965195498584dd1a4ee5ae7d60e5bb4dae1254b2ec61023f7b86678d75643201", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x5b6618f0def0d634d51118d232eadc26ecbc8d54a7efaa225afc472f0a611c69" + }, + { + "txhash": "0x209a012091e6c869a96f21aee8de7ca44490a593d0f619793b961b2ba4a777b2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x39", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x349c26db328204bd2527eb45003b0039d5a636f76c8849bca0b34e8fb134f505" + }, + { + "txhash": "0xff76c1915b804a9f4abe17f6564b278ece6cbc1ceca0604856e7f440cbd6d9c8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x44", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb66fab7dddd4d16174b227a6f958d7ba2ae8ebc52d763b02c1ff944362755e6e" + }, + { + "txhash": "0x39c37d8cff047f5047fce694f7703b57b08cf414710cd94fc3daea5902330559", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4f", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x780fa5a814a83baf682b2f170be956308be6ce1bf84ce68ca5f3c59cc41c7c28" + }, + { + "txhash": "0xbac05861c5a87e48448ca240659aca18658a08c7d0b6318690809b0c227470db", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9739ae7192ad23a41778719941582886701a0830589c7ebfc5db094037635d82" + }, + { + "txhash": "0xf24d6d5bd0136dc7a2cf4ce1e2daf6191b415af43dcaf6bf1d43ae69ef2a306c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x65", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf5acd98a17a3425f113b869e0dd03f82ee696401d2e7f59e8902610150a95a20" + }, + { + "txhash": "0xaf83fcaed15f46e777c9cb54fd6465f00dd6d929c556bd5644ea39fce51be74a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x70", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x5cd04d660080fb51a0cc8df0d716e1bff4eff98c887cf3274aabe7ec53dc3615" + }, + { + "txhash": "0x7382ad28a6589fcf07195874a36eee8f4c5fa22f3288a1979b374d80e7c6fb88", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf199b2d65bb711d578312320d210574bcc79d63c841d7dcf96ee3604140a7353" + }, + { + "txhash": "0x730f124954d2b20c9ebfdf6715da7192a570450b485ae60c12a102fecd80d21d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x86", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe9bc0af4e1917255f83262d4d61622be8b86fcb24a5810c7b592dd6da6861d56" + }, + { + "txhash": "0x69e193cbcc3231501957748043aa48e52b141d0fa38dc6f5027e06790e3088fe", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x91", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x74871a06c400033dfb8aee09db8282719447dc850ca097c5e240f67a2fd7fec2" + }, + { + "txhash": "0x375b37a5a1fc955be827b5782601616fe2c2f420728237644f93f6ba41aa925f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x32eac35ea119adcf265e25a03e27234688fd743982f4ea87940a85b601b4243f" + }, + { + "txhash": "0xbec707c5af50adffd736ffad61ec142954a1a0c79b64b7bc7d826417ef746b1d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6d8f3f1992b15fdc2a757b2b99a8a3721589fc2e31188ab7620ca2884102ece5" + }, + { + "txhash": "0xdea7d229c8331223fc55f26e6db29436721e1d94181fa4aa35ebea2f52250058", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb2", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x10ed5dd66ac107d9c27405dd97b947d333696bb8749b7a6b0890b449d3bf2238" + }, + { + "txhash": "0x84ac82e58add797c823abd8d3b4f4a20665dc4068f300be3a9459bf2ef456ef7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xbd", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x8348faa37f759999e3e7d161ca60aeee74b5c55075e626534a26da3aa8962a71" + }, + { + "txhash": "0xe0ca84624d60f1953d23b326950059ef3223e3330bdcea93fac344ec82abc168", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc8", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x228c9eabdaf185c57233f73fb31db8870dd1d46eef92c3d4c5a5eba1b8f73f00" + }, + { + "txhash": "0x099cb6b36a37892bbb3d51706996a094a1415a6f33212f243865b875b72e2b8e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd3", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xee9be26249f0e23118ea14c2c58ab3fc7e42e888edb4b1de6de4a03e0b793b00" + }, + { + "txhash": "0xc2e05a39699ee47ddbce4e95a5340c269f1ee97e5a7548459d31ad6799c0890f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xde", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x18c688de10e38d70bcc478405df715df76bef7c2783e310b391dc958ab5b0901" + }, + { + "txhash": "0x40f57b0347ea5eeea424e89e020452901299918adbba53ac7638f90ff17ca735", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe9", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x656fd2851f3badaee7500720d14437294b0fcb76990f68895b487132860e635a" + }, + { + "txhash": "0x96a0fe2e43927cf872963c776aa100c66f2113175962fc6086791c32ae2733cb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x70fe2e29e879b5adeef12bf7a782c3fd7815b6fcd3defad6eea94b8fac090e8d" + }, + { + "txhash": "0x74a0161cfd87a7d05de5e037daf133ba5ae70b2a16762e851241223c57747d7b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xff", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x95eac6698d094a89aa0fbdbe4dfa56a92b928657bfd2a6374fdd5ffadfd8ebe5" + }, + { + "txhash": "0x5ae569d9a62af8934e450e18e1f228f47122ecee5a989786ea8d5026924bb1a5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x24562ede5125f88e7d44659502457e8632f0cd29dd768d7ce337e567830c6b90" + }, + { + "txhash": "0x6ec782b355abd516c6fd977888a21cb7aa40bd801f5fa617d24125c2a64b869d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x115", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xecb9f805cd314a9aef8cf2c51ccee54704c5cdcb0cf745bd3411c0cfd1bb2381" + }, + { + "txhash": "0x7adbe701b69f8e23d502a523be257949189f1c64796dcb2a196b1a38e0bb9fc0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x120", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0e207a83fb16f4e1d86cdb18c78df10f272b8c9dfc773d8c636bf763e5d86ede" + }, + { + "txhash": "0xb906b20d68d3e9eab03429a2138b01a70b3849e38daeffa372bbb2691a65d4da", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x12b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x1098fa447b36d691c6d8801147ed65b27ab8c9667e089b59f1a1cdbe54cddecb" + }, + { + "txhash": "0xedb1504025eb7f6b7726435ebd218617ad192c7b1c1d91f5fa391e2282fdd888", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x136", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfef2849e52369d74814504a0592be1651fc3581e54b57283fd34053344624f83" + }, + { + "txhash": "0x18ab4d8f2762ba37f4386d2b2ccb442460fe99bd12bc1e64979008300b1b3524", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x141", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x304f1607803b1445143f85e860e6837543043e4a7ce83fb6c4b98a2b57a5be44" + }, + { + "txhash": "0xeb189808d46e050503dffeb59abb4f6971a926b2ce701d7a6fc2858a62f9d656", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6b5eaf5499e02713812d712b5b5d3ee95e185212f6a71cc9a583a971cd861a4f" + }, + { + "txhash": "0x644010d9403c3e434feae06db0943ee0e382a7a16b3534738ec34608134463c3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x157", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf4770d7a56ee02b105688173dbb647939e9168262a4d14b9f6a6efe19b647388" + }, + { + "txhash": "0xf75f7d6ca00fda8215c4f48052b84f6a083b5698d13a627f910e93eeb6dc9bd5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x162", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf4c5c0fe94f1f62a752dc2b883078110c5753ac15ab5fe6f425821fb61963118" + }, + { + "txhash": "0xd989970efb8d750e0d5bd61ff5cfbf84aa5fef070d6bcc6f71258471207bb046", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x8d866e9225b61c55bb3e8d27f9eed41faec221f3eb1ea322661ce1956885d021" + }, + { + "txhash": "0x16622bce94aaa8e9dfd14e1a3889aee0bf65769454b7c781a2c822bdc2811336", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x178", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x7fffa2c61f6cad00c700b65e33937fcbab57dff84b2e792d81126626970905f1" + }, + { + "txhash": "0xe1c47b77b2b7c5ce5f4d5984ab1279abd3f976603e5d1996b454500bab1e4865", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x183", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9f569f15edd7832cd57a6cff95e09ab162c23f3dda7e729a74b2f41624294998" + }, + { + "txhash": "0x3a1237cd02dcd1e6e8974ed68da1077dfd2dee6725e8287254e29ad19766d649", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x22bc306256606a63c7e6adbfdb53ac8a2579216b16bcdc452de151e042d02124" + }, + { + "txhash": "0xb9d6436537e309c4ba46c1c33a099f7f4f0cbf408d39a8815b343972d104822c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x199", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xef03c0a4bb7099df0152e975b6c3172e7f47225648d2754efc7e81f2d1ed71c4" + }, + { + "txhash": "0x54713a1d1c77ea2e204d386c140d54cf409d8a7290be65251399b02bfc1b6718", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6542b8fc06728a624d10d21d45cb3fc58b811a380547cab3d5bf9e8af0de6951" + }, + { + "txhash": "0x9b50b6ff2a9fdd1fa9b5a016c500bacfcd6472817c916582d1c7f908a792bf42", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1af", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6760889404c1143da18e9f066f1d68de75c9a16a9d10a280d41864fd7580456f" + }, + { + "txhash": "0x36d9fc6535adfa5bd43b983dbb71f27fe4e224f38ffd753351241951f147cba0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ba", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xef429d45b992d9e888f08c3038963cbf4aa2b1e5b209fff23a8299c595430277" + }, + { + "txhash": "0x1f137085055e119cca83f54e757c0db8f19a6781305a2c9348b5fdc2be9668c0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c5", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9a9b2b0f17eb8c44f3d00dc6cd8475e9783cc715b3779af9170ddeed0221bcf2" + }, + { + "txhash": "0xc656c9855aca6fa4ccedde00cd56b2a340391315abee1c18228dcc4e6d482b56", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d0", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x04050d53dc4e38076a46f473ca2ccad11c6f0357bccc0d1fc7a16e0523892956" + }, + { + "txhash": "0x77a65636b0191f4f3eedd30f15a98a3e6a0132c0496ea87a85932d35971c48bb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1db", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbb8f646a16b72f34169bcd82f0c023b582d2ae9f395fb59f9e022e6caacd83a0" + }, + { + "txhash": "0x893aaf0147a55c11d2f3a7316abe881fd6176b170f434d5a8786bae3ccc7b4d1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e6", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x304daa529f8e4e88c6c20e572fd04f196d6a32a5a47361118b7f42b4602c44d0" + }, + { + "txhash": "0x3040182f2f5da3ce5e34f51eadeff0200754f66f65e2993047ec7970300f2369", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f1", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x7e93ec1b055e40d91bd222d7a3d4b0e85d09dfd561b0cd47d09a25fe183a06da" + }, + { + "txhash": "0x98381ec459f4b3df5573e50dbb902bac9822ce2ffb9f5382ee3d46485a6e0700", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1fc", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbdfccf10ce95236042860c90f84756794940d0d15da20833f8bdc1b921be3efa" + }, + { + "txhash": "0x50f1f26fbf8dad7abcc19a5330645c94410ba61993f68b00d992195a4f9c0d69", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x207", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xd407a81a8c9c2573926ab54ecd5ee3eb6f1853de6b11142313df08897b6842e2" + }, + { + "txhash": "0x8e9a160d98ae1ef12734744cfc7d76fe8c7c9913612ea670cfdf33ecad642fb3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x212", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x005c4510db462e3bc91da9b8d22c23873a9f44acfaa4c50c91af1d92652e2e34" + }, + { + "txhash": "0xbbbc951661c3d4f863d5e05b77682ee5f2640fd3a33d499ab644c02d677581f0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21d", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2724a489616bca201e7565382948f9832cbb927d030b1d2439c28ba1910c9bc6" + }, + { + "txhash": "0x4b8f8616a8e4c15a532d546db4d61a3cd2f6d850b9f23f87ad6145746c2c660f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x228", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x474ee39f920d2819e9ccf6080e9b95c49fc2dfc9841cb795583b81b7497c0425" + }, + { + "txhash": "0x9c178718bacc5a61736d5659e6130cf16b96a69f0a0d2b1684d70179d4d0eb2d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x233", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x67f77810c4968b55b6ae34b927b213ced7c266fba0cf752957a861450bb43a7a" + }, + { + "txhash": "0xf83ffa5e5321a459515c73c3a553c595ecc4cc1048d22391609427debd3f9079", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfc4b6ee72c1b0e13d4d0c218aa48c6233d313507fb55d142e7a2951f0b7c07d5" + }, + { + "txhash": "0xd52afab5788002f90601ef20ee8254a41dadf76832c70da4bb0ee4e6c3cd9e5f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x249", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xff442992eff2fa28cd13c50239c9e15f907488f574ade0e75cdba2cfdb26c480" + }, + { + "txhash": "0x96a373f0a6b2f247ba998c24f9f606e8dc65a39e9fbfd5f9034b4caf0e7dbd69", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x254", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfb0e917bcfc6a3ba3c079d0f19d7f2ede25ac596e725d016e0c31dbc8b390508" + } + ], + "tx-largereceipt": 11, + "tx-request-eip7002": { + "txhash": "0x27d8ca12587f28aa0184966fabcbeb321b438a6495d5e8294dc9c62525f41b8c", + "block": "0xd" + }, + "tx-transfer-eip1559": [ + { + "txhash": "0x4feb87725c3d45aef205359d7d200f523004b2961282c47736c49e3a453a3ab8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe", + "indexInBlock": 0 + }, + { + "txhash": "0xf282b242af9a863a650850cd7390dc3b3b485845e6290ee171edffab96a7c6dc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19", + "indexInBlock": 0 + }, + { + "txhash": "0xebf2517adcc7342a874af927a17590156aa85059fc903ab1b09f97c34c8b8b4e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x24", + "indexInBlock": 0 + }, + { + "txhash": "0x926f6bb97f760b2ac6c523e975d2697276ee3d881dd8348a4e7b7f2c846da188", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2f", + "indexInBlock": 0 + }, + { + "txhash": "0xef9dea375d62f1406d8777e70192ba24af24044c356da063eb71712eb7499356", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x3a", + "indexInBlock": 0 + }, + { + "txhash": "0x0816a60a0e6fd2afe45e7db877e33d055c3e4549037eb1e5209a21c4018250bb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x45", + "indexInBlock": 0 + }, + { + "txhash": "0x9720170ff561812f8bc717c251fbc942af99eefb8b5be1296c0dc3b331da7b33", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x50", + "indexInBlock": 0 + }, + { + "txhash": "0xceda26628e2eecad063f6a4341ea4043fcce307a748b5a41c2a3d0e45721bb0f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5b", + "indexInBlock": 0 + }, + { + "txhash": "0x0d8c55478b560a6305ea886fbbfcb36441767c65270c9618ceb33b22f2ee4eef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x66", + "indexInBlock": 0 + }, + { + "txhash": "0x12b7508b1d9a5f9afb9de821961aca87f93d97849b8a1b5065a0e50cfc2e8a5e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x71", + "indexInBlock": 0 + }, + { + "txhash": "0xebe88d489dad8695b60b9e8370ce0e389e7cb9e49670980919aac829e2abb83b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7c", + "indexInBlock": 0 + }, + { + "txhash": "0xdd63b0ac29f1b5b9911a159e704a148fa190ae321158a23e2910b52b69f810ce", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x87", + "indexInBlock": 0 + }, + { + "txhash": "0x9352e3fdb1640ce153b9580ddf310002221ec5bc20d4ae4f9148cb7e2d7d15bc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x92", + "indexInBlock": 0 + }, + { + "txhash": "0xff6132e2fb07b0e93bcc88a2eeb025b8e6a24ee6b2b78acb09e8738b3b902c97", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9d", + "indexInBlock": 0 + }, + { + "txhash": "0x8e732995f21ca7456d4e2f2c988990ddbfeb2d0ae968024b1940ee9814b06d2e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa8", + "indexInBlock": 0 + }, + { + "txhash": "0x6bd76373cd2baa3e2f13ff199293fa5cab2b5e3bd7979769b1d79c3612f393bf", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb3", + "indexInBlock": 0 + }, + { + "txhash": "0x33895d27bd9d17d08165eebb010d0c01e87503624147a93f05fcc7f6b39cbc00", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xbe", + "indexInBlock": 0 + }, + { + "txhash": "0xc48a8664d8ad6a7fce451d9414cdbe341466c42f9c9edcd3c7dbcf3b8afe4fdd", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc9", + "indexInBlock": 0 + }, + { + "txhash": "0x8e28590eac2c10ac2a12b28d30f1085ee506c4bed98ec70a9866d99051b38f4b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd4", + "indexInBlock": 0 + }, + { + "txhash": "0x22245d80eb9eff7ae730c21743cc4654ca641a3294d1891daafd80aaded914b8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xdf", + "indexInBlock": 0 + }, + { + "txhash": "0x8c8365b97fbaac8e4518c70c04dd29512d1b1a036584ebe908ce79d9f18de9cc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xea", + "indexInBlock": 0 + }, + { + "txhash": "0x55ffd4fc5e14677b4a26018d48c5a99c8df4e7b797073ada522ada9ca7b30ceb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf5", + "indexInBlock": 0 + }, + { + "txhash": "0x9bc9ad750a0a4365323da3dbacb65c3723ae8564f7a1654a113a527d810ef8e0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x100", + "indexInBlock": 0 + }, + { + "txhash": "0x1e0effb8659f8e43b7a49a6a926d0b76a352d0a45e86e267b8fbc651ff06a7ac", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10b", + "indexInBlock": 0 + }, + { + "txhash": "0x42faedb8e5b8d6f1433c5d14438cd28eee2080fd7dd375cd574561234aa6ada1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x116", + "indexInBlock": 0 + }, + { + "txhash": "0xdf64ad606a0975e92909f66625d6a00019e6664a18c67c84ef61ddded0bf0cc3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x121", + "indexInBlock": 0 + }, + { + "txhash": "0x92219dc27a8c0fb0337c093c2e548a135bc5022a85fc6ccb0e7b2257e8bd2e86", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x12c", + "indexInBlock": 0 + }, + { + "txhash": "0x1242e0eacb6a87f1066df63a9046b9d920b27f2e2d5f808599a4029a36a41e0a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x137", + "indexInBlock": 0 + }, + { + "txhash": "0xf27431f9cfd98c4b376684550e44b0b8e7c71dc997630f85680e1bc5c18cf3c3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x142", + "indexInBlock": 0 + }, + { + "txhash": "0xe32fb93c2365ef4db9f3123a474af1fd4837c7bf0e4e0271c166c260b122aa45", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14d", + "indexInBlock": 0 + }, + { + "txhash": "0xa76927c677654a060e2d90cbe4b326fa5eee76d797f54604786849c23879bdee", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x158", + "indexInBlock": 0 + }, + { + "txhash": "0x35d8f92489a6e1e20f1942193c470e18f4facd5e92b17db55fa311a397aff249", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x163", + "indexInBlock": 0 + }, + { + "txhash": "0x3698d4bd1112c7eceb64425a6b7b6a4b142d32c77bce800bd6767ecd10ca80bf", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16e", + "indexInBlock": 0 + }, + { + "txhash": "0xfc7bad28f0e8df37d6a65b3919d9854d2136e247fa4d2d434ae13f47cee60c81", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x179", + "indexInBlock": 0 + }, + { + "txhash": "0xde78807bcae67a3590b05f888d9d0a80ddea3c2d30bb2ebcc7a7b84de7943543", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x184", + "indexInBlock": 0 + }, + { + "txhash": "0x369b86a5664091d43b8bc3bbe4976da5a793a47583ffcca617267817e3ae445b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18f", + "indexInBlock": 0 + }, + { + "txhash": "0x8eac800c7781a5ada09bfabee12ffdcecf65d517d164f42d1629a9d1eeb9995f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19a", + "indexInBlock": 0 + }, + { + "txhash": "0x7232f8a35c4fc601bde57e96dbd338e6898ae0733b4feefe74610bb44705577e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a5", + "indexInBlock": 0 + }, + { + "txhash": "0x5b9b04078f27faa47f01cb52179b174c5aaa67b1b3ca6776a2872fbe64be4dac", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b0", + "indexInBlock": 0 + }, + { + "txhash": "0x25a2cb528f8f5373d2e472d7e28df6b9b18c6d14a5405433aab7333c6d19fe6b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1bb", + "indexInBlock": 0 + }, + { + "txhash": "0x64b5195035210f1570783ab55464becc3bc8f3944f854b1432aa9bf4e5f442e2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c6", + "indexInBlock": 0 + }, + { + "txhash": "0xe898405f30c0ceffd19eb618b30e670cd4f75c3ed6cc3fd7700b40e050d6090f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d1", + "indexInBlock": 0 + }, + { + "txhash": "0x1fe3a558cad7acef03cfe28ad0517af33fe5f1bf5d2497e8b9fc1ddf49f6666a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1dc", + "indexInBlock": 0 + }, + { + "txhash": "0x1b1a72cfc78eb9ac22b033028c35bdec7347c40f3120ed9527fbde2966b78c35", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e7", + "indexInBlock": 0 + }, + { + "txhash": "0x0c41e800e62b889789d63028503a2afdc7b48dfa75f8fac0c8b9dccd73726858", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f2", + "indexInBlock": 0 + }, + { + "txhash": "0x7a7ad517c21c75ebca258a25c35b110f414004f87ecfe2aa29283a8b3815f2d8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1fd", + "indexInBlock": 0 + }, + { + "txhash": "0x995502755fff45ae2074c787012c900fdd6dc6264910712bf6b3cb0e25539c66", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x208", + "indexInBlock": 0 + }, + { + "txhash": "0xe19b59781cfb6a730a22b24f96f6b8a9fcd567a0ea4238b2916affe2a1a131f4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x213", + "indexInBlock": 0 + }, + { + "txhash": "0xfdb1b2cb3fcf7c849c5376e1d5765e91cbaeeee0aea7877e1d379522436629c3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21e", + "indexInBlock": 0 + }, + { + "txhash": "0x8510955c5bc445ab6272fd2e9cb7ecf10bb529d4edf5cb03eed14a86c34ab7e4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x229", + "indexInBlock": 0 + }, + { + "txhash": "0xd1c580b4cd75f21af59dc7312726122ca905d363982dd6bdc9b16ab459c4f351", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x234", + "indexInBlock": 0 + }, + { + "txhash": "0x95826c39ecf731f43925e7be0c36d389cd6dd7cba81911a92e33c60c07a1e54f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23f", + "indexInBlock": 0 + }, + { + "txhash": "0xa25c1a0867649aca89addff35c96b8beb149f68606e08621b9a391ccef9df0db", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x24a", + "indexInBlock": 0 + }, + { + "txhash": "0x87fb42acce30f67650d3917485de95788ba5002054907b67996498c23e03137c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x255", + "indexInBlock": 0 + } + ], + "tx-transfer-eip2930": [ + { + "txhash": "0xf278a97c1c92c517531ae9f24179862518cf6397cd3615deebe37049d5a6c695", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf", + "indexInBlock": 0 + }, + { + "txhash": "0xc33009465ef1eb2ff62d02d50cbaaf73fee9dff8be51f71ac7976367ddfc4541", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a", + "indexInBlock": 0 + }, + { + "txhash": "0xa6598b072ed0598260358ed568e3c907d36e422b14e35ab459e9e24ae98251ef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x25", + "indexInBlock": 0 + }, + { + "txhash": "0x61aa0de65eb4a0db81573b043c35a4de3dcfabf37117a3e67905c7d3038dad23", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x30", + "indexInBlock": 0 + }, + { + "txhash": "0xdcf01b9729cddeefec7be5348f0d364ee1295831f999c0f5a49b047c9694e970", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x3b", + "indexInBlock": 0 + }, + { + "txhash": "0x7867b39e0b2f176fbd61364bce00443bd3f2ca5d743d3ab95104cb13a5cf5208", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x46", + "indexInBlock": 0 + }, + { + "txhash": "0x2ba84167cbba25e83e98cbca146d39a4a36d29dc2c9d971b41bf5ea1b9c9425a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x51", + "indexInBlock": 0 + }, + { + "txhash": "0x203b1d7997f674fd45fe2eb6af5f0a88b59eaa8598b86f408ca44763e034bd36", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5c", + "indexInBlock": 0 + }, + { + "txhash": "0x8fd08a67b065db1005917aea2934104c6132cad339c2fe07f51e7717bbe4ffe7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x67", + "indexInBlock": 0 + }, + { + "txhash": "0xf0a9ae994a7741fcbe854f2d4a684f5fd434d40badc2ae36611f5764aaeb08b3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x72", + "indexInBlock": 0 + }, + { + "txhash": "0x090fcb3259cccab1bad9dd572493e4ee05df3f53137ca16b4e7ea2f5b5c1d7d3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7d", + "indexInBlock": 0 + }, + { + "txhash": "0xe79b88caea408e8be7e3ac3269889b8f59fd4c1ca612213b9a7999ffe5b72e52", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x88", + "indexInBlock": 0 + }, + { + "txhash": "0x1bfa25e0530d084489db9ab1b6afa7d9f1c3b39f863adf5e2832768927644daa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x93", + "indexInBlock": 0 + }, + { + "txhash": "0xde483617d2d66c2ad07033b75a73e0c3d9be8e57b614a2aee96eba35f414629d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9e", + "indexInBlock": 0 + }, + { + "txhash": "0x29aeef1bb9f0555427576d10a93920d4cbb848b4df7a11708e1d15877dc1b2e0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa9", + "indexInBlock": 0 + }, + { + "txhash": "0x00986df4dd53f3e79bfb60d0d6532963c32d14082b90a5e0f781a90521c39926", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb4", + "indexInBlock": 0 + }, + { + "txhash": "0x1041875f7d50a26da74163d4e54a7f9c93d314c299725aa85cbfc7a3ecc35297", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xbf", + "indexInBlock": 0 + }, + { + "txhash": "0x79628bf904cf51c4a9746ca13c3f6f55c8cdae638fb2b3166a66d516c4eb5003", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xca", + "indexInBlock": 0 + }, + { + "txhash": "0x40094566e6f9bb849004d5f9593bc361c8572fdda9d56f17dae2cda65c6c1e75", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd5", + "indexInBlock": 0 + }, + { + "txhash": "0x36bcaa05763afdbab9ba004c67cfa38fdd5f0fd87164d8ff388720a54ba4a8a1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe0", + "indexInBlock": 0 + }, + { + "txhash": "0xb624d30fb3f252245883434de2ed770b795e907a619ac88992d6b7699b48cfa7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xeb", + "indexInBlock": 0 + }, + { + "txhash": "0xbd3087ce9745fe988d07ea8ba090b4cb8d1a86e57c50fdcdbb30ecb908dc9e6b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf6", + "indexInBlock": 0 + }, + { + "txhash": "0xafa45cc36b48bc966aa8aa30e408db455e4f9c1add0587a89ba40a94866d1e03", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x101", + "indexInBlock": 0 + }, + { + "txhash": "0xac35c9970d8166e66a131b1b3dc2f863e7ae36292e6a49bbfcb83f3cdd2ff2d2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10c", + "indexInBlock": 0 + }, + { + "txhash": "0x9b7e08f4c8fa53992950abce073f5eb02f380f451780d0d42de4c69e3a69af23", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x117", + "indexInBlock": 0 + }, + { + "txhash": "0x3e31801a2a6ea466f490a9b604a116f390794eb63c7ab4721017a5fdf966e166", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x122", + "indexInBlock": 0 + }, + { + "txhash": "0x51c1f4e597a9f557a71e97975c0ee80b3036775d922acb96fdcab674023790c7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x12d", + "indexInBlock": 0 + }, + { + "txhash": "0x4e0eec0f6504ef995e5dbf52b0db7c0d4a637b8d4107fd9bb7b9cba124d4e6af", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x138", + "indexInBlock": 0 + }, + { + "txhash": "0x3dcc58d773206b067dbd8dbc241e12c6cbc22beb64def944ced03490d10c504e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x143", + "indexInBlock": 0 + }, + { + "txhash": "0xbcd88536b680f217c8ba593327153a9a87850c293c7ab51d28e11161a8c114e6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14e", + "indexInBlock": 0 + }, + { + "txhash": "0xfb4a89e5ad56f40bbd99694669c41784f0dc7b25ec485b07c29d9b8764f6370e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x159", + "indexInBlock": 0 + }, + { + "txhash": "0x403aa6d501d04dc47e052d9e8e35309047e0e6352bcababbb47d8c3095f2478f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x164", + "indexInBlock": 0 + }, + { + "txhash": "0x2d80b71c714bc3f7fd0c5abce861e0499bf11ab1ac915a4ac399d6046b5341de", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16f", + "indexInBlock": 0 + }, + { + "txhash": "0x8e59e25432ee45eb91663edb66f23e30f8988a94d363bd4211ec8106bc7bdc7a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x17a", + "indexInBlock": 0 + }, + { + "txhash": "0x3b17e71cc75e8af270a71446cb1f55dcd2c3c8c638ba7ca3b156713d5c5bc740", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x185", + "indexInBlock": 0 + }, + { + "txhash": "0x62b840b93964bf5ef9f3b308f6cdad7793796a94d6810edd7db64d2d41801b0a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x190", + "indexInBlock": 0 + }, + { + "txhash": "0xf1c711c41fc04a59b26b14994f625576a7c708302044d5dbe3926bde93505459", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19b", + "indexInBlock": 0 + }, + { + "txhash": "0x7f8d63774d886b4d1e8ad70daf38208d3037fbdf875c1180904240308cb290bd", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a6", + "indexInBlock": 0 + }, + { + "txhash": "0xc2e3e4e30aa8973c6fa6a8ca0fc9d2c77e4e720d72ed0311132c5a9d33dbad49", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b1", + "indexInBlock": 0 + }, + { + "txhash": "0x0a92968be399bb163ed87a9e950f87301d1bee7faddd5ee58a966629eccd4d99", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1bc", + "indexInBlock": 0 + }, + { + "txhash": "0x7f087aea555e2f441682d04c022a63c60dd38129da8196be244618d539b1d899", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c7", + "indexInBlock": 0 + }, + { + "txhash": "0xfcbee8bc75ade3572115835825b2babe4de4e1e3b776323334e4a6e66c4746ae", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d2", + "indexInBlock": 0 + }, + { + "txhash": "0xf50c7c278b5e2bf2a15b523f4a714ab4c3aa2de23e1b45b20fe7df6dfc0d3d1b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1dd", + "indexInBlock": 0 + }, + { + "txhash": "0xca67efa5a92421ffc387fcb06b4f53a14148c1da50f0cc514814587f5f1a63aa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e8", + "indexInBlock": 0 + }, + { + "txhash": "0x2d35008bda6dad6c13a68788a1b0b4b671d82ba03ce007d8026124bc2f78ad4e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f3", + "indexInBlock": 0 + }, + { + "txhash": "0x6e4b127cec980eaebed4039019171993d63ccf3d8f50792b3b651381391d6a3f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1fe", + "indexInBlock": 0 + }, + { + "txhash": "0xab711b291a1efce49e0ff8f0aebe8acdc84eae9405b2d70cb4a886854160a1be", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x209", + "indexInBlock": 0 + }, + { + "txhash": "0x996878da21de571313c57f2f0dac52d8fc906c4e038bbaa0e5171a46c08dabf9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x214", + "indexInBlock": 0 + }, + { + "txhash": "0xd9743a7901761dce46c57ff8df4d3cdf874e108891ff5661ed7d2a4eaf50b54b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21f", + "indexInBlock": 0 + }, + { + "txhash": "0x388c9d3c3c9ba4afb738e3a0778166e39f685adcfea23175196f0eee64d173bc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x22a", + "indexInBlock": 0 + }, + { + "txhash": "0xf5df907bbe60656be433813c67a612166b23245e7d83078ae8975835f410d492", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x235", + "indexInBlock": 0 + }, + { + "txhash": "0xe75a50ed07ea70f57dab38daaa3bfa7e763a4fd4503eb13a77518a10648f7caa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x240", + "indexInBlock": 0 + }, + { + "txhash": "0xb01424eaa3df62924ba4d4e52117b89c7ed24a7556c2d46367f908ad41784db0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x24b", + "indexInBlock": 0 + }, + { + "txhash": "0x05fe8649c80459cd462cea4676d39d5be523f672f2a1e5fc210b5b6571b59450", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x256", + "indexInBlock": 0 + } + ], + "tx-transfer-legacy": [ + { + "txhash": "0x4845dfdee733cb11e204253aa9b2e0a9597c9b7f700642d084fd5aad365dbeff", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10", + "indexInBlock": 0 + }, + { + "txhash": "0xe4ba4ed6784f2f452274186824174874661f76c1961d34fee86371da194a428f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b", + "indexInBlock": 0 + }, + { + "txhash": "0xe30c98691cc89f2db31aec5c2b3cdfd720015210fce4b48a8ce561d7f179af8b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x26", + "indexInBlock": 0 + }, + { + "txhash": "0x7538bb702539b67fbb8d44d2e946d1d241ddc4c2943e48ecb3107c8868184775", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x31", + "indexInBlock": 0 + }, + { + "txhash": "0x88edfa85d3e3bab608081a9421e0eab5fbd09ad10db58c07c178c6ac74617233", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x3c", + "indexInBlock": 0 + }, + { + "txhash": "0x41aec073b267edc44e28b0c33f8c20e7619687ca5d7f09faa30e49621cdd3e70", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x47", + "indexInBlock": 0 + }, + { + "txhash": "0xe0854da80105ea343c29cb7a8db30413b59f5b62a1f42793ce635be4e7536cc9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x52", + "indexInBlock": 0 + }, + { + "txhash": "0x0cf942350189ee11294379c2a16c9744bc7502f127f4f71ac95cf0a2f681aa3a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5d", + "indexInBlock": 0 + }, + { + "txhash": "0xd521a3fccc17113eac1a50bd0a34a3ca87ee5234c51fe41ba8eb8c26ad142363", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x68", + "indexInBlock": 0 + }, + { + "txhash": "0x1bcb6ff54f0f244c3b7390b488e76c3d1d95ff7f340adb81f785820930edc010", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x73", + "indexInBlock": 0 + }, + { + "txhash": "0x7571a5b0881a76054142ad7af3924bd225a67a4705479f4f87e6a68388a5f0aa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7e", + "indexInBlock": 0 + }, + { + "txhash": "0x999f17b911d92aaed0c83e37a545cf44f1effaf1245bddc7c63aae3c092e8200", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x89", + "indexInBlock": 0 + }, + { + "txhash": "0xb72b3670cd73b79b8083e590a96c942c0e387c4f0df39eadee69bf0d23c12f8f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x94", + "indexInBlock": 0 + }, + { + "txhash": "0x71d5d38bd1d2af22f3a2bbc6b657b2d1c081a5f7a8345e1aa0c9f7bacfe884a0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x9f", + "indexInBlock": 0 + }, + { + "txhash": "0x6acdc778a4e9df4318ee1f01bd3dbdad1539cdb53ff865d28827ce21ac9ab9d6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xaa", + "indexInBlock": 0 + }, + { + "txhash": "0x0303678ee1fa8a6b080ed12b5a752d255008709a9b76e439f48357627d4d8dfe", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb5", + "indexInBlock": 0 + }, + { + "txhash": "0x2230bdceb24246aee1c7d17a98eccbfefba3079719c6c1e32e8b7d4fc789761d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xc0", + "indexInBlock": 0 + }, + { + "txhash": "0xab1ad5a65facf07d9687759b529fb8e8a1cb29ac4a5bc8178b58218a11b8b611", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xcb", + "indexInBlock": 0 + }, + { + "txhash": "0xf8d85b2cf1d77a5f513b3158fd49c5fb2b0a11fddad23ddeccfeccfadb3c9e89", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd6", + "indexInBlock": 0 + }, + { + "txhash": "0xc076e024e047c92e61148b6a6312f704fd3d969febd46f9b41e0106f4bdce366", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe1", + "indexInBlock": 0 + }, + { + "txhash": "0xfc956eea160fcbbd4a13f4f56f984f245ff189f73512b4807b37e47b0f14096a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xec", + "indexInBlock": 0 + }, + { + "txhash": "0x37f2c2e41705384ecf88d1bd58520a91614cbcc3a01ee2a9866482c669154d6c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xf7", + "indexInBlock": 0 + }, + { + "txhash": "0xf13d8d224ceb88804b6f61adbf0067c9f67e8247b2748db8339b597cfdeffaef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x102", + "indexInBlock": 0 + }, + { + "txhash": "0x370d01c7b49b48f7eaae30826df1b5f702721dab17da55f509e850665671cf3c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10d", + "indexInBlock": 0 + }, + { + "txhash": "0x3f5065a0ca467127e296ad2d27dc690eaf04d36490c7e7b34231c280fddf1797", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x118", + "indexInBlock": 0 + }, + { + "txhash": "0xc9edbf3ceeb867c3c6d22a70356139fdf595ef3f98ca4c41415e30a374d2da5a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x123", + "indexInBlock": 0 + }, + { + "txhash": "0x3828637a29c6b96eedc2900ea419f059dde3f8d3399db36cadf89870a2784c0c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x12e", + "indexInBlock": 0 + }, + { + "txhash": "0x477443f1609dd34747aff99d568b3752cd8478f75465c2c09717e69f0cbf089b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x139", + "indexInBlock": 0 + }, + { + "txhash": "0x5d3c2eb824b0e5fa14dc29635d3b0b17f070ddbbf9c8ce07dd62c212f4af61f6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x144", + "indexInBlock": 0 + }, + { + "txhash": "0xdbaed77ef32f3a0149d3a220bd0c2c49b6da1b7ef56637442f1b91c916064b0d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14f", + "indexInBlock": 0 + }, + { + "txhash": "0xd02a9a5522a418abb75b1330b317c98812c033f7ae8c177355c3836a8a28dc95", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x15a", + "indexInBlock": 0 + }, + { + "txhash": "0x4bca9b38d6eb5008866383961fd1313869a8476fabb260d9b93a5b2dc8986905", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x165", + "indexInBlock": 0 + }, + { + "txhash": "0xeaafeaf48129a32da8973a6190ce0c19b1f3729cc39d3eb55321bd45d3cafacf", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x170", + "indexInBlock": 0 + }, + { + "txhash": "0x85e50638e9e342829033b7f51913edfe86cc1d7691f98ee4f1b725ba20e2a2d2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x17b", + "indexInBlock": 0 + }, + { + "txhash": "0x7d87678bc9f09d640f401783a67768450e7d19d54ce2deb5fc157fc224be2692", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x186", + "indexInBlock": 0 + }, + { + "txhash": "0x97c821ea0562ce8a74d88a738e7d104f82025952d07e855dca65cd0b46c2d3d5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x191", + "indexInBlock": 0 + }, + { + "txhash": "0xb6eb23273ff663427676741b12392ee848576225b18baefc308543f209500ca9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19c", + "indexInBlock": 0 + }, + { + "txhash": "0x55dbcf25403390d76fab637c2ca501447a93aa371ff36d1316ea2858efbf1aad", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a7", + "indexInBlock": 0 + }, + { + "txhash": "0xb163de0bcd66c79501165e608cde61312fcfd73d39c2b1970c4d6db2f8ee9595", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b2", + "indexInBlock": 0 + }, + { + "txhash": "0xf6c6d5abdbb9489d60d66a0a1bf8cbfcd3d06c89cd1bb1aaca5fb0994a5c0e1c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1bd", + "indexInBlock": 0 + }, + { + "txhash": "0xdca0b4a5f20554780d9b2510913cf39498ba3dd98253eddeb292aaab06cb76d1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c8", + "indexInBlock": 0 + }, + { + "txhash": "0x198387dacde38e90275dc46370055c1180b6fa458930a20c09b900249ac93417", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d3", + "indexInBlock": 0 + }, + { + "txhash": "0x39d1f89c9b97905bb44a191b1df7364bbba74cd22634e74faac369419b4f409f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1de", + "indexInBlock": 0 + }, + { + "txhash": "0xc7aefb93eb98c60bb8badb08df91beb8ba154ef4c076c2b2fb3e68b1668fbb77", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e9", + "indexInBlock": 0 + }, + { + "txhash": "0xf9b76794a6143a25ee62c9d9e847d7068646dc954357bd4be1872148bd91923b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f4", + "indexInBlock": 0 + }, + { + "txhash": "0x3590ade203eb06fa0e509948eecdf53ef176c4792d90d50df070b1d1ca4931dc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1ff", + "indexInBlock": 0 + }, + { + "txhash": "0x267c879d60a9e2d6b86e57c6b50933288e1e50299f3cef26379a536a4703577c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20a", + "indexInBlock": 0 + }, + { + "txhash": "0x6c64b842af6cf82d41bda0f6181369b98d01b096e897299e46a08bddec540f93", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x215", + "indexInBlock": 0 + }, + { + "txhash": "0xd64c4fdda714ae62c0ba6139a59dbfdd8d7a9d1bdd9ffd9ed6bb6fcfa618aaf5", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x220", + "indexInBlock": 0 + }, + { + "txhash": "0x90faef9e382ce09403e51eee1af464cea2c363a5fe3458f03b123b0bf4c69914", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x22b", + "indexInBlock": 0 + }, + { + "txhash": "0x5cdd6add765fbd5afc12c77be220da2d4a81fdbc4f6572977f710d5eadca35ea", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x236", + "indexInBlock": 0 + }, + { + "txhash": "0x0c961395a8d267e7ce4919a810865266d9286f4272bd3504bc7eabeff7562c7c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x241", + "indexInBlock": 0 + }, + { + "txhash": "0x2bdbc6ce98d07e93505ceb1f524dbc95f1ced213453e35f1b772e8919729f411", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x24c", + "indexInBlock": 0 + }, + { + "txhash": "0xf0092cb03bbed01544bfef80adfc92f2842a2be9e89a4f0029c50e9511d704e1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x257", + "indexInBlock": 0 + } + ], + "withdrawals": { + "105": { + "withdrawals": [ + { + "index": "0x8", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ] + }, + "116": { + "withdrawals": [ + { + "index": "0x9", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ] + }, + "127": { + "withdrawals": [ + { + "index": "0xa", + "validatorIndex": "0x5", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "amount": "0x64" + } + ] + }, + "138": { + "withdrawals": [ + { + "index": "0xb", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ] + }, + "149": { + "withdrawals": [ + { + "index": "0xc", + "validatorIndex": "0x5", + "address": "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df", + "amount": "0x64" + } + ] + }, + "160": { + "withdrawals": [ + { + "index": "0xd", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ] + }, + "17": { + "withdrawals": [ + { + "index": "0x0", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ] + }, + "171": { + "withdrawals": [ + { + "index": "0xe", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ] + }, + "182": { + "withdrawals": [ + { + "index": "0xf", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ] + }, + "193": { + "withdrawals": [ + { + "index": "0x10", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ] + }, + "204": { + "withdrawals": [ + { + "index": "0x11", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ] + }, + "215": { + "withdrawals": [ + { + "index": "0x12", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ] + }, + "226": { + "withdrawals": [ + { + "index": "0x13", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ] + }, + "237": { + "withdrawals": [ + { + "index": "0x14", + "validatorIndex": "0x5", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "amount": "0x64" + } + ] + }, + "248": { + "withdrawals": [ + { + "index": "0x15", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "259": { + "withdrawals": [ + { + "index": "0x16", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ] + }, + "270": { + "withdrawals": [ + { + "index": "0x17", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ] + }, + "28": { + "withdrawals": [ + { + "index": "0x1", + "validatorIndex": "0x5", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "amount": "0x64" + } + ] + }, + "281": { + "withdrawals": [ + { + "index": "0x18", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ] + }, + "292": { + "withdrawals": [ + { + "index": "0x19", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ] + }, + "303": { + "withdrawals": [ + { + "index": "0x1a", + "validatorIndex": "0x5", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "amount": "0x64" + } + ] + }, + "314": { + "withdrawals": [ + { + "index": "0x1b", + "validatorIndex": "0x5", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "amount": "0x64" + } + ] + }, + "325": { + "withdrawals": [ + { + "index": "0x1c", + "validatorIndex": "0x5", + "address": "0x83c7e323d189f18725ac510004fdc2941f8c4a78", + "amount": "0x64" + } + ] + }, + "336": { + "withdrawals": [ + { + "index": "0x1d", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "347": { + "withdrawals": [ + { + "index": "0x1e", + "validatorIndex": "0x5", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "amount": "0x64" + } + ] + }, + "358": { + "withdrawals": [ + { + "index": "0x1f", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "369": { + "withdrawals": [ + { + "index": "0x20", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ] + }, + "380": { + "withdrawals": [ + { + "index": "0x21", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ] + }, + "39": { + "withdrawals": [ + { + "index": "0x2", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ] + }, + "391": { + "withdrawals": [ + { + "index": "0x22", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "402": { + "withdrawals": [ + { + "index": "0x23", + "validatorIndex": "0x5", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "amount": "0x64" + } + ] + }, + "413": { + "withdrawals": [ + { + "index": "0x24", + "validatorIndex": "0x5", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "amount": "0x64" + } + ] + }, + "424": { + "withdrawals": [ + { + "index": "0x25", + "validatorIndex": "0x5", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "amount": "0x64" + } + ] + }, + "435": { + "withdrawals": [ + { + "index": "0x26", + "validatorIndex": "0x5", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "amount": "0x64" + } + ] + }, + "446": { + "withdrawals": [ + { + "index": "0x27", + "validatorIndex": "0x5", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "amount": "0x64" + } + ] + }, + "457": { + "withdrawals": [ + { + "index": "0x28", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ] + }, + "468": { + "withdrawals": [ + { + "index": "0x29", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "479": { + "withdrawals": [ + { + "index": "0x2a", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ] + }, + "490": { + "withdrawals": [ + { + "index": "0x2b", + "validatorIndex": "0x5", + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "amount": "0x64" + } + ] + }, + "50": { + "withdrawals": [ + { + "index": "0x3", + "validatorIndex": "0x5", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "amount": "0x64" + } + ] + }, + "501": { + "withdrawals": [ + { + "index": "0x2c", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ] + }, + "512": { + "withdrawals": [ + { + "index": "0x2d", + "validatorIndex": "0x5", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "amount": "0x64" + } + ] + }, + "523": { + "withdrawals": [ + { + "index": "0x2e", + "validatorIndex": "0x5", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "amount": "0x64" + } + ] + }, + "534": { + "withdrawals": [ + { + "index": "0x2f", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ] + }, + "545": { + "withdrawals": [ + { + "index": "0x30", + "validatorIndex": "0x5", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "amount": "0x64" + } + ] + }, + "556": { + "withdrawals": [ + { + "index": "0x31", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ] + }, + "567": { + "withdrawals": [ + { + "index": "0x32", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ] + }, + "578": { + "withdrawals": [ + { + "index": "0x33", + "validatorIndex": "0x5", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "amount": "0x64" + } + ] + }, + "589": { + "withdrawals": [ + { + "index": "0x34", + "validatorIndex": "0x5", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "amount": "0x64" + } + ] + }, + "600": { + "withdrawals": [ + { + "index": "0x35", + "validatorIndex": "0x5", + "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", + "amount": "0x64" + } + ] + }, + "61": { + "withdrawals": [ + { + "index": "0x4", + "validatorIndex": "0x5", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "amount": "0x64" + } + ] + }, + "72": { + "withdrawals": [ + { + "index": "0x5", + "validatorIndex": "0x5", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "amount": "0x64" + } + ] + }, + "83": { + "withdrawals": [ + { + "index": "0x6", + "validatorIndex": "0x5", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "amount": "0x64" + } + ] + }, + "94": { + "withdrawals": [ + { + "index": "0x7", + "validatorIndex": "0x5", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "amount": "0x64" + } + ] + } + } +} \ No newline at end of file diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go new file mode 100644 index 000000000000..ff72e3266729 --- /dev/null +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -0,0 +1,551 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package v4test + +import ( + "bytes" + "crypto/rand" + "errors" + "fmt" + "net" + "time" + + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/internal/utesting" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v4wire" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" +) + +const ( + expiration = 20 * time.Second + wrongPacket = 66 + macSize = 256 / 8 +) + +var ( + // Remote node under test + Remote string + // Listen1 is the IP where the first tester is listening, port will be assigned + Listen1 string = "127.0.0.1" + // Listen2 is the IP where the second tester is listening, port will be assigned + // Before running the test, you may have to `sudo ifconfig lo0 add 127.0.0.2` (on MacOS at least) + Listen2 string = "127.0.0.2" +) + +type pingWithJunk struct { + Version uint + From, To v4wire.Endpoint + Expiration uint64 + JunkData1 uint + JunkData2 []byte +} + +func (req *pingWithJunk) Name() string { return "PING/v4" } +func (req *pingWithJunk) Kind() byte { return v4wire.PingPacket } + +type pingWrongType struct { + Version uint + From, To v4wire.Endpoint + Expiration uint64 +} + +func (req *pingWrongType) Name() string { return "WRONG/v4" } +func (req *pingWrongType) Kind() byte { return wrongPacket } + +func futureExpiration() uint64 { + return uint64(time.Now().Add(expiration).Unix()) +} + +// BasicPing just sends a PING packet and expects a response. +func BasicPing(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + pingHash := te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + if err := te.checkPingPong(pingHash); err != nil { + t.Fatal(err) + } +} + +// checkPingPong verifies that the remote side sends both a PONG with the +// correct hash, and a PING. +// The two packets do not have to be in any particular order. +func (te *testenv) checkPingPong(pingHash []byte) error { + var ( + pings int + pongs int + ) + for i := 0; i < 2; i++ { + reply, _, err := te.read(te.l1) + if err != nil { + return err + } + switch reply.Kind() { + case v4wire.PongPacket: + if err := te.checkPong(reply, pingHash); err != nil { + return err + } + pongs++ + case v4wire.PingPacket: + pings++ + default: + return fmt.Errorf("expected PING or PONG, got %v %v", reply.Name(), reply) + } + } + if pongs == 1 && pings == 1 { + return nil + } + return fmt.Errorf("expected 1 PING (got %d) and 1 PONG (got %d)", pings, pongs) +} + +// checkPong verifies that reply is a valid PONG matching the given ping hash, +// and a PING. The two packets do not have to be in any particular order. +func (te *testenv) checkPong(reply v4wire.Packet, pingHash []byte) error { + if reply == nil { + return errors.New("expected PONG reply, got nil") + } + if reply.Kind() != v4wire.PongPacket { + return fmt.Errorf("expected PONG reply, got %v %v", reply.Name(), reply) + } + pong := reply.(*v4wire.Pong) + if !bytes.Equal(pong.ReplyTok, pingHash) { + return fmt.Errorf("PONG reply token mismatch: got %x, want %x", pong.ReplyTok, pingHash) + } + if want := te.localEndpoint(te.l1); !want.IP.Equal(pong.To.IP) || want.UDP != pong.To.UDP { + return fmt.Errorf("PONG 'to' endpoint mismatch: got %+v, want %+v", pong.To, want) + } + if v4wire.Expired(pong.Expiration) { + return fmt.Errorf("PONG is expired (%v)", pong.Expiration) + } + return nil +} + +// PingWrongTo sends a PING packet with wrong 'to' field and expects a PONG response. +func PingWrongTo(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + wrongEndpoint := v4wire.Endpoint{IP: net.ParseIP("192.0.2.0")} + pingHash := te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: te.localEndpoint(te.l1), + To: wrongEndpoint, + Expiration: futureExpiration(), + }) + if err := te.checkPingPong(pingHash); err != nil { + t.Fatal(err) + } +} + +// PingWrongFrom sends a PING packet with wrong 'from' field and expects a PONG response. +func PingWrongFrom(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + wrongEndpoint := v4wire.Endpoint{IP: net.ParseIP("192.0.2.0")} + pingHash := te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: wrongEndpoint, + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + + if err := te.checkPingPong(pingHash); err != nil { + t.Fatal(err) + } +} + +// PingExtraData This test sends a PING packet with additional data at the end and expects a PONG +// response. The remote node should respond because EIP-8 mandates ignoring additional +// trailing data. +func PingExtraData(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + pingHash := te.send(te.l1, &pingWithJunk{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + JunkData1: 42, + JunkData2: []byte{9, 8, 7, 6, 5, 4, 3, 2, 1}, + }) + + if err := te.checkPingPong(pingHash); err != nil { + t.Fatal(err) + } +} + +// PingExtraDataWrongFrom sends a PING packet with additional data and wrong 'from' field +// and expects a PONG response. +func PingExtraDataWrongFrom(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + wrongEndpoint := v4wire.Endpoint{IP: net.ParseIP("192.0.2.0")} + req := pingWithJunk{ + Version: 4, + From: wrongEndpoint, + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + JunkData1: 42, + JunkData2: []byte{9, 8, 7, 6, 5, 4, 3, 2, 1}, + } + pingHash := te.send(te.l1, &req) + if err := te.checkPingPong(pingHash); err != nil { + t.Fatal(err) + } +} + +// PingPastExpiration sends a PING packet with an expiration in the past. +// The remote node should not respond. +func PingPastExpiration(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: -futureExpiration(), + }) + + reply, _, _ := te.read(te.l1) + if reply != nil { + t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply) + } +} + +// WrongPacketType sends an invalid packet. The remote node should not respond. +func WrongPacketType(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + te.send(te.l1, &pingWrongType{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + + reply, _, _ := te.read(te.l1) + if reply != nil { + t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply) + } +} + +// BondThenPingWithWrongFrom verifies that the default behaviour of ignoring 'from' fields is unaffected by +// the bonding process. After bonding, it pings the target with a different from endpoint. +func BondThenPingWithWrongFrom(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + bond(t, te) + + wrongEndpoint := v4wire.Endpoint{IP: net.ParseIP("192.0.2.0")} + pingHash := te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: wrongEndpoint, + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + +waitForPong: + for { + reply, _, err := te.read(te.l1) + if err != nil { + t.Fatal(err) + } + switch reply.Kind() { + case v4wire.PongPacket: + if err := te.checkPong(reply, pingHash); err != nil { + t.Fatal(err) + } + break waitForPong + case v4wire.FindnodePacket: + // FINDNODE from the node is acceptable here since the endpoint + // verification was performed earlier. + default: + t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) + } + } +} + +// FindnodeWithoutEndpointProof sends FINDNODE. The remote node should not reply +// because the endpoint proof has not completed. +func FindnodeWithoutEndpointProof(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + req := v4wire.Findnode{Expiration: futureExpiration()} + rand.Read(req.Target[:]) + te.send(te.l1, &req) + + for { + reply, _, _ := te.read(te.l1) + if reply == nil { + // No response, all good + break + } + if reply.Kind() == v4wire.PingPacket { + continue // A ping is ok, just ignore it + } + t.Fatalf("Expected no reply, got %v %v", reply.Name(), reply) + } +} + +// BasicFindnode sends a FINDNODE request after performing the endpoint +// proof. The remote node should respond. +func BasicFindnode(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + bond(t, te) + + findnode := v4wire.Findnode{Expiration: futureExpiration()} + rand.Read(findnode.Target[:]) + te.send(te.l1, &findnode) + + reply, _, err := te.read(te.l1) + if err != nil { + t.Fatal("read find nodes", err) + } + if reply.Kind() != v4wire.NeighborsPacket { + t.Fatalf("Expected neighbors, got %v %v", reply.Name(), reply) + } +} + +// UnsolicitedNeighbors sends an unsolicited NEIGHBORS packet after the endpoint proof, then sends +// FINDNODE to read the remote table. The remote node should not return the node contained +// in the unsolicited NEIGHBORS packet. +func UnsolicitedNeighbors(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + bond(t, te) + + // Send unsolicited NEIGHBORS response. + fakeKey, _ := crypto.GenerateKey() + encFakeKey := v4wire.EncodePubkey(&fakeKey.PublicKey) + neighbors := v4wire.Neighbors{ + Expiration: futureExpiration(), + Nodes: []v4wire.Node{{ + ID: encFakeKey, + IP: net.IP{1, 2, 3, 4}, + UDP: 30303, + TCP: 30303, + }}, + } + te.send(te.l1, &neighbors) + + // Check if the remote node included the fake node. + te.send(te.l1, &v4wire.Findnode{ + Expiration: futureExpiration(), + Target: encFakeKey, + }) + + reply, _, err := te.read(te.l1) + if err != nil { + t.Fatal("read find nodes", err) + } + if reply.Kind() != v4wire.NeighborsPacket { + t.Fatalf("Expected neighbors, got %v %v", reply.Name(), reply) + } + nodes := reply.(*v4wire.Neighbors).Nodes + if contains(nodes, encFakeKey) { + t.Fatal("neighbors response contains node from earlier unsolicited neighbors response") + } +} + +// FindnodePastExpiration sends FINDNODE with an expiration timestamp in the past. +// The remote node should not respond. +func FindnodePastExpiration(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + bond(t, te) + + findnode := v4wire.Findnode{Expiration: -futureExpiration()} + rand.Read(findnode.Target[:]) + te.send(te.l1, &findnode) + + for { + reply, _, _ := te.read(te.l1) + if reply == nil { + return + } else if reply.Kind() == v4wire.NeighborsPacket { + t.Fatal("Unexpected NEIGHBORS response for expired FINDNODE request") + } + } +} + +// bond performs the endpoint proof with the remote node. +func bond(t *utesting.T, te *testenv) { + pingHash := te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + + var gotPing, gotPong bool + for !gotPing || !gotPong { + req, hash, err := te.read(te.l1) + if err != nil { + t.Fatal(err) + } + switch req.(type) { + case *v4wire.Ping: + te.send(te.l1, &v4wire.Pong{ + To: te.remoteEndpoint(), + ReplyTok: hash, + Expiration: futureExpiration(), + }) + gotPing = true + case *v4wire.Pong: + if err := te.checkPong(req, pingHash); err != nil { + t.Fatal(err) + } + gotPong = true + } + } +} + +// FindnodeAmplificationInvalidPongHash attempts to perform a traffic amplification attack against a +// 'victim' endpoint using FINDNODE. In this attack scenario, the attacker +// attempts to complete the endpoint proof non-interactively by sending a PONG +// with mismatching reply token from the 'victim' endpoint. The attack works if +// the remote node does not verify the PONG reply token field correctly. The +// attacker could then perform traffic amplification by sending many FINDNODE +// requests to the discovery node, which would reply to the 'victim' address. +func FindnodeAmplificationInvalidPongHash(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + // Send PING to start endpoint verification. + te.send(te.l1, &v4wire.Ping{ + Version: 4, + From: te.localEndpoint(te.l1), + To: te.remoteEndpoint(), + Expiration: futureExpiration(), + }) + + var gotPing, gotPong bool + for !gotPing || !gotPong { + req, _, err := te.read(te.l1) + if err != nil { + t.Fatal(err) + } + switch req.(type) { + case *v4wire.Ping: + // Send PONG from this node ID, but with invalid ReplyTok. + te.send(te.l1, &v4wire.Pong{ + To: te.remoteEndpoint(), + ReplyTok: make([]byte, macSize), + Expiration: futureExpiration(), + }) + gotPing = true + case *v4wire.Pong: + gotPong = true + } + } + + // Now send FINDNODE. The remote node should not respond because our + // PONG did not reference the PING hash. + findnode := v4wire.Findnode{Expiration: futureExpiration()} + rand.Read(findnode.Target[:]) + te.send(te.l1, &findnode) + + // If we receive a NEIGHBORS response, the attack worked and the test fails. + reply, _, _ := te.read(te.l1) + if reply != nil && reply.Kind() == v4wire.NeighborsPacket { + t.Error("Got neighbors") + } +} + +// FindnodeAmplificationWrongIP attempts to perform a traffic amplification attack using FINDNODE. +// The attack works if the remote node does not verify the IP address of FINDNODE +// against the endpoint verification proof done by PING/PONG. +func FindnodeAmplificationWrongIP(t *utesting.T) { + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + + // Do the endpoint proof from the l1 IP. + bond(t, te) + + // Now send FINDNODE from the same node ID, but different IP address. + // The remote node should not respond. + findnode := v4wire.Findnode{Expiration: futureExpiration()} + rand.Read(findnode.Target[:]) + te.send(te.l2, &findnode) + + // If we receive a NEIGHBORS response, the attack worked and the test fails. + reply, _, _ := te.read(te.l2) + if reply != nil { + t.Error("Got NEIGHBORS response for FINDNODE from wrong IP") + } +} + +func ENRRequest(t *utesting.T) { + t.Log(`This test sends an ENRRequest packet and expects a response containing a valid ENR.`) + + te := newTestEnv(Remote, Listen1, Listen2) + defer te.close() + bond(t, te) + + req := &v4wire.ENRRequest{Expiration: futureExpiration()} + hash := te.send(te.l1, req) + + response, _, err := te.read(te.l1) + if err != nil { + t.Fatal("read error:", err) + } + enrResp, ok := response.(*v4wire.ENRResponse) + if !ok { + t.Fatalf("expected ENRResponse packet, got %T", response) + } + if !bytes.Equal(enrResp.ReplyTok, hash) { + t.Errorf("wrong hash in response packet: got %x, want %x", enrResp.ReplyTok, hash) + } + node, err := enode.New(enode.ValidSchemes, &enrResp.Record) + if err != nil { + t.Errorf("invalid record in response: %v", err) + } + if node.ID() != te.remote.ID() { + t.Errorf("wrong node ID in response: got %v, want %v", node.ID(), te.remote.ID()) + } +} + +var AllTests = []utesting.Test{ + {Name: "Ping/Basic", Fn: BasicPing}, + {Name: "Ping/WrongTo", Fn: PingWrongTo}, + {Name: "Ping/WrongFrom", Fn: PingWrongFrom}, + {Name: "Ping/ExtraData", Fn: PingExtraData}, + {Name: "Ping/ExtraDataWrongFrom", Fn: PingExtraDataWrongFrom}, + {Name: "Ping/PastExpiration", Fn: PingPastExpiration}, + {Name: "Ping/WrongPacketType", Fn: WrongPacketType}, + {Name: "Ping/BondThenPingWithWrongFrom", Fn: BondThenPingWithWrongFrom}, + {Name: "ENRRequest", Fn: ENRRequest}, + {Name: "Findnode/WithoutEndpointProof", Fn: FindnodeWithoutEndpointProof}, + {Name: "Findnode/BasicFindnode", Fn: BasicFindnode}, + {Name: "Findnode/UnsolicitedNeighbors", Fn: UnsolicitedNeighbors}, + {Name: "Findnode/PastExpiration", Fn: FindnodePastExpiration}, + {Name: "Amplification/InvalidPongHash", Fn: FindnodeAmplificationInvalidPongHash}, + {Name: "Amplification/WrongIP", Fn: FindnodeAmplificationWrongIP}, +} diff --git a/cmd/devp2p/internal/v4test/framework.go b/cmd/devp2p/internal/v4test/framework.go new file mode 100644 index 000000000000..a64560f6ef2d --- /dev/null +++ b/cmd/devp2p/internal/v4test/framework.go @@ -0,0 +1,125 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package v4test + +import ( + "crypto/ecdsa" + "fmt" + "net" + "time" + + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/p2p/discover/v4wire" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" +) + +const waitTime = 300 * time.Millisecond + +type testenv struct { + l1, l2 net.PacketConn + key *ecdsa.PrivateKey + remote *enode.Node + remoteAddr *net.UDPAddr +} + +func newTestEnv(remote string, listen1, listen2 string) *testenv { + l1, err := net.ListenPacket("udp", fmt.Sprintf("%v:0", listen1)) + if err != nil { + panic(err) + } + l2, err := net.ListenPacket("udp", fmt.Sprintf("%v:0", listen2)) + if err != nil { + panic(err) + } + key, err := crypto.GenerateKey() + if err != nil { + panic(err) + } + node, err := enode.Parse(enode.ValidSchemes, remote) + if err != nil { + panic(err) + } + if !node.IPAddr().IsValid() || node.UDP() == 0 { + var ip net.IP + var tcpPort, udpPort int + if node.IPAddr().IsValid() { + ip = node.IPAddr().AsSlice() + } else { + ip = net.ParseIP("127.0.0.1") + } + if tcpPort = node.TCP(); tcpPort == 0 { + tcpPort = 30303 + } + if udpPort = node.UDP(); udpPort == 0 { + udpPort = 30303 + } + node = enode.NewV4(node.Pubkey(), ip, tcpPort, udpPort) + } + addr := &net.UDPAddr{IP: node.IP(), Port: node.UDP()} + return &testenv{l1, l2, key, node, addr} +} + +func (te *testenv) close() { + te.l1.Close() + te.l2.Close() +} + +func (te *testenv) send(c net.PacketConn, req v4wire.Packet) []byte { + packet, hash, err := v4wire.Encode(te.key, req) + if err != nil { + panic(fmt.Errorf("can't encode %v packet: %v", req.Name(), err)) + } + if _, err := c.WriteTo(packet, te.remoteAddr); err != nil { + panic(fmt.Errorf("can't send %v: %v", req.Name(), err)) + } + return hash +} + +func (te *testenv) read(c net.PacketConn) (v4wire.Packet, []byte, error) { + buf := make([]byte, 2048) + if err := c.SetReadDeadline(time.Now().Add(waitTime)); err != nil { + return nil, nil, err + } + n, _, err := c.ReadFrom(buf) + if err != nil { + return nil, nil, err + } + p, _, hash, err := v4wire.Decode(buf[:n]) + return p, hash, err +} + +func (te *testenv) localEndpoint(c net.PacketConn) v4wire.Endpoint { + addr := c.LocalAddr().(*net.UDPAddr) + return v4wire.Endpoint{ + IP: addr.IP.To4(), + UDP: uint16(addr.Port), + TCP: 0, + } +} + +func (te *testenv) remoteEndpoint() v4wire.Endpoint { + return v4wire.NewEndpoint(te.remoteAddr, 0) +} + +func contains(ns []v4wire.Node, key v4wire.Pubkey) bool { + for _, n := range ns { + if n.ID == key { + return true + } + } + return false +} diff --git a/cmd/devp2p/internal/v5test/discv5tests.go b/cmd/devp2p/internal/v5test/discv5tests.go index f622b080766d..9ef83ed356be 100644 --- a/cmd/devp2p/internal/v5test/discv5tests.go +++ b/cmd/devp2p/internal/v5test/discv5tests.go @@ -19,6 +19,7 @@ package v5test import ( "bytes" "net" + "slices" "sync" "time" @@ -51,15 +52,16 @@ func (s *Suite) AllTests() []utesting.Test { {Name: "Ping", Fn: s.TestPing}, {Name: "PingLargeRequestID", Fn: s.TestPingLargeRequestID}, {Name: "PingMultiIP", Fn: s.TestPingMultiIP}, - {Name: "PingHandshakeInterrupted", Fn: s.TestPingHandshakeInterrupted}, + {Name: "HandshakeResend", Fn: s.TestHandshakeResend}, {Name: "TalkRequest", Fn: s.TestTalkRequest}, {Name: "FindnodeZeroDistance", Fn: s.TestFindnodeZeroDistance}, {Name: "FindnodeResults", Fn: s.TestFindnodeResults}, } } -// This test sends PING and expects a PONG response. func (s *Suite) TestPing(t *utesting.T) { + t.Log(`This test is just a sanity check. It sends PING and expects a PONG response.`) + conn, l1 := s.listen1(t) defer conn.close() @@ -84,9 +86,10 @@ func checkPong(t *utesting.T, pong *v5wire.Pong, ping *v5wire.Ping, c net.Packet } } -// This test sends PING with a 9-byte request ID, which isn't allowed by the spec. -// The remote node should not respond. func (s *Suite) TestPingLargeRequestID(t *utesting.T) { + t.Log(`This test sends PING with a 9-byte request ID, which isn't allowed by the spec. +The remote node should not respond.`) + conn, l1 := s.listen1(t) defer conn.close() @@ -103,10 +106,11 @@ func (s *Suite) TestPingLargeRequestID(t *utesting.T) { } } -// In this test, a session is established from one IP as usual. The session is then reused -// on another IP, which shouldn't work. The remote node should respond with WHOAREYOU for -// the attempt from a different IP. func (s *Suite) TestPingMultiIP(t *utesting.T) { + t.Log(`This test establishes a session from one IP as usual. The session is then reused +on another IP, which shouldn't work. The remote node should respond with WHOAREYOU for +the attempt from a different IP.`) + conn, l1, l2 := s.listen2(t) defer conn.close() @@ -119,6 +123,7 @@ func (s *Suite) TestPingMultiIP(t *utesting.T) { checkPong(t, resp.(*v5wire.Pong), ping, l1) // Send on l2. This reuses the session because there is only one codec. + t.Log("sending ping from alternate IP", l2.LocalAddr()) ping2 := &v5wire.Ping{ReqID: conn.nextReqID()} conn.write(l2, ping2, nil) switch resp := conn.read(l2).(type) { @@ -153,18 +158,20 @@ func (s *Suite) TestPingMultiIP(t *utesting.T) { } } -// This test starts a handshake, but doesn't finish it and sends a second ordinary message -// packet instead of a handshake message packet. The remote node should respond with -// another WHOAREYOU challenge for the second packet. -func (s *Suite) TestPingHandshakeInterrupted(t *utesting.T) { +// TestHandshakeResend starts a handshake, but doesn't finish it and sends a second ordinary message +// packet instead of a handshake message packet. The remote node should repeat the previous WHOAREYOU +// challenge for the first PING. +func (s *Suite) TestHandshakeResend(t *utesting.T) { conn, l1 := s.listen1(t) defer conn.close() // First PING triggers challenge. ping := &v5wire.Ping{ReqID: conn.nextReqID()} conn.write(l1, ping, nil) + var challenge1 *v5wire.Whoareyou switch resp := conn.read(l1).(type) { case *v5wire.Whoareyou: + challenge1 = resp t.Logf("got WHOAREYOU for PING") default: t.Fatal("expected WHOAREYOU, got", resp) @@ -172,16 +179,25 @@ func (s *Suite) TestPingHandshakeInterrupted(t *utesting.T) { // Send second PING. ping2 := &v5wire.Ping{ReqID: conn.nextReqID()} - switch resp := conn.reqresp(l1, ping2).(type) { - case *v5wire.Pong: - checkPong(t, resp, ping2, l1) + conn.write(l1, ping2, nil) + switch resp := conn.read(l1).(type) { + case *v5wire.Whoareyou: + if resp.Nonce != challenge1.Nonce { + t.Fatalf("wrong nonce %x in WHOAREYOU (want %x)", resp.Nonce[:], challenge1.Nonce[:]) + } + if !bytes.Equal(resp.ChallengeData, challenge1.ChallengeData) { + t.Fatalf("wrong ChallengeData in resent WHOAREYOU: got %x, want %x", resp.ChallengeData, challenge1.ChallengeData) + } + resp.Node = conn.remote default: t.Fatal("expected WHOAREYOU, got", resp) } } -// This test sends TALKREQ and expects an empty TALKRESP response. func (s *Suite) TestTalkRequest(t *utesting.T) { + t.Log(`This test sends some examples of TALKREQ with a protocol-id of "test-protocol" +and expects an empty TALKRESP response.`) + conn, l1 := s.listen1(t) defer conn.close() @@ -201,6 +217,7 @@ func (s *Suite) TestTalkRequest(t *utesting.T) { } // Empty request ID. + t.Log("sending TALKREQ with empty request-id") resp = conn.reqresp(l1, &v5wire.TalkRequest{Protocol: "test-protocol"}) switch resp := resp.(type) { case *v5wire.TalkResponse: @@ -215,8 +232,9 @@ func (s *Suite) TestTalkRequest(t *utesting.T) { } } -// This test checks that the remote node returns itself for FINDNODE with distance zero. func (s *Suite) TestFindnodeZeroDistance(t *utesting.T) { + t.Log(`This test checks that the remote node returns itself for FINDNODE with distance zero.`) + conn, l1 := s.listen1(t) defer conn.close() @@ -232,84 +250,124 @@ func (s *Suite) TestFindnodeZeroDistance(t *utesting.T) { } } -// In this test, multiple nodes ping the node under test. After waiting for them to be -// accepted into the remote table, the test checks that they are returned by FINDNODE. func (s *Suite) TestFindnodeResults(t *utesting.T) { + t.Log(`This test pings the node under test from multiple other endpoints and node identities +(the 'bystanders'). After waiting for them to be accepted into the remote table, the test checks +that they are returned by FINDNODE.`) + // Create bystanders. nodes := make([]*bystander, 5) - added := make(chan enode.ID, len(nodes)) + liveCh := make(chan enode.ID, len(nodes)) for i := range nodes { - nodes[i] = newBystander(t, s, added) + nodes[i] = newBystander(t, s, liveCh) defer nodes[i].close() } - // Get them added to the remote table. + // Prefill each bystander with the full bystander set so background FINDNODE + // lookups see useful routing data instead of empty responses. + known := make([]*enode.Node, 0, len(nodes)) + for _, bn := range nodes { + known = append(known, bn.conn.localNode.Node()) + } + for _, bn := range nodes { + bn.known = append([]*enode.Node(nil), known...) + } + + // Wait until enough bystanders have actually become live, i.e. the remote node + // has revalidated them by sending PING and receiving our PONG. + requiredLiveNodes := len(nodes) timeout := 60 * time.Second timeoutCh := time.After(timeout) - for count := 0; count < len(nodes); { + liveSet := make(map[enode.ID]*enode.Node) + for len(liveSet) < requiredLiveNodes { select { - case id := <-added: - t.Logf("bystander node %v added to remote table", id) - count++ + case id := <-liveCh: + for _, bn := range nodes { + if bn.id() == id { + liveSet[id] = bn.conn.localNode.Node() + break + } + } + t.Logf("bystander node %v became live", id) case <-timeoutCh: - t.Errorf("remote added %d bystander nodes in %v, need %d to continue", count, timeout, len(nodes)) - t.Logf("this can happen if the node has a non-empty table from previous runs") + t.Errorf("remote revalidated %d bystander nodes in %v, need %d to continue", len(liveSet), timeout, requiredLiveNodes) return } } - t.Logf("all %d bystander nodes were added", len(nodes)) + t.Logf("continuing after all %d bystander nodes became live", len(liveSet)) - // Collect our nodes by distance. + // Collect live nodes by distance. var dists []uint expect := make(map[enode.ID]*enode.Node) - for _, bn := range nodes { - n := bn.conn.localNode.Node() - expect[n.ID()] = n + for id, n := range liveSet { + expect[id] = n d := uint(enode.LogDist(n.ID(), s.Dest.ID())) - if !containsUint(dists, d) { + if !slices.Contains(dists, d) { dists = append(dists, d) } } // Send FINDNODE for all distances. + t.Log("requesting nodes") conn, l1 := s.listen1(t) defer conn.close() - foundNodes, err := conn.findnode(l1, dists) - if err != nil { - t.Fatal(err) - } - t.Logf("remote returned %d nodes for distance list %v", len(foundNodes), dists) - for _, n := range foundNodes { - delete(expect, n.ID()) - } - if len(expect) > 0 { - t.Errorf("missing %d nodes in FINDNODE result", len(expect)) - t.Logf("this can happen if the test is run multiple times in quick succession") - t.Logf("and the remote node hasn't removed dead nodes from previous runs yet") - } else { - t.Logf("all %d expected nodes were returned", len(nodes)) + + const maxAttempts = 5 + const retryInterval = 2 * time.Second + + for attempt := 1; attempt <= maxAttempts; attempt++ { + foundNodes, err := conn.findnode(l1, dists) + if err != nil { + t.Fatal(err) + } + missing := make(map[enode.ID]struct{}) + for id := range expect { + missing[id] = struct{}{} + } + for _, n := range foundNodes { + delete(missing, n.ID()) + } + t.Logf("attempt %d: remote returned %d nodes for distance list %v, missing %d", attempt, len(foundNodes), dists, len(missing)) + if len(missing) == 0 { + t.Logf("all %d expected live nodes were returned", len(expect)) + return + } + if attempt < maxAttempts { + time.Sleep(retryInterval) + } } + t.Errorf("missing nodes in FINDNODE result after %d attempts", maxAttempts) + t.Logf("this can happen if the node has a non-empty table from previous runs") } // A bystander is a node whose only purpose is filling a spot in the remote table. type bystander struct { - dest *enode.Node - conn *conn - l net.PacketConn - - addedCh chan enode.ID - done sync.WaitGroup + dest *enode.Node + conn *conn + l net.PacketConn + known []*enode.Node + + liveCh chan enode.ID + sent map[v5wire.Nonce]v5wire.Packet + done sync.WaitGroup } -func newBystander(t *utesting.T, s *Suite, added chan enode.ID) *bystander { +func newBystander(t *utesting.T, s *Suite, live chan enode.ID) *bystander { conn, l := s.listen1(t) conn.setEndpoint(l) // bystander nodes need IP/port to get pinged bn := &bystander{ - conn: conn, - l: l, - dest: s.Dest, - addedCh: added, + conn: conn, + l: l, + dest: s.Dest, + liveCh: live, + sent: make(map[v5wire.Nonce]v5wire.Packet), } + // Establish an initial session and let the remote learn this node before + // switching to the passive responder loop below. + conn.reqresp(l, &v5wire.Ping{ + ReqID: conn.nextReqID(), + ENRSeq: conn.localNode.Seq(), + }) bn.done.Add(1) go bn.loop() return bn @@ -330,48 +388,57 @@ func (bn *bystander) close() { func (bn *bystander) loop() { defer bn.done.Done() - var ( - lastPing time.Time - wasAdded bool - ) for { - // Ping the remote node. - if !wasAdded && time.Since(lastPing) > 10*time.Second { - bn.conn.reqresp(bn.l, &v5wire.Ping{ - ReqID: bn.conn.nextReqID(), - ENRSeq: bn.dest.Seq(), - }) - lastPing = time.Now() - } - // Answer packets. - switch p := bn.conn.read(bn.l).(type) { + p, from := bn.conn.readFrom(bn.l) + switch p := p.(type) { + case *v5wire.Whoareyou: + p.Node = bn.dest + if resp, ok := bn.sent[p.Nonce]; ok { + nonce := bn.conn.writeTo(bn.l, resp, p, from) + delete(bn.sent, p.Nonce) + bn.sent[nonce] = resp + } else { + bn.conn.writeTo(bn.l, &v5wire.Ping{ + ReqID: bn.conn.nextReqID(), + ENRSeq: bn.conn.localNode.Seq(), + }, p, from) + } case *v5wire.Ping: - bn.conn.write(bn.l, &v5wire.Pong{ - ReqID: p.ReqID, + resp := &v5wire.Pong{ + ReqID: append([]byte(nil), p.ReqID...), ENRSeq: bn.conn.localNode.Seq(), - ToIP: bn.dest.IP(), - ToPort: uint16(bn.dest.UDP()), - }, nil) - wasAdded = true - bn.notifyAdded() + ToIP: from.IP, + ToPort: uint16(from.Port), + } + nonce := bn.conn.writeTo(bn.l, resp, nil, from) + bn.sent[nonce] = resp + bn.notifyLive() case *v5wire.Findnode: - bn.conn.write(bn.l, &v5wire.Nodes{ReqID: p.ReqID, Total: 1}, nil) - wasAdded = true - bn.notifyAdded() + resp := &v5wire.Nodes{ReqID: append([]byte(nil), p.ReqID...), Total: 1} + for _, n := range bn.known { + if slices.Contains(p.Distances, uint(enode.LogDist(n.ID(), bn.id()))) { + resp.Nodes = append(resp.Nodes, n.Record()) + } + } + nonce := bn.conn.writeTo(bn.l, resp, nil, from) + bn.sent[nonce] = resp case *v5wire.TalkRequest: - bn.conn.write(bn.l, &v5wire.TalkResponse{ReqID: p.ReqID}, nil) + resp := &v5wire.TalkResponse{ReqID: append([]byte(nil), p.ReqID...)} + nonce := bn.conn.writeTo(bn.l, resp, nil, from) + bn.sent[nonce] = resp case *readError: - if !netutil.IsTemporaryError(p.err) { - bn.conn.logf("shutting down: %v", p.err) - return + if netutil.IsTemporaryError(p.err) || v5wire.IsInvalidHeader(p.err) { + continue } + bn.conn.logf("shutting down: %v", p.err) + return } } } -func (bn *bystander) notifyAdded() { - if bn.addedCh != nil { - bn.addedCh <- bn.id() - bn.addedCh = nil +func (bn *bystander) notifyLive() { + if bn.liveCh != nil { + bn.liveCh <- bn.id() + bn.liveCh = nil } } diff --git a/cmd/devp2p/internal/v5test/framework.go b/cmd/devp2p/internal/v5test/framework.go index 6467b3a8bc48..b1a1ea9614a5 100644 --- a/cmd/devp2p/internal/v5test/framework.go +++ b/cmd/devp2p/internal/v5test/framework.go @@ -44,6 +44,8 @@ func (p *readError) Unwrap() error { return p.err } func (p *readError) RequestID() []byte { return nil } func (p *readError) SetRequestID([]byte) {} +func (p *readError) AppendLogInfo(ctx []interface{}) []interface{} { return ctx } + // readErrorf creates a readError with the given text. func readErrorf(format string, args ...interface{}) *readError { return &readError{fmt.Errorf(format, args...)} @@ -60,11 +62,9 @@ type conn struct { remoteAddr *net.UDPAddr listeners []net.PacketConn - log logger - codec *v5wire.Codec - lastRequest v5wire.Packet - lastChallenge *v5wire.Whoareyou - idCounter uint32 + log logger + codec *v5wire.Codec + idCounter uint32 } type logger interface { @@ -127,14 +127,16 @@ func (tc *conn) nextReqID() []byte { // The request is retried if a handshake is requested. func (tc *conn) reqresp(c net.PacketConn, req v5wire.Packet) v5wire.Packet { reqnonce := tc.write(c, req, nil) - switch resp := tc.read(c).(type) { + resp, from := tc.readFrom(c) + switch resp := resp.(type) { case *v5wire.Whoareyou: if resp.Nonce != reqnonce { return readErrorf("wrong nonce %x in WHOAREYOU (want %x)", resp.Nonce[:], reqnonce[:]) } resp.Node = tc.remote - tc.write(c, req, resp) - return tc.read(c) + tc.writeTo(c, req, resp, from) + resp2, _ := tc.readFrom(c) + return resp2 default: return resp } @@ -150,21 +152,24 @@ func (tc *conn) findnode(c net.PacketConn, dists []uint) ([]*enode.Node, error) results []*enode.Node ) for n := 1; n > 0; { - switch resp := tc.read(c).(type) { + resp, from := tc.readFrom(c) + switch resp := resp.(type) { case *v5wire.Whoareyou: // Handle handshake. if resp.Nonce == reqnonce { resp.Node = tc.remote - tc.write(c, findnode, resp) + tc.writeTo(c, findnode, resp, from) } else { return nil, fmt.Errorf("unexpected WHOAREYOU (nonce %x), waiting for NODES", resp.Nonce[:]) } case *v5wire.Ping: // Handle ping from remote. - tc.write(c, &v5wire.Pong{ + tc.writeTo(c, &v5wire.Pong{ ReqID: resp.ReqID, ENRSeq: tc.localNode.Seq(), - }, nil) + ToIP: from.IP, + ToPort: uint16(from.Port), + }, nil, from) case *v5wire.Nodes: // Got NODES! Check request ID. if !bytes.Equal(resp.ReqID, findnode.ReqID) { @@ -200,11 +205,16 @@ func (tc *conn) findnode(c net.PacketConn, dists []uint) ([]*enode.Node, error) // write sends a packet on the given connection. func (tc *conn) write(c net.PacketConn, p v5wire.Packet, challenge *v5wire.Whoareyou) v5wire.Nonce { + return tc.writeTo(c, p, challenge, tc.remoteAddr) +} + +// writeTo sends a packet on the given connection to the given UDP address. +func (tc *conn) writeTo(c net.PacketConn, p v5wire.Packet, challenge *v5wire.Whoareyou, to *net.UDPAddr) v5wire.Nonce { packet, nonce, err := tc.codec.Encode(tc.remote.ID(), tc.remoteAddr.String(), p, challenge) if err != nil { panic(fmt.Errorf("can't encode %v packet: %v", p.Name(), err)) } - if _, err := c.WriteTo(packet, tc.remoteAddr); err != nil { + if _, err := c.WriteTo(packet, to); err != nil { tc.logf("Can't send %s: %v", p.Name(), err) } else { tc.logf(">> %s", p.Name()) @@ -214,20 +224,30 @@ func (tc *conn) write(c net.PacketConn, p v5wire.Packet, challenge *v5wire.Whoar // read waits for an incoming packet on the given connection. func (tc *conn) read(c net.PacketConn) v5wire.Packet { + p, _ := tc.readFrom(c) + return p +} + +// readFrom waits for an incoming packet and returns its source address. +func (tc *conn) readFrom(c net.PacketConn) (v5wire.Packet, *net.UDPAddr) { buf := make([]byte, 1280) if err := c.SetReadDeadline(time.Now().Add(waitTime)); err != nil { - return &readError{err} + return &readError{err}, nil } - n, fromAddr, err := c.ReadFrom(buf) + n, from, err := c.ReadFrom(buf) if err != nil { - return &readError{err} + return &readError{err}, nil } - _, _, p, err := tc.codec.Decode(buf[:n], fromAddr.String()) + udpFrom, _ := from.(*net.UDPAddr) + // Use tc.remoteAddr for codec/session lookup because the fixture keys sessions + // by the advertised endpoint, but return the actual UDP source so responses can + // comply with the spec and go back to the request envelope address. + _, _, p, err := tc.codec.Decode(buf[:n], tc.remoteAddr.String()) if err != nil { - return &readError{err} + return &readError{err}, udpFrom } tc.logf("<< %s", p.Name()) - return p + return p, udpFrom } // logf prints to the test log. @@ -252,12 +272,3 @@ func checkRecords(records []*enr.Record) ([]*enode.Node, error) { } return nodes, nil } - -func containsUint(ints []uint, x uint) bool { - for i := range ints { - if ints[i] == x { - return true - } - } - return false -} diff --git a/cmd/devp2p/rlpxcmd.go b/cmd/devp2p/rlpxcmd.go index d074e949a639..9fc1cb2db5d0 100644 --- a/cmd/devp2p/rlpxcmd.go +++ b/cmd/devp2p/rlpxcmd.go @@ -25,6 +25,7 @@ import ( "github.com/XinFinOrg/XDPoSChain/cmd/devp2p/internal/ethtest" "github.com/XinFinOrg/XDPoSChain/crypto" "github.com/XinFinOrg/XDPoSChain/p2p" + "github.com/XinFinOrg/XDPoSChain/p2p/enode" "github.com/XinFinOrg/XDPoSChain/p2p/rlpx" "github.com/XinFinOrg/XDPoSChain/rlp" "github.com/urfave/cli/v2" @@ -36,6 +37,7 @@ var ( Usage: "RLPx Commands", Subcommands: []*cli.Command{ rlpxPingCommand, + rlpxEthTestCommand, }, } rlpxPingCommand = &cli.Command{ @@ -43,6 +45,19 @@ var ( Usage: "Perform a RLPx handshake", Action: rlpxPing, } + rlpxEthTestCommand = &cli.Command{ + Name: "eth-test", + Usage: "Runs a minimal RLPx/devp2p compatibility test subset against a node", + Action: rlpxEthTest, + Flags: []cli.Flag{ + testPatternFlag, + testTAPFlag, + testChainDirFlag, + testNodeFlag, + testNodeJWTFlag, + testNodeEngineFlag, + }, + } ) func rlpxPing(ctx *cli.Context) error { @@ -93,6 +108,16 @@ func rlpxPing(ctx *cli.Context) error { return nil } +// rlpxEthTest runs the local compatibility subset for RLPx/devp2p behavior. +func rlpxEthTest(ctx *cli.Context) error { + p := cliTestParams(ctx) + suite, err := ethtest.NewSuite(p.node, p.chainDir, p.engineAPI, p.jwt) + if err != nil { + exit(err) + } + return runTests(ctx, suite.EthTests()) +} + // decodeRLPxDisconnect parses a disconnect message payload. Per the RLPx spec // the payload is a list containing a single reason, but some implementations // (including older geth) sent the reason as a bare byte. Accept both forms. @@ -117,3 +142,25 @@ func decodeRLPxDisconnect(data []byte) (p2p.DiscReason, error) { } return reason, nil } + +type testParams struct { + node *enode.Node + engineAPI string + jwt string + chainDir string +} + +func cliTestParams(ctx *cli.Context) *testParams { + nodeStr := ctx.String(testNodeFlag.Name) + node, err := parseNode(nodeStr) + if err != nil { + exit(err) + } + p := testParams{ + node: node, + engineAPI: ctx.String(testNodeEngineFlag.Name), + jwt: ctx.String(testNodeJWTFlag.Name), + chainDir: ctx.String(testChainDirFlag.Name), + } + return &p +} diff --git a/cmd/devp2p/runtest.go b/cmd/devp2p/runtest.go new file mode 100644 index 000000000000..32b8a957d4ab --- /dev/null +++ b/cmd/devp2p/runtest.go @@ -0,0 +1,99 @@ +// Copyright 2020 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "os" + + "github.com/XinFinOrg/XDPoSChain/cmd/devp2p/internal/v4test" + "github.com/XinFinOrg/XDPoSChain/internal/flags" + "github.com/XinFinOrg/XDPoSChain/internal/utesting" + "github.com/XinFinOrg/XDPoSChain/log" + "github.com/urfave/cli/v2" +) + +var ( + testPatternFlag = &cli.StringFlag{ + Name: "run", + Usage: "Pattern of test suite(s) to run", + Category: flags.TestingCategory, + } + testTAPFlag = &cli.BoolFlag{ + Name: "tap", + Usage: "Output test results in TAP format", + Category: flags.TestingCategory, + } + + // Kept for CLI compatibility with upstream test commands. In this fork's + // current rlpx eth-test subset, only --node is required. + testChainDirFlag = &cli.PathFlag{ + Name: "chain", + Usage: "Test chain directory (optional in current subset)", + Category: flags.TestingCategory, + } + testNodeFlag = &cli.StringFlag{ + Name: "node", + Usage: "Peer-to-Peer endpoint (ENR) of the test node (required)", + Category: flags.TestingCategory, + Required: true, + } + testNodeJWTFlag = &cli.StringFlag{ + Name: "jwtsecret", + Usage: "JWT secret for the engine API of the test node (optional in current subset)", + Category: flags.TestingCategory, + } + testNodeEngineFlag = &cli.StringFlag{ + Name: "engineapi", + Usage: "Engine API endpoint of the test node (optional in current subset)", + Category: flags.TestingCategory, + } + + // These two are specific to the discovery tests. + testListen1Flag = &cli.StringFlag{ + Name: "listen1", + Usage: "IP address of the first tester", + Value: v4test.Listen1, + Category: flags.TestingCategory, + } + testListen2Flag = &cli.StringFlag{ + Name: "listen2", + Usage: "IP address of the second tester", + Value: v4test.Listen2, + Category: flags.TestingCategory, + } +) + +func runTests(ctx *cli.Context, tests []utesting.Test) error { + // Filter test cases. + if ctx.IsSet(testPatternFlag.Name) { + tests = utesting.MatchTests(tests, ctx.String(testPatternFlag.Name)) + } + // Disable logging unless explicitly enabled. + if !ctx.IsSet("verbosity") && !ctx.IsSet("vmodule") { + log.SetDefault(log.NewLogger(log.DiscardHandler())) + } + // Run the tests. + var run = utesting.RunTests + if ctx.Bool(testTAPFlag.Name) { + run = utesting.RunTAP + } + results := run(tests, os.Stdout) + if utesting.CountFailures(results) > 0 { + os.Exit(1) + } + return nil +} diff --git a/internal/flags/categories.go b/internal/flags/categories.go index 79f24e47269d..c90fa8ee715a 100644 --- a/internal/flags/categories.go +++ b/internal/flags/categories.go @@ -33,6 +33,7 @@ const ( LoggingCategory = "LOGGING AND DEBUGGING" MetricsCategory = "METRICS AND STATS" MiscCategory = "MISC" + TestingCategory = "TESTING" DeprecatedCategory = "ALIASED (deprecated)" XdcCategory = "XDC" ) diff --git a/p2p/discover/v5wire/encoding.go b/p2p/discover/v5wire/encoding.go index e2d817c64b00..73b49ace8224 100644 --- a/p2p/discover/v5wire/encoding.go +++ b/p2p/discover/v5wire/encoding.go @@ -117,6 +117,13 @@ var ( ErrInvalidReqID = errors.New("request ID larger than 8 bytes") ) +// IsInvalidHeader reports whether 'err' is related to an invalid packet header. When it +// returns false, it is pretty certain that the packet causing the error does not belong +// to discv5. +func IsInvalidHeader(err error) bool { + return err == errTooShort || err == errInvalidHeader || err == errMsgTooShort +} + // Packet sizes. var ( sizeofStaticHeader = binary.Size(StaticHeader{}) From b88f78226e6d0a5c4fa11de906545dc44900a3f2 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Wed, 15 Jul 2026 17:23:22 +0800 Subject: [PATCH 14/14] feat(cmd/devp2p): add ethtest chain and protocol compatibility coverage Introduce fixture-backed ethtest chain/connection helpers, packet codecs, and focused tests for headers, bodies, receipts, and tx smoke flows. Also restore --chain as a required flag for runtest to match expected CLI behavior. --- cmd/devp2p/internal/ethtest/chain.go | 341 ++++++++ cmd/devp2p/internal/ethtest/chain_test.go | 340 ++++++++ cmd/devp2p/internal/ethtest/conn.go | 287 +++++++ .../internal/ethtest/conn_decode_test.go | 210 +++++ cmd/devp2p/internal/ethtest/conn_test.go | 64 ++ cmd/devp2p/internal/ethtest/packets.go | 73 ++ cmd/devp2p/internal/ethtest/packets_test.go | 45 + cmd/devp2p/internal/ethtest/suite.go | 776 +++++++++++++++++- .../internal/ethtest/suite_registry_test.go | 109 +++ cmd/devp2p/internal/ethtest/suite_test.go | 71 ++ cmd/devp2p/runtest.go | 6 +- 11 files changed, 2315 insertions(+), 7 deletions(-) create mode 100644 cmd/devp2p/internal/ethtest/chain.go create mode 100644 cmd/devp2p/internal/ethtest/chain_test.go create mode 100644 cmd/devp2p/internal/ethtest/conn.go create mode 100644 cmd/devp2p/internal/ethtest/conn_decode_test.go create mode 100644 cmd/devp2p/internal/ethtest/conn_test.go create mode 100644 cmd/devp2p/internal/ethtest/packets.go create mode 100644 cmd/devp2p/internal/ethtest/packets_test.go create mode 100644 cmd/devp2p/internal/ethtest/suite_registry_test.go create mode 100644 cmd/devp2p/internal/ethtest/suite_test.go diff --git a/cmd/devp2p/internal/ethtest/chain.go b/cmd/devp2p/internal/ethtest/chain.go new file mode 100644 index 000000000000..1578a6ede212 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/chain.go @@ -0,0 +1,341 @@ +package ethtest + +import ( + "bytes" + "compress/gzip" + "crypto/ecdsa" + "encoding/json" + "errors" + "fmt" + "io" + "math/big" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/common/hexutil" + "github.com/XinFinOrg/XDPoSChain/core" + "github.com/XinFinOrg/XDPoSChain/core/state" + "github.com/XinFinOrg/XDPoSChain/core/types" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/params" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +// Chain is a lightweight blockchain-like store backed by ethtest fixtures. +type Chain struct { + genesis core.Genesis + blocks []*types.Block + state map[common.Address]state.DumpAccount + senders map[common.Address]*senderInfo + config *params.ChainConfig + + txInfo txInfo +} + +type txInfo struct { + LargeReceiptBlock *uint64 `json:"tx-largereceipt"` +} + +type senderInfo struct { + Key *ecdsa.PrivateKey `json:"key"` + Nonce uint64 `json:"nonce"` +} + +// NewChain loads ethtest fixtures from the given directory. +func NewChain(dir string) (*Chain, error) { + if dir == "" { + return nil, fmt.Errorf("chain directory is required") + } + gen, err := loadGenesis(filepath.Join(dir, "genesis.json")) + if err != nil { + return nil, err + } + gblock := gen.ToBlock() + + blocks, err := blocksFromFile(filepath.Join(dir, "chain.rlp"), gblock) + if err != nil { + if !isLegacyFixtureEncodingError(err) { + return nil, err + } + // Some fork fixtures encode block payloads in a legacy shape that doesn't + // decode into types.Block directly. Keep Phase 1 usable by loading genesis + // and defer full chain payload decoding to the protocol-adapter phases. + blocks = []*types.Block{gblock} + } + stateDump, err := readState(filepath.Join(dir, "headstate.json")) + if err != nil { + return nil, err + } + accounts, err := readAccounts(filepath.Join(dir, "accounts.json")) + if err != nil { + return nil, err + } + + var info txInfo + if err := common.LoadJSON(filepath.Join(dir, "txinfo.json"), &info); err != nil { + return nil, err + } + + return &Chain{ + genesis: gen, + blocks: blocks, + state: stateDump, + senders: accounts, + config: gen.Config, + txInfo: info, + }, nil +} + +func isLegacyFixtureEncodingError(err error) bool { + if err == nil { + return false + } + msg := err.Error() + return strings.Contains(msg, "too few elements for types.Header") +} + +func (c *Chain) Head() *types.Block { + return c.blocks[c.Len()-1] +} + +func (c *Chain) Len() int { + return len(c.blocks) +} + +func (c *Chain) GetBlock(number int) *types.Block { + return c.blocks[number] +} + +func (c *Chain) TD() *big.Int { + return new(big.Int) +} + +// GetSender returns the address and tracked nonce for an account in the +// deterministic sender set loaded from accounts.json. +func (c *Chain) GetSender(idx int) (common.Address, uint64) { + accounts := make([]common.Address, 0, len(c.senders)) + for addr := range c.senders { + accounts = append(accounts, addr) + } + sort.Slice(accounts, func(i, j int) bool { + return bytes.Compare(accounts[i][:], accounts[j][:]) < 0 + }) + addr := accounts[idx] + return addr, c.senders[addr].Nonce +} + +// IncNonce increases the tracked pending nonce for a known sender account. +func (c *Chain) IncNonce(addr common.Address, amt uint64) { + if _, ok := c.senders[addr]; !ok { + panic("nonce increment for non-signer") + } + c.senders[addr].Nonce += amt +} + +// Balance returns the account balance from head-state dump. +func (c *Chain) Balance(addr common.Address) *big.Int { + bal := new(big.Int) + if acc, ok := c.state[addr]; ok { + bal, _ = bal.SetString(acc.Balance, 10) + } + return bal +} + +// SignTx signs tx with the private key associated with sender address. +func (c *Chain) SignTx(from common.Address, tx *types.Transaction) (*types.Transaction, error) { + signer := types.LatestSigner(c.config) + acc, ok := c.senders[from] + if !ok { + return nil, fmt.Errorf("account not available for signing: %s", from) + } + return types.SignTx(tx, signer, acc.Key) +} + +// GetHeaders returns headers matching a GetBlockHeaders query payload. +func (c *Chain) GetHeaders(req *getBlockHeadersData) ([]*types.Header, error) { + if req == nil { + return nil, errors.New("nil header request") + } + if req.Amount < 1 { + return nil, errors.New("no block headers requested") + } + + var ( + headers = make([]*types.Header, req.Amount) + blockNumber uint64 + ) + matchByHash := req.Origin.Hash != (common.Hash{}) + for _, block := range c.blocks { + if matchByHash { + if block.Hash() != req.Origin.Hash { + continue + } + } else if block.Number().Uint64() != req.Origin.Number { + continue + } + headers[0] = block.Header() + blockNumber = block.Number().Uint64() + break + } + if headers[0] == nil { + return nil, fmt.Errorf("no headers found for given origin number %v, hash %v", req.Origin.Number, req.Origin.Hash) + } + if req.Amount == 1 { + return headers[:1], nil + } + if req.Reverse { + for i := 1; i < int(req.Amount); i++ { + step := 1 + req.Skip + if blockNumber < step { + return headers[:i], nil + } + next := blockNumber - step + if next >= uint64(len(c.blocks)) { + return headers[:i], nil + } + blockNumber = next + headers[i] = c.blocks[blockNumber].Header() + } + return headers, nil + } + for i := 1; i < int(req.Amount); i++ { + next := blockNumber + 1 + req.Skip + if int(next) >= len(c.blocks) { + return headers[:i], nil + } + blockNumber = next + headers[i] = c.blocks[blockNumber].Header() + } + return headers, nil +} + +// GetBlockBodies returns block body payloads for blocks known by hash. +func (c *Chain) GetBlockBodies(req *getBlockBodiesData) (blockBodiesData, error) { + if req == nil { + return nil, errors.New("nil block bodies request") + } + bodies := make(blockBodiesData, 0, len(*req)) + for _, hash := range *req { + block := c.findBlockByHash(hash) + if block == nil { + continue + } + bodies = append(bodies, &blockBody{ + Transactions: block.Transactions(), + Uncles: block.Uncles(), + }) + } + return bodies, nil +} + +// GetReceipts returns receipt lists for blocks known by hash. +// +// The current fixture set does not carry per-block receipt payloads, so this +// method returns empty receipt lists aligned to known block hashes. +func (c *Chain) GetReceipts(req *getReceiptsData) (receiptsData, error) { + if req == nil { + return nil, errors.New("nil receipts request") + } + receipts := make(receiptsData, 0, len(*req)) + for _, hash := range *req { + if c.findBlockByHash(hash) == nil { + continue + } + receipts = append(receipts, types.Receipts{}) + } + return receipts, nil +} + +func (c *Chain) findBlockByHash(hash common.Hash) *types.Block { + for _, block := range c.blocks { + if block.Hash() == hash { + return block + } + } + return nil +} + +func loadGenesis(genesisFile string) (core.Genesis, error) { + chainConfig, err := os.ReadFile(genesisFile) + if err != nil { + return core.Genesis{}, err + } + var gen core.Genesis + if err := json.Unmarshal(chainConfig, &gen); err != nil { + return core.Genesis{}, err + } + return gen, nil +} + +func blocksFromFile(chainfile string, gblock *types.Block) ([]*types.Block, error) { + fh, err := os.Open(chainfile) + if err != nil { + return nil, err + } + defer fh.Close() + + var reader io.Reader = fh + if strings.HasSuffix(chainfile, ".gz") { + if reader, err = gzip.NewReader(reader); err != nil { + return nil, err + } + } + + stream := rlp.NewStream(reader, 0) + blocks := make([]*types.Block, 1) + blocks[0] = gblock +forLoop: + for i := 0; ; i++ { + var b types.Block + switch err := stream.Decode(&b); err { + case nil: + if b.NumberU64() != uint64(i+1) { + return nil, fmt.Errorf("block at index %d has wrong number %d", i, b.NumberU64()) + } + blocks = append(blocks, &b) + case io.EOF: + break forLoop + default: + return nil, fmt.Errorf("at block index %d: %v", i, err) + } + } + return blocks, nil +} + +func readState(file string) (map[common.Address]state.DumpAccount, error) { + f, err := os.ReadFile(file) + if err != nil { + return nil, fmt.Errorf("unable to read state: %v", err) + } + var dump state.Dump + if err := json.Unmarshal(f, &dump); err != nil { + return nil, fmt.Errorf("unable to unmarshal state: %v", err) + } + return dump.Accounts, nil +} + +func readAccounts(file string) (map[common.Address]*senderInfo, error) { + f, err := os.ReadFile(file) + if err != nil { + return nil, fmt.Errorf("unable to read state: %v", err) + } + type account struct { + Key hexutil.Bytes `json:"key"` + } + keys := make(map[common.Address]account) + if err := json.Unmarshal(f, &keys); err != nil { + return nil, fmt.Errorf("unable to unmarshal accounts: %v", err) + } + accounts := make(map[common.Address]*senderInfo) + for addr, acc := range keys { + pk, err := crypto.HexToECDSA(common.Bytes2Hex(acc.Key)) + if err != nil { + return nil, fmt.Errorf("unable to read private key for %s: %v", addr, err) + } + accounts[addr] = &senderInfo{Key: pk, Nonce: 0} + } + return accounts, nil +} diff --git a/cmd/devp2p/internal/ethtest/chain_test.go b/cmd/devp2p/internal/ethtest/chain_test.go new file mode 100644 index 000000000000..f0f7653e7dbc --- /dev/null +++ b/cmd/devp2p/internal/ethtest/chain_test.go @@ -0,0 +1,340 @@ +package ethtest + +import ( + "math/big" + "testing" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/types" +) + +func TestChainGetSenderAndNonce(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + if len(chain.senders) == 0 { + t.Skip("fixture has no sender accounts") + } + + addr, nonce := chain.GetSender(0) + if _, ok := chain.senders[addr]; !ok { + t.Fatalf("returned address is not a known sender: %s", addr) + } + if nonce != chain.senders[addr].Nonce { + t.Fatalf("wrong sender nonce: have %d want %d", nonce, chain.senders[addr].Nonce) + } +} + +func TestChainIncNonce(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + if len(chain.senders) == 0 { + t.Skip("fixture has no sender accounts") + } + + addr, nonce := chain.GetSender(0) + chain.IncNonce(addr, 2) + if got := chain.senders[addr].Nonce; got != nonce+2 { + t.Fatalf("nonce not incremented correctly: have %d want %d", got, nonce+2) + } +} + +func TestChainBalanceKnownAndUnknown(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + + if len(chain.senders) > 0 { + addr, _ := chain.GetSender(0) + bal := chain.Balance(addr) + if bal.Sign() < 0 { + t.Fatalf("unexpected negative balance: %s", bal) + } + } + unknown := common.HexToAddress("0x00000000000000000000000000000000000000aa") + if got := chain.Balance(unknown); got.Sign() != 0 { + t.Fatalf("unknown account balance should be zero, have %s", got) + } +} + +func TestChainSignTx(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + if len(chain.senders) == 0 { + t.Skip("fixture has no sender accounts") + } + + from, nonce := chain.GetSender(0) + to := common.HexToAddress("0x00000000000000000000000000000000000000aa") + unsigned := types.NewTransaction(nonce, to, big.NewInt(1), 21000, big.NewInt(1), nil) + signed, err := chain.SignTx(from, unsigned) + if err != nil { + t.Fatalf("failed to sign transaction: %v", err) + } + if signed.Hash() == (common.Hash{}) { + t.Fatal("signed transaction hash must not be empty") + } +} + +func TestChainSignTxUnknownSender(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + unknown := common.HexToAddress("0x00000000000000000000000000000000000000bb") + to := common.HexToAddress("0x00000000000000000000000000000000000000aa") + unsigned := types.NewTransaction(0, to, big.NewInt(1), 21000, big.NewInt(1), nil) + _, err = chain.SignTx(unknown, unsigned) + if err == nil { + t.Fatal("expected signing error for unknown sender") + } +} + +func TestChainGetHeadersRejectsZeroAmount(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + _, err = chain.GetHeaders(&getBlockHeadersData{Amount: 0}) + if err == nil { + t.Fatal("expected error for zero header amount") + } +} + +func TestChainGetHeadersByNumber(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + headers, err := chain.GetHeaders(&getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1}) + if err != nil { + t.Fatalf("unexpected get headers error: %v", err) + } + if len(headers) != 1 { + t.Fatalf("wrong header count: have %d want 1", len(headers)) + } + if headers[0].Number.Uint64() != 0 { + t.Fatalf("wrong header number: have %d want 0", headers[0].Number.Uint64()) + } +} + +func TestChainGetHeadersByHash(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + headers, err := chain.GetHeaders(&getBlockHeadersData{Origin: hashOrNumber{Hash: chain.blocks[0].Hash()}, Amount: 1}) + if err != nil { + t.Fatalf("unexpected get headers by hash error: %v", err) + } + if len(headers) != 1 { + t.Fatalf("wrong header count by hash: have %d want 1", len(headers)) + } + if headers[0].Hash() != chain.blocks[0].Header().Hash() { + t.Fatalf("wrong header hash by origin: have %x want %x", headers[0].Hash(), chain.blocks[0].Header().Hash()) + } +} + +func TestChainGetHeadersNonexistentOrigin(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + _, err = chain.GetHeaders(&getBlockHeadersData{ + Origin: hashOrNumber{Number: ^uint64(0)}, + Amount: 1, + }) + if err == nil { + t.Fatal("expected error for nonexistent header origin") + } +} + +func TestChainGetHeadersNonexistentHashOrigin(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + _, err = chain.GetHeaders(&getBlockHeadersData{ + Origin: hashOrNumber{Hash: common.HexToHash("0x01")}, + Amount: 1, + }) + if err == nil { + t.Fatal("expected error for nonexistent hash header origin") + } +} + +func TestChainGetHeadersWithSkip(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + if chain.Len() < 5 { + t.Skipf("fixture chain too short for skip test: len=%d", chain.Len()) + } + headers, err := chain.GetHeaders(&getBlockHeadersData{ + Origin: hashOrNumber{Number: 0}, + Amount: 3, + Skip: 1, + }) + if err != nil { + t.Fatalf("unexpected get headers error: %v", err) + } + if len(headers) != 3 { + t.Fatalf("wrong skipped headers count: have %d want 3", len(headers)) + } + if headers[0].Number.Uint64() != 0 || headers[1].Number.Uint64() != 2 || headers[2].Number.Uint64() != 4 { + t.Fatalf("unexpected skipped header numbers: have [%d %d %d] want [0 2 4]", + headers[0].Number.Uint64(), headers[1].Number.Uint64(), headers[2].Number.Uint64()) + } +} + +func TestChainGetHeadersReverseWithSkip(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + if chain.Len() < 5 { + t.Skipf("fixture chain too short for reverse skip test: len=%d", chain.Len()) + } + headers, err := chain.GetHeaders(&getBlockHeadersData{ + Origin: hashOrNumber{Number: 4}, + Amount: 3, + Skip: 1, + Reverse: true, + }) + if err != nil { + t.Fatalf("unexpected get headers error: %v", err) + } + if len(headers) != 3 { + t.Fatalf("wrong reverse skipped headers count: have %d want 3", len(headers)) + } + if headers[0].Number.Uint64() != 4 || headers[1].Number.Uint64() != 2 || headers[2].Number.Uint64() != 0 { + t.Fatalf("unexpected reverse skipped header numbers: have [%d %d %d] want [4 2 0]", + headers[0].Number.Uint64(), headers[1].Number.Uint64(), headers[2].Number.Uint64()) + } +} + +func TestChainGetHeadersReverseFromGenesisStopsSafely(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + headers, err := chain.GetHeaders(&getBlockHeadersData{ + Origin: hashOrNumber{Number: 0}, + Amount: 3, + Skip: 0, + Reverse: true, + }) + if err != nil { + t.Fatalf("unexpected get headers error: %v", err) + } + if len(headers) != 1 { + t.Fatalf("wrong reverse headers count: have %d want 1", len(headers)) + } + if headers[0].Number.Uint64() != 0 { + t.Fatalf("wrong reverse header number: have %d want 0", headers[0].Number.Uint64()) + } +} + +func TestChainGetBlockBodiesByHash(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + req := getBlockBodiesData{chain.blocks[0].Hash()} + bodies, err := chain.GetBlockBodies(&req) + if err != nil { + t.Fatalf("unexpected get block bodies error: %v", err) + } + if len(bodies) != 1 { + t.Fatalf("wrong block bodies count: have %d want 1", len(bodies)) + } +} + +func TestChainGetBlockBodiesRejectsNil(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + _, err = chain.GetBlockBodies(nil) + if err == nil { + t.Fatal("expected error for nil block bodies request") + } +} + +func TestChainGetBlockBodiesSkipsUnknownHash(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + req := getBlockBodiesData{chain.blocks[0].Hash(), common.HexToHash("0x01")} + bodies, err := chain.GetBlockBodies(&req) + if err != nil { + t.Fatalf("unexpected get block bodies error: %v", err) + } + if len(bodies) != 1 { + t.Fatalf("wrong block bodies count with unknown hash: have %d want 1", len(bodies)) + } +} + +func TestChainGetBlockBodiesUnknownOnly(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + req := getBlockBodiesData{common.HexToHash("0x01")} + bodies, err := chain.GetBlockBodies(&req) + if err != nil { + t.Fatalf("unexpected get block bodies error: %v", err) + } + if len(bodies) != 0 { + t.Fatalf("wrong block bodies count for unknown-only request: have %d want 0", len(bodies)) + } +} + +func TestChainGetReceiptsByHash(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + req := getReceiptsData{chain.blocks[0].Hash(), common.HexToHash("0x01")} + receipts, err := chain.GetReceipts(&req) + if err != nil { + t.Fatalf("unexpected get receipts error: %v", err) + } + if len(receipts) != 1 { + t.Fatalf("wrong receipts count: have %d want 1", len(receipts)) + } +} + +func TestChainGetReceiptsUnknownOnly(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + req := getReceiptsData{common.HexToHash("0x01")} + receipts, err := chain.GetReceipts(&req) + if err != nil { + t.Fatalf("unexpected get receipts error: %v", err) + } + if len(receipts) != 0 { + t.Fatalf("wrong receipts count for unknown-only request: have %d want 0", len(receipts)) + } +} + +func TestChainGetReceiptsRejectsNil(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + _, err = chain.GetReceipts(nil) + if err == nil { + t.Fatal("expected error for nil receipts request") + } +} diff --git a/cmd/devp2p/internal/ethtest/conn.go b/cmd/devp2p/internal/ethtest/conn.go new file mode 100644 index 000000000000..5045ea55f4e5 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/conn.go @@ -0,0 +1,287 @@ +package ethtest + +import ( + "crypto/ecdsa" + "errors" + "fmt" + "math/big" + "net" + "time" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/types" + "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/eth" + "github.com/XinFinOrg/XDPoSChain/p2p" + "github.com/XinFinOrg/XDPoSChain/p2p/rlpx" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +const ( + ethProtoVersion63 uint = 63 + ethProtoVersionXDpos2 uint = 100 +) + +const connTimeout = 2 * time.Second + +const statusMsgCode = eth.StatusMsg + +var errDisc = errors.New("disconnect") + +type statusPacket struct { + ProtocolVersion uint32 + NetworkId uint64 + TD *big.Int + CurrentBlock common.Hash + GenesisBlock common.Hash +} + +// Conn represents an individual RLPx connection used by ethtest. +type Conn struct { + *rlpx.Conn + ourKey *ecdsa.PrivateKey + negotiatedProtoVersion uint + ourHighestProtoVersion uint + caps []p2p.Cap +} + +func (s *Suite) dial() (*Conn, error) { + key, err := crypto.GenerateKey() + if err != nil { + return nil, err + } + return s.dialAs(key) +} + +func (s *Suite) dialAs(key *ecdsa.PrivateKey) (*Conn, error) { + tcpEndpoint, ok := s.Dest.TCPEndpoint() + if !ok { + return nil, fmt.Errorf("node has no TCP endpoint") + } + fd, err := net.DialTimeout("tcp", tcpEndpoint.String(), handshakeTimeout) + if err != nil { + return nil, err + } + conn := &Conn{Conn: rlpx.NewConn(fd, s.Dest.Pubkey())} + conn.ourKey = key + if _, err := conn.Handshake(conn.ourKey); err != nil { + conn.Close() + return nil, err + } + conn.caps = []p2p.Cap{ + {Name: "eth", Version: ethProtoVersionXDpos2}, + {Name: "eth", Version: ethProtoVersion63}, + } + conn.ourHighestProtoVersion = ethProtoVersionXDpos2 + return conn, nil +} + +// Read reads a raw RLPx packet from the connection. +func (c *Conn) Read() (uint64, []byte, error) { + c.SetReadDeadline(time.Now().Add(connTimeout)) + code, data, _, err := c.Conn.Read() + if err != nil { + return 0, nil, err + } + return code, data, nil +} + +// Write writes an RLPx packet to the connection with protocol-relative code. +func (c *Conn) Write(proto Proto, code uint64, msg interface{}) error { + c.SetWriteDeadline(time.Now().Add(connTimeout)) + payload, err := rlp.EncodeToBytes(msg) + if err != nil { + return err + } + _, err = c.Conn.Write(protoOffset(proto)+code, payload) + return err +} + +func (c *Conn) negotiateEthProtocol(caps []p2p.Cap) { + var highest uint + for _, capability := range caps { + if capability.Name != "eth" { + continue + } + if capability.Version > highest && capability.Version <= c.ourHighestProtoVersion { + highest = capability.Version + } + } + c.negotiatedProtoVersion = highest +} + +func (s *Suite) dialAndPeer(status *statusPacket) (*Conn, error) { + c, err := s.dial() + if err != nil { + return nil, err + } + if err := c.peer(s.chain, status); err != nil { + c.Close() + return nil, err + } + return c, nil +} + +func (c *Conn) peer(chain *Chain, status *statusPacket) error { + if err := c.handshake(); err != nil { + return fmt.Errorf("handshake failed: %v", err) + } + if err := c.statusExchange(chain, status); err != nil { + return fmt.Errorf("status exchange failed: %v", err) + } + return nil +} + +func (c *Conn) handshake() error { + pub0 := crypto.FromECDSAPub(&c.ourKey.PublicKey)[1:] + ourHandshake := &protoHandshake{ + Version: 5, + Caps: c.caps, + ID: pub0, + } + if err := c.Write(baseProto, handshakeMsg, ourHandshake); err != nil { + return fmt.Errorf("write to connection failed: %v", err) + } + code, data, err := c.Read() + if err != nil { + return fmt.Errorf("error reading handshake: %v", err) + } + if code != handshakeMsg { + return fmt.Errorf("bad handshake: got msg code %d", code) + } + msg := new(protoHandshake) + if err := rlp.DecodeBytes(data, &msg); err != nil { + return fmt.Errorf("error decoding handshake msg: %v", err) + } + if msg.Version >= 5 { + c.SetSnappy(true) + } + c.negotiateEthProtocol(msg.Caps) + if c.negotiatedProtoVersion == 0 { + return fmt.Errorf("could not negotiate eth protocol (remote caps: %v)", msg.Caps) + } + return nil +} + +func makeStatusPacket(chain *Chain, version uint) *statusPacket { + return &statusPacket{ + ProtocolVersion: uint32(version), + NetworkId: chain.config.ChainID.Uint64(), + TD: chain.TD(), + CurrentBlock: chain.Head().Hash(), + GenesisBlock: chain.blocks[0].Hash(), + } +} + +func (c *Conn) statusExchange(chain *Chain, status *statusPacket) error { + statusCode := protoOffset(ethProto) + statusMsgCode +forRead: + for { + code, data, err := c.Read() + if err != nil { + return fmt.Errorf("failed to read from connection: %w", err) + } + switch code { + case statusCode: + msg := new(statusPacket) + if err := rlp.DecodeBytes(data, msg); err != nil { + return fmt.Errorf("error decoding status packet: %w", err) + } + if msg.GenesisBlock != chain.blocks[0].Hash() { + return fmt.Errorf("wrong genesis block in status: have %#x want %#x", msg.GenesisBlock, chain.blocks[0].Hash()) + } + break forRead + case discMsg: + return errDisc + case pingMsg: + if err := c.Write(baseProto, pongMsg, []byte{}); err != nil { + return fmt.Errorf("failed to reply pong: %w", err) + } + default: + if getProto(code) == baseProto { + continue + } + return fmt.Errorf("bad status message: code %d", code) + } + } + + if c.negotiatedProtoVersion == 0 { + return errors.New("eth protocol version must be set in Conn") + } + if status == nil { + status = makeStatusPacket(chain, c.negotiatedProtoVersion) + } + if err := c.Write(ethProto, statusMsgCode, status); err != nil { + return fmt.Errorf("write status to connection failed: %v", err) + } + return nil +} + +// ReadEth reads and decodes the next eth-subprotocol message. +func (c *Conn) ReadEth() (interface{}, error) { + for { + code, data, err := c.Read() + if err != nil { + return nil, err + } + if code == discMsg { + return nil, errDisc + } + if code == pingMsg { + if err := c.Write(baseProto, pongMsg, []byte{}); err != nil { + return nil, fmt.Errorf("failed to reply pong: %w", err) + } + continue + } + if getProto(code) != ethProto { + continue + } + return decodeEthPayload(code-protoOffset(ethProto), data) + } +} + +func decodeEthPayload(code uint64, data []byte) (interface{}, error) { + var msg interface{} + switch code { + case eth.StatusMsg: + msg = new(statusPacket) + case eth.NewBlockHashesMsg: + msg = new(rlp.RawValue) + case eth.NewBlockMsg: + msg = new(rlp.RawValue) + case eth.GetBlockHeadersMsg: + msg = new(getBlockHeadersData) + case eth.BlockHeadersMsg: + msg = new(blockHeadersData) + case eth.GetBlockBodiesMsg: + msg = new(getBlockBodiesData) + case eth.BlockBodiesMsg: + msg = new(blockBodiesData) + case eth.GetNodeDataMsg: + msg = new(rlp.RawValue) + case eth.NodeDataMsg: + msg = new(rlp.RawValue) + case eth.GetReceiptsMsg: + msg = new(getReceiptsData) + case eth.ReceiptsMsg: + msg = new(receiptsData) + case eth.TxMsg: + msg = new(types.Transactions) + case eth.OrderTxMsg: + msg = new([]rlp.RawValue) + case eth.LendingTxMsg: + msg = new([]rlp.RawValue) + case eth.VoteMsg: + msg = new(rlp.RawValue) + case eth.TimeoutMsg: + msg = new(rlp.RawValue) + case eth.SyncInfoMsg: + msg = new(rlp.RawValue) + default: + return nil, fmt.Errorf("unhandled eth msg code %d", code) + } + if err := rlp.DecodeBytes(data, msg); err != nil { + return nil, fmt.Errorf("unable to decode eth msg: %v", err) + } + return msg, nil +} diff --git a/cmd/devp2p/internal/ethtest/conn_decode_test.go b/cmd/devp2p/internal/ethtest/conn_decode_test.go new file mode 100644 index 000000000000..6100e627740a --- /dev/null +++ b/cmd/devp2p/internal/ethtest/conn_decode_test.go @@ -0,0 +1,210 @@ +package ethtest + +import ( + "math/big" + "testing" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/types" + "github.com/XinFinOrg/XDPoSChain/eth" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +func TestDecodeEthPayloadGetBlockHeaders(t *testing.T) { + p := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + b, err := rlp.EncodeToBytes(p) + if err != nil { + t.Fatalf("encode failed: %v", err) + } + msg, err := decodeEthPayload(eth.GetBlockHeadersMsg, b) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*getBlockHeadersData) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if decoded.Amount != p.Amount || decoded.Origin.Number != p.Origin.Number { + t.Fatalf("decoded payload mismatch: have %+v want %+v", decoded, p) + } +} + +func TestDecodeEthPayloadGetReceipts(t *testing.T) { + p := &getReceiptsData{common.HexToHash("0x01")} + b, err := rlp.EncodeToBytes(p) + if err != nil { + t.Fatalf("encode failed: %v", err) + } + msg, err := decodeEthPayload(eth.GetReceiptsMsg, b) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*getReceiptsData) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(*p) || (*decoded)[0] != (*p)[0] { + t.Fatalf("decoded payload mismatch: have %v want %v", *decoded, *p) + } +} + +func TestDecodeEthPayloadNewBlockHashesMsg(t *testing.T) { + raw := rlp.RawValue{0xc0} + msg, err := decodeEthPayload(eth.NewBlockHashesMsg, raw) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded new block hashes payload mismatch: have %x want %x", *decoded, raw) + } +} + +func TestDecodeEthPayloadNewBlockMsg(t *testing.T) { + raw := rlp.RawValue{0xc0} + msg, err := decodeEthPayload(eth.NewBlockMsg, raw) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded new block payload mismatch: have %x want %x", *decoded, raw) + } +} + +func TestDecodeEthPayloadNodeDataMsgs(t *testing.T) { + raw := rlp.RawValue{0xc0} + for _, code := range []uint64{eth.GetNodeDataMsg, eth.NodeDataMsg} { + msg, err := decodeEthPayload(code, raw) + if err != nil { + t.Fatalf("decode failed for code %d: %v", code, err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type for code %d: %T", code, msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded node data payload mismatch for code %d: have %x want %x", code, *decoded, raw) + } + } +} + +func TestDecodeEthPayloadTxMsg(t *testing.T) { + to := common.HexToAddress("0x00000000000000000000000000000000000000aa") + tx := types.NewTransaction(0, to, big.NewInt(1), 21000, big.NewInt(1), nil) + p := types.Transactions{tx} + b, err := rlp.EncodeToBytes(&p) + if err != nil { + t.Fatalf("encode failed: %v", err) + } + msg, err := decodeEthPayload(eth.TxMsg, b) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*types.Transactions) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != 1 { + t.Fatalf("wrong tx count: have %d want 1", len(*decoded)) + } + if (*decoded)[0].Hash() != tx.Hash() { + t.Fatalf("decoded tx hash mismatch: have %x want %x", (*decoded)[0].Hash(), tx.Hash()) + } +} + +func TestDecodeEthPayloadOrderTxMsg(t *testing.T) { + p := []rlp.RawValue{} + b, err := rlp.EncodeToBytes(&p) + if err != nil { + t.Fatalf("encode failed: %v", err) + } + msg, err := decodeEthPayload(eth.OrderTxMsg, b) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*[]rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != 0 { + t.Fatalf("wrong order tx list length: have %d want 0", len(*decoded)) + } +} + +func TestDecodeEthPayloadLendingTxMsg(t *testing.T) { + p := []rlp.RawValue{} + b, err := rlp.EncodeToBytes(&p) + if err != nil { + t.Fatalf("encode failed: %v", err) + } + msg, err := decodeEthPayload(eth.LendingTxMsg, b) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*[]rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != 0 { + t.Fatalf("wrong lending tx list length: have %d want 0", len(*decoded)) + } +} + +func TestDecodeEthPayloadVoteMsg(t *testing.T) { + raw := rlp.RawValue{0xc0} + msg, err := decodeEthPayload(eth.VoteMsg, raw) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded vote payload mismatch: have %x want %x", *decoded, raw) + } +} + +func TestDecodeEthPayloadTimeoutMsg(t *testing.T) { + raw := rlp.RawValue{0xc0} + msg, err := decodeEthPayload(eth.TimeoutMsg, raw) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded timeout payload mismatch: have %x want %x", *decoded, raw) + } +} + +func TestDecodeEthPayloadSyncInfoMsg(t *testing.T) { + raw := rlp.RawValue{0xc0} + msg, err := decodeEthPayload(eth.SyncInfoMsg, raw) + if err != nil { + t.Fatalf("decode failed: %v", err) + } + decoded, ok := msg.(*rlp.RawValue) + if !ok { + t.Fatalf("wrong decoded type: %T", msg) + } + if len(*decoded) != len(raw) || (*decoded)[0] != raw[0] { + t.Fatalf("decoded sync info payload mismatch: have %x want %x", *decoded, raw) + } +} + +func TestDecodeEthPayloadUnknownCode(t *testing.T) { + _, err := decodeEthPayload(0xff, []byte{0xc0}) + if err == nil { + t.Fatal("expected error for unknown eth message code") + } +} diff --git a/cmd/devp2p/internal/ethtest/conn_test.go b/cmd/devp2p/internal/ethtest/conn_test.go new file mode 100644 index 000000000000..eaa8cab5ace9 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/conn_test.go @@ -0,0 +1,64 @@ +package ethtest + +import ( + "testing" + + "github.com/XinFinOrg/XDPoSChain/eth" + "github.com/XinFinOrg/XDPoSChain/p2p" +) + +func TestConnNegotiatesHighestSharedEthVersion(t *testing.T) { + c := &Conn{ourHighestProtoVersion: ethProtoVersionXDpos2} + remoteCaps := []p2p.Cap{ + {Name: "eth", Version: ethProtoVersion63}, + {Name: "eth", Version: ethProtoVersionXDpos2}, + } + + c.negotiateEthProtocol(remoteCaps) + + if c.negotiatedProtoVersion != ethProtoVersionXDpos2 { + t.Fatalf("wrong negotiated protocol version: have %d want %d", c.negotiatedProtoVersion, ethProtoVersionXDpos2) + } +} + +func TestConnNegotiatesZeroWhenNoSharedEthVersion(t *testing.T) { + c := &Conn{ourHighestProtoVersion: ethProtoVersion63} + remoteCaps := []p2p.Cap{{Name: "eth", Version: 70}} + + c.negotiateEthProtocol(remoteCaps) + + if c.negotiatedProtoVersion != 0 { + t.Fatalf("expected no negotiated protocol version, have %d", c.negotiatedProtoVersion) + } +} + +func TestMakeStatusPacketFromChain(t *testing.T) { + chain, err := NewChain("testdata") + if err != nil { + t.Fatalf("failed to load chain fixtures: %v", err) + } + + status := makeStatusPacket(chain, ethProtoVersion63) + + if status.ProtocolVersion != uint32(ethProtoVersion63) { + t.Fatalf("wrong protocol version: have %d want %d", status.ProtocolVersion, ethProtoVersion63) + } + if status.GenesisBlock != chain.blocks[0].Hash() { + t.Fatalf("wrong genesis hash in status: have %x want %x", status.GenesisBlock, chain.blocks[0].Hash()) + } + if status.CurrentBlock != chain.Head().Hash() { + t.Fatalf("wrong current block hash in status: have %x want %x", status.CurrentBlock, chain.Head().Hash()) + } + if status.NetworkId != chain.config.ChainID.Uint64() { + t.Fatalf("wrong network id in status: have %d want %d", status.NetworkId, chain.config.ChainID.Uint64()) + } + if status.TD == nil { + t.Fatal("status TD must not be nil") + } +} + +func TestStatusMsgCodeMatchesEthProtocol(t *testing.T) { + if statusMsgCode != eth.StatusMsg { + t.Fatalf("status msg code drift: have %d want %d", statusMsgCode, eth.StatusMsg) + } +} diff --git a/cmd/devp2p/internal/ethtest/packets.go b/cmd/devp2p/internal/ethtest/packets.go new file mode 100644 index 000000000000..afd0e41d0887 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/packets.go @@ -0,0 +1,73 @@ +package ethtest + +import ( + "fmt" + "io" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/types" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +// getBlockHeadersData represents a block header query payload for eth protocol. +type getBlockHeadersData struct { + Origin hashOrNumber + Amount uint64 + Skip uint64 + Reverse bool +} + +// blockHeadersData represents a list of block header payloads. +type blockHeadersData []*types.Header + +// getBlockBodiesData represents a block body query payload for eth protocol. +type getBlockBodiesData []common.Hash + +// blockBody represents a block body payload in response. +type blockBody struct { + Transactions []*types.Transaction + Uncles []*types.Header +} + +// blockBodiesData represents a list of block body payloads. +type blockBodiesData []*blockBody + +// getReceiptsData represents a receipts query payload for eth protocol. +type getReceiptsData []common.Hash + +// receiptsData represents a receipts response list aligned to requested blocks. +type receiptsData []types.Receipts + +// hashOrNumber is a union for specifying header request origin. +type hashOrNumber struct { + Hash common.Hash + Number uint64 +} + +// EncodeRLP encodes either hash or number (but never both) for origin. +func (hn *hashOrNumber) EncodeRLP(w io.Writer) error { + if hn.Hash == (common.Hash{}) { + return rlp.Encode(w, hn.Number) + } + if hn.Number != 0 { + return fmt.Errorf("both origin hash (%x) and number (%d) provided", hn.Hash, hn.Number) + } + return rlp.Encode(w, hn.Hash) +} + +// DecodeRLP decodes origin into either hash or number depending on RLP item size. +func (hn *hashOrNumber) DecodeRLP(s *rlp.Stream) error { + _, size, _ := s.Kind() + origin, err := s.Raw() + if err != nil { + return err + } + switch { + case size == 32: + return rlp.DecodeBytes(origin, &hn.Hash) + case size <= 8: + return rlp.DecodeBytes(origin, &hn.Number) + default: + return fmt.Errorf("invalid input size %d for origin", size) + } +} diff --git a/cmd/devp2p/internal/ethtest/packets_test.go b/cmd/devp2p/internal/ethtest/packets_test.go new file mode 100644 index 000000000000..f16e5532e6d6 --- /dev/null +++ b/cmd/devp2p/internal/ethtest/packets_test.go @@ -0,0 +1,45 @@ +package ethtest + +import ( + "testing" + + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/rlp" +) + +func TestGetBlockHeadersDataEncodeDecode(t *testing.T) { + var hash common.Hash + for i := range hash { + hash[i] = byte(i) + } + + tests := []struct { + packet *getBlockHeadersData + fail bool + }{ + {fail: false, packet: &getBlockHeadersData{Origin: hashOrNumber{Number: 314}}}, + {fail: false, packet: &getBlockHeadersData{Origin: hashOrNumber{Hash: hash}}}, + {fail: false, packet: &getBlockHeadersData{Origin: hashOrNumber{Number: 314}, Amount: 314, Skip: 1, Reverse: true}}, + {fail: false, packet: &getBlockHeadersData{Origin: hashOrNumber{Hash: hash}, Amount: 314, Skip: 1, Reverse: true}}, + {fail: true, packet: &getBlockHeadersData{Origin: hashOrNumber{Hash: hash, Number: 314}}}, + } + + for i, tt := range tests { + bytes, err := rlp.EncodeToBytes(tt.packet) + if err != nil && !tt.fail { + t.Fatalf("test %d: failed to encode packet: %v", i, err) + } else if err == nil && tt.fail { + t.Fatalf("test %d: encode should have failed", i) + } + if !tt.fail { + packet := new(getBlockHeadersData) + if err := rlp.DecodeBytes(bytes, packet); err != nil { + t.Fatalf("test %d: failed to decode packet: %v", i, err) + } + if packet.Origin.Hash != tt.packet.Origin.Hash || packet.Origin.Number != tt.packet.Origin.Number || packet.Amount != tt.packet.Amount || + packet.Skip != tt.packet.Skip || packet.Reverse != tt.packet.Reverse { + t.Fatalf("test %d: encode decode mismatch: have %+v, want %+v", i, packet, tt.packet) + } + } + } +} diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index 76c40f36f185..48963d0e44ed 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -19,11 +19,15 @@ package ethtest import ( "crypto/ecdsa" "fmt" + "math/big" "net" "strings" "time" + "github.com/XinFinOrg/XDPoSChain/common" + "github.com/XinFinOrg/XDPoSChain/core/types" "github.com/XinFinOrg/XDPoSChain/crypto" + "github.com/XinFinOrg/XDPoSChain/eth" "github.com/XinFinOrg/XDPoSChain/internal/utesting" "github.com/XinFinOrg/XDPoSChain/p2p" "github.com/XinFinOrg/XDPoSChain/p2p/enode" @@ -36,13 +40,17 @@ const handshakeTimeout = 5 * time.Second // Suite represents a minimal conformance test set that is compatible with // the protocol packages available in this repository snapshot. type Suite struct { - Dest *enode.Node + Dest *enode.Node + chain *Chain } // NewSuite creates and returns a compatibility subset suite. -// The extra string parameters are currently unused and kept for API parity. -func NewSuite(dest *enode.Node, _, _, _ string) (*Suite, error) { - return &Suite{Dest: dest}, nil +func NewSuite(dest *enode.Node, chainDir, _, _ string) (*Suite, error) { + chain, err := NewChain(chainDir) + if err != nil { + return nil, err + } + return &Suite{Dest: dest, chain: chain}, nil } // EthTests returns the enabled compatibility subset. @@ -57,6 +65,35 @@ func (s *Suite) EthTests() []utesting.Test { return []utesting.Test{ // Baseline. {Name: "RLPxHandshake", Fn: s.TestRLPxHandshake}, + {Name: "Status", Fn: s.TestStatus}, + {Name: "GetBlockHeaders", Fn: s.TestGetBlockHeaders}, + {Name: "GetBlockHeadersByHash", Fn: s.TestGetBlockHeadersByHash}, + {Name: "GetBlockHeadersReverseFromGenesis", Fn: s.TestGetBlockHeadersReverseFromGenesis}, + {Name: "GetBlockHeadersSequentialRequests", Fn: s.TestGetBlockHeadersSequentialRequests}, + {Name: "GetSequentialMixedRequests", Fn: s.TestGetSequentialMixedRequests}, + {Name: "GetNonexistentBlockHeaders", Fn: s.TestGetNonexistentBlockHeaders}, + {Name: "GetNonexistentBlockHeadersByHash", Fn: s.TestGetNonexistentBlockHeadersByHash}, + {Name: "GetNonexistentHeadersThenBlockBodies", Fn: s.TestGetNonexistentHeadersThenBlockBodies}, + {Name: "GetNonexistentHeadersThenReceipts", Fn: s.TestGetNonexistentHeadersThenReceipts}, + {Name: "TransactionSmoke", Fn: s.TestTransactionSmoke}, + {Name: "TransactionBatchSmoke", Fn: s.TestTransactionBatchSmoke}, + {Name: "TransactionEmptyListSmoke", Fn: s.TestTransactionEmptyListSmoke}, + {Name: "TransactionEmptyListThenBlockBodiesSmoke", Fn: s.TestTransactionEmptyListThenBlockBodiesSmoke}, + {Name: "TransactionThenBlockBodiesSmoke", Fn: s.TestTransactionThenBlockBodiesSmoke}, + {Name: "TransactionThenReceiptsSmoke", Fn: s.TestTransactionThenReceiptsSmoke}, + {Name: "TransactionBatchThenBlockBodiesSmoke", Fn: s.TestTransactionBatchThenBlockBodiesSmoke}, + {Name: "TransactionBatchThenReceiptsSmoke", Fn: s.TestTransactionBatchThenReceiptsSmoke}, + {Name: "TransactionEmptyListThenReceiptsSmoke", Fn: s.TestTransactionEmptyListThenReceiptsSmoke}, + {Name: "GetBlockBodies", Fn: s.TestGetBlockBodies}, + {Name: "GetBlockBodiesSequentialRequests", Fn: s.TestGetBlockBodiesSequentialRequests}, + {Name: "GetBlockBodiesMixedHashes", Fn: s.TestGetBlockBodiesMixedHashes}, + {Name: "GetBlockBodiesUnknownOnly", Fn: s.TestGetBlockBodiesUnknownOnly}, + {Name: "GetBlockBodiesUnknownThenKnown", Fn: s.TestGetBlockBodiesUnknownThenKnown}, + {Name: "GetReceipts", Fn: s.TestGetReceipts}, + {Name: "GetReceiptsSequentialRequests", Fn: s.TestGetReceiptsSequentialRequests}, + {Name: "GetReceiptsMixedHashes", Fn: s.TestGetReceiptsMixedHashes}, + {Name: "GetReceiptsUnknownOnly", Fn: s.TestGetReceiptsUnknownOnly}, + {Name: "GetReceiptsUnknownThenKnown", Fn: s.TestGetReceiptsUnknownThenKnown}, // Identity-focused hello boundary tests. {Name: "MalformedHello", Fn: s.TestMalformedHello}, @@ -112,6 +149,737 @@ func (s *Suite) TestRLPxHandshake(t *utesting.T) { conn.Close() } +func (s *Suite) TestStatus(t *utesting.T) { + t.Log(`This test performs a protocol handshake plus status exchange.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("status handshake failed: %v", err) + } + conn.Close() +} + +func (s *Suite) TestGetBlockHeaders(t *utesting.T) { + t.Log(`This test requests block headers for a known fixture block.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := &getBlockHeadersData{ + Origin: hashOrNumber{Number: 0}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + t.Fatalf("failed to write GetBlockHeaders: %v", err) + } + if err := s.expectHeadersResponse(conn, req, 1); err != nil { + t.Fatalf("headers response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockHeadersByHash(t *utesting.T) { + t.Log(`This test requests block headers by origin hash.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := &getBlockHeadersData{ + Origin: hashOrNumber{Hash: s.chain.blocks[0].Hash()}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + t.Fatalf("failed to write GetBlockHeaders by hash: %v", err) + } + if err := s.expectHeadersResponse(conn, req, 1); err != nil { + t.Fatalf("headers-by-hash response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockHeadersReverseFromGenesis(t *utesting.T) { + t.Log(`This test requests reverse headers from genesis and expects a safely truncated response.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := &getBlockHeadersData{ + Origin: hashOrNumber{Number: 0}, + Amount: 3, + Reverse: true, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + t.Fatalf("failed to write reverse GetBlockHeaders: %v", err) + } + if err := s.expectHeadersResponse(conn, req, 1); err != nil { + t.Fatalf("reverse-from-genesis headers response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockHeadersSequentialRequests(t *utesting.T) { + t.Log(`This test sends two different valid headers requests on the same connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + first := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + second := &getBlockHeadersData{Origin: hashOrNumber{Hash: s.chain.blocks[0].Hash()}, Amount: 1} + + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, first); err != nil { + t.Fatalf("failed to write first GetBlockHeaders request: %v", err) + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, second); err != nil { + t.Fatalf("failed to write second GetBlockHeaders request: %v", err) + } + if err := s.expectHeadersResponse(conn, first, 2); err != nil { + t.Fatalf("first sequential headers response validation failed: %v", err) + } + if err := s.expectHeadersResponse(conn, second, 2); err != nil { + t.Fatalf("second sequential headers response validation failed: %v", err) + } +} + +func (s *Suite) TestGetSequentialMixedRequests(t *utesting.T) { + t.Log(`This test sends headers, block bodies, and receipts requests sequentially on one connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + headersReq := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, headersReq); err != nil { + t.Fatalf("failed to write GetBlockHeaders request: %v", err) + } + if err := s.expectHeadersResponse(conn, headersReq, 1); err != nil { + t.Fatalf("headers response validation failed: %v", err) + } + + bodiesReq := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &bodiesReq); err != nil { + t.Fatalf("failed to write GetBlockBodies request: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &bodiesReq, 1); err != nil { + t.Fatalf("block bodies response validation failed: %v", err) + } + + receiptsReq := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &receiptsReq); err != nil { + t.Fatalf("failed to write GetReceipts request: %v", err) + } + if err := s.expectReceiptsResponse(conn, &receiptsReq, 1); err != nil { + t.Fatalf("receipts response validation failed: %v", err) + } +} + +func (s *Suite) TestGetNonexistentBlockHeaders(t *utesting.T) { + t.Log(`This test sends a nonexistent headers request and verifies the peer remains responsive.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := &getBlockHeadersData{ + Origin: hashOrNumber{Number: ^uint64(0)}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil { + t.Fatalf("failed to write nonexistent GetBlockHeaders request: %v", err) + } + + goodReq := &getBlockHeadersData{ + Origin: hashOrNumber{Number: 0}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, goodReq); err != nil { + t.Fatalf("failed to write follow-up GetBlockHeaders request: %v", err) + } + + if err := s.expectHeadersResponse(conn, goodReq, 2); err != nil { + t.Fatalf("follow-up valid headers response was not received: %v", err) + } +} + +func (s *Suite) TestGetNonexistentBlockHeadersByHash(t *utesting.T) { + t.Log(`This test sends a nonexistent hash-based headers request and verifies the peer remains responsive.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := &getBlockHeadersData{ + Origin: hashOrNumber{Hash: common.HexToHash("0x01")}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil { + t.Fatalf("failed to write nonexistent hash GetBlockHeaders request: %v", err) + } + + goodReq := &getBlockHeadersData{ + Origin: hashOrNumber{Hash: s.chain.blocks[0].Hash()}, + Amount: 1, + } + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, goodReq); err != nil { + t.Fatalf("failed to write follow-up hash GetBlockHeaders request: %v", err) + } + + if err := s.expectHeadersResponse(conn, goodReq, 2); err != nil { + t.Fatalf("follow-up valid hash-based headers response was not received: %v", err) + } +} + +func (s *Suite) TestGetNonexistentHeadersThenBlockBodies(t *utesting.T) { + t.Log(`This test sends a nonexistent headers request then a valid block bodies request on the same connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := &getBlockHeadersData{Origin: hashOrNumber{Number: ^uint64(0)}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil { + t.Fatalf("failed to write nonexistent GetBlockHeaders request: %v", err) + } + goodReq := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &goodReq); err != nil { + t.Fatalf("failed to write follow-up GetBlockBodies request: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &goodReq, 2); err != nil { + t.Fatalf("follow-up valid block bodies response was not received: %v", err) + } +} + +func (s *Suite) TestGetNonexistentHeadersThenReceipts(t *utesting.T) { + t.Log(`This test sends a nonexistent headers request then a valid receipts request on the same connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := &getBlockHeadersData{Origin: hashOrNumber{Number: ^uint64(0)}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, badReq); err != nil { + t.Fatalf("failed to write nonexistent GetBlockHeaders request: %v", err) + } + goodReq := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &goodReq); err != nil { + t.Fatalf("failed to write follow-up GetReceipts request: %v", err) + } + if err := s.expectReceiptsResponse(conn, &goodReq, 2); err != nil { + t.Fatalf("follow-up valid receipts response was not received: %v", err) + } +} + +func (s *Suite) expectHeadersResponse(conn *Conn, req *getBlockHeadersData, maxReads int) error { + expected, err := s.chain.GetHeaders(req) + if err != nil { + return fmt.Errorf("failed to build expected headers: %w", err) + } + for i := 0; i < maxReads; i++ { + msg, err := conn.ReadEth() + if err != nil { + return fmt.Errorf("failed to read headers response %d: %w", i+1, err) + } + headers, ok := msg.(*blockHeadersData) + if !ok { + continue + } + if len(*headers) != len(expected) { + continue + } + matched := true + for j := range expected { + if (*headers)[j].Hash() != expected[j].Hash() { + matched = false + break + } + } + if matched { + return nil + } + } + return fmt.Errorf("did not receive matching BlockHeaders response in %d read(s)", maxReads) +} + +func (s *Suite) signedFixtureTxs(count int) (types.Transactions, common.Address, error) { + if len(s.chain.senders) == 0 { + return nil, common.Address{}, fmt.Errorf("fixture has no sender accounts") + } + from, nonce := s.chain.GetSender(0) + to := common.HexToAddress("0x00000000000000000000000000000000000000aa") + txs := make(types.Transactions, 0, count) + for i := 0; i < count; i++ { + unsigned := types.NewTransaction(nonce+uint64(i), to, big.NewInt(int64(i+1)), 21000, big.NewInt(1), nil) + signed, err := s.chain.SignTx(from, unsigned) + if err != nil { + return nil, common.Address{}, fmt.Errorf("failed to sign tx %d: %w", i, err) + } + txs = append(txs, signed) + } + return txs, from, nil +} + +func (s *Suite) runTransactionSmoke(t *utesting.T, txs types.Transactions, nonceAdvance uint64, skipWithoutSenders bool, skipMessage string, followUp func(*Conn) error) { + t.Helper() + if skipWithoutSenders && len(s.chain.senders) == 0 { + t.Log(skipMessage) + return + } + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + if err := conn.Write(ethProto, eth.TxMsg, txs); err != nil { + t.Fatalf("failed to write TxMsg: %v", err) + } + if skipWithoutSenders && nonceAdvance > 0 { + from, _ := s.chain.GetSender(0) + s.chain.IncNonce(from, nonceAdvance) + } + if err := followUp(conn); err != nil { + t.Fatal(err) + } +} + +func (s *Suite) TestTransactionSmoke(t *utesting.T) { + t.Log(`This test sends a signed transaction and verifies the peer remains responsive.`) + txs, _, err := s.signedFixtureTxs(1) + if err != nil { + t.Log("fixture has no sender accounts; skipping transaction smoke") + return + } + s.runTransactionSmoke(t, txs, 1, true, "fixture has no sender accounts; skipping transaction smoke", func(conn *Conn) error { + req := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockHeaders: %w", err) + } + if err := s.expectHeadersResponse(conn, req, 5); err != nil { + return fmt.Errorf("did not receive BlockHeaders response after TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionBatchSmoke(t *utesting.T) { + t.Log(`This test sends a batch of signed transactions and verifies the peer remains responsive.`) + txs, _, err := s.signedFixtureTxs(2) + if err != nil { + t.Log("fixture has no sender accounts; skipping transaction batch smoke") + return + } + s.runTransactionSmoke(t, txs, 2, true, "fixture has no sender accounts; skipping transaction batch smoke", func(conn *Conn) error { + req := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockHeaders: %w", err) + } + if err := s.expectHeadersResponse(conn, req, 5); err != nil { + return fmt.Errorf("did not receive BlockHeaders response after batched TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionEmptyListSmoke(t *utesting.T) { + t.Log(`This test sends an empty transaction list and verifies the peer remains responsive.`) + s.runTransactionSmoke(t, types.Transactions{}, 0, false, "", func(conn *Conn) error { + req := &getBlockHeadersData{Origin: hashOrNumber{Number: 0}, Amount: 1} + if err := conn.Write(ethProto, eth.GetBlockHeadersMsg, req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockHeaders: %w", err) + } + if err := s.expectHeadersResponse(conn, req, 5); err != nil { + return fmt.Errorf("did not receive BlockHeaders response after empty TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionEmptyListThenBlockBodiesSmoke(t *utesting.T) { + t.Log(`This test sends an empty transaction list and then requests block bodies.`) + s.runTransactionSmoke(t, types.Transactions{}, 0, false, "", func(conn *Conn) error { + req := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockBodies: %w", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive BlockBodies response after empty TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionEmptyListThenReceiptsSmoke(t *utesting.T) { + t.Log(`This test sends an empty transaction list and then requests receipts.`) + s.runTransactionSmoke(t, types.Transactions{}, 0, false, "", func(conn *Conn) error { + req := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetReceipts: %w", err) + } + if err := s.expectReceiptsResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive Receipts response after empty TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionThenBlockBodiesSmoke(t *utesting.T) { + t.Log(`This test sends a signed transaction and then requests block bodies.`) + txs, _, err := s.signedFixtureTxs(1) + if err != nil { + t.Log("fixture has no sender accounts; skipping transaction block-bodies smoke") + return + } + s.runTransactionSmoke(t, txs, 1, true, "fixture has no sender accounts; skipping transaction block-bodies smoke", func(conn *Conn) error { + req := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockBodies: %w", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive BlockBodies response after TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionThenReceiptsSmoke(t *utesting.T) { + t.Log(`This test sends a signed transaction and then requests receipts.`) + txs, _, err := s.signedFixtureTxs(1) + if err != nil { + t.Log("fixture has no sender accounts; skipping transaction receipts smoke") + return + } + s.runTransactionSmoke(t, txs, 1, true, "fixture has no sender accounts; skipping transaction receipts smoke", func(conn *Conn) error { + req := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetReceipts: %w", err) + } + if err := s.expectReceiptsResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive Receipts response after TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionBatchThenBlockBodiesSmoke(t *utesting.T) { + t.Log(`This test sends a batch of signed transactions and then requests block bodies.`) + txs, _, err := s.signedFixtureTxs(2) + if err != nil { + t.Log("fixture has no sender accounts; skipping batched transaction block-bodies smoke") + return + } + s.runTransactionSmoke(t, txs, 2, true, "fixture has no sender accounts; skipping batched transaction block-bodies smoke", func(conn *Conn) error { + req := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetBlockBodies: %w", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive BlockBodies response after batched TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestTransactionBatchThenReceiptsSmoke(t *utesting.T) { + t.Log(`This test sends a batch of signed transactions and then requests receipts.`) + txs, _, err := s.signedFixtureTxs(2) + if err != nil { + t.Log("fixture has no sender accounts; skipping batched transaction receipts smoke") + return + } + s.runTransactionSmoke(t, txs, 2, true, "fixture has no sender accounts; skipping batched transaction receipts smoke", func(conn *Conn) error { + req := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + return fmt.Errorf("failed to write follow-up GetReceipts: %w", err) + } + if err := s.expectReceiptsResponse(conn, &req, 5); err != nil { + return fmt.Errorf("did not receive Receipts response after batched TxMsg: %w", err) + } + return nil + }) +} + +func (s *Suite) TestGetBlockBodies(t *utesting.T) { + t.Log(`This test requests block bodies for a known fixture block hash.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + t.Fatalf("failed to write GetBlockBodies: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 1); err != nil { + t.Fatalf("block bodies response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockBodiesSequentialRequests(t *utesting.T) { + t.Log(`This test sends two valid block bodies requests on the same connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + first := getBlockBodiesData{s.chain.blocks[0].Hash()} + second := getBlockBodiesData{s.chain.blocks[0].Hash(), common.HexToHash("0x01")} + + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &first); err != nil { + t.Fatalf("failed to write first GetBlockBodies request: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &first, 1); err != nil { + t.Fatalf("first sequential block bodies response validation failed: %v", err) + } + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &second); err != nil { + t.Fatalf("failed to write second GetBlockBodies request: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &second, 1); err != nil { + t.Fatalf("second sequential block bodies response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockBodiesMixedHashes(t *utesting.T) { + t.Log(`This test requests block bodies with mixed known and unknown hashes.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getBlockBodiesData{s.chain.blocks[0].Hash(), common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + t.Fatalf("failed to write mixed GetBlockBodies: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 1); err != nil { + t.Fatalf("mixed block bodies response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockBodiesUnknownOnly(t *utesting.T) { + t.Log(`This test requests block bodies for unknown hashes only.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getBlockBodiesData{common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &req); err != nil { + t.Fatalf("failed to write unknown-only GetBlockBodies: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &req, 2); err != nil { + t.Fatalf("unknown-only block bodies response validation failed: %v", err) + } +} + +func (s *Suite) TestGetBlockBodiesUnknownThenKnown(t *utesting.T) { + t.Log(`This test sends unknown then known block-bodies requests and expects valid follow-up response.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := getBlockBodiesData{common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &badReq); err != nil { + t.Fatalf("failed to write unknown GetBlockBodies: %v", err) + } + goodReq := getBlockBodiesData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetBlockBodiesMsg, &goodReq); err != nil { + t.Fatalf("failed to write follow-up GetBlockBodies: %v", err) + } + if err := s.expectBlockBodiesResponse(conn, &goodReq, 2); err != nil { + t.Fatalf("follow-up block bodies response validation failed: %v", err) + } +} + +func (s *Suite) TestGetReceipts(t *utesting.T) { + t.Log(`This test requests receipts for a known fixture block hash.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + t.Fatalf("failed to write GetReceipts: %v", err) + } + if err := s.expectReceiptsResponse(conn, &req, 1); err != nil { + t.Fatalf("receipts response validation failed: %v", err) + } +} + +func (s *Suite) TestGetReceiptsSequentialRequests(t *utesting.T) { + t.Log(`This test sends two valid receipts requests on the same connection.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + first := getReceiptsData{s.chain.blocks[0].Hash()} + second := getReceiptsData{s.chain.blocks[0].Hash(), common.HexToHash("0x01")} + + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &first); err != nil { + t.Fatalf("failed to write first GetReceipts request: %v", err) + } + if err := s.expectReceiptsResponse(conn, &first, 1); err != nil { + t.Fatalf("first sequential receipts response validation failed: %v", err) + } + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &second); err != nil { + t.Fatalf("failed to write second GetReceipts request: %v", err) + } + if err := s.expectReceiptsResponse(conn, &second, 1); err != nil { + t.Fatalf("second sequential receipts response validation failed: %v", err) + } +} + +func (s *Suite) TestGetReceiptsMixedHashes(t *utesting.T) { + t.Log(`This test requests receipts with mixed known and unknown hashes.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getReceiptsData{s.chain.blocks[0].Hash(), common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + t.Fatalf("failed to write mixed GetReceipts: %v", err) + } + if err := s.expectReceiptsResponse(conn, &req, 1); err != nil { + t.Fatalf("mixed receipts response validation failed: %v", err) + } +} + +func (s *Suite) TestGetReceiptsUnknownOnly(t *utesting.T) { + t.Log(`This test requests receipts for unknown hashes only.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + req := getReceiptsData{common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &req); err != nil { + t.Fatalf("failed to write unknown-only GetReceipts: %v", err) + } + if err := s.expectReceiptsResponse(conn, &req, 2); err != nil { + t.Fatalf("unknown-only receipts response validation failed: %v", err) + } +} + +func (s *Suite) TestGetReceiptsUnknownThenKnown(t *utesting.T) { + t.Log(`This test sends unknown then known receipts requests and expects valid follow-up response.`) + conn, err := s.dialAndPeer(nil) + if err != nil { + t.Fatalf("peering failed: %v", err) + } + defer conn.Close() + + badReq := getReceiptsData{common.HexToHash("0x01")} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &badReq); err != nil { + t.Fatalf("failed to write unknown GetReceipts: %v", err) + } + goodReq := getReceiptsData{s.chain.blocks[0].Hash()} + if err := conn.Write(ethProto, eth.GetReceiptsMsg, &goodReq); err != nil { + t.Fatalf("failed to write follow-up GetReceipts: %v", err) + } + if err := s.expectReceiptsResponse(conn, &goodReq, 2); err != nil { + t.Fatalf("follow-up receipts response validation failed: %v", err) + } +} + +func (s *Suite) expectBlockBodiesResponse(conn *Conn, req *getBlockBodiesData, maxReads int) error { + expected, err := s.chain.GetBlockBodies(req) + if err != nil { + return fmt.Errorf("failed to build expected block bodies: %w", err) + } + for i := 0; i < maxReads; i++ { + msg, err := conn.ReadEth() + if err != nil { + return fmt.Errorf("failed to read block bodies response %d: %w", i+1, err) + } + bodies, ok := msg.(*blockBodiesData) + if !ok { + continue + } + if len(*bodies) != len(expected) { + continue + } + matched := true + for j := range expected { + if len((*bodies)[j].Transactions) != len(expected[j].Transactions) || len((*bodies)[j].Uncles) != len(expected[j].Uncles) { + matched = false + break + } + for k := range expected[j].Transactions { + if (*bodies)[j].Transactions[k].Hash() != expected[j].Transactions[k].Hash() { + matched = false + break + } + } + if !matched { + break + } + for k := range expected[j].Uncles { + if (*bodies)[j].Uncles[k].Hash() != expected[j].Uncles[k].Hash() { + matched = false + break + } + } + if !matched { + break + } + } + if matched { + return nil + } + } + return fmt.Errorf("did not receive matching BlockBodies response in %d read(s)", maxReads) +} + +func (s *Suite) expectReceiptsResponse(conn *Conn, req *getReceiptsData, maxReads int) error { + expected, err := s.chain.GetReceipts(req) + if err != nil { + return fmt.Errorf("failed to build expected receipts: %w", err) + } + for i := 0; i < maxReads; i++ { + msg, err := conn.ReadEth() + if err != nil { + return fmt.Errorf("failed to read receipts response %d: %w", i+1, err) + } + receipts, ok := msg.(*receiptsData) + if !ok { + continue + } + if len(*receipts) != len(expected) { + continue + } + matched := true + for j := range expected { + if len((*receipts)[j]) != len(expected[j]) { + matched = false + break + } + } + if matched { + return nil + } + } + return fmt.Errorf("did not receive matching Receipts response in %d read(s)", maxReads) +} + func (s *Suite) TestMalformedHello(t *utesting.T) { t.Log(`This test sends a malformed devp2p hello and expects a disconnect.`) s.runMalformedHelloNamedCase(t, "MalformedHello") diff --git a/cmd/devp2p/internal/ethtest/suite_registry_test.go b/cmd/devp2p/internal/ethtest/suite_registry_test.go new file mode 100644 index 000000000000..280fef28ddca --- /dev/null +++ b/cmd/devp2p/internal/ethtest/suite_registry_test.go @@ -0,0 +1,109 @@ +package ethtest + +import "testing" + +func assertEthTestsInclude(t *testing.T, testName string) { + t.Helper() + for _, test := range loadTestSuite(t).EthTests() { + if test.Name == testName { + return + } + } + t.Fatalf("expected EthTests to include %s", testName) +} + +func TestEthTestsIncludesNonexistentHeadersCase(t *testing.T) { + assertEthTestsInclude(t, "GetNonexistentBlockHeaders") +} + +func TestEthTestsIncludesNonexistentHeadersByHashCase(t *testing.T) { + assertEthTestsInclude(t, "GetNonexistentBlockHeadersByHash") +} + +func TestEthTestsIncludesNonexistentHeadersThenBlockBodiesCase(t *testing.T) { + assertEthTestsInclude(t, "GetNonexistentHeadersThenBlockBodies") +} + +func TestEthTestsIncludesNonexistentHeadersThenReceiptsCase(t *testing.T) { + assertEthTestsInclude(t, "GetNonexistentHeadersThenReceipts") +} + +func TestEthTestsIncludesHeadersByHashCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockHeadersByHash") +} + +func TestEthTestsIncludesHeadersReverseFromGenesisCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockHeadersReverseFromGenesis") +} + +func TestEthTestsIncludesHeadersSequentialRequestsCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockHeadersSequentialRequests") +} + +func TestEthTestsIncludesSequentialMixedRequestsCase(t *testing.T) { + assertEthTestsInclude(t, "GetSequentialMixedRequests") +} + +func TestEthTestsIncludesBlockBodiesMixedHashesCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockBodiesMixedHashes") +} + +func TestEthTestsIncludesBlockBodiesSequentialRequestsCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockBodiesSequentialRequests") +} + +func TestEthTestsIncludesReceiptsMixedHashesCase(t *testing.T) { + assertEthTestsInclude(t, "GetReceiptsMixedHashes") +} + +func TestEthTestsIncludesReceiptsSequentialRequestsCase(t *testing.T) { + assertEthTestsInclude(t, "GetReceiptsSequentialRequests") +} + +func TestEthTestsIncludesBlockBodiesUnknownOnlyCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockBodiesUnknownOnly") +} + +func TestEthTestsIncludesReceiptsUnknownOnlyCase(t *testing.T) { + assertEthTestsInclude(t, "GetReceiptsUnknownOnly") +} + +func TestEthTestsIncludesBlockBodiesUnknownThenKnownCase(t *testing.T) { + assertEthTestsInclude(t, "GetBlockBodiesUnknownThenKnown") +} + +func TestEthTestsIncludesReceiptsUnknownThenKnownCase(t *testing.T) { + assertEthTestsInclude(t, "GetReceiptsUnknownThenKnown") +} + +func TestEthTestsIncludesTransactionBatchSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionBatchSmoke") +} + +func TestEthTestsIncludesTransactionEmptyListSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionEmptyListSmoke") +} + +func TestEthTestsIncludesTransactionEmptyListThenBlockBodiesSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionEmptyListThenBlockBodiesSmoke") +} + +func TestEthTestsIncludesTransactionEmptyListThenReceiptsSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionEmptyListThenReceiptsSmoke") +} + +func TestEthTestsIncludesTransactionThenBlockBodiesSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionThenBlockBodiesSmoke") +} + +func TestEthTestsIncludesTransactionThenReceiptsSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionThenReceiptsSmoke") +} + +func TestEthTestsIncludesTransactionBatchThenBlockBodiesSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionBatchThenBlockBodiesSmoke") +} + +func TestEthTestsIncludesTransactionBatchThenReceiptsSmokeCase(t *testing.T) { + assertEthTestsInclude(t, "TransactionBatchThenReceiptsSmoke") +} diff --git a/cmd/devp2p/internal/ethtest/suite_test.go b/cmd/devp2p/internal/ethtest/suite_test.go new file mode 100644 index 000000000000..b5086847ac0e --- /dev/null +++ b/cmd/devp2p/internal/ethtest/suite_test.go @@ -0,0 +1,71 @@ +package ethtest + +import ( + "testing" + + "github.com/XinFinOrg/XDPoSChain/common" +) + +func loadTestSuite(t *testing.T) *Suite { + t.Helper() + s, err := NewSuite(nil, "testdata", "", "") + if err != nil { + t.Fatalf("expected testdata to load, got error: %v", err) + } + return s +} + +func TestNewSuiteRequiresChainDir(t *testing.T) { + _, err := NewSuite(nil, "", "", "") + if err == nil { + t.Fatal("expected error when chain directory is empty") + } +} + +func TestNewSuiteLoadsFixtures(t *testing.T) { + s := loadTestSuite(t) + if s.chain == nil { + t.Fatal("expected initialized chain") + } + if s.chain.Len() == 0 { + t.Fatal("expected chain fixtures to include at least genesis block") + } +} + +func TestSignedFixtureTxsBuildsSequentialTransactions(t *testing.T) { + s := loadTestSuite(t) + if len(s.chain.senders) == 0 { + t.Skip("fixture has no sender accounts") + } + + txs, from, err := s.signedFixtureTxs(2) + if err != nil { + t.Fatalf("signedFixtureTxs failed: %v", err) + } + if len(txs) != 2 { + t.Fatalf("wrong tx count: have %d want 2", len(txs)) + } + if _, ok := s.chain.senders[from]; !ok { + t.Fatalf("returned sender is not tracked: %s", from) + } + _, nonce := s.chain.GetSender(0) + if txs[0].Nonce() != nonce { + t.Fatalf("wrong first tx nonce: have %d want %d", txs[0].Nonce(), nonce) + } + if txs[1].Nonce() != nonce+1 { + t.Fatalf("wrong second tx nonce: have %d want %d", txs[1].Nonce(), nonce+1) + } + if txs[0].Hash() == txs[1].Hash() { + t.Fatal("expected distinct signed transactions") + } +} + +func TestSignedFixtureTxsRequiresSenders(t *testing.T) { + s := loadTestSuite(t) + s.chain.senders = map[common.Address]*senderInfo{} + + _, _, err := s.signedFixtureTxs(1) + if err == nil { + t.Fatal("expected error when no sender accounts are available") + } +} diff --git a/cmd/devp2p/runtest.go b/cmd/devp2p/runtest.go index 32b8a957d4ab..2af9916186ef 100644 --- a/cmd/devp2p/runtest.go +++ b/cmd/devp2p/runtest.go @@ -38,12 +38,12 @@ var ( Category: flags.TestingCategory, } - // Kept for CLI compatibility with upstream test commands. In this fork's - // current rlpx eth-test subset, only --node is required. + // for eth/snap tests testChainDirFlag = &cli.PathFlag{ Name: "chain", - Usage: "Test chain directory (optional in current subset)", + Usage: "Test chain directory (required)", Category: flags.TestingCategory, + Required: true, } testNodeFlag = &cli.StringFlag{ Name: "node",