-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathallowed_bidder.go
41 lines (35 loc) · 1.56 KB
/
allowed_bidder.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package keeper
import (
"context"
"cosmossdk.io/collections"
sdkerrors "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/ignite/modules/x/fundraising/types"
)
// GetAllowedBidder returns AllowedBidder by auction ID and bidder address.
func (k Keeper) GetAllowedBidder(ctx context.Context, auctionID uint64, bidder sdk.AccAddress) (types.AllowedBidder, error) {
a, err := k.AllowedBidder.Get(ctx, collections.Join(auctionID, bidder))
if sdkerrors.IsOf(err, collections.ErrNotFound) {
return types.AllowedBidder{}, types.ErrAllowedBidderNotFound
}
return a, err
}
// GetAllowedBiddersByAuction returns allowed bidders list for the auction.
func (k Keeper) GetAllowedBiddersByAuction(ctx context.Context, auctionID uint64) ([]types.AllowedBidder, error) {
allowedBidders := make([]types.AllowedBidder, 0)
rng := collections.NewPrefixedPairRange[uint64, sdk.AccAddress](auctionID)
err := k.AllowedBidder.Walk(ctx, rng, func(_ collections.Pair[uint64, sdk.AccAddress], allowedBidder types.AllowedBidder) (bool, error) {
allowedBidders = append(allowedBidders, allowedBidder)
return false, nil
})
return allowedBidders, err
}
// AllowedBidders returns all AllowedBidder.
func (k Keeper) AllowedBidders(ctx context.Context) ([]types.AllowedBidder, error) {
allowedBidders := make([]types.AllowedBidder, 0)
err := k.AllowedBidder.Walk(ctx, nil, func(_ collections.Pair[uint64, sdk.AccAddress], allowedBidder types.AllowedBidder) (bool, error) {
allowedBidders = append(allowedBidders, allowedBidder)
return false, nil
})
return allowedBidders, err
}