Skip to content
Open
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
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ RELAY_TIMEOUT_MS_REGVAL=3000 # Timeout for registerValidator request

# Retry settings
REQUEST_MAX_RETRIES=5 # Maximum number of retries for a relay get payload request

# Minimal Preset settings
MINIMAL_PRESET=false # Set to true to enable using minimal preset
8 changes: 8 additions & 0 deletions cli/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ var flags = []cli.Flag{
sepoliaFlag,
holeskyFlag,
hoodiFlag,
minimalPresetFlag,
// relay
relaysFlag,
deprecatedRelayMonitorFlag,
Expand Down Expand Up @@ -122,6 +123,13 @@ var (
Usage: "use Hoodi",
Category: GenesisCategory,
}
minimalPresetFlag = &cli.BoolFlag{
Name: "minimal-preset",
Sources: cli.EnvVars("MINIMAL_PRESET"),
Usage: "use Minimal preset",
Value: false,
Category: GenesisCategory,
}
// Relay
relaysFlag = &cli.StringSliceFlag{
Name: "relay",
Expand Down
2 changes: 2 additions & 0 deletions cli/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ func start(_ context.Context, cmd *cli.Command) error {
genesisForkVersion, genesisTime = setupGenesis(cmd)
relays, minBid, relayCheck = setupRelays(cmd)
listenAddr = cmd.String(addrFlag.Name)
minimalPreset = cmd.Bool(minimalPresetFlag.Name)
)

opts := server.BoostServiceOpts{
Expand All @@ -82,6 +83,7 @@ func start(_ context.Context, cmd *cli.Command) error {
RequestTimeoutGetPayload: time.Duration(cmd.Int(timeoutGetPayloadFlag.Name)) * time.Millisecond,
RequestTimeoutRegVal: time.Duration(cmd.Int(timeoutRegValFlag.Name)) * time.Millisecond,
RequestMaxRetries: cmd.Int(maxRetriesFlag.Name),
MinimalPreset: minimalPreset,
}
service, err := server.NewBoostService(opts)
if err != nil {
Expand Down
5 changes: 5 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ require (
github.com/google/uuid v1.6.0
github.com/gorilla/mux v1.8.1
github.com/holiman/uint256 v1.3.2
github.com/pk910/dynamic-ssz v1.0.1
github.com/prysmaticlabs/go-bitfield v0.0.0-20240618144021-706c95b2dd15
github.com/sirupsen/logrus v1.9.3
github.com/stretchr/testify v1.10.0
Expand All @@ -18,6 +19,7 @@ require (

require (
github.com/bits-and-blooms/bitset v1.22.0 // indirect
github.com/casbin/govaluate v1.8.0 // indirect
github.com/consensys/bavard v0.1.30 // indirect
github.com/consensys/gnark-crypto v0.17.0 // indirect
github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect
Expand All @@ -28,6 +30,7 @@ require (
github.com/goccy/go-yaml v1.17.1 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/mmcloughlin/addchain v0.4.0 // indirect
github.com/prysmaticlabs/gohashtree v0.0.4-beta // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/supranational/blst v0.3.14 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
Expand Down Expand Up @@ -60,3 +63,5 @@ require (
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/attestantio/go-eth2-client => github.com/jacobkaufmann/go-eth2-client v0.0.0-20250529231327-5f241b4aa8a4
8 changes: 6 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjC
github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI=
github.com/attestantio/go-builder-client v0.6.1 h1:fn6PC8aDWx2YbptstR1JKP8NyakiNJJTiOE5f9N0z5Q=
github.com/attestantio/go-builder-client v0.6.1/go.mod h1:f8wi3HzuPxfJoi2PirpJK3yZhte4SavDgKJbRrKoB1Q=
github.com/attestantio/go-eth2-client v0.25.0 h1:wLQxoteGCbTE/vKCMASx1ze+Zm9rcqtltRnblaLJup4=
github.com/attestantio/go-eth2-client v0.25.0/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY=
github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCkcs2uw7w4=
github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/casbin/govaluate v1.8.0 h1:1dUaV/I0LFP2tcY1uNQEb6wBCbp8GMTcC/zhwQDWvZo=
github.com/casbin/govaluate v1.8.0/go.mod h1:G/UnbIjZk/0uMNaLwZZmFQrR72tYRZWQkO70si/iR7A=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/consensys/bavard v0.1.30 h1:wwAj9lSnMLFXjEclKwyhf7Oslg8EoaFz9u1QGgt0bsk=
Expand Down Expand Up @@ -59,6 +59,8 @@ github.com/huandu/go-clone v1.7.2 h1:3+Aq0Ed8XK+zKkLjE2dfHg0XrpIfcohBE1K+c8Usxoo
github.com/huandu/go-clone v1.7.2/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE=
github.com/huandu/go-clone/generic v1.6.0 h1:Wgmt/fUZ28r16F2Y3APotFD59sHk1p78K0XLdbUYN5U=
github.com/huandu/go-clone/generic v1.6.0/go.mod h1:xgd9ZebcMsBWWcBx5mVMCoqMX24gLWr5lQicr+nVXNs=
github.com/jacobkaufmann/go-eth2-client v0.0.0-20250529231327-5f241b4aa8a4 h1:swIjpXA+H87vwRO0Wm99BBPq2VmHNlTiYmQqsQCTA6I=
github.com/jacobkaufmann/go-eth2-client v0.0.0-20250529231327-5f241b4aa8a4/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY=
github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
Expand All @@ -81,6 +83,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky
github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/pk910/dynamic-ssz v1.0.1 h1:fXdon6tqkyw2ClKG8DNxRFmdDgx1Gbr0FCgw0w4WQmI=
github.com/pk910/dynamic-ssz v1.0.1/go.mod h1:rnDVX65+7pLU2oeMdGCCa31zSsa5uozRQigSODlp8jw=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
Expand Down
22 changes: 11 additions & 11 deletions server/get_header.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func (m *BoostService) getHeader(log *logrus.Entry, slot phase0.Slot, pubkey, pa

// Decode bid
bid := new(builderSpec.VersionedSignedBuilderBid)
err = decodeBid(respBytes, respContentType, respEthConsensusVersion, bid)
err = m.decodeBid(respBytes, respContentType, respEthConsensusVersion, bid)
if err != nil {
log.WithError(err).Warn("error decoding bid")
return
Expand Down Expand Up @@ -175,7 +175,7 @@ func (m *BoostService) getHeader(log *logrus.Entry, slot phase0.Slot, pubkey, pa

// Verify the relay signature in the relay response
if !config.SkipRelaySignatureCheck {
ok, err := checkRelaySignature(bid, m.builderSigningDomain, relay.PublicKey)
ok, err := checkRelaySignature(bid, m.builderSigningDomain, relay.PublicKey, m.dynSSZ)
if err != nil {
log.WithError(err).Error("error verifying relay signature")
return
Expand Down Expand Up @@ -257,7 +257,7 @@ func (m *BoostService) getHeader(log *logrus.Entry, slot phase0.Slot, pubkey, pa
}

// decodeBid decodes a bid by SSZ or JSON, depending on the provided respContentType
func decodeBid(respBytes []byte, respContentType, ethConsensusVersion string, bid *builderSpec.VersionedSignedBuilderBid) error {
func (m *BoostService) decodeBid(respBytes []byte, respContentType, ethConsensusVersion string, bid *builderSpec.VersionedSignedBuilderBid) error {
switch respContentType {
case MediaTypeOctetStream:
if ethConsensusVersion != "" {
Expand All @@ -266,19 +266,19 @@ func decodeBid(respBytes []byte, respContentType, ethConsensusVersion string, bi
case EthConsensusVersionBellatrix:
bid.Version = spec.DataVersionBellatrix
bid.Bellatrix = new(builderApiBellatrix.SignedBuilderBid)
return bid.Bellatrix.UnmarshalSSZ(respBytes)
return m.dynSSZ.UnmarshalSSZ(bid.Bellatrix, respBytes)
case EthConsensusVersionCapella:
bid.Version = spec.DataVersionCapella
bid.Capella = new(builderApiCapella.SignedBuilderBid)
return bid.Capella.UnmarshalSSZ(respBytes)
return m.dynSSZ.UnmarshalSSZ(bid.Capella, respBytes)
case EthConsensusVersionDeneb:
bid.Version = spec.DataVersionDeneb
bid.Deneb = new(builderApiDeneb.SignedBuilderBid)
return bid.Deneb.UnmarshalSSZ(respBytes)
return m.dynSSZ.UnmarshalSSZ(bid.Deneb, respBytes)
case EthConsensusVersionElectra:
bid.Version = spec.DataVersionElectra
bid.Electra = new(builderApiElectra.SignedBuilderBid)
return bid.Electra.UnmarshalSSZ(respBytes)
return m.dynSSZ.UnmarshalSSZ(bid.Electra, respBytes)
default:
return errInvalidForkVersion
}
Expand Down Expand Up @@ -312,16 +312,16 @@ func (m *BoostService) respondGetHeaderSSZ(w http.ResponseWriter, result *bidRes
switch result.response.Version {
case spec.DataVersionBellatrix:
w.Header().Set(HeaderEthConsensusVersion, EthConsensusVersionBellatrix)
sszData, err = result.response.Bellatrix.MarshalSSZ()
sszData, err = m.dynSSZ.MarshalSSZ(result.response.Bellatrix)
case spec.DataVersionCapella:
w.Header().Set(HeaderEthConsensusVersion, EthConsensusVersionCapella)
sszData, err = result.response.Capella.MarshalSSZ()
sszData, err = m.dynSSZ.MarshalSSZ(result.response.Capella)
case spec.DataVersionDeneb:
w.Header().Set(HeaderEthConsensusVersion, EthConsensusVersionDeneb)
sszData, err = result.response.Deneb.MarshalSSZ()
sszData, err = m.dynSSZ.MarshalSSZ(result.response.Deneb)
case spec.DataVersionElectra:
w.Header().Set(HeaderEthConsensusVersion, EthConsensusVersionElectra)
sszData, err = result.response.Electra.MarshalSSZ()
sszData, err = m.dynSSZ.MarshalSSZ(result.response.Electra)
case spec.DataVersionUnknown, spec.DataVersionPhase0, spec.DataVersionAltair:
err = errInvalidForkVersion
}
Expand Down
32 changes: 16 additions & 16 deletions server/get_payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/flashbots/mev-boost/config"
"github.com/flashbots/mev-boost/server/params"
"github.com/flashbots/mev-boost/server/types"
dynssz "github.com/pk910/dynamic-ssz"
"github.com/sirupsen/logrus"
)

Expand Down Expand Up @@ -56,7 +57,7 @@ func (m *BoostService) getPayload(log *logrus.Entry, signedBlindedBeaconBlockByt

// Decode the request
request := new(eth2Api.VersionedSignedBlindedBeaconBlock)
err = decodeSignedBlindedBeaconBlock(signedBlindedBeaconBlockBytes, parsedProposerContentType, proposerEthConsensusVersion, request)
err = decodeSignedBlindedBeaconBlock(signedBlindedBeaconBlockBytes, parsedProposerContentType, proposerEthConsensusVersion, request, m.dynSSZ)
if err != nil {
log.WithError(err).Error("failed to decode signed blinded beacon block")
return nil, bidResp{}
Expand Down Expand Up @@ -156,7 +157,7 @@ func (m *BoostService) getPayload(log *logrus.Entry, signedBlindedBeaconBlockByt
if parsedProposerContentType == MediaTypeOctetStream && !relaySupportsSSZ {
requestContentType = MediaTypeJSON
startTime := time.Now()
requestBytes, err = convertSSZToJSON(proposerEthConsensusVersion, signedBlindedBeaconBlockBytes)
requestBytes, err = convertSSZToJSON(proposerEthConsensusVersion, signedBlindedBeaconBlockBytes, m.dynSSZ)
if err != nil {
log.WithError(errFailedToConvert).Error("failed to convert SSZ to JSON")
return nil, err
Expand Down Expand Up @@ -226,7 +227,7 @@ func (m *BoostService) getPayload(log *logrus.Entry, signedBlindedBeaconBlockByt

// Decode response
response := new(builderApi.VersionedSubmitBlindedBlockResponse)
err = decodeSubmitBlindedBlockResponse(respBytes, respContentType, respEthConsensusVersion, response)
err = decodeSubmitBlindedBlockResponse(respBytes, respContentType, respEthConsensusVersion, response, m.dynSSZ)
if err != nil {
log.WithError(err).Warn("error decoding bid")
return
Expand Down Expand Up @@ -377,7 +378,7 @@ type canUnmarshalSSZ interface {
}

// convertSSZToJSON converts SSZ-encoded bytes to JSON based on the given ethConsensusVersion
func convertSSZToJSON(ethConsensusVersion string, sszBytes []byte) ([]byte, error) {
func convertSSZToJSON(ethConsensusVersion string, sszBytes []byte, dynSSZ *dynssz.DynSsz) ([]byte, error) {
var block canUnmarshalSSZ
switch ethConsensusVersion {
case EthConsensusVersionBellatrix:
Expand All @@ -391,9 +392,8 @@ func convertSSZToJSON(ethConsensusVersion string, sszBytes []byte) ([]byte, erro
default:
return nil, errInvalidForkVersion
}

// Unmarshal the SSZ-encoded bytes into the block
if err := block.UnmarshalSSZ(sszBytes); err != nil {
if err := dynSSZ.UnmarshalSSZ(block, sszBytes); err != nil {
return nil, err
}

Expand All @@ -403,27 +403,27 @@ func convertSSZToJSON(ethConsensusVersion string, sszBytes []byte) ([]byte, erro

// decodeSignedBlindedBeaconBlock will decode the request block in either JSON or SSZ.
// Note: when decoding JSON, we must attempt decoding from newest to oldest fork version.
func decodeSignedBlindedBeaconBlock(in []byte, contentType, ethConsensusVersion string, out *eth2Api.VersionedSignedBlindedBeaconBlock) error {
func decodeSignedBlindedBeaconBlock(in []byte, contentType, ethConsensusVersion string, out *eth2Api.VersionedSignedBlindedBeaconBlock, dynSSZ *dynssz.DynSsz) error {
switch contentType {
case MediaTypeOctetStream:
if ethConsensusVersion != "" {
switch ethConsensusVersion {
case EthConsensusVersionBellatrix:
out.Version = spec.DataVersionBellatrix
out.Bellatrix = new(eth2ApiV1Bellatrix.SignedBlindedBeaconBlock)
return out.Bellatrix.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Bellatrix, in)
case EthConsensusVersionCapella:
out.Version = spec.DataVersionCapella
out.Capella = new(eth2ApiV1Capella.SignedBlindedBeaconBlock)
return out.Capella.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Capella, in)
case EthConsensusVersionDeneb:
out.Version = spec.DataVersionDeneb
out.Deneb = new(eth2ApiV1Deneb.SignedBlindedBeaconBlock)
return out.Deneb.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Deneb, in)
case EthConsensusVersionElectra:
out.Version = spec.DataVersionElectra
out.Electra = new(eth2ApiV1Electra.SignedBlindedBeaconBlock)
return out.Electra.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Electra, in)
default:
return errInvalidForkVersion
}
Expand Down Expand Up @@ -466,27 +466,27 @@ func decodeSignedBlindedBeaconBlock(in []byte, contentType, ethConsensusVersion
}

// decodeSubmitBlindedBlockResponse will decode the response contents in either JSON or SSZ
func decodeSubmitBlindedBlockResponse(in []byte, contentType, ethConsensusVersion string, out *builderApi.VersionedSubmitBlindedBlockResponse) error {
func decodeSubmitBlindedBlockResponse(in []byte, contentType, ethConsensusVersion string, out *builderApi.VersionedSubmitBlindedBlockResponse, dynSSZ *dynssz.DynSsz) error {
switch contentType {
case MediaTypeOctetStream:
if ethConsensusVersion != "" {
switch ethConsensusVersion {
case EthConsensusVersionBellatrix:
out.Version = spec.DataVersionBellatrix
out.Bellatrix = new(bellatrix.ExecutionPayload)
return out.Bellatrix.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Bellatrix, in)
case EthConsensusVersionCapella:
out.Version = spec.DataVersionCapella
out.Capella = new(capella.ExecutionPayload)
return out.Capella.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Capella, in)
case EthConsensusVersionDeneb:
out.Version = spec.DataVersionDeneb
out.Deneb = new(builderApiDeneb.ExecutionPayloadAndBlobsBundle)
return out.Deneb.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Deneb, in)
case EthConsensusVersionElectra:
out.Version = spec.DataVersionElectra
out.Electra = new(builderApiDeneb.ExecutionPayloadAndBlobsBundle)
return out.Electra.UnmarshalSSZ(in)
return dynSSZ.UnmarshalSSZ(out.Electra, in)
default:
return errInvalidForkVersion
}
Expand Down
11 changes: 11 additions & 0 deletions server/register_validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ import (
"time"

builderApiV1 "github.com/attestantio/go-builder-client/api/v1"
eth2client "github.com/attestantio/go-eth2-client"
"github.com/flashbots/mev-boost/server/mock"
"github.com/flashbots/mev-boost/server/params"
"github.com/flashbots/mev-boost/server/types"
dynssz "github.com/pk910/dynamic-ssz"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
)
Expand All @@ -26,6 +28,7 @@ func TestHandleRegisterValidator_EmptyList(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("[]")
Expand All @@ -50,6 +53,7 @@ func TestHandleRegisterValidator_NotEmptyList(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

validatorRegistrations := []builderApiV1.SignedValidatorRegistration{
Expand Down Expand Up @@ -90,6 +94,7 @@ func TestHandleRegisterValidator_InvalidJSON(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("invalid json")
Expand All @@ -114,6 +119,7 @@ func TestHandleRegisterValidator_ValidSSZ(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

validatorRegistrations := builderApiV1.SignedValidatorRegistrations{
Expand Down Expand Up @@ -156,6 +162,7 @@ func TestHandleRegisterValidator_InvalidSSZ(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("invalid ssz")
Expand Down Expand Up @@ -186,6 +193,7 @@ func TestHandleRegisterValidator_MultipleRelaysOneSuccess(t *testing.T) {
relays: []types.RelayEntry{badRelay.RelayEntry, relaySuccess.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("[]")
Expand Down Expand Up @@ -221,6 +229,7 @@ func TestHandleRegisterValidator_AllFail(t *testing.T) {
relays: []types.RelayEntry{badRelay1.RelayEntry, badRelay2.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("[]")
Expand All @@ -247,6 +256,7 @@ func TestHandleRegisterValidator_RelayNetworkError(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("[]")
Expand Down Expand Up @@ -275,6 +285,7 @@ func TestHandleRegisterValidator_HeaderPropagation(t *testing.T) {
relays: []types.RelayEntry{relay.RelayEntry},
httpClientRegVal: *http.DefaultClient,
log: logrus.NewEntry(logrus.New()),
dynSSZ: dynssz.NewDynSsz(eth2client.MainnetPreset),
}

reqBody := bytes.NewBufferString("[]")
Expand Down
Loading
Loading