Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update electra types for devnet-1 #30

Merged
merged 2 commits into from
Aug 4, 2024
Merged
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
1 change: 1 addition & 0 deletions api/electra/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ package electra

// Need to `go install github.com/ferranbt/fastssz/sszgen@latest` for this to work.
//go:generate rm -f builderbid_ssz.go executionpayloadandblobsbundle_ssz.go signedbuilderbid_ssz.go submitblockrequest_ssz.go
//nolint:revive
//go:generate sszgen --suffix ssz --include ../../../go-eth2-client/spec/phase0,../../../go-eth2-client/spec/bellatrix,../../../go-eth2-client/spec/capella,../../../go-eth2-client/spec/deneb,../../../go-eth2-client/spec/electra,../v1,../deneb --path . --objs BuilderBid,ExecutionPayloadAndBlobsBundle,SignedBuilderBid,SubmitBlockRequest
//go:generate goimports -w builderbid_ssz.go executionpayloadandblobsbundle_ssz.go signedbuilderbid_ssz.go submitblockrequest_ssz.go
4 changes: 2 additions & 2 deletions api/electra/submitblockrequest.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ import (
"fmt"

"github.com/attestantio/go-builder-client/api/deneb"
v1 "github.com/attestantio/go-builder-client/api/v1"
apiv1 "github.com/attestantio/go-builder-client/api/v1"
"github.com/attestantio/go-eth2-client/spec/electra"
"github.com/attestantio/go-eth2-client/spec/phase0"
"github.com/goccy/go-yaml"
)

