2022-08-30 14:27:12 -07:00
|
|
|
package keeper
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2022-08-30 14:47:39 -07:00
|
|
|
"fmt"
|
2022-08-30 14:27:12 -07:00
|
|
|
|
2022-08-30 14:47:39 -07:00
|
|
|
"cosmos-test/x/cosmostest/memdb"
|
2022-08-30 14:27:12 -07:00
|
|
|
"cosmos-test/x/cosmostest/types"
|
2022-08-30 14:47:39 -07:00
|
|
|
|
2022-08-30 14:27:12 -07:00
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"google.golang.org/grpc/codes"
|
|
|
|
"google.golang.org/grpc/status"
|
|
|
|
)
|
|
|
|
|
|
|
|
func (k Keeper) AuctionBids(goCtx context.Context, req *types.QueryAuctionBidsRequest) (*types.QueryAuctionBidsResponse, error) {
|
|
|
|
if req == nil {
|
|
|
|
return nil, status.Error(codes.InvalidArgument, "invalid request")
|
|
|
|
}
|
|
|
|
|
|
|
|
ctx := sdk.UnwrapSDKContext(goCtx)
|
|
|
|
|
2022-08-30 14:47:39 -07:00
|
|
|
auction, found := k.GetAuction(ctx, req.Index)
|
|
|
|
if !found {
|
|
|
|
return nil, fmt.Errorf("auction %s not found", req.Index)
|
|
|
|
}
|
|
|
|
|
2022-08-31 15:40:28 -07:00
|
|
|
if uint64(ctx.BlockHeight()) >= auction.Deadline {
|
|
|
|
return nil, fmt.Errorf("auction %s is already finalized", req.Index)
|
|
|
|
}
|
|
|
|
|
2022-08-30 14:47:39 -07:00
|
|
|
bids, err := memdb.BidDB.GetBids(auction.Index)
|
|
|
|
if err != nil {
|
2022-08-30 14:53:47 -07:00
|
|
|
return nil, fmt.Errorf("failed to get bids for auction %s: %s", auction.Index, err)
|
2022-08-30 14:47:39 -07:00
|
|
|
}
|
2022-08-30 14:27:12 -07:00
|
|
|
|
2022-08-30 14:47:39 -07:00
|
|
|
return &types.QueryAuctionBidsResponse{Bids: bids}, nil
|
2022-08-30 14:27:12 -07:00
|
|
|
}
|