From be1b90d51188ddfff375cd9c149d3f55cd165143 Mon Sep 17 00:00:00 2001 From: Raul Jordan Date: Sat, 2 Nov 2019 17:03:35 -0500 Subject: [PATCH] Fix ListValidatorBalances RPC API (#3846) * begin by adding pagination * utilize pagination properly for balances * db addition * latest balances test * completed tests * fix pagination tests * all tests passing * ethapis compatibility * proper handling if no filters specified --- WORKSPACE | 2 +- beacon-chain/rpc/beacon_chain_server.go | 34 +- beacon-chain/rpc/beacon_chain_server_test.go | 182 ++++++-- proto/beacon/db/attestation_container.pb.go | 5 +- proto/beacon/p2p/v1/messages.pb.go | 5 +- proto/beacon/p2p/v1/types.pb.go | 5 +- proto/beacon/rpc/v1/services.pb.go | 5 +- proto/beacon/rpc/v1_gateway/services.pb.go | 3 +- proto/eth/v1alpha1/archive.pb.go | 5 +- proto/eth/v1alpha1/attestation.pb.go | 5 +- proto/eth/v1alpha1/beacon_block.pb.go | 5 +- proto/eth/v1alpha1/beacon_chain.pb.go | 418 ++++++++++++++----- proto/eth/v1alpha1/beacon_chain.proto | 21 +- proto/eth/v1alpha1/node.pb.go | 5 +- proto/eth/v1alpha1/slasher.pb.go | 5 +- proto/eth/v1alpha1/validator.pb.go | 5 +- proto/sharding/p2p/v1/messages.pb.go | 3 +- 17 files changed, 541 insertions(+), 172 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 4e28f444a..6bb1d4c0c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1202,7 +1202,7 @@ go_repository( go_repository( name = "com_github_prysmaticlabs_ethereumapis", - commit = "b4ca5785e074dd8fed39f18a61aae0318b57b4b0", + commit = "cb09854edc557d3f5752def5316a595e2f07ba27", importpath = "github.com/prysmaticlabs/ethereumapis", ) diff --git a/beacon-chain/rpc/beacon_chain_server.go b/beacon-chain/rpc/beacon_chain_server.go index 2274b1660..c1753afbe 100644 --- a/beacon-chain/rpc/beacon_chain_server.go +++ b/beacon-chain/rpc/beacon_chain_server.go @@ -242,9 +242,15 @@ func (bs *BeaconChainServer) ListValidatorBalances( ctx context.Context, req *ethpb.GetValidatorBalancesRequest) (*ethpb.ValidatorBalances, error) { - res := make([]*ethpb.ValidatorBalances_Balance, 0, len(req.PublicKeys)+len(req.Indices)) + if int(req.PageSize) > params.BeaconConfig().MaxPageSize { + return nil, status.Errorf(codes.InvalidArgument, "requested page size %d can not be greater than max size %d", + req.PageSize, params.BeaconConfig().MaxPageSize) + } + + res := make([]*ethpb.ValidatorBalances_Balance, 0) filtered := map[uint64]bool{} // track filtered validators to prevent duplication in the response. + headState := bs.headFetcher.HeadState() var requestingGenesis bool var epoch uint64 switch q := req.QueryFilter.(type) { @@ -253,11 +259,11 @@ func (bs *BeaconChainServer) ListValidatorBalances( case *ethpb.GetValidatorBalancesRequest_Genesis: requestingGenesis = q.Genesis default: + epoch = helpers.CurrentEpoch(headState) } var balances []uint64 var err error - headState := bs.headFetcher.HeadState() validators := headState.Validators if requestingGenesis { balances, err = bs.beaconDB.ArchivedBalances(ctx, 0 /* genesis epoch */) @@ -319,7 +325,29 @@ func (bs *BeaconChainServer) ListValidatorBalances( }) } } - return ðpb.ValidatorBalances{Balances: res}, nil + + if len(req.Indices) == 0 && len(req.PublicKeys) == 0 { + // return everything. + for i := 0; i < len(headState.Balances); i++ { + res = append(res, ðpb.ValidatorBalances_Balance{ + PublicKey: headState.Validators[i].PublicKey, + Index: uint64(i), + Balance: balances[i], + }) + } + } + + balancesCount := len(res) + start, end, nextPageToken, err := pagination.StartAndEndPage(req.PageToken, int(req.PageSize), balancesCount) + if err != nil { + return nil, err + } + return ðpb.ValidatorBalances{ + Epoch: epoch, + Balances: res[start:end], + TotalSize: int32(balancesCount), + NextPageToken: nextPageToken, + }, nil } // GetValidators retrieves the current list of active validators with an optional historical epoch flag to diff --git a/beacon-chain/rpc/beacon_chain_server_test.go b/beacon-chain/rpc/beacon_chain_server_test.go index a9be91fa9..9ca055b77 100644 --- a/beacon-chain/rpc/beacon_chain_server_test.go +++ b/beacon-chain/rpc/beacon_chain_server_test.go @@ -479,7 +479,46 @@ func TestBeaconChainServer_AttestationPool(t *testing.T) { } } -func TestBeaconChainServer_ListValidatorBalances(t *testing.T) { +func TestBeaconChainServer_ListValidatorBalances_PaginationOutOfRange(t *testing.T) { + db := dbTest.SetupDB(t) + defer dbTest.TeardownDB(t, db) + + setupValidators(t, db, 3) + + headState, err := db.HeadState(context.Background()) + if err != nil { + t.Fatal(err) + } + + bs := &BeaconChainServer{ + headFetcher: &mock.ChainService{ + State: headState, + }, + } + + req := ðpb.GetValidatorBalancesRequest{PageToken: strconv.Itoa(1), PageSize: 100} + wanted := fmt.Sprintf("page start %d >= list %d", req.PageSize, len(headState.Balances)) + if _, err := bs.ListValidatorBalances(context.Background(), req); err != nil && !strings.Contains(err.Error(), wanted) { + t.Errorf("Expected error %v, received %v", wanted, err) + } +} + +func TestBeaconChainServer_ListValidatorBalances_ExceedsMaxPageSize(t *testing.T) { + bs := &BeaconChainServer{} + exceedsMax := int32(params.BeaconConfig().MaxPageSize + 1) + + wanted := fmt.Sprintf( + "requested page size %d can not be greater than max size %d", + exceedsMax, + params.BeaconConfig().MaxPageSize, + ) + req := ðpb.GetValidatorBalancesRequest{PageToken: strconv.Itoa(0), PageSize: exceedsMax} + if _, err := bs.ListValidatorBalances(context.Background(), req); err != nil && !strings.Contains(err.Error(), wanted) { + t.Errorf("Expected error %v, received %v", wanted, err) + } +} + +func TestBeaconChainServer_ListValidatorBalances_NoPagination(t *testing.T) { db := dbTest.SetupDB(t) defer dbTest.TeardownDB(t, db) @@ -500,46 +539,135 @@ func TestBeaconChainServer_ListValidatorBalances(t *testing.T) { res *ethpb.ValidatorBalances }{ {req: ðpb.GetValidatorBalancesRequest{PublicKeys: [][]byte{{99}}}, - res: ðpb.ValidatorBalances{Balances: []*ethpb.ValidatorBalances_Balance{{ - Index: 99, PublicKey: []byte{99}, Balance: 99}}, - }}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {Index: 99, PublicKey: []byte{99}, Balance: 99}, + }, + NextPageToken: strconv.Itoa(1), + TotalSize: 1, + }, + }, {req: ðpb.GetValidatorBalancesRequest{Indices: []uint64{1, 2, 3}}, - res: ðpb.ValidatorBalances{Balances: []*ethpb.ValidatorBalances_Balance{ - {Index: 1, PublicKey: []byte{1}, Balance: 1}, - {Index: 2, PublicKey: []byte{2}, Balance: 2}, - {Index: 3, PublicKey: []byte{3}, Balance: 3}}, - }}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {Index: 1, PublicKey: []byte{1}, Balance: 1}, + {Index: 2, PublicKey: []byte{2}, Balance: 2}, + {Index: 3, PublicKey: []byte{3}, Balance: 3}, + }, + NextPageToken: strconv.Itoa(1), + TotalSize: 3, + }, + }, {req: ðpb.GetValidatorBalancesRequest{PublicKeys: [][]byte{{10}, {11}, {12}}}, - res: ðpb.ValidatorBalances{Balances: []*ethpb.ValidatorBalances_Balance{ - {Index: 10, PublicKey: []byte{10}, Balance: 10}, - {Index: 11, PublicKey: []byte{11}, Balance: 11}, - {Index: 12, PublicKey: []byte{12}, Balance: 12}}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {Index: 10, PublicKey: []byte{10}, Balance: 10}, + {Index: 11, PublicKey: []byte{11}, Balance: 11}, + {Index: 12, PublicKey: []byte{12}, Balance: 12}, + }, + NextPageToken: strconv.Itoa(1), + TotalSize: 3, }}, {req: ðpb.GetValidatorBalancesRequest{PublicKeys: [][]byte{{2}, {3}}, Indices: []uint64{3, 4}}, // Duplication - res: ðpb.ValidatorBalances{Balances: []*ethpb.ValidatorBalances_Balance{ - {Index: 2, PublicKey: []byte{2}, Balance: 2}, - {Index: 3, PublicKey: []byte{3}, Balance: 3}, - {Index: 4, PublicKey: []byte{4}, Balance: 4}}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {Index: 2, PublicKey: []byte{2}, Balance: 2}, + {Index: 3, PublicKey: []byte{3}, Balance: 3}, + {Index: 4, PublicKey: []byte{4}, Balance: 4}, + }, + NextPageToken: strconv.Itoa(1), + TotalSize: 3, }}, {req: ðpb.GetValidatorBalancesRequest{PublicKeys: [][]byte{{}}, Indices: []uint64{3, 4}}, // Public key has a blank value - res: ðpb.ValidatorBalances{Balances: []*ethpb.ValidatorBalances_Balance{ - {Index: 3, PublicKey: []byte{3}, Balance: 3}, - {Index: 4, PublicKey: []byte{4}, Balance: 4}}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {Index: 3, PublicKey: []byte{3}, Balance: 3}, + {Index: 4, PublicKey: []byte{4}, Balance: 4}, + }, + NextPageToken: strconv.Itoa(1), + TotalSize: 2, }}, } - for _, test := range tests { res, err := bs.ListValidatorBalances(context.Background(), test.req) if err != nil { t.Fatal(err) } if !proto.Equal(res, test.res) { - t.Error("Incorrect respond of validator balances") + t.Errorf("Expected %v, received %v", test.res, res) } } } -func TestBeaconChainServer_ListValidatorBalancesOutOfRange(t *testing.T) { +func TestBeaconChainServer_ListValidatorBalances_Pagination(t *testing.T) { + db := dbTest.SetupDB(t) + defer dbTest.TeardownDB(t, db) + + count := 1000 + setupValidators(t, db, count) + + headState, err := db.HeadState(context.Background()) + if err != nil { + t.Fatal(err) + } + + bs := &BeaconChainServer{ + headFetcher: &mock.ChainService{ + State: headState, + }, + } + + tests := []struct { + req *ethpb.GetValidatorBalancesRequest + res *ethpb.ValidatorBalances + }{ + {req: ðpb.GetValidatorBalancesRequest{PageToken: strconv.Itoa(1), PageSize: 3}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {PublicKey: []byte{3}, Index: 3, Balance: uint64(3)}, + {PublicKey: []byte{4}, Index: 4, Balance: uint64(4)}, + {PublicKey: []byte{5}, Index: 5, Balance: uint64(5)}}, + NextPageToken: strconv.Itoa(2), + TotalSize: int32(count)}}, + {req: ðpb.GetValidatorBalancesRequest{PageToken: strconv.Itoa(10), PageSize: 5}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {PublicKey: []byte{50}, Index: 50, Balance: uint64(50)}, + {PublicKey: []byte{51}, Index: 51, Balance: uint64(51)}, + {PublicKey: []byte{52}, Index: 52, Balance: uint64(52)}, + {PublicKey: []byte{53}, Index: 53, Balance: uint64(53)}, + {PublicKey: []byte{54}, Index: 54, Balance: uint64(54)}}, + NextPageToken: strconv.Itoa(11), + TotalSize: int32(count)}}, + {req: ðpb.GetValidatorBalancesRequest{PageToken: strconv.Itoa(33), PageSize: 3}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {PublicKey: []byte{99}, Index: 99, Balance: uint64(99)}, + {PublicKey: []byte{100}, Index: 100, Balance: uint64(100)}, + {PublicKey: []byte{101}, Index: 101, Balance: uint64(101)}, + }, + NextPageToken: strconv.Itoa(34), + TotalSize: int32(count)}}, + {req: ðpb.GetValidatorBalancesRequest{PageSize: 2}, + res: ðpb.ValidatorBalances{ + Balances: []*ethpb.ValidatorBalances_Balance{ + {PublicKey: []byte{0}, Index: 0, Balance: uint64(0)}, + {PublicKey: []byte{1}, Index: 1, Balance: uint64(1)}}, + NextPageToken: strconv.Itoa(1), + TotalSize: int32(count)}}, + } + for _, test := range tests { + res, err := bs.ListValidatorBalances(context.Background(), test.req) + if err != nil { + t.Fatal(err) + } + if !proto.Equal(res, test.res) { + t.Errorf("Expected %v, received %v", test.res, res) + } + } +} + +func TestBeaconChainServer_ListValidatorBalances_OutOfRange(t *testing.T) { db := dbTest.SetupDB(t) defer dbTest.TeardownDB(t, db) setupValidators(t, db, 1) @@ -561,7 +689,7 @@ func TestBeaconChainServer_ListValidatorBalancesOutOfRange(t *testing.T) { } } -func TestBeaconChainServer_ListValidatorBalancesFromArchive(t *testing.T) { +func TestBeaconChainServer_ListValidatorBalances_FromArchive(t *testing.T) { db := dbTest.SetupDB(t) defer dbTest.TeardownDB(t, db) ctx := context.Background() @@ -609,7 +737,7 @@ func TestBeaconChainServer_ListValidatorBalancesFromArchive(t *testing.T) { } } -func TestBeaconChainServer_ListValidatorBalancesFromArchive_NewValidatorNotFound(t *testing.T) { +func TestBeaconChainServer_ListValidatorBalances_FromArchive_NewValidatorNotFound(t *testing.T) { db := dbTest.SetupDB(t) defer dbTest.TeardownDB(t, db) ctx := context.Background() @@ -1896,7 +2024,9 @@ func setupValidators(t *testing.T, db db.Database, count int) ([]*ethpb.Validato t.Fatal(err) } balances[i] = uint64(i) - validators = append(validators, ðpb.Validator{PublicKey: []byte{byte(i)}}) + validators = append(validators, ðpb.Validator{ + PublicKey: []byte{byte(i)}, + }) } blk := ðpb.BeaconBlock{ Slot: 0, diff --git a/proto/beacon/db/attestation_container.pb.go b/proto/beacon/db/attestation_container.pb.go index 6689465ba..e07adc093 100755 --- a/proto/beacon/db/attestation_container.pb.go +++ b/proto/beacon/db/attestation_container.pb.go @@ -5,13 +5,12 @@ package db import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_prysmaticlabs_go_bitfield "github.com/prysmaticlabs/go-bitfield" v1alpha1 "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/beacon/p2p/v1/messages.pb.go b/proto/beacon/p2p/v1/messages.pb.go index 429de7fc2..c49daf0c2 100755 --- a/proto/beacon/p2p/v1/messages.pb.go +++ b/proto/beacon/p2p/v1/messages.pb.go @@ -5,11 +5,10 @@ package ethereum_beacon_p2p_v1 import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/beacon/p2p/v1/types.pb.go b/proto/beacon/p2p/v1/types.pb.go index b77e9294f..99c22032d 100755 --- a/proto/beacon/p2p/v1/types.pb.go +++ b/proto/beacon/p2p/v1/types.pb.go @@ -5,13 +5,12 @@ package ethereum_beacon_p2p_v1 import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_prysmaticlabs_go_bitfield "github.com/prysmaticlabs/go-bitfield" v1alpha1 "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/beacon/rpc/v1/services.pb.go b/proto/beacon/rpc/v1/services.pb.go index 09170bf49..bdba22dc3 100755 --- a/proto/beacon/rpc/v1/services.pb.go +++ b/proto/beacon/rpc/v1/services.pb.go @@ -7,14 +7,13 @@ import ( context "context" encoding_binary "encoding/binary" fmt "fmt" - io "io" - math "math" - proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" v1alpha1 "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/beacon/rpc/v1_gateway/services.pb.go b/proto/beacon/rpc/v1_gateway/services.pb.go index ca623082d..c7f683765 100755 --- a/proto/beacon/rpc/v1_gateway/services.pb.go +++ b/proto/beacon/rpc/v1_gateway/services.pb.go @@ -6,13 +6,12 @@ package ethereum_beacon_rpc_v1 import ( context "context" fmt "fmt" - math "math" - proto "github.com/golang/protobuf/proto" empty "github.com/golang/protobuf/ptypes/empty" v1alpha1 "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/archive.pb.go b/proto/eth/v1alpha1/archive.pb.go index be11ffceb..f943f90f0 100755 --- a/proto/eth/v1alpha1/archive.pb.go +++ b/proto/eth/v1alpha1/archive.pb.go @@ -5,11 +5,10 @@ package eth import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/attestation.pb.go b/proto/eth/v1alpha1/attestation.pb.go index 223405f1e..b1dd5518a 100755 --- a/proto/eth/v1alpha1/attestation.pb.go +++ b/proto/eth/v1alpha1/attestation.pb.go @@ -5,12 +5,11 @@ package eth import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_prysmaticlabs_go_bitfield "github.com/prysmaticlabs/go-bitfield" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/beacon_block.pb.go b/proto/eth/v1alpha1/beacon_block.pb.go index fe053f245..d3c2ce189 100755 --- a/proto/eth/v1alpha1/beacon_block.pb.go +++ b/proto/eth/v1alpha1/beacon_block.pb.go @@ -5,11 +5,10 @@ package eth import ( fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/beacon_chain.pb.go b/proto/eth/v1alpha1/beacon_chain.pb.go index 0e610275f..05058400f 100755 --- a/proto/eth/v1alpha1/beacon_chain.pb.go +++ b/proto/eth/v1alpha1/beacon_chain.pb.go @@ -6,14 +6,13 @@ package eth import ( context "context" fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. @@ -699,6 +698,8 @@ type GetValidatorBalancesRequest struct { QueryFilter isGetValidatorBalancesRequest_QueryFilter `protobuf_oneof:"query_filter"` PublicKeys [][]byte `protobuf:"bytes,3,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty" ssz-size:"?,48"` Indices []uint64 `protobuf:"varint,4,rep,packed,name=indices,proto3" json:"indices,omitempty"` + PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -788,6 +789,20 @@ func (m *GetValidatorBalancesRequest) GetIndices() []uint64 { return nil } +func (m *GetValidatorBalancesRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *GetValidatorBalancesRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + // XXX_OneofFuncs is for the internal use of the proto package. func (*GetValidatorBalancesRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _GetValidatorBalancesRequest_OneofMarshaler, _GetValidatorBalancesRequest_OneofUnmarshaler, _GetValidatorBalancesRequest_OneofSizer, []interface{}{ @@ -857,7 +872,10 @@ func _GetValidatorBalancesRequest_OneofSizer(msg proto.Message) (n int) { } type ValidatorBalances struct { - Balances []*ValidatorBalances_Balance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` + Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Balances []*ValidatorBalances_Balance `protobuf:"bytes,2,rep,name=balances,proto3" json:"balances,omitempty"` + NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + TotalSize int32 `protobuf:"varint,4,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -896,6 +914,13 @@ func (m *ValidatorBalances) XXX_DiscardUnknown() { var xxx_messageInfo_ValidatorBalances proto.InternalMessageInfo +func (m *ValidatorBalances) GetEpoch() uint64 { + if m != nil { + return m.Epoch + } + return 0 +} + func (m *ValidatorBalances) GetBalances() []*ValidatorBalances_Balance { if m != nil { return m.Balances @@ -903,6 +928,20 @@ func (m *ValidatorBalances) GetBalances() []*ValidatorBalances_Balance { return nil } +func (m *ValidatorBalances) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +func (m *ValidatorBalances) GetTotalSize() int32 { + if m != nil { + return m.TotalSize + } + return 0 +} + type ValidatorBalances_Balance struct { PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty" ssz-size:"48"` Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` @@ -2110,108 +2149,108 @@ func init() { } var fileDescriptor_678c88b69c3c78d4 = []byte{ - // 1606 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4b, 0x6f, 0x1b, 0x47, - 0x12, 0xf6, 0x88, 0xa4, 0x1e, 0x45, 0x3d, 0xac, 0x96, 0x64, 0x73, 0x47, 0x96, 0x44, 0x8f, 0x2c, - 0x2d, 0x0d, 0xdb, 0xa4, 0x25, 0x3f, 0x76, 0xe1, 0xc5, 0xc2, 0x6b, 0x09, 0x5e, 0x6b, 0x77, 0x8d, - 0x85, 0x32, 0x32, 0x72, 0xc8, 0x85, 0x68, 0x0e, 0x5b, 0x64, 0x5b, 0xc3, 0xe9, 0xf1, 0x74, 0x53, - 0xb0, 0x74, 0x4b, 0x0e, 0x01, 0x72, 0x0e, 0x90, 0x20, 0x97, 0x24, 0x57, 0x23, 0xc8, 0x21, 0x97, - 0x5c, 0x0c, 0x04, 0x41, 0x4e, 0x39, 0x05, 0x01, 0x02, 0xe4, 0x68, 0x04, 0x46, 0xfe, 0x40, 0xfc, - 0x07, 0x12, 0x4c, 0x4f, 0xcf, 0x83, 0x14, 0x87, 0xa4, 0x61, 0x1d, 0x72, 0x9b, 0xae, 0xae, 0xfe, - 0xea, 0xeb, 0xaa, 0xea, 0xea, 0xea, 0x81, 0x35, 0xd7, 0x63, 0x82, 0x55, 0x88, 0x68, 0x56, 0x0e, - 0x37, 0xb0, 0xed, 0x36, 0xf1, 0x46, 0xa5, 0x46, 0xb0, 0xc5, 0x9c, 0xaa, 0xd5, 0xc4, 0xd4, 0x29, - 0xcb, 0x79, 0xb4, 0x40, 0x44, 0x93, 0x78, 0xa4, 0xdd, 0x2a, 0x13, 0xd1, 0x2c, 0x87, 0x9a, 0xfa, - 0xb5, 0x06, 0x15, 0xcd, 0x76, 0xad, 0x6c, 0xb1, 0x56, 0xa5, 0xc1, 0x1a, 0xac, 0x22, 0xb5, 0x6b, - 0xed, 0x7d, 0x39, 0x0a, 0xa0, 0xfd, 0xaf, 0x00, 0x45, 0xbf, 0xd0, 0x60, 0xac, 0x61, 0x93, 0x0a, - 0x76, 0x69, 0x05, 0x3b, 0x0e, 0x13, 0x58, 0x50, 0xe6, 0x70, 0x35, 0xbb, 0xa8, 0x66, 0x23, 0x0c, - 0xd2, 0x72, 0xc5, 0x91, 0x9a, 0xbc, 0xd4, 0x83, 0x27, 0x16, 0x82, 0xf0, 0x00, 0x43, 0x69, 0xf5, - 0xd9, 0x4d, 0xcd, 0x66, 0xd6, 0x81, 0x52, 0x33, 0x7a, 0xa8, 0x1d, 0x62, 0x9b, 0xd6, 0xb1, 0x60, - 0x5e, 0xa0, 0x63, 0x7c, 0x36, 0x02, 0xe7, 0x1f, 0x52, 0x2e, 0xee, 0xc5, 0x46, 0xb8, 0x49, 0x9e, - 0xb4, 0x09, 0x17, 0xa8, 0x04, 0x33, 0x4d, 0x82, 0xeb, 0x01, 0x66, 0xd5, 0x63, 0x4c, 0x14, 0xb4, - 0xa2, 0x56, 0x9a, 0xdc, 0x39, 0x63, 0x4e, 0xf9, 0x13, 0x5b, 0xbe, 0xdc, 0x64, 0x4c, 0xa0, 0x55, - 0x98, 0xe4, 0xac, 0xed, 0x59, 0xa4, 0x4a, 0x5c, 0x66, 0x35, 0x0b, 0x23, 0x45, 0xad, 0x94, 0xdd, - 0x39, 0x63, 0xe6, 0x03, 0xe9, 0x7d, 0x5f, 0x88, 0x2e, 0x82, 0x1a, 0x06, 0x50, 0x19, 0x05, 0x05, - 0x81, 0x30, 0xc4, 0x11, 0xd8, 0x6b, 0x10, 0xa1, 0x70, 0xb2, 0x21, 0x4e, 0x20, 0x8d, 0x70, 0x94, - 0x92, 0xc4, 0xc9, 0x85, 0x38, 0x81, 0x50, 0xe2, 0x2c, 0xc2, 0x84, 0x8b, 0x1b, 0xa4, 0xca, 0xe9, - 0x31, 0x29, 0x8c, 0x16, 0xb5, 0x52, 0xce, 0x1c, 0xf7, 0x05, 0x7b, 0xf4, 0x98, 0xa0, 0x25, 0x00, - 0x39, 0x29, 0xd8, 0x01, 0x71, 0x0a, 0x63, 0x45, 0xad, 0x34, 0x61, 0x4a, 0xf5, 0x47, 0xbe, 0x60, - 0x6b, 0x1a, 0x26, 0x9f, 0xb4, 0x89, 0x77, 0x54, 0xdd, 0xa7, 0xb6, 0x20, 0x9e, 0xf1, 0x4c, 0x83, - 0xc2, 0x49, 0x0f, 0x71, 0x97, 0x39, 0x9c, 0xa0, 0x7f, 0xc3, 0x64, 0x22, 0x3c, 0xbc, 0xa0, 0x15, - 0x33, 0xa5, 0xfc, 0xa6, 0x51, 0xee, 0x99, 0x47, 0xe5, 0x04, 0x84, 0xd9, 0xb1, 0x0e, 0xad, 0xc3, - 0x8c, 0x43, 0x9e, 0x8a, 0x6a, 0x82, 0xd8, 0x88, 0x24, 0x36, 0xe5, 0x8b, 0x77, 0x43, 0x72, 0x3e, - 0x77, 0xc1, 0x04, 0xb6, 0x83, 0x9d, 0x65, 0xe4, 0xce, 0x26, 0xa4, 0xc4, 0xdf, 0x9a, 0xf1, 0xb3, - 0x06, 0xb3, 0x3e, 0x57, 0x19, 0x99, 0x28, 0x8e, 0xf3, 0x90, 0xed, 0x08, 0x9e, 0x1c, 0xf9, 0x52, - 0x6e, 0x33, 0x11, 0xc5, 0x4a, 0x8e, 0xd0, 0x39, 0xc8, 0x05, 0xae, 0xcf, 0x28, 0x71, 0x30, 0x44, - 0x1b, 0x30, 0x4f, 0x1d, 0xcb, 0x6e, 0xd7, 0x49, 0xd5, 0x61, 0x8e, 0x85, 0x1d, 0xe6, 0x50, 0x0b, - 0xdb, 0x32, 0x42, 0xe3, 0xe6, 0x9c, 0x9a, 0xfb, 0x7f, 0x62, 0xaa, 0x33, 0x08, 0xb9, 0xbe, 0x41, - 0x18, 0x1d, 0x14, 0x84, 0x8f, 0x35, 0x40, 0xc9, 0x8d, 0x29, 0xf7, 0xdf, 0x81, 0x51, 0x99, 0x9c, - 0x83, 0x1c, 0xbf, 0x25, 0x0f, 0x47, 0x90, 0xaf, 0x6a, 0xc5, 0x69, 0xb9, 0xfc, 0xbb, 0x0c, 0x4c, - 0x6c, 0xfb, 0x25, 0x64, 0x87, 0xe0, 0x3a, 0xba, 0x0e, 0xd0, 0x7d, 0x5a, 0xb6, 0x66, 0x5f, 0xbd, - 0x58, 0x99, 0xe2, 0xfc, 0xf8, 0x9a, 0x0f, 0x70, 0xc7, 0xb8, 0xb1, 0x69, 0x98, 0x13, 0xb5, 0xe8, - 0xe8, 0x2c, 0x85, 0x2b, 0xe2, 0x60, 0xa8, 0xe9, 0x3d, 0x3f, 0x1e, 0x6b, 0x30, 0xbd, 0x4f, 0x1d, - 0x6c, 0xd3, 0x63, 0x52, 0x0f, 0x54, 0x64, 0x60, 0xcc, 0xa9, 0x48, 0x2a, 0xd5, 0xb6, 0x61, 0x3e, - 0x56, 0x4b, 0x30, 0xc8, 0xa6, 0x31, 0x40, 0x91, 0x7a, 0x7c, 0x8a, 0xd7, 0x60, 0xfa, 0x71, 0x9b, - 0x0b, 0xba, 0x4f, 0x43, 0x5b, 0xb9, 0xc0, 0x56, 0x24, 0x0d, 0x6d, 0xc5, 0x6a, 0x09, 0x5b, 0xa3, - 0xa9, 0xb6, 0x22, 0xf5, 0xd8, 0xd6, 0x6d, 0x38, 0xef, 0x7a, 0xe4, 0x90, 0xb2, 0x36, 0xaf, 0x76, - 0x19, 0x1d, 0x93, 0x46, 0x17, 0xc2, 0xe9, 0xff, 0x76, 0x18, 0x7f, 0x04, 0x4b, 0x3d, 0xd6, 0x25, - 0x58, 0x8c, 0xa7, 0xb1, 0xd0, 0x4f, 0x00, 0x46, 0x6c, 0x8c, 0xaf, 0x34, 0x58, 0x7c, 0x40, 0xc4, - 0xdb, 0x61, 0x71, 0xdc, 0xc2, 0x36, 0x76, 0x2c, 0x12, 0x9d, 0xa0, 0xe8, 0x54, 0x68, 0x9d, 0xa7, - 0x42, 0x87, 0xb1, 0x06, 0x71, 0x08, 0xa7, 0x5c, 0x46, 0x6e, 0x7c, 0xe7, 0x8c, 0x19, 0x0a, 0xd0, - 0x4d, 0xc8, 0xbb, 0xed, 0x9a, 0x4d, 0xad, 0xea, 0x01, 0x39, 0xe2, 0x85, 0x4c, 0x31, 0x53, 0x9a, - 0xdc, 0x9a, 0x7b, 0xf5, 0x62, 0x65, 0x26, 0xe6, 0x75, 0xf7, 0xea, 0xcd, 0xbf, 0x1b, 0x26, 0x04, - 0x7a, 0xff, 0x23, 0x47, 0x1c, 0x15, 0x60, 0x8c, 0x3a, 0x75, 0x6a, 0x11, 0x5e, 0xc8, 0x16, 0x33, - 0xa5, 0xac, 0x19, 0x0e, 0x4f, 0x1c, 0x89, 0x1f, 0x34, 0x98, 0x3d, 0x41, 0x18, 0x3d, 0x84, 0xf1, - 0x9a, 0xfa, 0x56, 0x67, 0xe2, 0x7a, 0xca, 0x99, 0x38, 0xb1, 0xb6, 0xac, 0x3e, 0xcc, 0x08, 0x41, - 0x3f, 0x80, 0x31, 0x25, 0xf4, 0x33, 0x3b, 0xde, 0x4e, 0xef, 0xcc, 0xf6, 0xf7, 0x32, 0x11, 0xed, - 0x05, 0xcd, 0x43, 0x8e, 0x3a, 0x75, 0xf2, 0x54, 0x25, 0x75, 0x30, 0xf0, 0x37, 0xa8, 0xe0, 0x55, - 0x26, 0x87, 0x43, 0xe3, 0x23, 0x0d, 0xe6, 0x93, 0x41, 0x78, 0x23, 0xef, 0x77, 0x14, 0x9f, 0x4c, - 0xdf, 0xe2, 0x93, 0x1d, 0x54, 0x7c, 0xbe, 0xd0, 0x00, 0x62, 0x56, 0xfe, 0xbe, 0x12, 0x74, 0x42, - 0x32, 0xff, 0x02, 0x88, 0xee, 0x56, 0x9f, 0x8f, 0xef, 0xfa, 0xe2, 0x20, 0xd7, 0x9b, 0x89, 0x35, - 0xbd, 0x0a, 0x52, 0x66, 0x70, 0x41, 0xca, 0x76, 0x17, 0x24, 0x0a, 0xab, 0x49, 0x2f, 0xde, 0xb3, - 0x04, 0x3d, 0x24, 0x7b, 0x44, 0x6c, 0x37, 0xb1, 0xd3, 0x78, 0xa3, 0x94, 0x3e, 0xe1, 0x98, 0x6f, - 0x46, 0xe0, 0x6c, 0x37, 0x7e, 0x8a, 0x7b, 0x1e, 0xc0, 0x02, 0xf6, 0x35, 0xb1, 0x20, 0xf5, 0x6a, - 0xf2, 0x5c, 0x8c, 0xa4, 0x9f, 0x8b, 0xb9, 0x68, 0xc5, 0x6e, 0x7c, 0x40, 0xee, 0x01, 0x22, 0x4f, - 0x69, 0x37, 0x4a, 0x9f, 0xd3, 0x75, 0x36, 0x50, 0x4f, 0x40, 0x6c, 0xc3, 0x1c, 0xb7, 0x31, 0x6f, - 0x76, 0x61, 0x64, 0xd3, 0x31, 0x66, 0x95, 0x7e, 0x27, 0x08, 0x79, 0x4c, 0xac, 0x6e, 0x22, 0xb9, - 0x3e, 0x20, 0x4a, 0x3f, 0x06, 0x31, 0x9e, 0x6b, 0x30, 0x1d, 0x45, 0xea, 0xad, 0x36, 0x69, 0x13, - 0xb4, 0x02, 0x79, 0xab, 0xd9, 0xf6, 0x9c, 0xaa, 0x4d, 0x5b, 0x54, 0x28, 0x27, 0x82, 0x14, 0x3d, - 0xf4, 0x25, 0xe8, 0x3f, 0x70, 0x4e, 0xf9, 0x85, 0x32, 0x67, 0x58, 0x57, 0xce, 0xc7, 0x4b, 0x12, - 0x7b, 0xf8, 0x27, 0x48, 0xe7, 0x0c, 0xeb, 0xc9, 0x69, 0x5f, 0x39, 0xc1, 0xfe, 0x37, 0x0d, 0x56, - 0xfc, 0x4b, 0x39, 0xce, 0x35, 0xce, 0x69, 0xc3, 0x69, 0x11, 0x47, 0xfc, 0x99, 0x2a, 0xe7, 0xa9, - 0x36, 0x22, 0x9f, 0x64, 0x60, 0xbe, 0xd7, 0x7e, 0x53, 0xd2, 0x1e, 0x43, 0x1e, 0xc7, 0x4a, 0xaa, - 0x2c, 0xdc, 0x1d, 0x54, 0x16, 0x12, 0xb8, 0xe5, 0x6d, 0xd6, 0x6a, 0x51, 0x21, 0x08, 0x89, 0x85, - 0x66, 0x12, 0xf3, 0x94, 0xca, 0x86, 0xfe, 0xad, 0x06, 0x73, 0x3d, 0x6c, 0xf9, 0x8d, 0x9f, 0xe5, - 0x31, 0xce, 0x6d, 0xea, 0x1c, 0x54, 0xad, 0x50, 0x21, 0xb8, 0x5c, 0xb2, 0xe6, 0x5c, 0x34, 0x17, - 0xad, 0x95, 0xae, 0xe0, 0x4d, 0xec, 0xd5, 0xc3, 0xc2, 0x2f, 0x07, 0x08, 0xa9, 0x7e, 0x33, 0xa8, - 0xfa, 0x41, 0xb7, 0xa9, 0xc3, 0xb8, 0xeb, 0x31, 0x97, 0x71, 0xe2, 0xa9, 0x4e, 0x32, 0x1a, 0x77, - 0x5d, 0x38, 0xb9, 0xc1, 0x17, 0x8e, 0xb1, 0x0f, 0xc5, 0x64, 0xe5, 0xdb, 0xc5, 0x9e, 0xa0, 0x16, - 0x75, 0x83, 0x7e, 0xfb, 0x14, 0xcb, 0xde, 0x33, 0x0d, 0x96, 0xd3, 0xac, 0xa8, 0xc6, 0xb4, 0x77, - 0x36, 0x5c, 0x80, 0x89, 0xa8, 0xed, 0x0a, 0xcc, 0x98, 0xb1, 0x00, 0xed, 0xc1, 0x94, 0x9b, 0x04, - 0x93, 0x9e, 0xca, 0x6f, 0x5e, 0x1b, 0x94, 0x2d, 0x9d, 0x0c, 0x3a, 0x31, 0x0c, 0x0c, 0xe7, 0x13, - 0xaf, 0x8e, 0x5d, 0xc6, 0xec, 0xd3, 0x7e, 0xbb, 0x6c, 0xfe, 0x9e, 0x87, 0x7c, 0xd0, 0x60, 0xcb, - 0x3e, 0x18, 0x7d, 0xaa, 0xc1, 0xd9, 0xee, 0x07, 0x13, 0x2a, 0xa7, 0xc0, 0xa6, 0xbc, 0x3d, 0xf5, - 0xca, 0xd0, 0xfa, 0xc1, 0x6e, 0x8c, 0xcb, 0xef, 0xfd, 0xf4, 0xeb, 0x87, 0x23, 0xab, 0xe8, 0x62, - 0xaf, 0x67, 0x71, 0xa5, 0xe3, 0xb1, 0xf5, 0x81, 0x06, 0x33, 0x5d, 0x4e, 0x41, 0xe7, 0xca, 0xc1, - 0xb3, 0xbc, 0x1c, 0x3e, 0xcb, 0xcb, 0xf7, 0xfd, 0x67, 0xb9, 0x5e, 0x1e, 0xec, 0x8e, 0xa4, 0x53, - 0x8d, 0xb2, 0xa4, 0x51, 0x42, 0xeb, 0x03, 0x69, 0x54, 0x5c, 0xdf, 0xee, 0xfb, 0x1a, 0x40, 0xfc, - 0xb0, 0x41, 0xa5, 0x3e, 0xdb, 0xee, 0x78, 0xd4, 0xe9, 0x97, 0x87, 0xd0, 0x54, 0x9c, 0x56, 0x25, - 0xa7, 0x25, 0xb4, 0xd8, 0x93, 0x93, 0x7a, 0x0e, 0xb9, 0x30, 0xf9, 0x40, 0x5e, 0xe2, 0xea, 0x25, - 0x93, 0xe6, 0x90, 0xb4, 0x9e, 0x26, 0x5a, 0x69, 0xac, 0x4b, 0x73, 0x45, 0xb4, 0xdc, 0xd3, 0x9c, - 0xfc, 0xdd, 0xd2, 0xf4, 0x2d, 0x7c, 0xae, 0xc1, 0x42, 0xc7, 0xf5, 0x11, 0x35, 0xb1, 0x9b, 0x29, - 0x36, 0xfa, 0xb4, 0xe8, 0x7a, 0x69, 0xd8, 0x36, 0x37, 0x2d, 0x53, 0xe2, 0x4e, 0xac, 0x12, 0xf6, - 0xbf, 0xe8, 0x5d, 0x0d, 0xa6, 0x3a, 0x5a, 0x52, 0x74, 0x65, 0x08, 0x6a, 0x11, 0xa7, 0x8b, 0x83, - 0x38, 0x71, 0xa3, 0x28, 0xc9, 0xe8, 0xa8, 0x90, 0x46, 0x06, 0x7d, 0xad, 0xc1, 0x85, 0x7e, 0x0d, - 0x1d, 0xba, 0x33, 0x04, 0xa5, 0x94, 0x2e, 0x50, 0xff, 0x6b, 0x5a, 0x7a, 0x77, 0xe9, 0x1b, 0x1b, - 0x92, 0xe7, 0x15, 0x74, 0x39, 0xd5, 0x69, 0xb2, 0xc3, 0x20, 0x9c, 0x08, 0x4b, 0xf1, 0x3a, 0x86, - 0xd9, 0x24, 0x85, 0xa0, 0xbd, 0x49, 0x4b, 0xab, 0xb5, 0x41, 0xae, 0x92, 0xcb, 0xd3, 0x72, 0x2b, - 0x41, 0xe3, 0x89, 0x34, 0xf3, 0xa5, 0xfa, 0x69, 0xd3, 0xf3, 0xaa, 0xbe, 0xdd, 0xe7, 0xe8, 0xf4, - 0xe9, 0x65, 0xf4, 0x2b, 0xaf, 0x71, 0x6f, 0x1b, 0x57, 0x25, 0xd3, 0x75, 0x74, 0x29, 0xdd, 0x61, - 0x09, 0x4a, 0xcf, 0x35, 0xf8, 0x4b, 0xea, 0xdd, 0x85, 0xfe, 0x36, 0x44, 0x84, 0x7b, 0xdd, 0x76, - 0xfa, 0xad, 0xd7, 0xbb, 0x3b, 0x06, 0x14, 0xb1, 0x04, 0xf7, 0x8e, 0x4b, 0x66, 0x6b, 0xfb, 0xfb, - 0x97, 0xcb, 0xda, 0x8f, 0x2f, 0x97, 0xb5, 0x5f, 0x5e, 0x2e, 0x6b, 0xef, 0xdc, 0x4a, 0xfc, 0x2d, - 0x75, 0xbd, 0x23, 0xde, 0xc2, 0x82, 0x5a, 0x36, 0xae, 0xf1, 0x60, 0x54, 0x39, 0xf9, 0x57, 0xf2, - 0x1f, 0x44, 0x34, 0x6b, 0xa3, 0x52, 0x7e, 0xe3, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x64, - 0x78, 0xb7, 0xab, 0x15, 0x00, 0x00, + // 1601 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xbd, 0x6f, 0x1b, 0x47, + 0x16, 0xf7, 0x92, 0xd4, 0xd7, 0xa3, 0x3e, 0xac, 0x91, 0x64, 0xf3, 0x28, 0x4b, 0xa2, 0x57, 0x96, + 0x8e, 0x86, 0x6d, 0xd2, 0x92, 0x3f, 0xee, 0xe0, 0xc3, 0xc1, 0x67, 0x09, 0x3e, 0xeb, 0x2e, 0x46, + 0xa0, 0xac, 0x8c, 0x14, 0x69, 0x88, 0xe1, 0x72, 0x44, 0x8e, 0xb5, 0xdc, 0x59, 0xef, 0x0c, 0x05, + 0x4b, 0x5d, 0x52, 0x04, 0x48, 0x1d, 0x20, 0x41, 0x9a, 0x24, 0xad, 0x11, 0xa4, 0x4d, 0x63, 0x20, + 0x08, 0x52, 0xa5, 0x0c, 0x10, 0x20, 0xa5, 0x11, 0x18, 0x69, 0x53, 0xc4, 0xff, 0x40, 0x82, 0x9d, + 0x9d, 0xfd, 0xa2, 0xb8, 0x24, 0x0d, 0xab, 0x4a, 0xb7, 0xf3, 0xe6, 0xcd, 0xef, 0xfd, 0xe6, 0x7d, + 0xcc, 0xbc, 0x59, 0x58, 0x73, 0x5c, 0x26, 0x58, 0x95, 0x88, 0x56, 0xf5, 0x70, 0x03, 0x5b, 0x4e, + 0x0b, 0x6f, 0x54, 0xeb, 0x04, 0x9b, 0xcc, 0xae, 0x99, 0x2d, 0x4c, 0xed, 0x8a, 0x9c, 0x47, 0x0b, + 0x44, 0xb4, 0x88, 0x4b, 0x3a, 0xed, 0x0a, 0x11, 0xad, 0x4a, 0xa0, 0x59, 0xbc, 0xd6, 0xa4, 0xa2, + 0xd5, 0xa9, 0x57, 0x4c, 0xd6, 0xae, 0x36, 0x59, 0x93, 0x55, 0xa5, 0x76, 0xbd, 0xb3, 0x2f, 0x47, + 0x3e, 0xb4, 0xf7, 0xe5, 0xa3, 0x14, 0x2f, 0x34, 0x19, 0x6b, 0x5a, 0xa4, 0x8a, 0x1d, 0x5a, 0xc5, + 0xb6, 0xcd, 0x04, 0x16, 0x94, 0xd9, 0x5c, 0xcd, 0x2e, 0xaa, 0xd9, 0x10, 0x83, 0xb4, 0x1d, 0x71, + 0xa4, 0x26, 0x2f, 0xf5, 0xe0, 0x89, 0x85, 0x20, 0xdc, 0xc7, 0x50, 0x5a, 0x7d, 0x76, 0x53, 0xb7, + 0x98, 0x79, 0xa0, 0xd4, 0xf4, 0x1e, 0x6a, 0x87, 0xd8, 0xa2, 0x0d, 0x2c, 0x98, 0xeb, 0xeb, 0xe8, + 0x5f, 0x64, 0xe0, 0xfc, 0x43, 0xca, 0xc5, 0xbd, 0xc8, 0x08, 0x37, 0xc8, 0x93, 0x0e, 0xe1, 0x02, + 0x95, 0x61, 0xa6, 0x45, 0x70, 0xc3, 0xc7, 0xac, 0xb9, 0x8c, 0x89, 0x82, 0x56, 0xd2, 0xca, 0x93, + 0x3b, 0x67, 0x8c, 0x29, 0x6f, 0x62, 0xcb, 0x93, 0x1b, 0x8c, 0x09, 0xb4, 0x0a, 0x93, 0x9c, 0x75, + 0x5c, 0x93, 0xd4, 0x88, 0xc3, 0xcc, 0x56, 0x21, 0x53, 0xd2, 0xca, 0xb9, 0x9d, 0x33, 0x46, 0xde, + 0x97, 0xde, 0xf7, 0x84, 0xe8, 0x22, 0xa8, 0xa1, 0x0f, 0x95, 0x55, 0x50, 0xe0, 0x0b, 0x03, 0x1c, + 0x81, 0xdd, 0x26, 0x11, 0x0a, 0x27, 0x17, 0xe0, 0xf8, 0xd2, 0x10, 0x47, 0x29, 0x49, 0x9c, 0x91, + 0x00, 0xc7, 0x17, 0x4a, 0x9c, 0x45, 0x98, 0x70, 0x70, 0x93, 0xd4, 0x38, 0x3d, 0x26, 0x85, 0xd1, + 0x92, 0x56, 0x1e, 0x31, 0xc6, 0x3d, 0xc1, 0x1e, 0x3d, 0x26, 0x68, 0x09, 0x40, 0x4e, 0x0a, 0x76, + 0x40, 0xec, 0xc2, 0x58, 0x49, 0x2b, 0x4f, 0x18, 0x52, 0xfd, 0x91, 0x27, 0xd8, 0x9a, 0x86, 0xc9, + 0x27, 0x1d, 0xe2, 0x1e, 0xd5, 0xf6, 0xa9, 0x25, 0x88, 0xab, 0x3f, 0xd3, 0xa0, 0x70, 0xd2, 0x43, + 0xdc, 0x61, 0x36, 0x27, 0xe8, 0xbf, 0x30, 0x19, 0x0b, 0x0f, 0x2f, 0x68, 0xa5, 0x6c, 0x39, 0xbf, + 0xa9, 0x57, 0x7a, 0xe6, 0x51, 0x25, 0x06, 0x61, 0x24, 0xd6, 0xa1, 0x75, 0x98, 0xb1, 0xc9, 0x53, + 0x51, 0x8b, 0x11, 0xcb, 0x48, 0x62, 0x53, 0x9e, 0x78, 0x37, 0x20, 0xe7, 0x71, 0x17, 0x4c, 0x60, + 0xcb, 0xdf, 0x59, 0x56, 0xee, 0x6c, 0x42, 0x4a, 0xbc, 0xad, 0xe9, 0x3f, 0x6b, 0x30, 0xeb, 0x71, + 0x95, 0x91, 0x09, 0xe3, 0x38, 0x0f, 0xb9, 0x44, 0xf0, 0xe4, 0xc8, 0x93, 0x72, 0x8b, 0x89, 0x30, + 0x56, 0x72, 0x84, 0xce, 0xc1, 0x88, 0xef, 0xfa, 0xac, 0x12, 0xfb, 0x43, 0xb4, 0x01, 0xf3, 0xd4, + 0x36, 0xad, 0x4e, 0x83, 0xd4, 0x6c, 0x66, 0x9b, 0xd8, 0x66, 0x36, 0x35, 0xb1, 0x25, 0x23, 0x34, + 0x6e, 0xcc, 0xa9, 0xb9, 0xb7, 0x63, 0x53, 0xc9, 0x20, 0x8c, 0xf4, 0x0d, 0xc2, 0xe8, 0xa0, 0x20, + 0x7c, 0xaa, 0x01, 0x8a, 0x6f, 0x4c, 0xb9, 0xff, 0x0e, 0x8c, 0xca, 0xe4, 0x1c, 0xe4, 0xf8, 0x2d, + 0x59, 0x1c, 0x7e, 0xbe, 0xaa, 0x15, 0xa7, 0xe5, 0xf2, 0xef, 0xb3, 0x30, 0xb1, 0xed, 0x1d, 0x21, + 0x3b, 0x04, 0x37, 0xd0, 0x75, 0x80, 0xee, 0x6a, 0xd9, 0x9a, 0x7d, 0xf5, 0x62, 0x65, 0x8a, 0xf3, + 0xe3, 0x6b, 0x1e, 0xc0, 0x1d, 0xfd, 0xc6, 0xa6, 0x6e, 0x4c, 0xd4, 0xc3, 0xd2, 0x59, 0x0a, 0x56, + 0x44, 0xc1, 0x50, 0xd3, 0x7b, 0x5e, 0x3c, 0xd6, 0x60, 0x7a, 0x9f, 0xda, 0xd8, 0xa2, 0xc7, 0xa4, + 0xe1, 0xab, 0xc8, 0xc0, 0x18, 0x53, 0xa1, 0x54, 0xaa, 0x6d, 0xc3, 0x7c, 0xa4, 0x16, 0x63, 0x90, + 0x4b, 0x63, 0x80, 0x42, 0xf5, 0xa8, 0x8a, 0xd7, 0x60, 0xfa, 0x71, 0x87, 0x0b, 0xba, 0x4f, 0x03, + 0x5b, 0x23, 0xbe, 0xad, 0x50, 0x1a, 0xd8, 0x8a, 0xd4, 0x62, 0xb6, 0x46, 0x53, 0x6d, 0x85, 0xea, + 0x91, 0xad, 0xdb, 0x70, 0xde, 0x71, 0xc9, 0x21, 0x65, 0x1d, 0x5e, 0xeb, 0x32, 0x3a, 0x26, 0x8d, + 0x2e, 0x04, 0xd3, 0xff, 0x4f, 0x18, 0x7f, 0x04, 0x4b, 0x3d, 0xd6, 0xc5, 0x58, 0x8c, 0xa7, 0xb1, + 0x28, 0x9e, 0x00, 0x0c, 0xd9, 0xe8, 0xbf, 0x69, 0xb0, 0xf8, 0x80, 0x88, 0x77, 0x83, 0xc3, 0x71, + 0x0b, 0x5b, 0xd8, 0x36, 0x49, 0x58, 0x41, 0x61, 0x55, 0x68, 0xc9, 0xaa, 0x28, 0xc2, 0x58, 0x93, + 0xd8, 0x84, 0x53, 0x2e, 0x23, 0x37, 0xbe, 0x73, 0xc6, 0x08, 0x04, 0xe8, 0x26, 0xe4, 0x9d, 0x4e, + 0xdd, 0xa2, 0x66, 0xed, 0x80, 0x1c, 0xf1, 0x42, 0xb6, 0x94, 0x2d, 0x4f, 0x6e, 0xcd, 0xbd, 0x7a, + 0xb1, 0x32, 0x13, 0xf1, 0xba, 0x7b, 0xf5, 0xe6, 0x3f, 0x75, 0x03, 0x7c, 0xbd, 0xb7, 0xc8, 0x11, + 0x47, 0x05, 0x18, 0xa3, 0x76, 0x83, 0x9a, 0x84, 0x17, 0x72, 0xa5, 0x6c, 0x39, 0x67, 0x04, 0xc3, + 0x53, 0x2d, 0xa7, 0xaf, 0x32, 0x30, 0x7b, 0x62, 0xb3, 0x68, 0x3e, 0xb1, 0xcb, 0x60, 0x8f, 0x0f, + 0x61, 0xbc, 0xae, 0x34, 0x0a, 0x19, 0x59, 0x65, 0xd7, 0x53, 0xaa, 0xec, 0x04, 0x62, 0x45, 0x7d, + 0x18, 0x21, 0x42, 0xaf, 0xaa, 0xcb, 0x0e, 0xae, 0xba, 0x5c, 0x57, 0xd5, 0x15, 0x0f, 0x60, 0x4c, + 0x61, 0x7b, 0x25, 0x17, 0xf9, 0xb9, 0x77, 0xc9, 0x79, 0x4e, 0x9e, 0x08, 0x9d, 0xec, 0xed, 0x93, + 0xda, 0x0d, 0xf2, 0x54, 0x55, 0x9b, 0x3f, 0xf0, 0x3c, 0xaf, 0x58, 0xaa, 0x12, 0x0b, 0x86, 0xfa, + 0x27, 0x1a, 0xcc, 0xc7, 0xb3, 0xe3, 0x8d, 0xd2, 0x22, 0x11, 0xc6, 0x6c, 0xdf, 0x30, 0xe6, 0x06, + 0x86, 0x51, 0x03, 0x88, 0x58, 0xa5, 0xc4, 0xef, 0x3f, 0x00, 0xe1, 0xa5, 0x1f, 0x44, 0xb0, 0x34, + 0x28, 0x82, 0x46, 0x6c, 0xcd, 0x29, 0xc5, 0x4c, 0xa7, 0xb0, 0x1a, 0xf7, 0xe2, 0x3d, 0x53, 0xd0, + 0x43, 0xb2, 0x47, 0xc4, 0x76, 0x0b, 0xdb, 0xcd, 0x37, 0xaa, 0xb5, 0x13, 0x8e, 0xf9, 0x36, 0x03, + 0x67, 0xbb, 0xf1, 0x53, 0xdc, 0xf3, 0x00, 0x16, 0xb0, 0xa7, 0x89, 0x05, 0x69, 0xd4, 0xe2, 0x05, + 0x9b, 0x49, 0x2f, 0xd8, 0xb9, 0x70, 0xc5, 0x6e, 0x54, 0xb9, 0xf7, 0x00, 0x91, 0xa7, 0xb4, 0x1b, + 0xa5, 0x4f, 0xd9, 0x9f, 0xf5, 0xd5, 0x63, 0x10, 0xdb, 0x30, 0xc7, 0x2d, 0xcc, 0x5b, 0x5d, 0x18, + 0xb9, 0x74, 0x8c, 0x59, 0xa5, 0x9f, 0x04, 0x21, 0x8f, 0x89, 0xd9, 0x4d, 0x64, 0xa4, 0x0f, 0x88, + 0xd2, 0x8f, 0x40, 0xf4, 0xe7, 0x1a, 0x4c, 0x87, 0x91, 0x7a, 0xa7, 0x43, 0x3a, 0x04, 0xad, 0x40, + 0xde, 0x6c, 0x75, 0x5c, 0xbb, 0x66, 0xd1, 0x36, 0x15, 0xca, 0x89, 0x20, 0x45, 0x0f, 0x3d, 0x09, + 0xfa, 0x1f, 0x9c, 0x53, 0x7e, 0xa1, 0xcc, 0x1e, 0xd6, 0x95, 0xf3, 0xd1, 0x92, 0xd8, 0x1e, 0xfe, + 0x0d, 0xd2, 0x39, 0xc3, 0x7a, 0x72, 0xda, 0x53, 0x8e, 0xb1, 0xff, 0x5d, 0x83, 0x15, 0xaf, 0x5b, + 0x88, 0x72, 0x8d, 0x73, 0xda, 0xb4, 0xdb, 0xc4, 0x16, 0x7f, 0xd9, 0x23, 0xfd, 0xb3, 0x2c, 0xcc, + 0xf7, 0xda, 0x6f, 0x4a, 0xda, 0x63, 0xc8, 0xe3, 0x48, 0x49, 0x1d, 0x0b, 0x77, 0x07, 0x1d, 0x0b, + 0x31, 0xdc, 0xca, 0x36, 0x6b, 0xb7, 0xa9, 0x10, 0x84, 0x44, 0x42, 0x23, 0x8e, 0x79, 0x5a, 0x47, + 0xfd, 0x77, 0x1a, 0xcc, 0xf5, 0xb0, 0xe5, 0x75, 0xa4, 0xa6, 0xcb, 0x38, 0xb7, 0xa8, 0x7d, 0x50, + 0x33, 0x03, 0x05, 0xbf, 0x13, 0xcc, 0x19, 0x73, 0xe1, 0x5c, 0xb8, 0x56, 0xba, 0x82, 0xb7, 0xb0, + 0xdb, 0x08, 0x0e, 0x7e, 0x39, 0x40, 0x48, 0x35, 0xc2, 0xfe, 0xa9, 0xef, 0xb7, 0xc1, 0x45, 0x18, + 0x77, 0x5c, 0xe6, 0x30, 0x4e, 0x5c, 0xd5, 0xe2, 0x86, 0xe3, 0xae, 0x0b, 0x67, 0x64, 0xf0, 0x85, + 0xa3, 0xef, 0x43, 0x29, 0x7e, 0xf2, 0xed, 0x62, 0x57, 0x50, 0x93, 0x3a, 0xfe, 0x43, 0xe0, 0x14, + 0x8f, 0xbd, 0x67, 0x1a, 0x2c, 0xa7, 0x59, 0x51, 0x1d, 0x73, 0xef, 0x6c, 0xb8, 0x00, 0x13, 0x61, + 0x3f, 0xe8, 0x9b, 0x31, 0x22, 0x01, 0xda, 0x83, 0x29, 0x27, 0x0e, 0x26, 0x3d, 0x95, 0xdf, 0xbc, + 0x36, 0x28, 0x5b, 0x92, 0x0c, 0x92, 0x18, 0x3a, 0x86, 0xf3, 0xb1, 0xe7, 0xd0, 0x2e, 0x63, 0xd6, + 0x69, 0x3f, 0xaa, 0x36, 0xff, 0xc8, 0x43, 0xde, 0xef, 0xfc, 0x65, 0x83, 0x8e, 0x3e, 0xd7, 0xe0, + 0x6c, 0xf7, 0x4b, 0x0e, 0x55, 0x52, 0x60, 0x53, 0x1e, 0xc5, 0xc5, 0xea, 0xd0, 0xfa, 0xfe, 0x6e, + 0xf4, 0xcb, 0x1f, 0xfc, 0xf4, 0xeb, 0xc7, 0x99, 0x55, 0x74, 0xb1, 0xd7, 0x7b, 0xbd, 0x9a, 0x78, + 0x05, 0x7e, 0xa4, 0xc1, 0x4c, 0x97, 0x53, 0xd0, 0xb9, 0x8a, 0xff, 0xbf, 0xa0, 0x12, 0xfc, 0x2f, + 0xa8, 0xdc, 0x6f, 0x3b, 0xe2, 0xa8, 0x58, 0x19, 0xec, 0x8e, 0xb8, 0x53, 0xf5, 0x8a, 0xa4, 0x51, + 0x46, 0xeb, 0x03, 0x69, 0x54, 0x1d, 0xcf, 0xee, 0x87, 0x1a, 0x40, 0xf4, 0xe2, 0x42, 0xe5, 0x3e, + 0xdb, 0x4e, 0xbc, 0x36, 0x8b, 0x97, 0x87, 0xd0, 0x54, 0x9c, 0x56, 0x25, 0xa7, 0x25, 0xb4, 0xd8, + 0x93, 0x93, 0x7a, 0xa7, 0x39, 0x30, 0xf9, 0x40, 0x5e, 0xe2, 0xea, 0x89, 0x95, 0xe6, 0x90, 0xb4, + 0x9e, 0x26, 0x5c, 0xa9, 0xaf, 0x4b, 0x73, 0x25, 0xb4, 0xdc, 0xd3, 0x9c, 0xfc, 0x0f, 0xd4, 0xf2, + 0x2c, 0x7c, 0xa9, 0xc1, 0x42, 0xe2, 0xfa, 0x08, 0x3b, 0xe4, 0xcd, 0x14, 0x1b, 0x7d, 0xde, 0x0e, + 0xc5, 0xf2, 0xb0, 0xdd, 0x72, 0x5a, 0xa6, 0x44, 0x9d, 0x58, 0x35, 0x6c, 0xa3, 0xdf, 0xd7, 0x60, + 0x2a, 0xd1, 0x92, 0xa2, 0x2b, 0x43, 0x50, 0x0b, 0x39, 0x5d, 0x1c, 0xc4, 0x89, 0xeb, 0x25, 0x49, + 0xa6, 0x88, 0x0a, 0x69, 0x64, 0xd0, 0x37, 0x1a, 0x5c, 0xe8, 0xd7, 0xd0, 0xa1, 0x3b, 0x43, 0x50, + 0x4a, 0xe9, 0x02, 0x8b, 0x7f, 0x4f, 0x4b, 0xef, 0x2e, 0x7d, 0x7d, 0x43, 0xf2, 0xbc, 0x82, 0x2e, + 0xa7, 0x3a, 0x4d, 0x76, 0x18, 0x84, 0x13, 0x61, 0x2a, 0x5e, 0xc7, 0x30, 0x1b, 0xa7, 0xe0, 0xb7, + 0x37, 0x69, 0x69, 0xb5, 0x36, 0xc8, 0x55, 0x72, 0x79, 0x5a, 0x6e, 0xc5, 0x68, 0x3c, 0x91, 0x66, + 0xbe, 0x56, 0x7f, 0x93, 0x7a, 0x5e, 0xd5, 0xb7, 0xfb, 0x94, 0x4e, 0x9f, 0x5e, 0xa6, 0x78, 0xe5, + 0x35, 0xee, 0x6d, 0xfd, 0xaa, 0x64, 0xba, 0x8e, 0x2e, 0xa5, 0x3b, 0x2c, 0x46, 0xe9, 0xb9, 0x06, + 0x7f, 0x4b, 0xbd, 0xbb, 0xd0, 0x3f, 0x86, 0x88, 0x70, 0xaf, 0xdb, 0xae, 0x78, 0xeb, 0xf5, 0xee, + 0x8e, 0x01, 0x87, 0x58, 0x8c, 0x7b, 0xe2, 0x92, 0xd9, 0xda, 0xfe, 0xe1, 0xe5, 0xb2, 0xf6, 0xe3, + 0xcb, 0x65, 0xed, 0x97, 0x97, 0xcb, 0xda, 0x7b, 0xb7, 0x62, 0xbf, 0x71, 0x1d, 0xf7, 0x88, 0xb7, + 0xb1, 0xa0, 0xa6, 0x85, 0xeb, 0xdc, 0x1f, 0x55, 0x4f, 0xfe, 0x2e, 0xfd, 0x17, 0x11, 0xad, 0xfa, + 0xa8, 0x94, 0xdf, 0xf8, 0x33, 0x00, 0x00, 0xff, 0xff, 0xea, 0x59, 0x36, 0xfb, 0x44, 0x16, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2939,6 +2978,17 @@ func (m *GetValidatorBalancesRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintBeaconChain(dAtA, i, uint64(j4)) i += copy(dAtA[i:], dAtA5[:j4]) } + if m.PageSize != 0 { + dAtA[i] = 0x28 + i++ + i = encodeVarintBeaconChain(dAtA, i, uint64(m.PageSize)) + } + if len(m.PageToken) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintBeaconChain(dAtA, i, uint64(len(m.PageToken))) + i += copy(dAtA[i:], m.PageToken) + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -2979,9 +3029,14 @@ func (m *ValidatorBalances) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Epoch != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintBeaconChain(dAtA, i, uint64(m.Epoch)) + } if len(m.Balances) > 0 { for _, msg := range m.Balances { - dAtA[i] = 0xa + dAtA[i] = 0x12 i++ i = encodeVarintBeaconChain(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) @@ -2991,6 +3046,17 @@ func (m *ValidatorBalances) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.NextPageToken) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintBeaconChain(dAtA, i, uint64(len(m.NextPageToken))) + i += copy(dAtA[i:], m.NextPageToken) + } + if m.TotalSize != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintBeaconChain(dAtA, i, uint64(m.TotalSize)) + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -3862,6 +3928,13 @@ func (m *GetValidatorBalancesRequest) Size() (n int) { } n += 1 + sovBeaconChain(uint64(l)) + l } + if m.PageSize != 0 { + n += 1 + sovBeaconChain(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + sovBeaconChain(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3892,12 +3965,22 @@ func (m *ValidatorBalances) Size() (n int) { } var l int _ = l + if m.Epoch != 0 { + n += 1 + sovBeaconChain(uint64(m.Epoch)) + } if len(m.Balances) > 0 { for _, e := range m.Balances { l = e.Size() n += 1 + l + sovBeaconChain(uint64(l)) } } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + sovBeaconChain(uint64(l)) + } + if m.TotalSize != 0 { + n += 1 + sovBeaconChain(uint64(m.TotalSize)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -5456,6 +5539,57 @@ func (m *GetValidatorBalancesRequest) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field Indices", wireType) } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBeaconChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBeaconChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBeaconChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBeaconChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBeaconChain(dAtA[iNdEx:]) @@ -5511,6 +5645,25 @@ func (m *ValidatorBalances) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Epoch", wireType) + } + m.Epoch = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBeaconChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Epoch |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Balances", wireType) } @@ -5544,6 +5697,57 @@ func (m *ValidatorBalances) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBeaconChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBeaconChain + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBeaconChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalSize", wireType) + } + m.TotalSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBeaconChain + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalSize |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipBeaconChain(dAtA[iNdEx:]) diff --git a/proto/eth/v1alpha1/beacon_chain.proto b/proto/eth/v1alpha1/beacon_chain.proto index a8a0dffa1..7a8bcdd1a 100644 --- a/proto/eth/v1alpha1/beacon_chain.proto +++ b/proto/eth/v1alpha1/beacon_chain.proto @@ -251,9 +251,21 @@ message GetValidatorBalancesRequest { // Validator indices to filter validators for the given epoch. repeated uint64 indices = 4; + + // The maximum number of Validators to return in the response. + // This field is optional. + int32 page_size = 5; + + // A pagination token returned from a previous call to `GetValidators` + // that indicates where this listing should continue from. + // This field is optional. + string page_token = 6; } message ValidatorBalances { + // Epoch which the state was considered to determine the validator balances. + uint64 epoch = 1; + message Balance { // Validator's 48 byte BLS public key. bytes public_key = 1 [(gogoproto.moretags) = "ssz-size:\"48\""]; @@ -265,7 +277,14 @@ message ValidatorBalances { uint64 balance = 3; } - repeated Balance balances = 1; + repeated Balance balances = 2; + + // A pagination token returned from a previous call to `GetListValidatorBalances` + // that indicates from where listing should continue. + string next_page_token = 3; + + // Total count of Validators matching the request filter. + int32 total_size = 4; } message GetValidatorsRequest { diff --git a/proto/eth/v1alpha1/node.pb.go b/proto/eth/v1alpha1/node.pb.go index 647805e30..2ba95ac9b 100755 --- a/proto/eth/v1alpha1/node.pb.go +++ b/proto/eth/v1alpha1/node.pb.go @@ -6,13 +6,12 @@ package eth import ( context "context" fmt "fmt" - io "io" - math "math" - proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/slasher.pb.go b/proto/eth/v1alpha1/slasher.pb.go index f4b2d952f..411622ec2 100755 --- a/proto/eth/v1alpha1/slasher.pb.go +++ b/proto/eth/v1alpha1/slasher.pb.go @@ -6,12 +6,11 @@ package eth import ( context "context" fmt "fmt" - io "io" - math "math" - proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" grpc "google.golang.org/grpc" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/eth/v1alpha1/validator.pb.go b/proto/eth/v1alpha1/validator.pb.go index 45de36f39..160093ed7 100755 --- a/proto/eth/v1alpha1/validator.pb.go +++ b/proto/eth/v1alpha1/validator.pb.go @@ -7,14 +7,13 @@ import ( context "context" encoding_binary "encoding/binary" fmt "fmt" - io "io" - math "math" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" types "github.com/gogo/protobuf/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" + io "io" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/sharding/p2p/v1/messages.pb.go b/proto/sharding/p2p/v1/messages.pb.go index 61228b93d..ba268c5f4 100644 --- a/proto/sharding/p2p/v1/messages.pb.go +++ b/proto/sharding/p2p/v1/messages.pb.go @@ -5,10 +5,9 @@ package ethereum_sharding_p2p_v1 import ( fmt "fmt" + proto "github.com/gogo/protobuf/proto" io "io" math "math" - - proto "github.com/gogo/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used.