// SubmitBlockRequest is the request from the builder to submit a block.
type SubmitBlockRequest struct {
Message *v1.BidTrace
Message *apiv1.BidTrace
ExecutionPayload *electra.ExecutionPayload
BlobsBundle *deneb.BlobsBundle
Signature phase0.BLSSignature `ssz-size:"96"`
Expand Down
4 changes: 2 additions & 2 deletions api/electra/submitblockrequest_json.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ import (
"strings"

"github.com/attestantio/go-builder-client/api/deneb"
v1 "github.com/attestantio/go-builder-client/api/v1"
apiv1 "github.com/attestantio/go-builder-client/api/v1"
"github.com/attestantio/go-eth2-client/spec/electra"
"github.com/attestantio/go-eth2-client/spec/phase0"
"github.com/pkg/errors"
)

// submitBlockRequestJSON is the spec representation of the struct.
type submitBlockRequestJSON struct {
Message *v1.BidTrace `json:"message"`
Message *apiv1.BidTrace `json:"message"`
ExecutionPayload *electra.ExecutionPayload `json:"execution_payload"`
BlobsBundle *deneb.BlobsBundle `json:"blobs_bundle"`
Signature string `json:"signature"`
Expand Down
8 changes: 4 additions & 4 deletions api/electra/submitblockrequest_ssz.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions api/electra/submitblockrequest_yaml.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import (
"fmt"

"github.com/attestantio/go-builder-client/api/deneb"
v1 "github.com/attestantio/go-builder-client/api/v1"
apiv1 "github.com/attestantio/go-builder-client/api/v1"
"github.com/attestantio/go-eth2-client/spec/electra"
"github.com/goccy/go-yaml"
)

// submitBlockRequestYAML is the spec representation of the struct.
type submitBlockRequestYAML struct {
Message *v1.BidTrace `yaml:"message"`
Message *apiv1.BidTrace `yaml:"message"`
ExecutionPayload *electra.ExecutionPayload `yaml:"execution_payload"`
BlobsBundle *deneb.BlobsBundle `yaml:"blobs_bundle"`
Signature string `yaml:"signature"`
Expand Down
8 changes: 4 additions & 4 deletions api/versionedsubmitblindedblockresponse.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,8 @@ func (v *VersionedSubmitBlindedBlockResponse) ExcessBlobGas() (uint64, error) {
}
}

// DepositReceipts returns the deposit receipts of the execution payload.
func (v *VersionedSubmitBlindedBlockResponse) DepositReceipts() ([]*consensuselectra.DepositReceipt, error) {
// DepositRequests returns the deposit receipts of the execution payload.
func (v *VersionedSubmitBlindedBlockResponse) DepositRequests() ([]*consensuselectra.DepositRequest, error) {
if v == nil {
return nil, errors.New("nil struct")
}
Expand All @@ -233,14 +233,14 @@ func (v *VersionedSubmitBlindedBlockResponse) DepositReceipts() ([]*consensusele
return nil, errors.New("no data execution payload")
}

return v.Electra.ExecutionPayload.DepositReceipts, nil
return v.Electra.ExecutionPayload.DepositRequests, nil
default:
return nil, errors.New("unsupported version")
}
}

// WithdrawalRequests returns the execution layer withdrawal requests of the execution payload.
func (v *VersionedSubmitBlindedBlockResponse) WithdrawalRequests() ([]*consensuselectra.ExecutionLayerWithdrawalRequest, error) {
func (v *VersionedSubmitBlindedBlockResponse) WithdrawalRequests() ([]*consensuselectra.WithdrawalRequest, error) {
if v == nil {
return nil, errors.New("nil struct")
}
Expand Down
6 changes: 3 additions & 3 deletions api/versionedsubmitblindedblockresponse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ func TestVersionedSubmitBlindedBlockResponseBlockHash(t *testing.T) {
name: "DenebNoExecutionPayload",
payload: &api.VersionedSubmitBlindedBlockResponse{
Version: consensusspec.DataVersionDeneb,
Deneb: &denebapi.ExecutionPayloadAndBlobsBundle{},
Deneb: &denebapi.ExecutionPayloadAndBlobsBundle{},
},
err: "no execution payload",
},
Expand Down Expand Up @@ -248,11 +248,11 @@ func TestVersionedSubmitBlindedBlockResponseTransactions(t *testing.T) {
},
err: "no data",
},
{
{
name: "DenebNoExecutionPayload",
bid: &api.VersionedSubmitBlindedBlockResponse{
Version: consensusspec.DataVersionDeneb,
Deneb: &denebapi.ExecutionPayloadAndBlobsBundle{},
Deneb: &denebapi.ExecutionPayloadAndBlobsBundle{},
},
err: "no execution payload",
},
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/attestantio/go-builder-client
go 1.20

require (
github.com/attestantio/go-eth2-client v0.21.4-0.20240508201227-6fd8b5ef4447
github.com/attestantio/go-eth2-client v0.21.7-0.20240701211822-0a60485fce68
github.com/ferranbt/fastssz v0.1.3
// go-yaml after 1.9.2 has memory issues due to https://github.com/goccy/go-yaml/issues/325; avoid.
github.com/goccy/go-yaml v1.9.2
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
github.com/attestantio/go-eth2-client v0.21.4-0.20240508201227-6fd8b5ef4447 h1:k0SJ1kAoijCKsRLG+D8kzicwAwpkCWsa/9KRQS5EjFg=
github.com/attestantio/go-eth2-client v0.21.4-0.20240508201227-6fd8b5ef4447/go.mod h1:yzMl6JKut8ngKCRyv+6H9j2nNjS/+SMm3N+duf8iix8=
github.com/attestantio/go-eth2-client v0.21.7-0.20240701211822-0a60485fce68 h1:+sc+OAeTcWjQ5BwK6aajh9xnu8KYtIJNVqwbWx+KvQ4=
github.com/attestantio/go-eth2-client v0.21.7-0.20240701211822-0a60485fce68/go.mod h1:vy5jU/uDZ2+RcVzq5BfnG+bQ3/6uu9DGwCrGsPtjJ1A=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
Expand Down
5 changes: 3 additions & 2 deletions http/unblindproposal.go
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,6 @@ func (s *Service) unblindElectraProposal(ctx context.Context,
SyncAggregate: proposal.Message.Body.SyncAggregate,
BLSToExecutionChanges: proposal.Message.Body.BLSToExecutionChanges,
BlobKZGCommitments: proposal.Message.Body.BlobKZGCommitments,
Consolidations: proposal.Message.Body.Consolidations,
},
},
Signature: proposal.Signature,
Expand All @@ -422,7 +421,9 @@ func (s *Service) unblindElectraProposal(ctx context.Context,
return nil, errors.Join(errors.New("failed to generate hash tree root for the received execution payload header"), err)
}
if !bytes.Equal(ourExecutionPayloadHash[:], receivedExecutionPayloadHash[:]) {
return nil, fmt.Errorf("execution payload hash mismatch: %#x != %#x", receivedExecutionPayloadHash[:], ourExecutionPayloadHash[:])
return nil, fmt.Errorf("execution payload hash mismatch: %#x != %#x", receivedExecutionPayloadHash[:],
ourExecutionPayloadHash[:],
)
}
res.Electra.SignedBlock.Message.Body.ExecutionPayload = bundle.ExecutionPayload

Expand Down
28 changes: 24 additions & 4 deletions spec/versionedsubmitblockrequest.go
Original file line number Diff line number Diff line change
Expand Up @@ -969,8 +969,8 @@ func (v *VersionedSubmitBlockRequest) ExcessBlobGas() (uint64, error) {
}
}

// DepositReceipts returns the deposit receipts of the execution payload.
func (v *VersionedSubmitBlockRequest) DepositReceipts() ([]*consensuselectra.DepositReceipt, error) {
// DepositRequests returns the deposit receipts of the execution payload.
func (v *VersionedSubmitBlockRequest) DepositRequests() ([]*consensuselectra.DepositRequest, error) {
if v == nil {
return nil, errors.New("nil struct")
}
Expand All @@ -983,14 +983,14 @@ func (v *VersionedSubmitBlockRequest) DepositReceipts() ([]*consensuselectra.Dep
return nil, errors.New("no data execution payload")
}

return v.Electra.ExecutionPayload.DepositReceipts, nil
return v.Electra.ExecutionPayload.DepositRequests, nil
default:
return nil, errors.New("unsupported version")
}
}

// WithdrawalRequests returns the execution layer withdrawal requests of the execution payload.
func (v *VersionedSubmitBlockRequest) WithdrawalRequests() ([]*consensuselectra.ExecutionLayerWithdrawalRequest, error) {
func (v *VersionedSubmitBlockRequest) WithdrawalRequests() ([]*consensuselectra.WithdrawalRequest, error) {
if v == nil {
return nil, errors.New("nil struct")
}
Expand All @@ -1009,6 +1009,26 @@ func (v *VersionedSubmitBlockRequest) WithdrawalRequests() ([]*consensuselectra.
}
}

// ConsolidationRequests returns the consolidation requests of the execution payload.
func (v *VersionedSubmitBlockRequest) ConsolidationRequests() ([]*consensuselectra.ConsolidationRequest, error) {
if v == nil {
return nil, errors.New("nil struct")
}
switch v.Version {
case consensusspec.DataVersionElectra:
if v.Electra == nil {
return nil, errors.New("no data")
}
if v.Electra.ExecutionPayload == nil {
return nil, errors.New("no data execution payload")
}

return v.Electra.ExecutionPayload.ConsolidationRequests, nil
default:
return nil, errors.New("unsupported version")
}
}

// String returns a string version of the structure.
func (v *VersionedSubmitBlockRequest) String() string {
if v == nil {
Expand Down
Loading