@@ -15,6 +15,11 @@ import (
15
15
"github.com/spf13/cobra"
16
16
)
17
17
18
+ const (
19
+ formatJson = "json"
20
+ formatLegacy = "legacy"
21
+ )
22
+
18
23
// queryCmd represents the chain command
19
24
func queryCmd (a * appState ) * cobra.Command {
20
25
cmd := & cobra.Command {
@@ -63,7 +68,7 @@ func feegrantQueryCmd(a *appState) *cobra.Command {
63
68
cmd .AddCommand (
64
69
feegrantBasicGrantsCmd (a ),
65
70
)
66
-
71
+ cmd = addOutputFlag ( a . viper , cmd )
67
72
return cmd
68
73
}
69
74
@@ -99,7 +104,7 @@ $ %s q ibc-denoms ibc-0`,
99
104
return nil
100
105
},
101
106
}
102
-
107
+ cmd = addOutputFlag ( a . viper , cmd )
103
108
return cmd
104
109
}
105
110
@@ -127,7 +132,7 @@ $ %s q denom-trace osmosis 9BBA9A1C257E971E38C1422780CE6F0B0686F0A3085E2D61118D9
127
132
return nil
128
133
},
129
134
}
130
-
135
+ cmd = addOutputFlag ( a . viper , cmd )
131
136
return cmd
132
137
}
133
138
@@ -161,7 +166,7 @@ $ %s q tx ibc-0 A5DF8D272F1C451CFF92BA6C41942C4D29B5CF180279439ED6AB038282F956BE
161
166
return nil
162
167
},
163
168
}
164
-
169
+ cmd = addOutputFlag ( a . viper , cmd )
165
170
return cmd
166
171
}
167
172
@@ -213,7 +218,9 @@ $ %s q txs ibc-0 "message.action=transfer"`,
213
218
},
214
219
}
215
220
216
- return paginationFlags (a .viper , cmd , "txs" )
221
+ cmd = addOutputFlag (a .viper , cmd )
222
+ cmd = paginationFlags (a .viper , cmd , "txs" )
223
+ return cmd
217
224
}
218
225
219
226
func queryBalanceCmd (a * appState ) * cobra.Command {
@@ -257,12 +264,34 @@ $ %s query balance ibc-0 testkey`,
257
264
return err
258
265
}
259
266
260
- fmt .Fprintf (cmd .OutOrStdout (), "address {%s} balance {%s} \n " , addr , coins )
267
+ // Create a map to hold the data
268
+ data := map [string ]string {
269
+ "address" : addr ,
270
+ "balance" : coins .String (),
271
+ }
272
+
273
+ // Convert the map to a JSON string
274
+ jsonOutput , err := json .Marshal (data )
275
+ if err != nil {
276
+ return err
277
+ }
278
+
279
+ output , _ := cmd .Flags ().GetString (flagOutput )
280
+ switch output {
281
+ case formatJson :
282
+ fmt .Fprint (cmd .OutOrStdout (), string (jsonOutput ))
283
+ case formatLegacy :
284
+ fallthrough
285
+ default :
286
+ fmt .Fprintf (cmd .OutOrStdout (), "address {%s} balance {%s} \n " , addr , coins )
287
+ }
261
288
return nil
262
289
},
263
290
}
264
291
265
- return ibcDenomFlags (a .viper , cmd )
292
+ cmd = addOutputFlag (a .viper , cmd )
293
+ cmd = ibcDenomFlags (a .viper , cmd )
294
+ return cmd
266
295
}
267
296
268
297
func queryHeaderCmd (a * appState ) * cobra.Command {
@@ -309,11 +338,21 @@ $ %s query header ibc-0 1400`,
309
338
return err
310
339
}
311
340
312
- fmt .Fprintln (cmd .OutOrStdout (), s )
341
+ output , _ := cmd .Flags ().GetString (flagOutput )
342
+ switch output {
343
+ case formatJson :
344
+ fmt .Fprintln (cmd .OutOrStdout (), string (s ))
345
+ case formatLegacy :
346
+ fallthrough
347
+ default :
348
+ fmt .Fprintln (cmd .OutOrStdout (), s )
349
+ }
350
+
313
351
return nil
314
352
},
315
353
}
316
354
355
+ cmd = addOutputFlag (a .viper , cmd )
317
356
return cmd
318
357
}
319
358
@@ -355,7 +394,7 @@ $ %s q node-state ibc-1`,
355
394
return nil
356
395
},
357
396
}
358
-
397
+ cmd = addOutputFlag ( a . viper , cmd )
359
398
return cmd
360
399
}
361
400
@@ -406,8 +445,9 @@ $ %s query client ibc-0 ibczeroclient --height 1205`,
406
445
return nil
407
446
},
408
447
}
409
-
410
- return heightFlag (a .viper , cmd )
448
+ cmd = addOutputFlag (a .viper , cmd )
449
+ cmd = heightFlag (a .viper , cmd )
450
+ return cmd
411
451
}
412
452
413
453
func queryClientsCmd (a * appState ) * cobra.Command {
@@ -451,8 +491,9 @@ $ %s query clients ibc-2 --offset 2 --limit 30`,
451
491
return nil
452
492
},
453
493
}
454
-
455
- return paginationFlags (a .viper , cmd , "client states" )
494
+ cmd = addOutputFlag (a .viper , cmd )
495
+ cmd = paginationFlags (a .viper , cmd , "client states" )
496
+ return cmd
456
497
}
457
498
458
499
func queryConnections (a * appState ) * cobra.Command {
@@ -498,7 +539,9 @@ $ %s q conns ibc-1`,
498
539
},
499
540
}
500
541
501
- return paginationFlags (a .viper , cmd , "connections on a network" )
542
+ cmd = addOutputFlag (a .viper , cmd )
543
+ cmd = paginationFlags (a .viper , cmd , "connections on a network" )
544
+ return cmd
502
545
}
503
546
504
547
func queryConnectionsUsingClient (a * appState ) * cobra.Command {
@@ -551,7 +594,9 @@ $ %s query client-connections ibc-0 ibczeroclient --height 1205`,
551
594
},
552
595
}
553
596
554
- return heightFlag (a .viper , cmd )
597
+ cmd = addOutputFlag (a .viper , cmd )
598
+ cmd = heightFlag (a .viper , cmd )
599
+ return cmd
555
600
}
556
601
557
602
func queryConnection (a * appState ) * cobra.Command {
@@ -595,7 +640,7 @@ $ %s q conn ibc-1 ibconeconn`,
595
640
return nil
596
641
},
597
642
}
598
-
643
+ cmd = addOutputFlag ( a . viper , cmd )
599
644
return cmd
600
645
}
601
646
@@ -644,7 +689,9 @@ $ %s query connection-channels ibc-2 ibcconnection2 --offset 2 --limit 30`,
644
689
},
645
690
}
646
691
647
- return paginationFlags (a .viper , cmd , "channels associated with a connection" )
692
+ cmd = addOutputFlag (a .viper , cmd )
693
+ cmd = paginationFlags (a .viper , cmd , "channels associated with a connection" )
694
+ return cmd
648
695
}
649
696
650
697
func queryChannel (a * appState ) * cobra.Command {
@@ -697,7 +744,9 @@ $ %s query channel ibc-2 ibctwochannel transfer --height 1205`,
697
744
},
698
745
}
699
746
700
- return heightFlag (a .viper , cmd )
747
+ cmd = addOutputFlag (a .viper , cmd )
748
+ cmd = heightFlag (a .viper , cmd )
749
+ return cmd
701
750
}
702
751
703
752
// chanExtendedInfo is an intermediate type for holding additional useful
@@ -917,7 +966,9 @@ $ %s query channels ibc-0 ibc-2`,
917
966
},
918
967
}
919
968
920
- return paginationFlags (a .viper , cmd , "channels on a network" )
969
+ cmd = addOutputFlag (a .viper , cmd )
970
+ cmd = paginationFlags (a .viper , cmd , "channels on a network" )
971
+ return cmd
921
972
}
922
973
923
974
func queryPacketCommitment (a * appState ) * cobra.Command {
@@ -959,7 +1010,7 @@ $ %s q packet-commit ibc-1 ibconechannel transfer 31`,
959
1010
return nil
960
1011
},
961
1012
}
962
-
1013
+ cmd = addOutputFlag ( a . viper , cmd )
963
1014
return cmd
964
1015
}
965
1016
@@ -1012,7 +1063,7 @@ $ %s query unrelayed-pkts demo-path channel-0`,
1012
1063
return nil
1013
1064
},
1014
1065
}
1015
-
1066
+ cmd = addOutputFlag ( a . viper , cmd )
1016
1067
return cmd
1017
1068
}
1018
1069
@@ -1064,7 +1115,7 @@ $ %s query unrelayed-acks demo-path channel-0`,
1064
1115
return nil
1065
1116
},
1066
1117
}
1067
-
1118
+ cmd = addOutputFlag ( a . viper , cmd )
1068
1119
return cmd
1069
1120
}
1070
1121
@@ -1105,24 +1156,26 @@ $ %s query clients-expiration demo-path`,
1105
1156
return errDst
1106
1157
}
1107
1158
1108
- // if only the src light client is found, just print info for source light client
1109
- if errSrc == nil && errDst != nil {
1110
- fmt .Fprintln (cmd .OutOrStdout (), relayer .SPrintClientExpiration (c [src ], srcExpiration , srcClientInfo ))
1111
- return nil
1112
- }
1159
+ output , _ := cmd .Flags ().GetString (flagOutput )
1113
1160
1114
- // if only the dst light client is found, just print info for destination light client
1115
- if errDst == nil && errSrc != nil {
1116
- fmt .Fprintln (cmd .OutOrStdout (), relayer .SPrintClientExpiration (c [dst ], dstExpiration , dstClientInfo ))
1117
- return nil
1161
+ srcClientExpiration := relayer .SPrintClientExpiration (c [src ], srcExpiration , srcClientInfo )
1162
+ dstClientExpiration := relayer .SPrintClientExpiration (c [dst ], dstExpiration , dstClientInfo )
1163
+
1164
+ if output == formatJson {
1165
+ srcClientExpiration = relayer .SPrintClientExpirationJson (c [src ], srcExpiration , srcClientInfo )
1166
+ dstClientExpiration = relayer .SPrintClientExpirationJson (c [dst ], dstExpiration , dstClientInfo )
1118
1167
}
1119
1168
1120
- fmt .Fprintln (cmd .OutOrStdout (), relayer .SPrintClientExpiration (c [src ], srcExpiration , srcClientInfo ))
1121
- fmt .Fprintln (cmd .OutOrStdout (), relayer .SPrintClientExpiration (c [dst ], dstExpiration , dstClientInfo ))
1169
+ if errSrc == nil {
1170
+ fmt .Fprintln (cmd .OutOrStdout (), srcClientExpiration )
1171
+ }
1122
1172
1173
+ if errDst == nil {
1174
+ fmt .Fprintln (cmd .OutOrStdout (), dstClientExpiration )
1175
+ }
1123
1176
return nil
1124
1177
},
1125
1178
}
1126
-
1179
+ cmd = addOutputFlag ( a . viper , cmd )
1127
1180
return cmd
1128
1181
}
0 commit comments