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

@@ -30,6 +30,7 @@ func GetQueryCmd(queryRoute string) *cobra.Command {
cmd.AddCommand(CmdShowAuction())
cmd.AddCommand(CmdAuctionBids())
cmd.AddCommand(CmdShowLockedUsers())
// this line is used by starport scaffolding # 1
return cmd

View File

@@ -0,0 +1,36 @@
package cli
import (
"context"
"colinear/x/colinearcore/types"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/spf13/cobra"
)
func CmdShowLockedUsers() *cobra.Command {
cmd := &cobra.Command{
Use: "show-locked-users",
Short: "shows lockedUsers",
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx := client.GetClientContextFromCmd(cmd)
queryClient := types.NewQueryClient(clientCtx)
params := &types.QueryGetLockedUsersRequest{}
res, err := queryClient.LockedUsers(context.Background(), params)
if err != nil {
return err
}
return clientCtx.PrintProto(res)
},
}
flags.AddQueryFlagsToCmd(cmd)
return cmd
}

View File

@@ -0,0 +1,72 @@
package cli_test
import (
"fmt"
"testing"
clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
"github.com/stretchr/testify/require"
tmcli "github.com/tendermint/tendermint/libs/cli"
"google.golang.org/grpc/status"
"colinear/testutil/network"
"colinear/testutil/nullify"
"colinear/x/colinearcore/client/cli"
"colinear/x/colinearcore/types"
)
func networkWithLockedUsersObjects(t *testing.T) (*network.Network, types.LockedUsers) {
t.Helper()
cfg := network.DefaultConfig()
state := types.GenesisState{}
require.NoError(t, cfg.Codec.UnmarshalJSON(cfg.GenesisState[types.ModuleName], &state))
lockedUsers := &types.LockedUsers{}
nullify.Fill(&lockedUsers)
state.LockedUsers = lockedUsers
buf, err := cfg.Codec.MarshalJSON(&state)
require.NoError(t, err)
cfg.GenesisState[types.ModuleName] = buf
return network.New(t, cfg), *state.LockedUsers
}
func TestShowLockedUsers(t *testing.T) {
net, obj := networkWithLockedUsersObjects(t)
ctx := net.Validators[0].ClientCtx
common := []string{
fmt.Sprintf("--%s=json", tmcli.OutputFlag),
}
for _, tc := range []struct {
desc string
args []string
err error
obj types.LockedUsers
}{
{
desc: "get",
args: common,
obj: obj,
},
} {
t.Run(tc.desc, func(t *testing.T) {
var args []string
args = append(args, tc.args...)
out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowLockedUsers(), args)
if tc.err != nil {
stat, ok := status.FromError(tc.err)
require.True(t, ok)
require.ErrorIs(t, stat.Err(), tc.err)
} else {
require.NoError(t, err)
var resp types.QueryGetLockedUsersResponse
require.NoError(t, net.Config.Codec.UnmarshalJSON(out.Bytes(), &resp))
require.NotNil(t, resp.LockedUsers)
require.Equal(t,
nullify.Fill(&tc.obj),
nullify.Fill(&resp.LockedUsers),
)
}
})
}
}

View File

@@ -32,6 +32,7 @@ func GetTxCmd() *cobra.Command {
cmd.AddCommand(CmdNewAuction())
cmd.AddCommand(CmdNewBid())
cmd.AddCommand(CmdLockFunds())
// this line is used by starport scaffolding # 1
return cmd

View File

@@ -0,0 +1,40 @@
package cli
import (
"strconv"
"colinear/x/colinearcore/types"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/spf13/cobra"
)
var _ = strconv.Itoa(0)
func CmdLockFunds() *cobra.Command {
cmd := &cobra.Command{
Use: "lock-funds",
Short: "Broadcast message lockFunds",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) (err error) {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}
msg := types.NewMsgLockFunds(
clientCtx.GetFromAddress().String(),
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
flags.AddTxFlagsToCmd(cmd)
return cmd
}