-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathquery.rpc.Query.ts
69 lines (69 loc) · 3.35 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
import { TxRpc } from "../../../types";
import { BinaryReader } from "../../../binary";
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
import { QueryAccountsRequest, QueryAccountsResponse, QueryAccountRequest, QueryAccountResponse, QueryParamsRequest, QueryParamsResponse, QueryNextAccountNumberRequest, QueryNextAccountNumberResponse } from "./query";
/** Query defines the gRPC querier service. */
export interface Query {
/**
* Accounts returns all the existing accounts
*
* Since: cosmos-sdk 0.43
*/
accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
/** Account returns account details based on address. */
account(request: QueryAccountRequest): Promise<QueryAccountResponse>;
/** Params queries all parameters. */
params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
/** NextAccountNumber queries the next account number assigned */
nextAccountNumber(request?: QueryNextAccountNumberRequest): Promise<QueryNextAccountNumberResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: TxRpc;
constructor(rpc: TxRpc) {
this.rpc = rpc;
this.accounts = this.accounts.bind(this);
this.account = this.account.bind(this);
this.params = this.params.bind(this);
this.nextAccountNumber = this.nextAccountNumber.bind(this);
}
accounts(request: QueryAccountsRequest = {
pagination: undefined
}): Promise<QueryAccountsResponse> {
const data = QueryAccountsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data);
return promise.then(data => QueryAccountsResponse.decode(new BinaryReader(data)));
}
account(request: QueryAccountRequest): Promise<QueryAccountResponse> {
const data = QueryAccountRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data);
return promise.then(data => QueryAccountResponse.decode(new BinaryReader(data)));
}
params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
const data = QueryParamsRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data);
return promise.then(data => QueryParamsResponse.decode(new BinaryReader(data)));
}
nextAccountNumber(request: QueryNextAccountNumberRequest = {}): Promise<QueryNextAccountNumberResponse> {
const data = QueryNextAccountNumberRequest.encode(request).finish();
const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "NextAccountNumber", data);
return promise.then(data => QueryNextAccountNumberResponse.decode(new BinaryReader(data)));
}
}
export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
const queryService = new QueryClientImpl(rpc);
return {
accounts(request?: QueryAccountsRequest): Promise<QueryAccountsResponse> {
return queryService.accounts(request);
},
account(request: QueryAccountRequest): Promise<QueryAccountResponse> {
return queryService.account(request);
},
params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
return queryService.params(request);
},
nextAccountNumber(request?: QueryNextAccountNumberRequest): Promise<QueryNextAccountNumberResponse> {
return queryService.nextAccountNumber(request);
}
};
};