UNPKG

1.34 kBJavaScriptView Raw
1
2const {EmptyMessage, NumberMessage} = require("../protocol/api/api_pb");
3
4class GrpcClient {
5
6 constructor(options) {
7 this.hostname = options.hostname;
8 this.port = options.port;
9
10 const {WalletClient} = require("../protocol/api/api_grpc_pb");
11 const caller = require('grpc-caller');
12
13 /**
14 * @type {WalletClient}
15 */
16 this.api = caller(`${this.hostname}:${this.port}`, WalletClient);
17 }
18
19 /**
20 * Retrieve all connected witnesses
21 *
22 * @returns {Promise<*>}
23 */
24 async getWitnesses() {
25 return await this.api.listWitnesses(new EmptyMessage())
26 .then(x => x.getWitnessesList());
27 }
28
29 /**
30 * Retrieve all connected nodes
31 *
32 * @returns {Promise<*>}
33 */
34 async getNodes() {
35 return await this.api.listNodes(new EmptyMessage())
36 .then(x => x.getNodesList());
37 }
38
39 /**
40 * Retrieve all accounts
41 *
42 * @returns {Promise<*>}
43 */
44 async getAccounts() {
45 return await this.api.listAccounts(new EmptyMessage())
46 .then(x => x.getAccountsList());
47 }
48
49
50 /**
51 * Retrieves a block by the given number
52 *
53 * @param {number} number block number
54 * @returns {Promise<*>}
55 */
56 async getBlockByNumber(number) {
57 let message = new NumberMessage();
58 message.setNum(number);
59 return await this.api.getBlockByNum(message);
60 }
61
62}
63
64module.exports = GrpcClient;