1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const util_1 = __importDefault(require("util"));
|
7 | class Web3HTTPProviderAdapter {
|
8 | constructor(provider) {
|
9 | this._provider = provider;
|
10 |
|
11 | this.send = this.send.bind(this);
|
12 | this.isConnected = this.isConnected.bind(this);
|
13 | this._sendJsonRpcRequest = this._sendJsonRpcRequest.bind(this);
|
14 | }
|
15 | send(payload, callback) {
|
16 | if (!Array.isArray(payload)) {
|
17 | util_1.default.callbackify(() => this._sendJsonRpcRequest(payload))(callback);
|
18 | return;
|
19 | }
|
20 | util_1.default.callbackify(async () => {
|
21 | const responses = [];
|
22 | for (const request of payload) {
|
23 | const response = await this._sendJsonRpcRequest(request);
|
24 | responses.push(response);
|
25 | if (response.error !== undefined) {
|
26 | break;
|
27 | }
|
28 | }
|
29 | return responses;
|
30 | })(callback);
|
31 | }
|
32 | isConnected() {
|
33 | return true;
|
34 | }
|
35 | async _sendJsonRpcRequest(request) {
|
36 | const response = {
|
37 | id: request.id,
|
38 | jsonrpc: "2.0",
|
39 | };
|
40 | try {
|
41 | const result = await this._provider.send(request.method, request.params);
|
42 | response.result = result;
|
43 | }
|
44 | catch (error) {
|
45 | if (error.code === undefined) {
|
46 | throw error;
|
47 | }
|
48 | response.error = {
|
49 | code: error.code ? +error.code : 404,
|
50 | message: error.message,
|
51 | data: {
|
52 | stack: error.stack,
|
53 | name: error.name,
|
54 | },
|
55 | };
|
56 | }
|
57 | return response;
|
58 | }
|
59 | }
|
60 | exports.Web3HTTPProviderAdapter = Web3HTTPProviderAdapter;
|
61 |
|
\ | No newline at end of file |