-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathquery.rpc.Query.ts
54 lines (54 loc) · 2.68 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
import { TxRpc } from "../../../types";
import { BinaryReader } from "../../../binary";
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
import { QueryParamsRequest, QueryParamsResponse, QuerySigningInfoRequest, QuerySigningInfoResponse, QuerySigningInfosRequest, QuerySigningInfosResponse } from "./query";
/** Query provides defines the gRPC querier service */
export interface Query {
/** Params queries the parameters of slashing module */
params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
/** SigningInfo queries the signing info of given cons address */
signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse>;
/** SigningInfos queries signing info of all validators */
signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: TxRpc;
constructor(rpc: TxRpc) {
this.rpc = rpc;
this.params = this.params.bind(this);
this.signingInfo = this.signingInfo.bind(this);
this.signingInfos = this.signingInfos.bind(this);
}
params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
const data = QueryParamsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "Params", data);
return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
}
signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse> {
const data = QuerySigningInfoRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfo", data);
return promise.then(data => QuerySigningInfoResponse.decode(new BinaryReader(data)));
}
signingInfos(request: QuerySigningInfosRequest = {
pagination: undefined
}): Promise<QuerySigningInfosResponse> {
const data = QuerySigningInfosRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfos", data);
return promise.then(data => QuerySigningInfosResponse.decode(new BinaryReader(data)));
}
}
export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
const queryService = new QueryClientImpl(rpc);
return {
params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
return queryService.params(request);
},
signingInfo(request: QuerySigningInfoRequest): Promise<QuerySigningInfoResponse> {
return queryService.signingInfo(request);
},
signingInfos(request?: QuerySigningInfosRequest): Promise<QuerySigningInfosResponse> {
return queryService.signingInfos(request);
}
};
};