import { Rpc } from "../../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryConstitutionRequest, QueryConstitutionResponse, QueryProposalRequest, QueryProposalResponse, QueryProposalsRequest, QueryProposalsResponse, QueryVoteRequest, QueryVoteResponse, QueryVotesRequest, QueryVotesResponse, QueryParamsRequest, QueryParamsResponse, QueryDepositRequest, QueryDepositResponse, QueryDepositsRequest, QueryDepositsResponse, QueryTallyResultRequest, QueryTallyResultResponse } from "./query"; /** Query defines the gRPC querier service for gov module */ export interface Query { /** Constitution queries the chain's constitution. */ constitution(request?: QueryConstitutionRequest): Promise; /** Proposal queries proposal details based on ProposalID. */ proposal(request: QueryProposalRequest): Promise; /** Proposals queries all proposals based on given status. */ proposals(request: QueryProposalsRequest): Promise; /** Vote queries voted information based on proposalID, voterAddr. */ vote(request: QueryVoteRequest): Promise; /** Votes queries votes of a given proposal. */ votes(request: QueryVotesRequest): Promise; /** Params queries all parameters of the gov module. */ params(request: QueryParamsRequest): Promise; /** Deposit queries single deposit information based on proposalID, depositAddr. */ deposit(request: QueryDepositRequest): Promise; /** Deposits queries all deposits of a single proposal. */ deposits(request: QueryDepositsRequest): Promise; /** TallyResult queries the tally of a proposal vote. */ tallyResult(request: QueryTallyResultRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.constitution = this.constitution.bind(this); this.proposal = this.proposal.bind(this); this.proposals = this.proposals.bind(this); this.vote = this.vote.bind(this); this.votes = this.votes.bind(this); this.params = this.params.bind(this); this.deposit = this.deposit.bind(this); this.deposits = this.deposits.bind(this); this.tallyResult = this.tallyResult.bind(this); } constitution(request: QueryConstitutionRequest = {}): Promise { const data = QueryConstitutionRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Constitution", data); return promise.then(data => QueryConstitutionResponse.decode(new _m0.Reader(data))); } proposal(request: QueryProposalRequest): Promise { const data = QueryProposalRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposal", data); return promise.then(data => QueryProposalResponse.decode(new _m0.Reader(data))); } proposals(request: QueryProposalsRequest): Promise { const data = QueryProposalsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Proposals", data); return promise.then(data => QueryProposalsResponse.decode(new _m0.Reader(data))); } vote(request: QueryVoteRequest): Promise { const data = QueryVoteRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Vote", data); return promise.then(data => QueryVoteResponse.decode(new _m0.Reader(data))); } votes(request: QueryVotesRequest): Promise { const data = QueryVotesRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Votes", data); return promise.then(data => QueryVotesResponse.decode(new _m0.Reader(data))); } params(request: QueryParamsRequest): Promise { const data = QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Params", data); return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); } deposit(request: QueryDepositRequest): Promise { const data = QueryDepositRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposit", data); return promise.then(data => QueryDepositResponse.decode(new _m0.Reader(data))); } deposits(request: QueryDepositsRequest): Promise { const data = QueryDepositsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "Deposits", data); return promise.then(data => QueryDepositsResponse.decode(new _m0.Reader(data))); } tallyResult(request: QueryTallyResultRequest): Promise { const data = QueryTallyResultRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.gov.v1.Query", "TallyResult", data); return promise.then(data => QueryTallyResultResponse.decode(new _m0.Reader(data))); } } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); const queryService = new QueryClientImpl(rpc); return { constitution(request?: QueryConstitutionRequest): Promise { return queryService.constitution(request); }, proposal(request: QueryProposalRequest): Promise { return queryService.proposal(request); }, proposals(request: QueryProposalsRequest): Promise { return queryService.proposals(request); }, vote(request: QueryVoteRequest): Promise { return queryService.vote(request); }, votes(request: QueryVotesRequest): Promise { return queryService.votes(request); }, params(request: QueryParamsRequest): Promise { return queryService.params(request); }, deposit(request: QueryDepositRequest): Promise { return queryService.deposit(request); }, deposits(request: QueryDepositsRequest): Promise { return queryService.deposits(request); }, tallyResult(request: QueryTallyResultRequest): Promise { return queryService.tallyResult(request); } }; };