gpu-compute-chain/x/colinearcore/keeper/grpc_query_auction_info.go

45 lines
1.2 KiB
Go
Raw Permalink Normal View History

package keeper
import (
"context"
"fmt"
"colinear/x/colinearcore/memdb"
"colinear/x/colinearcore/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (k Keeper) AuctionInfo(goCtx context.Context, req *types.QueryAuctionInfoRequest) (*types.QueryAuctionInfoResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
ctx := sdk.UnwrapSDKContext(goCtx)
if exp, err := k.AuctionIsExpired(ctx, req.AuctionId); err != nil {
return nil, fmt.Errorf("unable to check auction expiry status: %s", err)
} else {
if exp {
return nil, fmt.Errorf("auction %s is finalized", req.AuctionId)
}
}
bids, err := memdb.AuctionDB.GetBids(req.AuctionId)
if err != nil {
return nil, fmt.Errorf("unable to get bids for auction %s: %s", req.AuctionId, err)
}
vProviders, err := memdb.AuctionDB.GetVerifiedProviders(req.AuctionId)
if err != nil {
return nil, fmt.Errorf("unable to get verified providers for auction %s: %s", req.AuctionId, err)
}
return &types.QueryAuctionInfoResponse{
Bids: bids,
VerifiedProviders: vProviders,
}, nil
}