mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 00:27:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			241 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package cli
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/spf13/cobra"
 | 
						|
 | 
						|
	"github.com/cosmos/cosmos-sdk/client"
 | 
						|
	"github.com/cosmos/cosmos-sdk/client/flags"
 | 
						|
 | 
						|
	"github.com/kava-labs/kava/x/validator-vesting/types"
 | 
						|
)
 | 
						|
 | 
						|
// GetQueryCmd returns the cli query commands for the kavadist module
 | 
						|
func GetQueryCmd() *cobra.Command {
 | 
						|
	valVestingQueryCmd := &cobra.Command{
 | 
						|
		Use:   types.QueryPath,
 | 
						|
		Short: "Querying commands for the validator vesting module",
 | 
						|
	}
 | 
						|
 | 
						|
	cmds := []*cobra.Command{
 | 
						|
		queryCirculatingSupply(),
 | 
						|
		queryTotalSupply(),
 | 
						|
		queryCirculatingSupplyHARD(),
 | 
						|
		queryCirculatingSupplyUSDX(),
 | 
						|
		queryCirculatingSupplySWP(),
 | 
						|
		queryTotalSupplyHARD(),
 | 
						|
		queryTotalSupplyUSDX(),
 | 
						|
	}
 | 
						|
 | 
						|
	for _, cmd := range cmds {
 | 
						|
		flags.AddQueryFlagsToCmd(cmd)
 | 
						|
	}
 | 
						|
 | 
						|
	valVestingQueryCmd.AddCommand(cmds...)
 | 
						|
	return valVestingQueryCmd
 | 
						|
}
 | 
						|
 | 
						|
func queryCirculatingSupply() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "circulating-supply",
 | 
						|
		Short: "Get circulating supply",
 | 
						|
		Long:  "Get the current circulating supply of kava tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryCirculatingSupply), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryTotalSupply() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "total-supply",
 | 
						|
		Short: "Get total supply",
 | 
						|
		Long:  "Get the current total supply of kava tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryTotalSupply), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryCirculatingSupplyHARD() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "circulating-supply-hard",
 | 
						|
		Short: "Get HARD circulating supply",
 | 
						|
		Long:  "Get the current circulating supply of HARD tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryCirculatingSupplyHARD), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryCirculatingSupplyUSDX() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "circulating-supply-usdx",
 | 
						|
		Short: "Get USDX circulating supply",
 | 
						|
		Long:  "Get the current circulating supply of USDX tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryCirculatingSupplyUSDX), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryCirculatingSupplySWP() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "circulating-supply-swp",
 | 
						|
		Short: "Get SWP circulating supply",
 | 
						|
		Long:  "Get the current circulating supply of SWP tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryCirculatingSupplySWP), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryTotalSupplyHARD() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "total-supply-hard",
 | 
						|
		Short: "Get HARD total supply",
 | 
						|
		Long:  "Get the current total supply of HARD tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryTotalSupplyHARD), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func queryTotalSupplyUSDX() *cobra.Command {
 | 
						|
	return &cobra.Command{
 | 
						|
		Use:   "total-supply-usdx",
 | 
						|
		Short: "Get USDX total supply",
 | 
						|
		Long:  "Get the current total supply of USDX tokens",
 | 
						|
		Args:  cobra.NoArgs,
 | 
						|
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
						|
			cliCtx, err := client.GetClientQueryContext(cmd)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// Query
 | 
						|
			res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryTotalSupplyUSDX), nil)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
			cliCtx = cliCtx.WithHeight(height)
 | 
						|
 | 
						|
			// Decode and print results
 | 
						|
			var out int64
 | 
						|
			if err := cliCtx.LegacyAmino.UnmarshalJSON(res, &out); err != nil {
 | 
						|
				return fmt.Errorf("failed to unmarshal supply: %w", err)
 | 
						|
			}
 | 
						|
			return cliCtx.PrintObjectLegacy(out)
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 |