-
Notifications
You must be signed in to change notification settings - Fork 0
/
query.go
129 lines (107 loc) · 3.18 KB
/
query.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package cli
import (
"context"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/irisnet/erc721-bridge/x/converter/types"
"github.com/spf13/cobra"
)
// GetQueryCmd returns the parent command for all erc20 CLI query commands
func GetQueryCmd() *cobra.Command {
cmd := &cobra.Command{
Use: types.ModuleName,
Short: "Querying commands for the erc20 module",
DisableFlagParsing: true,
SuggestionsMinimumDistance: 2,
RunE: client.ValidateCmd,
}
cmd.AddCommand(
GetClassPairsCmd(),
GetClassPairCmd(),
GetTokenTraceCmd(),
)
return cmd
}
// GetClassPairsCmd queries all registered token pairs
func GetClassPairsCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "class-pairs",
Short: "Gets registered class pairs",
Long: "Gets registered class pairs",
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, _ []string) error {
clienCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clienCtx)
pageReq, err := client.ReadPageRequest(cmd.Flags())
if err != nil {
return err
}
req := &types.QueryClassPairsRequest{
Pagination: pageReq,
}
res, err := queryClient.ClassPairs(context.Background(), req)
if err != nil {
return err
}
return clienCtx.PrintProto(res)
},
}
flags.AddQueryFlagsToCmd(cmd)
return cmd
}
// GetClassPairCmd queries a registered token pair
func GetClassPairCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "class-pair CLASS",
Short: "Get a registered class pair",
Long: "Get a registered class pair",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)
req := &types.QueryClassPairRequest{
Class: args[0],
}
res, err := queryClient.ClassPair(context.Background(), req)
if err != nil {
return err
}
return clientCtx.PrintProto(res)
},
}
flags.AddQueryFlagsToCmd(cmd)
return cmd
}
// GetTokenTraceCmd queries a cross-chain token trace
func GetTokenTraceCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "token-trace <class_id> <token_id>",
Short: "Get a cross-chain token trace",
Long: "When the target chain uses the erc-721 port of nft-transfer to receive cross-chain nft, the system will deploy an erc-721 contract to map with the nft of the original chain. You can use this command to enter ibc_class_id and the nft_id of the original chain to query, and you will get a new nft generated across the chain",
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
queryClient := types.NewQueryClient(clientCtx)
req := &types.QueryTokenTraceRequest{
ClassId: args[0],
TokenId: args[1],
}
data, err := queryClient.TokenTrace(cmd.Context(), req)
if err != nil {
return err
}
return clientCtx.PrintProto(data)
},
}
flags.AddQueryFlagsToCmd(cmd)
return cmd
}