-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update builder code to Capella (#11904)
- Loading branch information
Showing
21 changed files
with
1,882 additions
and
202 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
package builder | ||
|
||
import ( | ||
ssz "github.com/prysmaticlabs/fastssz" | ||
"github.com/prysmaticlabs/prysm/v3/consensus-types/blocks" | ||
"github.com/prysmaticlabs/prysm/v3/consensus-types/interfaces" | ||
ethpb "github.com/prysmaticlabs/prysm/v3/proto/prysm/v1alpha1" | ||
"github.com/prysmaticlabs/prysm/v3/runtime/version" | ||
) | ||
|
||
// SignedBid is an interface describing the method set of a signed builder bid. | ||
type SignedBid interface { | ||
Message() (Bid, error) | ||
Signature() []byte | ||
Version() int | ||
IsNil() bool | ||
} | ||
|
||
// Bid is an interface describing the method set of a builder bid. | ||
type Bid interface { | ||
Header() (interfaces.ExecutionData, error) | ||
Value() []byte | ||
Pubkey() []byte | ||
Version() int | ||
IsNil() bool | ||
HashTreeRoot() ([32]byte, error) | ||
HashTreeRootWith(hh *ssz.Hasher) error | ||
} | ||
|
||
type signedBuilderBid struct { | ||
p *ethpb.SignedBuilderBid | ||
} | ||
|
||
// WrappedSignedBuilderBid is a constructor which wraps a protobuf signed bit into an interface. | ||
func WrappedSignedBuilderBid(p *ethpb.SignedBuilderBid) (SignedBid, error) { | ||
w := signedBuilderBid{p: p} | ||
if w.IsNil() { | ||
return nil, blocks.ErrNilObjectWrapped | ||
} | ||
return w, nil | ||
} | ||
|
||
// Message -- | ||
func (b signedBuilderBid) Message() (Bid, error) { | ||
return WrappedBuilderBid(b.p.Message) | ||
} | ||
|
||
// Signature -- | ||
func (b signedBuilderBid) Signature() []byte { | ||
return b.p.Signature | ||
} | ||
|
||
// Version -- | ||
func (b signedBuilderBid) Version() int { | ||
return version.Bellatrix | ||
} | ||
|
||
// IsNil -- | ||
func (b signedBuilderBid) IsNil() bool { | ||
return b.p == nil | ||
} | ||
|
||
type signedBuilderBidCapella struct { | ||
p *ethpb.SignedBuilderBidCapella | ||
} | ||
|
||
// WrappedSignedBuilderBidCapella is a constructor which wraps a protobuf signed bit into an interface. | ||
func WrappedSignedBuilderBidCapella(p *ethpb.SignedBuilderBidCapella) (SignedBid, error) { | ||
w := signedBuilderBidCapella{p: p} | ||
if w.IsNil() { | ||
return nil, blocks.ErrNilObjectWrapped | ||
} | ||
return w, nil | ||
} | ||
|
||
// Message -- | ||
func (b signedBuilderBidCapella) Message() (Bid, error) { | ||
return WrappedBuilderBidCapella(b.p.Message) | ||
} | ||
|
||
// Signature -- | ||
func (b signedBuilderBidCapella) Signature() []byte { | ||
return b.p.Signature | ||
} | ||
|
||
// Version -- | ||
func (b signedBuilderBidCapella) Version() int { | ||
return version.Capella | ||
} | ||
|
||
// IsNil -- | ||
func (b signedBuilderBidCapella) IsNil() bool { | ||
return b.p == nil | ||
} | ||
|
||
type builderBid struct { | ||
p *ethpb.BuilderBid | ||
} | ||
|
||
// WrappedBuilderBid is a constructor which wraps a protobuf bid into an interface. | ||
func WrappedBuilderBid(p *ethpb.BuilderBid) (Bid, error) { | ||
w := builderBid{p: p} | ||
if w.IsNil() { | ||
return nil, blocks.ErrNilObjectWrapped | ||
} | ||
return w, nil | ||
} | ||
|
||
// Header -- | ||
func (b builderBid) Header() (interfaces.ExecutionData, error) { | ||
return blocks.WrappedExecutionPayloadHeader(b.p.Header) | ||
} | ||
|
||
// Version -- | ||
func (b builderBid) Version() int { | ||
return version.Bellatrix | ||
} | ||
|
||
// Value -- | ||
func (b builderBid) Value() []byte { | ||
return b.p.Value | ||
} | ||
|
||
// Pubkey -- | ||
func (b builderBid) Pubkey() []byte { | ||
return b.p.Pubkey | ||
} | ||
|
||
// IsNil -- | ||
func (b builderBid) IsNil() bool { | ||
return b.p == nil | ||
} | ||
|
||
// HashTreeRoot -- | ||
func (b builderBid) HashTreeRoot() ([32]byte, error) { | ||
return b.p.HashTreeRoot() | ||
} | ||
|
||
// HashTreeRootWith -- | ||
func (b builderBid) HashTreeRootWith(hh *ssz.Hasher) error { | ||
return b.p.HashTreeRootWith(hh) | ||
} | ||
|
||
type builderBidCapella struct { | ||
p *ethpb.BuilderBidCapella | ||
} | ||
|
||
// WrappedBuilderBidCapella is a constructor which wraps a protobuf bid into an interface. | ||
func WrappedBuilderBidCapella(p *ethpb.BuilderBidCapella) (Bid, error) { | ||
w := builderBidCapella{p: p} | ||
if w.IsNil() { | ||
return nil, blocks.ErrNilObjectWrapped | ||
} | ||
return w, nil | ||
} | ||
|
||
// Header -- | ||
func (b builderBidCapella) Header() (interfaces.ExecutionData, error) { | ||
return blocks.WrappedExecutionPayloadHeaderCapella(b.p.Header) | ||
} | ||
|
||
// Version -- | ||
func (b builderBidCapella) Version() int { | ||
return version.Capella | ||
} | ||
|
||
// Value -- | ||
func (b builderBidCapella) Value() []byte { | ||
return b.p.Value | ||
} | ||
|
||
// Pubkey -- | ||
func (b builderBidCapella) Pubkey() []byte { | ||
return b.p.Pubkey | ||
} | ||
|
||
// IsNil -- | ||
func (b builderBidCapella) IsNil() bool { | ||
return b.p == nil | ||
} | ||
|
||
// HashTreeRoot -- | ||
func (b builderBidCapella) HashTreeRoot() ([32]byte, error) { | ||
return b.p.HashTreeRoot() | ||
} | ||
|
||
// HashTreeRootWith -- | ||
func (b builderBidCapella) HashTreeRootWith(hh *ssz.Hasher) error { | ||
return b.p.HashTreeRootWith(hh) | ||
} |
Oops, something went wrong.