mirror of
https://github.com/colinear-labs/chain.git
synced 2026-03-05 03:04:25 -08:00
scaffold CLR locking types / msg
This commit is contained in:
24
x/colinearcore/keeper/grpc_query_locked_users.go
Normal file
24
x/colinearcore/keeper/grpc_query_locked_users.go
Normal 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
|
||||
}
|
||||
49
x/colinearcore/keeper/grpc_query_locked_users_test.go
Normal file
49
x/colinearcore/keeper/grpc_query_locked_users_test.go
Normal 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),
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
33
x/colinearcore/keeper/locked_users.go
Normal file
33
x/colinearcore/keeper/locked_users.go
Normal 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})
|
||||
}
|
||||
38
x/colinearcore/keeper/locked_users_test.go
Normal file
38
x/colinearcore/keeper/locked_users_test.go
Normal 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)
|
||||
}
|
||||
18
x/colinearcore/keeper/msg_server_lock_funds.go
Normal file
18
x/colinearcore/keeper/msg_server_lock_funds.go
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user