-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathquery.rpc.Query.ts
107 lines (107 loc) · 5.74 KB
/
query.rpc.Query.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import { TxRpc } from "../../../types";
import { BinaryReader } from "../../../binary";
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
import { 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 {
/** Proposal queries proposal details based on ProposalID. */
proposal(request: QueryProposalRequest): Promise<QueryProposalResponse>;
/** Proposals queries all proposals based on given status. */
proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse>;
/** Vote queries voted information based on proposalID, voterAddr. */
vote(request: QueryVoteRequest): Promise<QueryVoteResponse>;
/** Votes queries votes of a given proposal. */
votes(request: QueryVotesRequest): Promise<QueryVotesResponse>;
/** Params queries all parameters of the gov module. */
params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
/** Deposit queries single deposit information based proposalID, depositAddr. */
deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
/** Deposits queries all deposits of a single proposal. */
deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
/** TallyResult queries the tally of a proposal vote. */
tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: TxRpc;
constructor(rpc: TxRpc) {
this.rpc = rpc;
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);
}
proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
const data = QueryProposalRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposal", data);
return promise.then(data => QueryProposalResponse.decode(new BinaryReader(data)));
}
proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
const data = QueryProposalsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposals", data);
return promise.then(data => QueryProposalsResponse.decode(new BinaryReader(data)));
}
vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
const data = QueryVoteRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Vote", data);
return promise.then(data => QueryVoteResponse.decode(new BinaryReader(data)));
}
votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
const data = QueryVotesRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Votes", data);
return promise.then(data => QueryVotesResponse.decode(new BinaryReader(data)));
}
params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
const data = QueryParamsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Params", data);
return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
}
deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
const data = QueryDepositRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposit", data);
return promise.then(data => QueryDepositResponse.decode(new BinaryReader(data)));
}
deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
const data = QueryDepositsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposits", data);
return promise.then(data => QueryDepositsResponse.decode(new BinaryReader(data)));
}
tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
const data = QueryTallyResultRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "TallyResult", data);
return promise.then(data => QueryTallyResultResponse.decode(new BinaryReader(data)));
}
}
export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
const queryService = new QueryClientImpl(rpc);
return {
proposal(request: QueryProposalRequest): Promise<QueryProposalResponse> {
return queryService.proposal(request);
},
proposals(request: QueryProposalsRequest): Promise<QueryProposalsResponse> {
return queryService.proposals(request);
},
vote(request: QueryVoteRequest): Promise<QueryVoteResponse> {
return queryService.vote(request);
},
votes(request: QueryVotesRequest): Promise<QueryVotesResponse> {
return queryService.votes(request);
},
params(request: QueryParamsRequest): Promise<QueryParamsResponse> {
return queryService.params(request);
},
deposit(request: QueryDepositRequest): Promise<QueryDepositResponse> {
return queryService.deposit(request);
},
deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse> {
return queryService.deposits(request);
},
tallyResult(request: QueryTallyResultRequest): Promise<QueryTallyResultResponse> {
return queryService.tallyResult(request);
}
};
};