Mask common types.

This commit is contained in:
Thomas E Lackey 2022-09-08 00:03:37 -05:00
parent ecb5490b01
commit dceb81866f
3 changed files with 41 additions and 36 deletions

View File

@ -13,6 +13,11 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type Slot common.Slot
type Root common.Root
type Eth1Data common.Eth1Data
type SignedBeaconBlock struct { type SignedBeaconBlock struct {
bellatrix *bellatrix.SignedBeaconBlock bellatrix *bellatrix.SignedBeaconBlock
altair *altair.SignedBeaconBlock altair *altair.SignedBeaconBlock
@ -181,36 +186,36 @@ func (s *BeaconBlock) GetPhase0() *phase0.BeaconBlock {
return s.phase0 return s.phase0
} }
func (b *BeaconBlock) ParentRoot() *common.Root { func (b *BeaconBlock) ParentRoot() Root {
if b.IsBellatrix() { if b.IsBellatrix() {
return &b.bellatrix.ParentRoot return Root(b.bellatrix.ParentRoot)
} }
if b.IsAltair() { if b.IsAltair() {
return &b.altair.ParentRoot return Root(b.altair.ParentRoot)
} }
if b.IsPhase0() { if b.IsPhase0() {
return &b.phase0.ParentRoot return Root(b.phase0.ParentRoot)
} }
return nil return Root{}
} }
func (b *BeaconBlock) StateRoot() *common.Root { func (b *BeaconBlock) StateRoot() Root {
if b.IsBellatrix() { if b.IsBellatrix() {
return &b.bellatrix.StateRoot return Root(b.bellatrix.StateRoot)
} }
if b.IsAltair() { if b.IsAltair() {
return &b.altair.StateRoot return Root(b.altair.StateRoot)
} }
if b.IsPhase0() { if b.IsPhase0() {
return &b.phase0.StateRoot return Root(b.phase0.StateRoot)
} }
return nil return Root{}
} }
func (b *BeaconBlock) Body() *BeaconBlockBody { func (b *BeaconBlock) Body() *BeaconBlockBody {
@ -241,36 +246,36 @@ func (b *BeaconBlockBody) IsPhase0() bool {
return b.phase0 != nil return b.phase0 != nil
} }
func (b *BeaconBlockBody) Eth1Data() *common.Eth1Data { func (b *BeaconBlockBody) Eth1Data() Eth1Data {
if b.IsBellatrix() { if b.IsBellatrix() {
return &b.bellatrix.Eth1Data return Eth1Data(b.bellatrix.Eth1Data)
} }
if b.IsAltair() { if b.IsAltair() {
return &b.altair.Eth1Data return Eth1Data(b.altair.Eth1Data)
} }
if b.IsPhase0() { if b.IsPhase0() {
return &b.phase0.Eth1Data return Eth1Data(b.phase0.Eth1Data)
} }
return nil return Eth1Data{}
} }
func (b *BeaconBlock) HashTreeRoot() common.Root { func (b *BeaconBlock) HashTreeRoot() Root {
if b.IsBellatrix() { if b.IsBellatrix() {
return b.bellatrix.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.bellatrix.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
if b.IsAltair() { if b.IsAltair() {
return b.altair.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.altair.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
if b.IsPhase0() { if b.IsPhase0() {
return b.phase0.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.phase0.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
return common.Root{} return Root{}
} }
func (s *BeaconState) UnmarshalSSZ(ssz []byte) error { func (s *BeaconState) UnmarshalSSZ(ssz []byte) error {
@ -349,37 +354,37 @@ func (s *BeaconState) IsPhase0() bool {
return s.phase0 != nil return s.phase0 != nil
} }
func (s *BeaconState) Slot() common.Slot { func (s *BeaconState) Slot() Slot {
if s.IsBellatrix() { if s.IsBellatrix() {
return s.bellatrix.Slot return Slot(s.bellatrix.Slot)
} }
if s.IsAltair() { if s.IsAltair() {
return s.altair.Slot return Slot(s.altair.Slot)
} }
if s.IsPhase0() { if s.IsPhase0() {
return s.phase0.Slot return Slot(s.phase0.Slot)
} }
// TODO(telackey): Something better than 0? // TODO(telackey): Something better than 0?
return 0 return 0
} }
func (b *BeaconState) HashTreeRoot() common.Root { func (b *BeaconState) HashTreeRoot() Root {
if b.IsBellatrix() { if b.IsBellatrix() {
return b.bellatrix.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.bellatrix.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
if b.IsAltair() { if b.IsAltair() {
return b.altair.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.altair.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
if b.IsPhase0() { if b.IsPhase0() {
return b.phase0.HashTreeRoot(configs.Mainnet, tree.Hash) return Root(b.phase0.HashTreeRoot(configs.Mainnet, tree.Hash))
} }
return common.Root{} return Root{}
} }
func (s *BeaconState) GetBellatrix() *bellatrix.BeaconState { func (s *BeaconState) GetBellatrix() *bellatrix.BeaconState {

View File

@ -0,0 +1 @@
../../../external/eth2.0-spec-tests

View File

@ -23,7 +23,6 @@ import (
"context" "context"
"encoding/hex" "encoding/hex"
"fmt" "fmt"
"github.com/protolambda/zrnt/eth2/beacon/common"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -272,7 +271,7 @@ func (ps *ProcessSlot) getSignedBeaconBlock(serverAddress string) error {
ps.FullSignedBeaconBlock = signedBeaconBlock ps.FullSignedBeaconBlock = signedBeaconBlock
ps.SszSignedBeaconBlock = sszSignedBeaconBlock ps.SszSignedBeaconBlock = sszSignedBeaconBlock
ps.ParentBlockRoot = rootToHex(ps.FullSignedBeaconBlock.Block().ParentRoot()) ps.ParentBlockRoot = toHex(ps.FullSignedBeaconBlock.Block().ParentRoot())
return nil return nil
} }
@ -306,7 +305,7 @@ func (ps *ProcessSlot) getBeaconState(serverEndpoint string) error {
// Check to make sure that the previous block we processed is the parent of the current block. // Check to make sure that the previous block we processed is the parent of the current block.
func (ps *ProcessSlot) checkPreviousSlot(tx sql.Tx, ctx context.Context, previousSlot int, previousBlockRoot string, knownGapsTableIncrement int) { func (ps *ProcessSlot) checkPreviousSlot(tx sql.Tx, ctx context.Context, previousSlot int, previousBlockRoot string, knownGapsTableIncrement int) {
parentRoot := rootToHex(ps.FullSignedBeaconBlock.Block().ParentRoot()) parentRoot := toHex(ps.FullSignedBeaconBlock.Block().ParentRoot())
slot := int(ps.FullBeaconState.Slot()) slot := int(ps.FullBeaconState.Slot())
if previousSlot == slot { if previousSlot == slot {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
@ -369,7 +368,7 @@ func (ps *ProcessSlot) provideFinalHash() (string, string, string, error) {
if ps.StateRoot != "" { if ps.StateRoot != "" {
stateRoot = ps.StateRoot stateRoot = ps.StateRoot
} else { } else {
stateRoot = rootToHex(ps.FullSignedBeaconBlock.Block().StateRoot()) stateRoot = toHex(ps.FullSignedBeaconBlock.Block().StateRoot())
log.Debug("StateRoot: ", stateRoot) log.Debug("StateRoot: ", stateRoot)
} }
@ -377,14 +376,14 @@ func (ps *ProcessSlot) provideFinalHash() (string, string, string, error) {
blockRoot = ps.BlockRoot blockRoot = ps.BlockRoot
} else { } else {
rawBlockRoot := ps.FullSignedBeaconBlock.Block().HashTreeRoot() rawBlockRoot := ps.FullSignedBeaconBlock.Block().HashTreeRoot()
blockRoot = rootToHex(&rawBlockRoot) blockRoot = toHex(rawBlockRoot)
log.WithFields(log.Fields{"blockRoot": blockRoot}).Debug("Block Root from ssz") log.WithFields(log.Fields{"blockRoot": blockRoot}).Debug("Block Root from ssz")
} }
eth1BlockHash = rootToHex(&ps.FullSignedBeaconBlock.Block().Body().Eth1Data().BlockHash) eth1BlockHash = toHex(ps.FullSignedBeaconBlock.Block().Body().Eth1Data().BlockHash)
} }
return blockRoot, stateRoot, eth1BlockHash, nil return blockRoot, stateRoot, eth1BlockHash, nil
} }
func rootToHex(r *common.Root) string { func toHex(r [32]byte) string {
return "0x" + hex.EncodeToString(r[:]) return "0x" + hex.EncodeToString(r[:])
} }