go-ethereum/tests/stateless_ssz_encoding.go
Kevaundray Wedderburn 4b13eb8478 commit
2026-03-13 00:45:07 +00:00

1423 lines
33 KiB
Go

// Code generated by fastssz. DO NOT EDIT.
// Hash: a5a3f5976cb6d7bebfd33a8fd96135a2b18cabfeda1c73cb38b6689a4695c1fc
// Version: 0.1.3
package tests
import (
ssz "github.com/ferranbt/fastssz"
)
// MarshalSSZ ssz marshals the SszWithdrawal object
func (s *SszWithdrawal) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszWithdrawal object to a target array
func (s *SszWithdrawal) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
// Field (0) 'Index'
dst = ssz.MarshalUint64(dst, s.Index)
// Field (1) 'ValidatorIndex'
dst = ssz.MarshalUint64(dst, s.ValidatorIndex)
// Field (2) 'Address'
dst = append(dst, s.Address[:]...)
// Field (3) 'Amount'
dst = append(dst, s.Amount[:]...)
return
}
// UnmarshalSSZ ssz unmarshals the SszWithdrawal object
func (s *SszWithdrawal) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size != 68 {
return ssz.ErrSize
}
// Field (0) 'Index'
s.Index = ssz.UnmarshallUint64(buf[0:8])
// Field (1) 'ValidatorIndex'
s.ValidatorIndex = ssz.UnmarshallUint64(buf[8:16])
// Field (2) 'Address'
copy(s.Address[:], buf[16:36])
// Field (3) 'Amount'
copy(s.Amount[:], buf[36:68])
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszWithdrawal object
func (s *SszWithdrawal) SizeSSZ() (size int) {
size = 68
return
}
// HashTreeRoot ssz hashes the SszWithdrawal object
func (s *SszWithdrawal) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszWithdrawal object with a hasher
func (s *SszWithdrawal) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'Index'
hh.PutUint64(s.Index)
// Field (1) 'ValidatorIndex'
hh.PutUint64(s.ValidatorIndex)
// Field (2) 'Address'
hh.PutBytes(s.Address[:])
// Field (3) 'Amount'
hh.PutBytes(s.Amount[:])
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszWithdrawal object
func (s *SszWithdrawal) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszExecutionPayload object
func (s *SszExecutionPayload) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszExecutionPayload object to a target array
func (s *SszExecutionPayload) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
offset := int(540)
// Field (0) 'ParentHash'
dst = append(dst, s.ParentHash[:]...)
// Field (1) 'FeeRecipient'
dst = append(dst, s.FeeRecipient[:]...)
// Field (2) 'StateRoot'
dst = append(dst, s.StateRoot[:]...)
// Field (3) 'ReceiptsRoot'
dst = append(dst, s.ReceiptsRoot[:]...)
// Field (4) 'LogsBloom'
dst = append(dst, s.LogsBloom[:]...)
// Field (5) 'PrevRandao'
dst = append(dst, s.PrevRandao[:]...)
// Field (6) 'BlockNumber'
dst = ssz.MarshalUint64(dst, s.BlockNumber)
// Field (7) 'GasLimit'
dst = ssz.MarshalUint64(dst, s.GasLimit)
// Field (8) 'GasUsed'
dst = ssz.MarshalUint64(dst, s.GasUsed)
// Field (9) 'Timestamp'
dst = ssz.MarshalUint64(dst, s.Timestamp)
// Offset (10) 'ExtraData'
dst = ssz.WriteOffset(dst, offset)
offset += len(s.ExtraData)
// Field (11) 'BaseFeePerGas'
dst = append(dst, s.BaseFeePerGas[:]...)
// Field (12) 'BlockHash'
dst = append(dst, s.BlockHash[:]...)
// Offset (13) 'Transactions'
dst = ssz.WriteOffset(dst, offset)
for ii := 0; ii < len(s.Transactions); ii++ {
offset += 4
offset += len(s.Transactions[ii])
}
// Offset (14) 'Withdrawals'
dst = ssz.WriteOffset(dst, offset)
offset += len(s.Withdrawals) * 68
// Field (15) 'BlobGasUsed'
dst = ssz.MarshalUint64(dst, s.BlobGasUsed)
// Field (16) 'ExcessBlobGas'
dst = ssz.MarshalUint64(dst, s.ExcessBlobGas)
// Offset (17) 'BlockAccessList'
dst = ssz.WriteOffset(dst, offset)
// Field (18) 'SlotNumber'
dst = ssz.MarshalUint64(dst, s.SlotNumber)
// Field (10) 'ExtraData'
if size := len(s.ExtraData); size > 32 {
err = ssz.ErrBytesLengthFn("SszExecutionPayload.ExtraData", size, 32)
return
}
dst = append(dst, s.ExtraData...)
// Field (13) 'Transactions'
if size := len(s.Transactions); size > 1048576 {
err = ssz.ErrListTooBigFn("SszExecutionPayload.Transactions", size, 1048576)
return
}
{
offset = 4 * len(s.Transactions)
for ii := 0; ii < len(s.Transactions); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.Transactions[ii])
}
}
for ii := 0; ii < len(s.Transactions); ii++ {
if size := len(s.Transactions[ii]); size > 1073741824 {
err = ssz.ErrBytesLengthFn("SszExecutionPayload.Transactions[ii]", size, 1073741824)
return
}
dst = append(dst, s.Transactions[ii]...)
}
// Field (14) 'Withdrawals'
if size := len(s.Withdrawals); size > 65536 {
err = ssz.ErrListTooBigFn("SszExecutionPayload.Withdrawals", size, 65536)
return
}
for ii := 0; ii < len(s.Withdrawals); ii++ {
if dst, err = s.Withdrawals[ii].MarshalSSZTo(dst); err != nil {
return
}
}
// Field (17) 'BlockAccessList'
if size := len(s.BlockAccessList); size > 16777216 {
err = ssz.ErrBytesLengthFn("SszExecutionPayload.BlockAccessList", size, 16777216)
return
}
dst = append(dst, s.BlockAccessList...)
return
}
// UnmarshalSSZ ssz unmarshals the SszExecutionPayload object
func (s *SszExecutionPayload) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size < 540 {
return ssz.ErrSize
}
tail := buf
var o10, o13, o14, o17 uint64
// Field (0) 'ParentHash'
copy(s.ParentHash[:], buf[0:32])
// Field (1) 'FeeRecipient'
copy(s.FeeRecipient[:], buf[32:52])
// Field (2) 'StateRoot'
copy(s.StateRoot[:], buf[52:84])
// Field (3) 'ReceiptsRoot'
copy(s.ReceiptsRoot[:], buf[84:116])
// Field (4) 'LogsBloom'
copy(s.LogsBloom[:], buf[116:372])
// Field (5) 'PrevRandao'
copy(s.PrevRandao[:], buf[372:404])
// Field (6) 'BlockNumber'
s.BlockNumber = ssz.UnmarshallUint64(buf[404:412])
// Field (7) 'GasLimit'
s.GasLimit = ssz.UnmarshallUint64(buf[412:420])
// Field (8) 'GasUsed'
s.GasUsed = ssz.UnmarshallUint64(buf[420:428])
// Field (9) 'Timestamp'
s.Timestamp = ssz.UnmarshallUint64(buf[428:436])
// Offset (10) 'ExtraData'
if o10 = ssz.ReadOffset(buf[436:440]); o10 > size {
return ssz.ErrOffset
}
if o10 != 540 {
return ssz.ErrInvalidVariableOffset
}
// Field (11) 'BaseFeePerGas'
copy(s.BaseFeePerGas[:], buf[440:472])
// Field (12) 'BlockHash'
copy(s.BlockHash[:], buf[472:504])
// Offset (13) 'Transactions'
if o13 = ssz.ReadOffset(buf[504:508]); o13 > size || o10 > o13 {
return ssz.ErrOffset
}
// Offset (14) 'Withdrawals'
if o14 = ssz.ReadOffset(buf[508:512]); o14 > size || o13 > o14 {
return ssz.ErrOffset
}
// Field (15) 'BlobGasUsed'
s.BlobGasUsed = ssz.UnmarshallUint64(buf[512:520])
// Field (16) 'ExcessBlobGas'
s.ExcessBlobGas = ssz.UnmarshallUint64(buf[520:528])
// Offset (17) 'BlockAccessList'
if o17 = ssz.ReadOffset(buf[528:532]); o17 > size || o14 > o17 {
return ssz.ErrOffset
}
// Field (18) 'SlotNumber'
s.SlotNumber = ssz.UnmarshallUint64(buf[532:540])
// Field (10) 'ExtraData'
{
buf = tail[o10:o13]
if len(buf) > 32 {
return ssz.ErrBytesLength
}
if cap(s.ExtraData) == 0 {
s.ExtraData = make([]byte, 0, len(buf))
}
s.ExtraData = append(s.ExtraData, buf...)
}
// Field (13) 'Transactions'
{
buf = tail[o13:o14]
num, err := ssz.DecodeDynamicLength(buf, 1048576)
if err != nil {
return err
}
s.Transactions = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 1073741824 {
return ssz.ErrBytesLength
}
if cap(s.Transactions[indx]) == 0 {
s.Transactions[indx] = make([]byte, 0, len(buf))
}
s.Transactions[indx] = append(s.Transactions[indx], buf...)
return nil
})
if err != nil {
return err
}
}
// Field (14) 'Withdrawals'
{
buf = tail[o14:o17]
num, err := ssz.DivideInt2(len(buf), 68, 65536)
if err != nil {
return err
}
s.Withdrawals = make([]*SszWithdrawal, num)
for ii := 0; ii < num; ii++ {
if s.Withdrawals[ii] == nil {
s.Withdrawals[ii] = new(SszWithdrawal)
}
if err = s.Withdrawals[ii].UnmarshalSSZ(buf[ii*68 : (ii+1)*68]); err != nil {
return err
}
}
}
// Field (17) 'BlockAccessList'
{
buf = tail[o17:]
if len(buf) > 16777216 {
return ssz.ErrBytesLength
}
if cap(s.BlockAccessList) == 0 {
s.BlockAccessList = make([]byte, 0, len(buf))
}
s.BlockAccessList = append(s.BlockAccessList, buf...)
}
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszExecutionPayload object
func (s *SszExecutionPayload) SizeSSZ() (size int) {
size = 540
// Field (10) 'ExtraData'
size += len(s.ExtraData)
// Field (13) 'Transactions'
for ii := 0; ii < len(s.Transactions); ii++ {
size += 4
size += len(s.Transactions[ii])
}
// Field (14) 'Withdrawals'
size += len(s.Withdrawals) * 68
// Field (17) 'BlockAccessList'
size += len(s.BlockAccessList)
return
}
// HashTreeRoot ssz hashes the SszExecutionPayload object
func (s *SszExecutionPayload) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszExecutionPayload object with a hasher
func (s *SszExecutionPayload) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'ParentHash'
hh.PutBytes(s.ParentHash[:])
// Field (1) 'FeeRecipient'
hh.PutBytes(s.FeeRecipient[:])
// Field (2) 'StateRoot'
hh.PutBytes(s.StateRoot[:])
// Field (3) 'ReceiptsRoot'
hh.PutBytes(s.ReceiptsRoot[:])
// Field (4) 'LogsBloom'
hh.PutBytes(s.LogsBloom[:])
// Field (5) 'PrevRandao'
hh.PutBytes(s.PrevRandao[:])
// Field (6) 'BlockNumber'
hh.PutUint64(s.BlockNumber)
// Field (7) 'GasLimit'
hh.PutUint64(s.GasLimit)
// Field (8) 'GasUsed'
hh.PutUint64(s.GasUsed)
// Field (9) 'Timestamp'
hh.PutUint64(s.Timestamp)
// Field (10) 'ExtraData'
{
elemIndx := hh.Index()
byteLen := uint64(len(s.ExtraData))
if byteLen > 32 {
err = ssz.ErrIncorrectListSize
return
}
hh.Append(s.ExtraData)
hh.MerkleizeWithMixin(elemIndx, byteLen, (32+31)/32)
}
// Field (11) 'BaseFeePerGas'
hh.PutBytes(s.BaseFeePerGas[:])
// Field (12) 'BlockHash'
hh.PutBytes(s.BlockHash[:])
// Field (13) 'Transactions'
{
subIndx := hh.Index()
num := uint64(len(s.Transactions))
if num > 1048576 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.Transactions {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 1073741824 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (1073741824+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 1048576)
}
// Field (14) 'Withdrawals'
{
subIndx := hh.Index()
num := uint64(len(s.Withdrawals))
if num > 65536 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.Withdrawals {
if err = elem.HashTreeRootWith(hh); err != nil {
return
}
}
hh.MerkleizeWithMixin(subIndx, num, 65536)
}
// Field (15) 'BlobGasUsed'
hh.PutUint64(s.BlobGasUsed)
// Field (16) 'ExcessBlobGas'
hh.PutUint64(s.ExcessBlobGas)
// Field (17) 'BlockAccessList'
{
elemIndx := hh.Index()
byteLen := uint64(len(s.BlockAccessList))
if byteLen > 16777216 {
err = ssz.ErrIncorrectListSize
return
}
hh.Append(s.BlockAccessList)
hh.MerkleizeWithMixin(elemIndx, byteLen, (16777216+31)/32)
}
// Field (18) 'SlotNumber'
hh.PutUint64(s.SlotNumber)
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszExecutionPayload object
func (s *SszExecutionPayload) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszNewPayloadRequest object
func (s *SszNewPayloadRequest) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszNewPayloadRequest object to a target array
func (s *SszNewPayloadRequest) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
offset := int(44)
// Offset (0) 'ExecutionPayload'
dst = ssz.WriteOffset(dst, offset)
if s.ExecutionPayload == nil {
s.ExecutionPayload = new(SszExecutionPayload)
}
offset += s.ExecutionPayload.SizeSSZ()
// Offset (1) 'VersionedHashes'
dst = ssz.WriteOffset(dst, offset)
offset += len(s.VersionedHashes) * 32
// Field (2) 'ParentBeaconBlockRoot'
dst = append(dst, s.ParentBeaconBlockRoot[:]...)
// Offset (3) 'ExecutionRequests'
dst = ssz.WriteOffset(dst, offset)
// Field (0) 'ExecutionPayload'
if dst, err = s.ExecutionPayload.MarshalSSZTo(dst); err != nil {
return
}
// Field (1) 'VersionedHashes'
if size := len(s.VersionedHashes); size > 4096 {
err = ssz.ErrListTooBigFn("SszNewPayloadRequest.VersionedHashes", size, 4096)
return
}
for ii := 0; ii < len(s.VersionedHashes); ii++ {
dst = append(dst, s.VersionedHashes[ii][:]...)
}
// Field (3) 'ExecutionRequests'
if size := len(s.ExecutionRequests); size > 16 {
err = ssz.ErrListTooBigFn("SszNewPayloadRequest.ExecutionRequests", size, 16)
return
}
{
offset = 4 * len(s.ExecutionRequests)
for ii := 0; ii < len(s.ExecutionRequests); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.ExecutionRequests[ii])
}
}
for ii := 0; ii < len(s.ExecutionRequests); ii++ {
if size := len(s.ExecutionRequests[ii]); size > 1048576 {
err = ssz.ErrBytesLengthFn("SszNewPayloadRequest.ExecutionRequests[ii]", size, 1048576)
return
}
dst = append(dst, s.ExecutionRequests[ii]...)
}
return
}
// UnmarshalSSZ ssz unmarshals the SszNewPayloadRequest object
func (s *SszNewPayloadRequest) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size < 44 {
return ssz.ErrSize
}
tail := buf
var o0, o1, o3 uint64
// Offset (0) 'ExecutionPayload'
if o0 = ssz.ReadOffset(buf[0:4]); o0 > size {
return ssz.ErrOffset
}
if o0 != 44 {
return ssz.ErrInvalidVariableOffset
}
// Offset (1) 'VersionedHashes'
if o1 = ssz.ReadOffset(buf[4:8]); o1 > size || o0 > o1 {
return ssz.ErrOffset
}
// Field (2) 'ParentBeaconBlockRoot'
copy(s.ParentBeaconBlockRoot[:], buf[8:40])
// Offset (3) 'ExecutionRequests'
if o3 = ssz.ReadOffset(buf[40:44]); o3 > size || o1 > o3 {
return ssz.ErrOffset
}
// Field (0) 'ExecutionPayload'
{
buf = tail[o0:o1]
if s.ExecutionPayload == nil {
s.ExecutionPayload = new(SszExecutionPayload)
}
if err = s.ExecutionPayload.UnmarshalSSZ(buf); err != nil {
return err
}
}
// Field (1) 'VersionedHashes'
{
buf = tail[o1:o3]
num, err := ssz.DivideInt2(len(buf), 32, 4096)
if err != nil {
return err
}
s.VersionedHashes = make([][32]byte, num)
for ii := 0; ii < num; ii++ {
copy(s.VersionedHashes[ii][:], buf[ii*32:(ii+1)*32])
}
}
// Field (3) 'ExecutionRequests'
{
buf = tail[o3:]
num, err := ssz.DecodeDynamicLength(buf, 16)
if err != nil {
return err
}
s.ExecutionRequests = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 1048576 {
return ssz.ErrBytesLength
}
if cap(s.ExecutionRequests[indx]) == 0 {
s.ExecutionRequests[indx] = make([]byte, 0, len(buf))
}
s.ExecutionRequests[indx] = append(s.ExecutionRequests[indx], buf...)
return nil
})
if err != nil {
return err
}
}
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszNewPayloadRequest object
func (s *SszNewPayloadRequest) SizeSSZ() (size int) {
size = 44
// Field (0) 'ExecutionPayload'
if s.ExecutionPayload == nil {
s.ExecutionPayload = new(SszExecutionPayload)
}
size += s.ExecutionPayload.SizeSSZ()
// Field (1) 'VersionedHashes'
size += len(s.VersionedHashes) * 32
// Field (3) 'ExecutionRequests'
for ii := 0; ii < len(s.ExecutionRequests); ii++ {
size += 4
size += len(s.ExecutionRequests[ii])
}
return
}
// HashTreeRoot ssz hashes the SszNewPayloadRequest object
func (s *SszNewPayloadRequest) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszNewPayloadRequest object with a hasher
func (s *SszNewPayloadRequest) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'ExecutionPayload'
if err = s.ExecutionPayload.HashTreeRootWith(hh); err != nil {
return
}
// Field (1) 'VersionedHashes'
{
if size := len(s.VersionedHashes); size > 4096 {
err = ssz.ErrListTooBigFn("SszNewPayloadRequest.VersionedHashes", size, 4096)
return
}
subIndx := hh.Index()
for _, i := range s.VersionedHashes {
hh.Append(i[:])
}
numItems := uint64(len(s.VersionedHashes))
hh.MerkleizeWithMixin(subIndx, numItems, 4096)
}
// Field (2) 'ParentBeaconBlockRoot'
hh.PutBytes(s.ParentBeaconBlockRoot[:])
// Field (3) 'ExecutionRequests'
{
subIndx := hh.Index()
num := uint64(len(s.ExecutionRequests))
if num > 16 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.ExecutionRequests {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 1048576 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (1048576+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 16)
}
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszNewPayloadRequest object
func (s *SszNewPayloadRequest) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszExecutionWitness object
func (s *SszExecutionWitness) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszExecutionWitness object to a target array
func (s *SszExecutionWitness) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
offset := int(12)
// Offset (0) 'State'
dst = ssz.WriteOffset(dst, offset)
for ii := 0; ii < len(s.State); ii++ {
offset += 4
offset += len(s.State[ii])
}
// Offset (1) 'Codes'
dst = ssz.WriteOffset(dst, offset)
for ii := 0; ii < len(s.Codes); ii++ {
offset += 4
offset += len(s.Codes[ii])
}
// Offset (2) 'Headers'
dst = ssz.WriteOffset(dst, offset)
// Field (0) 'State'
if size := len(s.State); size > 1048576 {
err = ssz.ErrListTooBigFn("SszExecutionWitness.State", size, 1048576)
return
}
{
offset = 4 * len(s.State)
for ii := 0; ii < len(s.State); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.State[ii])
}
}
for ii := 0; ii < len(s.State); ii++ {
if size := len(s.State[ii]); size > 1048576 {
err = ssz.ErrBytesLengthFn("SszExecutionWitness.State[ii]", size, 1048576)
return
}
dst = append(dst, s.State[ii]...)
}
// Field (1) 'Codes'
if size := len(s.Codes); size > 65536 {
err = ssz.ErrListTooBigFn("SszExecutionWitness.Codes", size, 65536)
return
}
{
offset = 4 * len(s.Codes)
for ii := 0; ii < len(s.Codes); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.Codes[ii])
}
}
for ii := 0; ii < len(s.Codes); ii++ {
if size := len(s.Codes[ii]); size > 16777216 {
err = ssz.ErrBytesLengthFn("SszExecutionWitness.Codes[ii]", size, 16777216)
return
}
dst = append(dst, s.Codes[ii]...)
}
// Field (2) 'Headers'
if size := len(s.Headers); size > 256 {
err = ssz.ErrListTooBigFn("SszExecutionWitness.Headers", size, 256)
return
}
{
offset = 4 * len(s.Headers)
for ii := 0; ii < len(s.Headers); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.Headers[ii])
}
}
for ii := 0; ii < len(s.Headers); ii++ {
if size := len(s.Headers[ii]); size > 1024 {
err = ssz.ErrBytesLengthFn("SszExecutionWitness.Headers[ii]", size, 1024)
return
}
dst = append(dst, s.Headers[ii]...)
}
return
}
// UnmarshalSSZ ssz unmarshals the SszExecutionWitness object
func (s *SszExecutionWitness) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size < 12 {
return ssz.ErrSize
}
tail := buf
var o0, o1, o2 uint64
// Offset (0) 'State'
if o0 = ssz.ReadOffset(buf[0:4]); o0 > size {
return ssz.ErrOffset
}
if o0 != 12 {
return ssz.ErrInvalidVariableOffset
}
// Offset (1) 'Codes'
if o1 = ssz.ReadOffset(buf[4:8]); o1 > size || o0 > o1 {
return ssz.ErrOffset
}
// Offset (2) 'Headers'
if o2 = ssz.ReadOffset(buf[8:12]); o2 > size || o1 > o2 {
return ssz.ErrOffset
}
// Field (0) 'State'
{
buf = tail[o0:o1]
num, err := ssz.DecodeDynamicLength(buf, 1048576)
if err != nil {
return err
}
s.State = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 1048576 {
return ssz.ErrBytesLength
}
if cap(s.State[indx]) == 0 {
s.State[indx] = make([]byte, 0, len(buf))
}
s.State[indx] = append(s.State[indx], buf...)
return nil
})
if err != nil {
return err
}
}
// Field (1) 'Codes'
{
buf = tail[o1:o2]
num, err := ssz.DecodeDynamicLength(buf, 65536)
if err != nil {
return err
}
s.Codes = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 16777216 {
return ssz.ErrBytesLength
}
if cap(s.Codes[indx]) == 0 {
s.Codes[indx] = make([]byte, 0, len(buf))
}
s.Codes[indx] = append(s.Codes[indx], buf...)
return nil
})
if err != nil {
return err
}
}
// Field (2) 'Headers'
{
buf = tail[o2:]
num, err := ssz.DecodeDynamicLength(buf, 256)
if err != nil {
return err
}
s.Headers = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 1024 {
return ssz.ErrBytesLength
}
if cap(s.Headers[indx]) == 0 {
s.Headers[indx] = make([]byte, 0, len(buf))
}
s.Headers[indx] = append(s.Headers[indx], buf...)
return nil
})
if err != nil {
return err
}
}
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszExecutionWitness object
func (s *SszExecutionWitness) SizeSSZ() (size int) {
size = 12
// Field (0) 'State'
for ii := 0; ii < len(s.State); ii++ {
size += 4
size += len(s.State[ii])
}
// Field (1) 'Codes'
for ii := 0; ii < len(s.Codes); ii++ {
size += 4
size += len(s.Codes[ii])
}
// Field (2) 'Headers'
for ii := 0; ii < len(s.Headers); ii++ {
size += 4
size += len(s.Headers[ii])
}
return
}
// HashTreeRoot ssz hashes the SszExecutionWitness object
func (s *SszExecutionWitness) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszExecutionWitness object with a hasher
func (s *SszExecutionWitness) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'State'
{
subIndx := hh.Index()
num := uint64(len(s.State))
if num > 1048576 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.State {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 1048576 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (1048576+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 1048576)
}
// Field (1) 'Codes'
{
subIndx := hh.Index()
num := uint64(len(s.Codes))
if num > 65536 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.Codes {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 16777216 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (16777216+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 65536)
}
// Field (2) 'Headers'
{
subIndx := hh.Index()
num := uint64(len(s.Headers))
if num > 256 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.Headers {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 1024 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (1024+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 256)
}
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszExecutionWitness object
func (s *SszExecutionWitness) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszChainConfig object
func (s *SszChainConfig) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszChainConfig object to a target array
func (s *SszChainConfig) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
// Field (0) 'ChainId'
dst = ssz.MarshalUint64(dst, s.ChainId)
return
}
// UnmarshalSSZ ssz unmarshals the SszChainConfig object
func (s *SszChainConfig) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size != 8 {
return ssz.ErrSize
}
// Field (0) 'ChainId'
s.ChainId = ssz.UnmarshallUint64(buf[0:8])
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszChainConfig object
func (s *SszChainConfig) SizeSSZ() (size int) {
size = 8
return
}
// HashTreeRoot ssz hashes the SszChainConfig object
func (s *SszChainConfig) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszChainConfig object with a hasher
func (s *SszChainConfig) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'ChainId'
hh.PutUint64(s.ChainId)
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszChainConfig object
func (s *SszChainConfig) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszStatelessInput object
func (s *SszStatelessInput) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszStatelessInput object to a target array
func (s *SszStatelessInput) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
offset := int(20)
// Offset (0) 'NewPayloadRequest'
dst = ssz.WriteOffset(dst, offset)
if s.NewPayloadRequest == nil {
s.NewPayloadRequest = new(SszNewPayloadRequest)
}
offset += s.NewPayloadRequest.SizeSSZ()
// Offset (1) 'Witness'
dst = ssz.WriteOffset(dst, offset)
if s.Witness == nil {
s.Witness = new(SszExecutionWitness)
}
offset += s.Witness.SizeSSZ()
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if dst, err = s.ChainConfig.MarshalSSZTo(dst); err != nil {
return
}
// Offset (3) 'PublicKeys'
dst = ssz.WriteOffset(dst, offset)
// Field (0) 'NewPayloadRequest'
if dst, err = s.NewPayloadRequest.MarshalSSZTo(dst); err != nil {
return
}
// Field (1) 'Witness'
if dst, err = s.Witness.MarshalSSZTo(dst); err != nil {
return
}
// Field (3) 'PublicKeys'
if size := len(s.PublicKeys); size > 1048576 {
err = ssz.ErrListTooBigFn("SszStatelessInput.PublicKeys", size, 1048576)
return
}
{
offset = 4 * len(s.PublicKeys)
for ii := 0; ii < len(s.PublicKeys); ii++ {
dst = ssz.WriteOffset(dst, offset)
offset += len(s.PublicKeys[ii])
}
}
for ii := 0; ii < len(s.PublicKeys); ii++ {
if size := len(s.PublicKeys[ii]); size > 48 {
err = ssz.ErrBytesLengthFn("SszStatelessInput.PublicKeys[ii]", size, 48)
return
}
dst = append(dst, s.PublicKeys[ii]...)
}
return
}
// UnmarshalSSZ ssz unmarshals the SszStatelessInput object
func (s *SszStatelessInput) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size < 20 {
return ssz.ErrSize
}
tail := buf
var o0, o1, o3 uint64
// Offset (0) 'NewPayloadRequest'
if o0 = ssz.ReadOffset(buf[0:4]); o0 > size {
return ssz.ErrOffset
}
if o0 != 20 {
return ssz.ErrInvalidVariableOffset
}
// Offset (1) 'Witness'
if o1 = ssz.ReadOffset(buf[4:8]); o1 > size || o0 > o1 {
return ssz.ErrOffset
}
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if err = s.ChainConfig.UnmarshalSSZ(buf[8:16]); err != nil {
return err
}
// Offset (3) 'PublicKeys'
if o3 = ssz.ReadOffset(buf[16:20]); o3 > size || o1 > o3 {
return ssz.ErrOffset
}
// Field (0) 'NewPayloadRequest'
{
buf = tail[o0:o1]
if s.NewPayloadRequest == nil {
s.NewPayloadRequest = new(SszNewPayloadRequest)
}
if err = s.NewPayloadRequest.UnmarshalSSZ(buf); err != nil {
return err
}
}
// Field (1) 'Witness'
{
buf = tail[o1:o3]
if s.Witness == nil {
s.Witness = new(SszExecutionWitness)
}
if err = s.Witness.UnmarshalSSZ(buf); err != nil {
return err
}
}
// Field (3) 'PublicKeys'
{
buf = tail[o3:]
num, err := ssz.DecodeDynamicLength(buf, 1048576)
if err != nil {
return err
}
s.PublicKeys = make([][]byte, num)
err = ssz.UnmarshalDynamic(buf, num, func(indx int, buf []byte) (err error) {
if len(buf) > 48 {
return ssz.ErrBytesLength
}
if cap(s.PublicKeys[indx]) == 0 {
s.PublicKeys[indx] = make([]byte, 0, len(buf))
}
s.PublicKeys[indx] = append(s.PublicKeys[indx], buf...)
return nil
})
if err != nil {
return err
}
}
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszStatelessInput object
func (s *SszStatelessInput) SizeSSZ() (size int) {
size = 20
// Field (0) 'NewPayloadRequest'
if s.NewPayloadRequest == nil {
s.NewPayloadRequest = new(SszNewPayloadRequest)
}
size += s.NewPayloadRequest.SizeSSZ()
// Field (1) 'Witness'
if s.Witness == nil {
s.Witness = new(SszExecutionWitness)
}
size += s.Witness.SizeSSZ()
// Field (3) 'PublicKeys'
for ii := 0; ii < len(s.PublicKeys); ii++ {
size += 4
size += len(s.PublicKeys[ii])
}
return
}
// HashTreeRoot ssz hashes the SszStatelessInput object
func (s *SszStatelessInput) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszStatelessInput object with a hasher
func (s *SszStatelessInput) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'NewPayloadRequest'
if err = s.NewPayloadRequest.HashTreeRootWith(hh); err != nil {
return
}
// Field (1) 'Witness'
if err = s.Witness.HashTreeRootWith(hh); err != nil {
return
}
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if err = s.ChainConfig.HashTreeRootWith(hh); err != nil {
return
}
// Field (3) 'PublicKeys'
{
subIndx := hh.Index()
num := uint64(len(s.PublicKeys))
if num > 1048576 {
err = ssz.ErrIncorrectListSize
return
}
for _, elem := range s.PublicKeys {
{
elemIndx := hh.Index()
byteLen := uint64(len(elem))
if byteLen > 48 {
err = ssz.ErrIncorrectListSize
return
}
hh.AppendBytes32(elem)
hh.MerkleizeWithMixin(elemIndx, byteLen, (48+31)/32)
}
}
hh.MerkleizeWithMixin(subIndx, num, 1048576)
}
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszStatelessInput object
func (s *SszStatelessInput) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}
// MarshalSSZ ssz marshals the SszStatelessValidationResult object
func (s *SszStatelessValidationResult) MarshalSSZ() ([]byte, error) {
return ssz.MarshalSSZ(s)
}
// MarshalSSZTo ssz marshals the SszStatelessValidationResult object to a target array
func (s *SszStatelessValidationResult) MarshalSSZTo(buf []byte) (dst []byte, err error) {
dst = buf
// Field (0) 'NewPayloadRequestRoot'
dst = append(dst, s.NewPayloadRequestRoot[:]...)
// Field (1) 'SuccessfulValidation'
dst = ssz.MarshalBool(dst, s.SuccessfulValidation)
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if dst, err = s.ChainConfig.MarshalSSZTo(dst); err != nil {
return
}
return
}
// UnmarshalSSZ ssz unmarshals the SszStatelessValidationResult object
func (s *SszStatelessValidationResult) UnmarshalSSZ(buf []byte) error {
var err error
size := uint64(len(buf))
if size != 41 {
return ssz.ErrSize
}
// Field (0) 'NewPayloadRequestRoot'
copy(s.NewPayloadRequestRoot[:], buf[0:32])
// Field (1) 'SuccessfulValidation'
s.SuccessfulValidation = ssz.UnmarshalBool(buf[32:33])
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if err = s.ChainConfig.UnmarshalSSZ(buf[33:41]); err != nil {
return err
}
return err
}
// SizeSSZ returns the ssz encoded size in bytes for the SszStatelessValidationResult object
func (s *SszStatelessValidationResult) SizeSSZ() (size int) {
size = 41
return
}
// HashTreeRoot ssz hashes the SszStatelessValidationResult object
func (s *SszStatelessValidationResult) HashTreeRoot() ([32]byte, error) {
return ssz.HashWithDefaultHasher(s)
}
// HashTreeRootWith ssz hashes the SszStatelessValidationResult object with a hasher
func (s *SszStatelessValidationResult) HashTreeRootWith(hh ssz.HashWalker) (err error) {
indx := hh.Index()
// Field (0) 'NewPayloadRequestRoot'
hh.PutBytes(s.NewPayloadRequestRoot[:])
// Field (1) 'SuccessfulValidation'
hh.PutBool(s.SuccessfulValidation)
// Field (2) 'ChainConfig'
if s.ChainConfig == nil {
s.ChainConfig = new(SszChainConfig)
}
if err = s.ChainConfig.HashTreeRootWith(hh); err != nil {
return
}
hh.Merkleize(indx)
return
}
// GetTree ssz hashes the SszStatelessValidationResult object
func (s *SszStatelessValidationResult) GetTree() (*ssz.Node, error) {
return ssz.ProofTree(s)
}