diff --git a/package.json b/package.json index 8e807a7..2602216 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "@cosmjs/tendermint-rpc": "^0.29.4", "@osmonauts/lcd": "^0.8.0", "@osmonauts/telescope": "^0.75.1", + "@tanstack/react-query": "^4.16.1", "protobufjs": "^6.11.2" } } diff --git a/src/codegen/cosmos/bank/v1beta1/query.rpc.query.ts b/src/codegen/cosmos/bank/v1beta1/query.rpc.query.ts index 3443552..c8b0fd8 100644 --- a/src/codegen/cosmos/bank/v1beta1/query.rpc.query.ts +++ b/src/codegen/cosmos/bank/v1beta1/query.rpc.query.ts @@ -4,6 +4,13 @@ import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryBalanceRequest, QueryBalanceResponse, QueryAllBalancesRequest, QueryAllBalancesResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QueryTotalSupplyRequest, QueryTotalSupplyResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, QueryParamsRequest, QueryParamsResponse, QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse } from "./query"; /** Query defines the gRPC querier service. */ +import { + useQuery, + useMutation, + UseQueryOptions, +} from '@tanstack/react-query' + + export interface Query { /** Balance queries the balance of a single coin for a single account. */ balance(request: QueryBalanceRequest): Promise; @@ -159,5 +166,61 @@ export const createRpcQueryExtension = (base: QueryClient) => { return queryService.denomOwners(request); } + }; +}; + +export interface ReactQueryParams { + options?: UseQueryOptions; +} + +export interface UseBalanceQuery extends ReactQueryParams { + args: QueryBalanceRequest; +} + +export const createRpcQueryHooks = (base: QueryClient) => { + const rpc = createProtobufRpcClient(base); + const queryService = new QueryClientImpl(rpc); + return { + useBalance({ + args, + options + }) { + return useQuery(["queryBalance", args], () => { + return queryService.balance(args) + }, options); + }, + + // useAllBalances(request: QueryAllBalancesRequest): Promise { + // return queryService.allBalances(request); + // }, + + // useSpendableBalances(request: QuerySpendableBalancesRequest): Promise { + // return queryService.spendableBalances(request); + // }, + + // useTotalSupply(request?: QueryTotalSupplyRequest): Promise { + // return queryService.totalSupply(request); + // }, + + // useSupplyOf(request: QuerySupplyOfRequest): Promise { + // return queryService.supplyOf(request); + // }, + + // useParams(request?: QueryParamsRequest): Promise { + // return queryService.params(request); + // }, + + // useDenomMetadata(request: QueryDenomMetadataRequest): Promise { + // return queryService.denomMetadata(request); + // }, + + // denomsMetadata(request?: QueryDenomsMetadataRequest): Promise { + // return queryService.denomsMetadata(request); + // }, + + // useDenomOwners(request: QueryDenomOwnersRequest): Promise { + // return queryService.denomOwners(request); + // } + }; }; \ No newline at end of file