0g-chain/client/grpc/query/query.go
2024-04-24 14:30:36 +08:00

136 lines
5.5 KiB
Go

package query
import (
"context"
"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
txtypes "github.com/cosmos/cosmos-sdk/types/tx"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
authz "github.com/cosmos/cosmos-sdk/x/authz"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
govv1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govv1beta1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
evmtypes "github.com/evmos/ethermint/x/evm/types"
feemarkettypes "github.com/evmos/ethermint/x/feemarket/types"
// auctiontypes "github.com/kava-labs/kava/x/auction/types"
// bep3types "github.com/kava-labs/kava/x/bep3/types"
// cdptypes "github.com/kava-labs/kava/x/cdp/types"
// committeetypes "github.com/kava-labs/kava/x/committee/types"
// communitytypes "github.com/kava-labs/kava/x/community/types"
// earntypes "github.com/kava-labs/kava/x/earn/types"
evmutiltypes "github.com/kava-labs/kava/x/evmutil/types"
// hardtypes "github.com/kava-labs/kava/x/hard/types"
// incentivetypes "github.com/kava-labs/kava/x/incentive/types"
// issuancetypes "github.com/kava-labs/kava/x/issuance/types"
// kavadisttypes "github.com/kava-labs/kava/x/kavadist/types"
// liquidtypes "github.com/kava-labs/kava/x/liquid/types"
// pricefeedtypes "github.com/kava-labs/kava/x/pricefeed/types"
// savingstypes "github.com/kava-labs/kava/x/savings/types"
// swaptypes "github.com/kava-labs/kava/x/swap/types"
)
// QueryClient is a wrapper with all Cosmos and Kava grpc query clients
type QueryClient struct {
// cosmos-sdk query clients
Tm tmservice.ServiceClient
Tx txtypes.ServiceClient
Auth authtypes.QueryClient
Authz authz.QueryClient
Bank banktypes.QueryClient
Distribution disttypes.QueryClient
Evidence evidencetypes.QueryClient
Gov govv1types.QueryClient
GovBeta govv1beta1types.QueryClient
Mint minttypes.QueryClient
Params paramstypes.QueryClient
Slashing slashingtypes.QueryClient
Staking stakingtypes.QueryClient
Upgrade upgradetypes.QueryClient
Consensus consensustypes.QueryClient
// 3rd party query clients
Evm evmtypes.QueryClient
Feemarket feemarkettypes.QueryClient
IbcClient ibcclienttypes.QueryClient
IbcTransfer ibctransfertypes.QueryClient
// kava module query clients
// Auction auctiontypes.QueryClient
// Bep3 bep3types.QueryClient
// Cdp cdptypes.QueryClient
// Committee committeetypes.QueryClient
// Community communitytypes.QueryClient
// Earn earntypes.QueryClient
Evmutil evmutiltypes.QueryClient
// Hard hardtypes.QueryClient
// Incentive incentivetypes.QueryClient
// Issuance issuancetypes.QueryClient
// Kavadist kavadisttypes.QueryClient
// Liquid liquidtypes.QueryClient
// Pricefeed pricefeedtypes.QueryClient
// Savings savingstypes.QueryClient
// Swap swaptypes.QueryClient
}
// NewQueryClient creates a new QueryClient and initializes all the module query clients
func NewQueryClient(grpcEndpoint string) (*QueryClient, error) {
conn, err := newGrpcConnection(context.Background(), grpcEndpoint)
if err != nil {
return &QueryClient{}, err
}
client := &QueryClient{
Tm: tmservice.NewServiceClient(conn),
Tx: txtypes.NewServiceClient(conn),
Auth: authtypes.NewQueryClient(conn),
Authz: authz.NewQueryClient(conn),
Bank: banktypes.NewQueryClient(conn),
Distribution: disttypes.NewQueryClient(conn),
Evidence: evidencetypes.NewQueryClient(conn),
Gov: govv1types.NewQueryClient(conn),
GovBeta: govv1beta1types.NewQueryClient(conn),
Mint: minttypes.NewQueryClient(conn),
Params: paramstypes.NewQueryClient(conn),
Slashing: slashingtypes.NewQueryClient(conn),
Staking: stakingtypes.NewQueryClient(conn),
Upgrade: upgradetypes.NewQueryClient(conn),
Consensus: consensustypes.NewQueryClient(conn),
Evm: evmtypes.NewQueryClient(conn),
Feemarket: feemarkettypes.NewQueryClient(conn),
IbcClient: ibcclienttypes.NewQueryClient(conn),
IbcTransfer: ibctransfertypes.NewQueryClient(conn),
// Auction: auctiontypes.NewQueryClient(conn),
// Bep3: bep3types.NewQueryClient(conn),
// Cdp: cdptypes.NewQueryClient(conn),
// Committee: committeetypes.NewQueryClient(conn),
// Community: communitytypes.NewQueryClient(conn),
// Earn: earntypes.NewQueryClient(conn),
Evmutil: evmutiltypes.NewQueryClient(conn),
// Hard: hardtypes.NewQueryClient(conn),
// Incentive: incentivetypes.NewQueryClient(conn),
// Issuance: issuancetypes.NewQueryClient(conn),
// Kavadist: kavadisttypes.NewQueryClient(conn),
// Liquid: liquidtypes.NewQueryClient(conn),
// Pricefeed: pricefeedtypes.NewQueryClient(conn),
// Savings: savingstypes.NewQueryClient(conn),
// Swap: swaptypes.NewQueryClient(conn),
}
return client, nil
}