code.vegaprotocol.io/vega@v0.79.0/datanode/gateway/graphql/epoch_resolver.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package gql
    17  
    18  import (
    19  	"context"
    20  	"strconv"
    21  
    22  	v2 "code.vegaprotocol.io/vega/protos/data-node/api/v2"
    23  	proto "code.vegaprotocol.io/vega/protos/vega"
    24  )
    25  
    26  type epochResolver VegaResolverRoot
    27  
    28  func (r *epochResolver) ID(_ context.Context, obj *proto.Epoch) (string, error) {
    29  	return strconv.FormatUint(obj.Seq, 10), nil
    30  }
    31  
    32  func (r *epochResolver) ValidatorsConnection(ctx context.Context, epoch *proto.Epoch, pagination *v2.Pagination) (*v2.NodesConnection, error) {
    33  	var epochSeq *uint64
    34  	if epoch != nil {
    35  		epochSeq = &epoch.Seq
    36  	}
    37  
    38  	resp, err := r.tradingDataClientV2.ListNodes(ctx, &v2.ListNodesRequest{
    39  		EpochSeq:   epochSeq,
    40  		Pagination: pagination,
    41  	})
    42  	if err != nil {
    43  		return nil, err
    44  	}
    45  
    46  	return resp.Nodes, err
    47  }
    48  
    49  func (r *epochResolver) DelegationsConnection(ctx context.Context, epoch *proto.Epoch, partyID *string, nodeID *string, pagination *v2.Pagination) (*v2.DelegationsConnection, error) {
    50  	var epochID *string
    51  
    52  	if epoch != nil {
    53  		seq := strconv.FormatUint(epoch.Seq, 10)
    54  		epochID = &seq
    55  	}
    56  
    57  	return handleDelegationConnectionRequest(ctx, r.tradingDataClientV2, partyID, nodeID, epochID, pagination)
    58  }