scaffold CLR locking types / msg

This commit is contained in:
2022-09-07 20:25:57 +00:00
parent 33e576ca46
commit da45a14534
33 changed files with 1859 additions and 91 deletions

View File

@@ -0,0 +1,24 @@
package keeper
import (
"context"
"colinear/x/colinearcore/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (k Keeper) LockedUsers(c context.Context, req *types.QueryGetLockedUsersRequest) (*types.QueryGetLockedUsersResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
ctx := sdk.UnwrapSDKContext(c)
val, found := k.GetLockedUsers(ctx)
if !found {
return nil, status.Error(codes.NotFound, "not found")
}
return &types.QueryGetLockedUsersResponse{LockedUsers: val}, nil
}

View File

@@ -0,0 +1,49 @@
package keeper_test
import (
"testing"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/require"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
keepertest "colinear/testutil/keeper"
"colinear/testutil/nullify"
"colinear/x/colinearcore/types"
)
func TestLockedUsersQuery(t *testing.T) {
keeper, ctx := keepertest.ColinearcoreKeeper(t)
wctx := sdk.WrapSDKContext(ctx)
item := createTestLockedUsers(keeper, ctx)
for _, tc := range []struct {
desc string
request *types.QueryGetLockedUsersRequest
response *types.QueryGetLockedUsersResponse
err error
}{
{
desc: "First",
request: &types.QueryGetLockedUsersRequest{},
response: &types.QueryGetLockedUsersResponse{LockedUsers: item},
},
{
desc: "InvalidRequest",
err: status.Error(codes.InvalidArgument, "invalid request"),
},
} {
t.Run(tc.desc, func(t *testing.T) {
response, err := keeper.LockedUsers(wctx, tc.request)
if tc.err != nil {
require.ErrorIs(t, err, tc.err)
} else {
require.NoError(t, err)
require.Equal(t,
nullify.Fill(tc.response),
nullify.Fill(response),
)
}
})
}
}

View File

@@ -0,0 +1,33 @@
package keeper
import (
"colinear/x/colinearcore/types"
"github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
)
// SetLockedUsers set lockedUsers in the store
func (k Keeper) SetLockedUsers(ctx sdk.Context, lockedUsers types.LockedUsers) {
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.LockedUsersKey))
b := k.cdc.MustMarshal(&lockedUsers)
store.Set([]byte{0}, b)
}
// GetLockedUsers returns lockedUsers
func (k Keeper) GetLockedUsers(ctx sdk.Context) (val types.LockedUsers, found bool) {
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.LockedUsersKey))
b := store.Get([]byte{0})
if b == nil {
return val, false
}
k.cdc.MustUnmarshal(b, &val)
return val, true
}
// RemoveLockedUsers removes lockedUsers from the store
func (k Keeper) RemoveLockedUsers(ctx sdk.Context) {
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.LockedUsersKey))
store.Delete([]byte{0})
}

View File

@@ -0,0 +1,38 @@
package keeper_test
import (
"testing"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/require"
keepertest "colinear/testutil/keeper"
"colinear/testutil/nullify"
"colinear/x/colinearcore/keeper"
"colinear/x/colinearcore/types"
)
func createTestLockedUsers(keeper *keeper.Keeper, ctx sdk.Context) types.LockedUsers {
item := types.LockedUsers{}
keeper.SetLockedUsers(ctx, item)
return item
}
func TestLockedUsersGet(t *testing.T) {
keeper, ctx := keepertest.ColinearcoreKeeper(t)
item := createTestLockedUsers(keeper, ctx)
rst, found := keeper.GetLockedUsers(ctx)
require.True(t, found)
require.Equal(t,
nullify.Fill(&item),
nullify.Fill(&rst),
)
}
func TestLockedUsersRemove(t *testing.T) {
keeper, ctx := keepertest.ColinearcoreKeeper(t)
createTestLockedUsers(keeper, ctx)
keeper.RemoveLockedUsers(ctx)
_, found := keeper.GetLockedUsers(ctx)
require.False(t, found)
}

View File

@@ -0,0 +1,18 @@
package keeper
import (
"context"
"colinear/x/colinearcore/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
func (k msgServer) LockFunds(goCtx context.Context, msg *types.MsgLockFunds) (*types.MsgLockFundsResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
// TODO
_ = ctx
return &types.MsgLockFundsResponse{}, nil
}

View File

@@ -62,6 +62,8 @@ func (k msgServer) NewBid(goCtx context.Context, msg *types.MsgNewBid) (*types.M
}
}
// check that user has locked minimum required CLR
bid := &types.Bid{
Amount: msg.Amount,
Owner: msg.Creator,
@@ -71,8 +73,5 @@ func (k msgServer) NewBid(goCtx context.Context, msg *types.MsgNewBid) (*types.M
return nil, fmt.Errorf("failed to add bid: %s", err)
}
// auction.Bids = append(auction.Bids, bid)
// k.Keeper.SetAuction(ctx, auction)
return &types.MsgNewBidResponse{}, nil
}