Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions api/v1/payloadattributesevent.go
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ func (e *PayloadAttributesEvent) MarshalJSON() ([]byte, error) {
if err != nil {
return nil, errors.Wrap(err, "failed to marshal payload attributes v3")
}
case spec.DataVersionElectra, spec.DataVersionFulu:
case spec.DataVersionElectra, spec.DataVersionFulu, spec.DataVersionGloas:
if e.Data.V4 == nil {
return nil, errors.New("no payload attributes v4 data")
}
Expand Down Expand Up @@ -619,7 +619,7 @@ func (e *PayloadAttributesEvent) unpack(data *payloadAttributesEventJSON) error
return err
}
e.Data.V3 = &payloadAttributes
case spec.DataVersionElectra, spec.DataVersionFulu:
case spec.DataVersionElectra, spec.DataVersionFulu, spec.DataVersionGloas:
var payloadAttributes PayloadAttributesV4
err = json.Unmarshal(data.Data.PayloadAttributes, &payloadAttributes)
if err != nil {
Expand Down
97 changes: 96 additions & 1 deletion api/versionedblindedbeaconblock.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,12 @@ type VersionedBlindedBeaconBlock struct {
Deneb *apiv1deneb.BlindedBeaconBlock
Electra *apiv1electra.BlindedBeaconBlock
Fulu *apiv1electra.BlindedBeaconBlock
Gloas *apiv1electra.BlindedBeaconBlock
}

// IsEmpty returns true if there is no block.
func (v *VersionedBlindedBeaconBlock) IsEmpty() bool {
return v.Bellatrix == nil && v.Capella == nil && v.Deneb == nil
return v.Bellatrix == nil && v.Capella == nil && v.Deneb == nil && v.Electra == nil && v.Fulu == nil && v.Gloas == nil
}

// Slot returns the slot of the blinded beacon block.
Expand Down Expand Up @@ -71,6 +72,12 @@ func (v *VersionedBlindedBeaconBlock) Slot() (phase0.Slot, error) {
}

return v.Fulu.Slot, nil
case spec.DataVersionGloas:
if v.Gloas == nil {
return 0, ErrDataMissing
}

return v.Gloas.Slot, nil
default:
return 0, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -109,6 +116,12 @@ func (v *VersionedBlindedBeaconBlock) ProposerIndex() (phase0.ValidatorIndex, er
}

return v.Fulu.ProposerIndex, nil
case spec.DataVersionGloas:
if v.Gloas == nil {
return 0, ErrDataMissing
}

return v.Gloas.ProposerIndex, nil
default:
return 0, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -152,6 +165,13 @@ func (v *VersionedBlindedBeaconBlock) RandaoReveal() (phase0.BLSSignature, error
}

return v.Fulu.Body.RANDAOReveal, nil
case spec.DataVersionGloas:
if v.Gloas == nil ||
v.Gloas.Body == nil {
return phase0.BLSSignature{}, ErrDataMissing
}

return v.Gloas.Body.RANDAOReveal, nil
default:
return phase0.BLSSignature{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -195,6 +215,13 @@ func (v *VersionedBlindedBeaconBlock) Graffiti() ([32]byte, error) {
}

return v.Fulu.Body.Graffiti, nil
case spec.DataVersionGloas:
if v.Gloas == nil ||
v.Gloas.Body == nil {
return [32]byte{}, ErrDataMissing
}

return v.Gloas.Body.Graffiti, nil
default:
return [32]byte{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -272,6 +299,20 @@ func (v *VersionedBlindedBeaconBlock) Attestations() ([]spec.VersionedAttestatio
}
}

return versionedAttestations, nil
case spec.DataVersionGloas:
if v.Gloas == nil || v.Gloas.Body == nil {
return nil, ErrDataMissing
}

versionedAttestations := make([]spec.VersionedAttestation, len(v.Gloas.Body.Attestations))
for i, attestation := range v.Gloas.Body.Attestations {
versionedAttestations[i] = spec.VersionedAttestation{
Version: spec.DataVersionGloas,
Gloas: attestation,
}
}

return versionedAttestations, nil
default:
return nil, ErrUnsupportedVersion
Expand Down Expand Up @@ -311,6 +352,12 @@ func (v *VersionedBlindedBeaconBlock) Root() (phase0.Root, error) {
}

return v.Fulu.HashTreeRoot()
case spec.DataVersionGloas:
if v.Gloas == nil {
return phase0.Root{}, ErrDataMissing
}

return v.Gloas.HashTreeRoot()
default:
return phase0.Root{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -349,6 +396,12 @@ func (v *VersionedBlindedBeaconBlock) BodyRoot() (phase0.Root, error) {
}

return v.Fulu.Body.HashTreeRoot()
case spec.DataVersionGloas:
if v.Gloas == nil {
return phase0.Root{}, ErrDataMissing
}

return v.Gloas.Body.HashTreeRoot()
default:
return phase0.Root{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -387,6 +440,12 @@ func (v *VersionedBlindedBeaconBlock) ParentRoot() (phase0.Root, error) {
}

return v.Fulu.ParentRoot, nil
case spec.DataVersionGloas:
if v.Gloas == nil {
return phase0.Root{}, ErrDataMissing
}

return v.Gloas.ParentRoot, nil
default:
return phase0.Root{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -425,6 +484,12 @@ func (v *VersionedBlindedBeaconBlock) StateRoot() (phase0.Root, error) {
}

return v.Fulu.StateRoot, nil
case spec.DataVersionGloas:
if v.Gloas == nil {
return phase0.Root{}, ErrDataMissing
}

return v.Gloas.StateRoot, nil
default:
return phase0.Root{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -473,6 +538,14 @@ func (v *VersionedBlindedBeaconBlock) TransactionsRoot() (phase0.Root, error) {
}

return v.Fulu.Body.ExecutionPayloadHeader.TransactionsRoot, nil
case spec.DataVersionGloas:
if v.Gloas == nil ||
v.Gloas.Body == nil ||
v.Gloas.Body.ExecutionPayloadHeader == nil {
return phase0.Root{}, ErrDataMissing
}

return v.Gloas.Body.ExecutionPayloadHeader.TransactionsRoot, nil
default:
return phase0.Root{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -521,6 +594,14 @@ func (v *VersionedBlindedBeaconBlock) FeeRecipient() (bellatrix.ExecutionAddress
}

return v.Fulu.Body.ExecutionPayloadHeader.FeeRecipient, nil
case spec.DataVersionGloas:
if v.Gloas == nil ||
v.Gloas.Body == nil ||
v.Gloas.Body.ExecutionPayloadHeader == nil {
return bellatrix.ExecutionAddress{}, ErrDataMissing
}

return v.Gloas.Body.ExecutionPayloadHeader.FeeRecipient, nil
default:
return bellatrix.ExecutionAddress{}, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -569,6 +650,14 @@ func (v *VersionedBlindedBeaconBlock) Timestamp() (uint64, error) {
}

return v.Fulu.Body.ExecutionPayloadHeader.Timestamp, nil
case spec.DataVersionGloas:
if v.Gloas == nil ||
v.Gloas.Body == nil ||
v.Gloas.Body.ExecutionPayloadHeader == nil {
return 0, ErrDataMissing
}

return v.Gloas.Body.ExecutionPayloadHeader.Timestamp, nil
default:
return 0, ErrUnsupportedVersion
}
Expand Down Expand Up @@ -607,6 +696,12 @@ func (v *VersionedBlindedBeaconBlock) String() string {
}

return v.Fulu.String()
case spec.DataVersionGloas:
if v.Gloas == nil {
return ""
}

return v.Gloas.String()
default:
return "unknown version"
}
Expand Down
Loading
Loading