@xelis/sdk 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/daemon/rpc.js +2 -2
- package/dist/cjs/daemon/websocket.js +2 -2
- package/dist/cjs/{lib/rpc.js → rpc/http.js} +61 -10
- package/dist/cjs/{lib → rpc}/websocket.js +98 -58
- package/dist/cjs/wallet/rpc.js +2 -2
- package/dist/cjs/wallet/websocket.js +2 -2
- package/dist/cjs/xswd/websocket.js +3 -3
- package/dist/esm/daemon/rpc.js +2 -2
- package/dist/esm/daemon/websocket.js +2 -2
- package/dist/esm/{lib/rpc.js → rpc/http.js} +60 -9
- package/dist/esm/{lib → rpc}/websocket.js +97 -57
- package/dist/esm/wallet/rpc.js +2 -2
- package/dist/esm/wallet/websocket.js +2 -2
- package/dist/esm/xswd/websocket.js +3 -3
- package/dist/types/daemon/rpc.d.ts +2 -2
- package/dist/types/daemon/websocket.d.ts +4 -4
- package/dist/types/{lib/rpc.d.ts → rpc/http.d.ts} +3 -1
- package/dist/types/{lib → rpc}/websocket.d.ts +8 -8
- package/dist/types/wallet/rpc.d.ts +2 -2
- package/dist/types/wallet/websocket.d.ts +4 -4
- package/dist/types/xswd/websocket.d.ts +3 -3
- package/package.json +1 -1
- /package/dist/cjs/{lib → rpc}/parse_json/parse_json.js +0 -0
- /package/dist/cjs/{lib → rpc}/types.js +0 -0
- /package/dist/esm/{lib → rpc}/parse_json/parse_json.js +0 -0
- /package/dist/esm/{lib → rpc}/types.js +0 -0
- /package/dist/types/{lib → rpc}/parse_json/parse_json.d.ts +0 -0
- /package/dist/types/{lib → rpc}/types.d.ts +0 -0
package/dist/cjs/daemon/rpc.js
CHANGED
|
@@ -17,7 +17,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
17
17
|
exports.__esModule = true;
|
|
18
18
|
exports.RPC = void 0;
|
|
19
19
|
var types_1 = require("./types");
|
|
20
|
-
var
|
|
20
|
+
var http_1 = require("../rpc/http");
|
|
21
21
|
var RPC = /** @class */ (function (_super) {
|
|
22
22
|
__extends(RPC, _super);
|
|
23
23
|
function RPC() {
|
|
@@ -219,6 +219,6 @@ var RPC = /** @class */ (function (_super) {
|
|
|
219
219
|
return this.request(types_1.RPCMethod.SubmitBlock, params);
|
|
220
220
|
};
|
|
221
221
|
return RPC;
|
|
222
|
-
}(
|
|
222
|
+
}(http_1.HttpRPC));
|
|
223
223
|
exports.RPC = RPC;
|
|
224
224
|
exports["default"] = RPC;
|
|
@@ -17,7 +17,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
17
17
|
exports.__esModule = true;
|
|
18
18
|
exports.WS = exports.DaemonMethods = void 0;
|
|
19
19
|
var types_1 = require("./types");
|
|
20
|
-
var websocket_1 = require("../
|
|
20
|
+
var websocket_1 = require("../rpc/websocket");
|
|
21
21
|
var DaemonMethods = /** @class */ (function () {
|
|
22
22
|
function DaemonMethods(ws, prefix) {
|
|
23
23
|
if (prefix === void 0) { prefix = ""; }
|
|
@@ -285,6 +285,6 @@ var WS = /** @class */ (function (_super) {
|
|
|
285
285
|
return _this;
|
|
286
286
|
}
|
|
287
287
|
return WS;
|
|
288
|
-
}(websocket_1.
|
|
288
|
+
}(websocket_1.WSRPC));
|
|
289
289
|
exports.WS = WS;
|
|
290
290
|
exports["default"] = WS;
|
|
@@ -36,24 +36,29 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
exports.__esModule = true;
|
|
39
|
-
exports.
|
|
39
|
+
exports.HttpRPC = void 0;
|
|
40
40
|
var parse_json_1 = require("./parse_json/parse_json");
|
|
41
|
-
var
|
|
42
|
-
function
|
|
41
|
+
var HttpRPC = /** @class */ (function () {
|
|
42
|
+
function HttpRPC(endpoint) {
|
|
43
43
|
this.endpoint = endpoint;
|
|
44
44
|
this.timeout = 3000;
|
|
45
45
|
this.headers = new Headers();
|
|
46
46
|
this.headers.set("Content-Type", "application/json");
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
HttpRPC.prototype.batchRequest = function (requests) {
|
|
49
49
|
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var controller_1, body, timeoutId, res, jsonString, data, err_1;
|
|
50
|
+
var controller_1, id_1, body, timeoutId, res, jsonString, items_1, data, err_1;
|
|
51
51
|
return __generator(this, function (_a) {
|
|
52
52
|
switch (_a.label) {
|
|
53
53
|
case 0:
|
|
54
54
|
_a.trys.push([0, 5, , 6]);
|
|
55
55
|
controller_1 = new AbortController();
|
|
56
|
-
|
|
56
|
+
id_1 = 0;
|
|
57
|
+
requests.forEach(function (request) {
|
|
58
|
+
request.id = ++id_1;
|
|
59
|
+
request.jsonrpc = "2.0";
|
|
60
|
+
});
|
|
61
|
+
body = JSON.stringify(requests);
|
|
57
62
|
timeoutId = setTimeout(function () {
|
|
58
63
|
controller_1.abort();
|
|
59
64
|
}, this.timeout);
|
|
@@ -68,6 +73,52 @@ var RPC = /** @class */ (function () {
|
|
|
68
73
|
clearTimeout(timeoutId);
|
|
69
74
|
if (!res.ok) return [3 /*break*/, 3];
|
|
70
75
|
return [4 /*yield*/, res.text()];
|
|
76
|
+
case 2:
|
|
77
|
+
jsonString = _a.sent();
|
|
78
|
+
items_1 = [];
|
|
79
|
+
data = (0, parse_json_1.parseJSON)(jsonString);
|
|
80
|
+
data.forEach(function (item) {
|
|
81
|
+
if (item.error) {
|
|
82
|
+
items_1.push(new Error(item.error.message));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
items_1.push(item.result);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return [2 /*return*/, Promise.resolve(items_1)];
|
|
89
|
+
case 3: return [2 /*return*/, Promise.reject(new Error("".concat(res.status, " - ").concat(res.statusText)))];
|
|
90
|
+
case 4: return [3 /*break*/, 6];
|
|
91
|
+
case 5:
|
|
92
|
+
err_1 = _a.sent();
|
|
93
|
+
return [2 /*return*/, Promise.reject(err_1)];
|
|
94
|
+
case 6: return [2 /*return*/];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
HttpRPC.prototype.request = function (method, params) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
+
var controller_2, body, timeoutId, res, jsonString, data, err_2;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
_a.trys.push([0, 5, , 6]);
|
|
106
|
+
controller_2 = new AbortController();
|
|
107
|
+
body = JSON.stringify({ id: 1, jsonrpc: '2.0', method: method, params: params });
|
|
108
|
+
timeoutId = setTimeout(function () {
|
|
109
|
+
controller_2.abort();
|
|
110
|
+
}, this.timeout);
|
|
111
|
+
return [4 /*yield*/, fetch(this.endpoint, {
|
|
112
|
+
headers: this.headers,
|
|
113
|
+
method: "POST",
|
|
114
|
+
body: body,
|
|
115
|
+
signal: controller_2.signal
|
|
116
|
+
})];
|
|
117
|
+
case 1:
|
|
118
|
+
res = _a.sent();
|
|
119
|
+
clearTimeout(timeoutId);
|
|
120
|
+
if (!res.ok) return [3 /*break*/, 3];
|
|
121
|
+
return [4 /*yield*/, res.text()];
|
|
71
122
|
case 2:
|
|
72
123
|
jsonString = _a.sent();
|
|
73
124
|
data = (0, parse_json_1.parseJSON)(jsonString);
|
|
@@ -78,13 +129,13 @@ var RPC = /** @class */ (function () {
|
|
|
78
129
|
case 3: return [2 /*return*/, Promise.reject(new Error("".concat(res.status, " - ").concat(res.statusText)))];
|
|
79
130
|
case 4: return [3 /*break*/, 6];
|
|
80
131
|
case 5:
|
|
81
|
-
|
|
82
|
-
return [2 /*return*/, Promise.reject(
|
|
132
|
+
err_2 = _a.sent();
|
|
133
|
+
return [2 /*return*/, Promise.reject(err_2)];
|
|
83
134
|
case 6: return [2 /*return*/];
|
|
84
135
|
}
|
|
85
136
|
});
|
|
86
137
|
});
|
|
87
138
|
};
|
|
88
|
-
return
|
|
139
|
+
return HttpRPC;
|
|
89
140
|
}());
|
|
90
|
-
exports.
|
|
141
|
+
exports.HttpRPC = HttpRPC;
|
|
@@ -39,12 +39,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
exports.__esModule = true;
|
|
42
|
-
exports.
|
|
42
|
+
exports.WSRPC = void 0;
|
|
43
43
|
var isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
44
44
|
var await_to_js_1 = require("await-to-js");
|
|
45
45
|
var parse_json_1 = require("./parse_json/parse_json");
|
|
46
|
-
var
|
|
47
|
-
function
|
|
46
|
+
var WSRPC = /** @class */ (function () {
|
|
47
|
+
function WSRPC(options) {
|
|
48
48
|
this.connectionTries = 0;
|
|
49
49
|
this.methodIdIncrement = 0;
|
|
50
50
|
this.endpoint = "";
|
|
@@ -55,7 +55,7 @@ var WS = /** @class */ (function () {
|
|
|
55
55
|
this.reconnectOnConnectionLoss = true;
|
|
56
56
|
this.options = options;
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
WSRPC.prototype.connect = function (endpoint) {
|
|
59
59
|
var _this = this;
|
|
60
60
|
// force disconnect if already connected
|
|
61
61
|
if (this.socket && this.socket.readyState === isomorphic_ws_1["default"].OPEN) {
|
|
@@ -83,7 +83,7 @@ var WS = /** @class */ (function () {
|
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
};
|
|
86
|
-
|
|
86
|
+
WSRPC.prototype.tryReconnect = function () {
|
|
87
87
|
var _this = this;
|
|
88
88
|
this.connectionTries++;
|
|
89
89
|
if (this.connectionTries > this.maxConnectionTries) {
|
|
@@ -97,12 +97,12 @@ var WS = /** @class */ (function () {
|
|
|
97
97
|
_this.tryReconnect();
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
WSRPC.prototype.close = function () {
|
|
101
101
|
if (!this.socket)
|
|
102
102
|
return;
|
|
103
103
|
this.socket.close();
|
|
104
104
|
};
|
|
105
|
-
|
|
105
|
+
WSRPC.prototype.clearEvent = function (event) {
|
|
106
106
|
var _this = this;
|
|
107
107
|
var eventData = this.events.get(event);
|
|
108
108
|
if (eventData) {
|
|
@@ -112,14 +112,14 @@ var WS = /** @class */ (function () {
|
|
|
112
112
|
this.events["delete"](event);
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
|
-
|
|
115
|
+
WSRPC.prototype.closeAllListens = function (event) {
|
|
116
116
|
return __awaiter(this, void 0, void 0, function () {
|
|
117
117
|
var _a, err, _;
|
|
118
118
|
return __generator(this, function (_b) {
|
|
119
119
|
switch (_b.label) {
|
|
120
120
|
case 0:
|
|
121
121
|
if (!this.events.has(event)) return [3 /*break*/, 2];
|
|
122
|
-
return [4 /*yield*/, (0, await_to_js_1.to)(this.
|
|
122
|
+
return [4 /*yield*/, (0, await_to_js_1.to)(this.dataCall("unsubscribe", { notify: event }))];
|
|
123
123
|
case 1:
|
|
124
124
|
_a = _b.sent(), err = _a[0], _ = _a[1];
|
|
125
125
|
if (err)
|
|
@@ -131,31 +131,29 @@ var WS = /** @class */ (function () {
|
|
|
131
131
|
});
|
|
132
132
|
});
|
|
133
133
|
};
|
|
134
|
-
|
|
134
|
+
WSRPC.prototype.listenEvent = function (event, onData) {
|
|
135
135
|
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
-
var onMessage, eventData, _a, err,
|
|
136
|
+
var onMessage, eventData, idRefObject, _a, err, _, closeListen;
|
|
137
137
|
var _this = this;
|
|
138
138
|
return __generator(this, function (_b) {
|
|
139
139
|
switch (_b.label) {
|
|
140
140
|
case 0:
|
|
141
141
|
onMessage = function (msgEvent) {
|
|
142
142
|
var eventData = _this.events.get(event);
|
|
143
|
-
if (eventData) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (data.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
onData(msgEvent, data.result, undefined);
|
|
153
|
-
}
|
|
143
|
+
if (eventData && typeof msgEvent.data === "string") {
|
|
144
|
+
try {
|
|
145
|
+
var data = (0, parse_json_1.parseJSON)(msgEvent.data);
|
|
146
|
+
if (data.id === eventData.id) {
|
|
147
|
+
if (data.error) {
|
|
148
|
+
onData(msgEvent, undefined, new Error(data.error.message));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
onData(msgEvent, data.result, undefined);
|
|
154
152
|
}
|
|
155
153
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
154
|
+
}
|
|
155
|
+
catch (_a) {
|
|
156
|
+
// can't parse json -- do nothing
|
|
159
157
|
}
|
|
160
158
|
}
|
|
161
159
|
};
|
|
@@ -168,14 +166,16 @@ var WS = /** @class */ (function () {
|
|
|
168
166
|
}
|
|
169
167
|
eventData.listeners.push(onMessage);
|
|
170
168
|
return [3 /*break*/, 3];
|
|
171
|
-
case 1:
|
|
169
|
+
case 1:
|
|
170
|
+
idRefObject = {};
|
|
171
|
+
return [4 /*yield*/, (0, await_to_js_1.to)(this.dataCall("subscribe", { notify: event }, idRefObject))];
|
|
172
172
|
case 2:
|
|
173
|
-
_a = _b.sent(), err = _a[0],
|
|
173
|
+
_a = _b.sent(), err = _a[0], _ = _a[1];
|
|
174
174
|
if (err) {
|
|
175
175
|
this.clearEvent(event);
|
|
176
176
|
return [2 /*return*/, Promise.reject(err)];
|
|
177
177
|
}
|
|
178
|
-
this.events.set(event, { listeners: [onMessage], id:
|
|
178
|
+
this.events.set(event, { listeners: [onMessage], id: idRefObject.id });
|
|
179
179
|
_b.label = 3;
|
|
180
180
|
case 3:
|
|
181
181
|
this.socket && this.socket.addEventListener("message", onMessage);
|
|
@@ -195,7 +195,7 @@ var WS = /** @class */ (function () {
|
|
|
195
195
|
// we use a grace period to unsubscribe (mostly because of react useEffect and avoid unecessary subscribe)
|
|
196
196
|
eventData.unsubscribeTimeoutId = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
197
197
|
return __generator(this, function (_a) {
|
|
198
|
-
this.
|
|
198
|
+
this.dataCall("unsubscribe", { notify: event });
|
|
199
199
|
this.events["delete"](event);
|
|
200
200
|
return [2 /*return*/];
|
|
201
201
|
});
|
|
@@ -215,70 +215,110 @@ var WS = /** @class */ (function () {
|
|
|
215
215
|
});
|
|
216
216
|
});
|
|
217
217
|
};
|
|
218
|
-
|
|
218
|
+
WSRPC.prototype.batchCall = function (requests) {
|
|
219
|
+
var _this = this;
|
|
220
|
+
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
221
|
+
var id, data, _a, err, res, items;
|
|
222
|
+
return __generator(this, function (_b) {
|
|
223
|
+
switch (_b.label) {
|
|
224
|
+
case 0:
|
|
225
|
+
id = this.methodIdIncrement++;
|
|
226
|
+
requests.forEach(function (request) {
|
|
227
|
+
request.id = id;
|
|
228
|
+
request.jsonrpc = "2.0";
|
|
229
|
+
});
|
|
230
|
+
data = JSON.stringify(requests);
|
|
231
|
+
return [4 /*yield*/, (0, await_to_js_1.to)(this.rawCall(id, data))];
|
|
232
|
+
case 1:
|
|
233
|
+
_a = _b.sent(), err = _a[0], res = _a[1];
|
|
234
|
+
if (err)
|
|
235
|
+
return [2 /*return*/, reject(err)];
|
|
236
|
+
items = [];
|
|
237
|
+
res.forEach(function (v) {
|
|
238
|
+
if (v.error) {
|
|
239
|
+
items.push(new Error(v.error.message));
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
items.push(v.result);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
return [2 /*return*/, resolve(items)];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}); });
|
|
249
|
+
};
|
|
250
|
+
WSRPC.prototype.rawCall = function (id, body) {
|
|
219
251
|
var _this = this;
|
|
220
252
|
return new Promise(function (resolve, reject) {
|
|
221
253
|
if (!_this.socket)
|
|
222
254
|
return reject(new Error("Socket is not initialized."));
|
|
223
255
|
if (_this.socket.readyState !== isomorphic_ws_1["default"].OPEN)
|
|
224
256
|
return reject(new Error("Can't send msg. Socket is not opened."));
|
|
225
|
-
var requestMethod = _this.createRequestMethod(method, params);
|
|
226
|
-
// for XSWD we want to send the application data without request method wrapping
|
|
227
|
-
if (overwriteData) {
|
|
228
|
-
requestMethod.id = null;
|
|
229
|
-
requestMethod.data = overwriteData;
|
|
230
|
-
}
|
|
231
257
|
var timeoutId = null;
|
|
232
258
|
var onMessage = function (msgEvent) {
|
|
233
259
|
if (typeof msgEvent.data === "string") {
|
|
234
260
|
var data = (0, parse_json_1.parseJSON)(msgEvent.data);
|
|
235
|
-
|
|
261
|
+
console.log(data);
|
|
262
|
+
var valid = false;
|
|
263
|
+
if (Array.isArray(data) && data.length > 0 && data[0].id === id) {
|
|
264
|
+
//@ts-ignore
|
|
265
|
+
resolve(data);
|
|
266
|
+
valid = true;
|
|
267
|
+
}
|
|
268
|
+
else if (data.id === id) {
|
|
269
|
+
resolve(data);
|
|
270
|
+
valid = true;
|
|
271
|
+
}
|
|
272
|
+
else if (data.id === null && id === 0) {
|
|
273
|
+
// special case with xswd sending first call will return null id
|
|
274
|
+
resolve(data);
|
|
275
|
+
valid = true;
|
|
276
|
+
}
|
|
277
|
+
if (valid) {
|
|
236
278
|
clearTimeout(timeoutId);
|
|
237
279
|
_this.socket && _this.socket.removeEventListener("message", onMessage);
|
|
238
|
-
if (data.error)
|
|
239
|
-
return reject(new Error(data.error.message));
|
|
240
|
-
else
|
|
241
|
-
resolve(data);
|
|
242
280
|
}
|
|
243
281
|
}
|
|
244
282
|
};
|
|
245
|
-
|
|
246
|
-
_this.socket && _this.socket.addEventListener("message", onMessage); // we don't use { once: true } option because of timeout feature
|
|
283
|
+
_this.socket.addEventListener("message", onMessage);
|
|
247
284
|
if (_this.timeout > 0) {
|
|
248
285
|
timeoutId = setTimeout(function () {
|
|
249
286
|
_this.socket && _this.socket.removeEventListener("message", onMessage);
|
|
250
287
|
reject(new Error("timeout"));
|
|
251
288
|
}, _this.timeout);
|
|
252
289
|
}
|
|
253
|
-
if (_this.socket
|
|
254
|
-
_this.socket.send(
|
|
290
|
+
if (_this.socket.readyState === isomorphic_ws_1["default"].OPEN) {
|
|
291
|
+
_this.socket.send(body);
|
|
255
292
|
}
|
|
256
293
|
});
|
|
257
294
|
};
|
|
258
|
-
|
|
295
|
+
WSRPC.prototype.dataCall = function (method, params, idRefObj) {
|
|
259
296
|
var _this = this;
|
|
260
297
|
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
261
|
-
var _a, err, res;
|
|
298
|
+
var id, request, data, _a, err, res;
|
|
262
299
|
return __generator(this, function (_b) {
|
|
263
300
|
switch (_b.label) {
|
|
264
|
-
case 0:
|
|
301
|
+
case 0:
|
|
302
|
+
id = this.methodIdIncrement++;
|
|
303
|
+
if (idRefObj)
|
|
304
|
+
idRefObj.id = id;
|
|
305
|
+
request = { id: id, jsonrpc: "2.0", method: method };
|
|
306
|
+
if (params)
|
|
307
|
+
request.params = params;
|
|
308
|
+
data = JSON.stringify(request);
|
|
309
|
+
return [4 /*yield*/, (0, await_to_js_1.to)(this.rawCall(id, data))];
|
|
265
310
|
case 1:
|
|
266
311
|
_a = _b.sent(), err = _a[0], res = _a[1];
|
|
267
312
|
if (err)
|
|
268
313
|
return [2 /*return*/, reject(err)];
|
|
314
|
+
if (res.error) {
|
|
315
|
+
return [2 /*return*/, reject(res.error.message)];
|
|
316
|
+
}
|
|
269
317
|
return [2 /*return*/, resolve(res.result)];
|
|
270
318
|
}
|
|
271
319
|
});
|
|
272
320
|
}); });
|
|
273
321
|
};
|
|
274
|
-
|
|
275
|
-
var id = this.methodIdIncrement++;
|
|
276
|
-
var request = { id: id, jsonrpc: "2.0", method: method };
|
|
277
|
-
if (params)
|
|
278
|
-
request.params = params;
|
|
279
|
-
var data = JSON.stringify(request);
|
|
280
|
-
return { data: data, id: id };
|
|
281
|
-
};
|
|
282
|
-
return WS;
|
|
322
|
+
return WSRPC;
|
|
283
323
|
}());
|
|
284
|
-
exports.
|
|
324
|
+
exports.WSRPC = WSRPC;
|
package/dist/cjs/wallet/rpc.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.__esModule = true;
|
|
|
18
18
|
exports.RPC = void 0;
|
|
19
19
|
var js_base64_1 = require("js-base64");
|
|
20
20
|
var types_1 = require("./types");
|
|
21
|
-
var
|
|
21
|
+
var http_1 = require("../rpc/http");
|
|
22
22
|
var RPC = /** @class */ (function (_super) {
|
|
23
23
|
__extends(RPC, _super);
|
|
24
24
|
function RPC(endpoint, username, password) {
|
|
@@ -143,6 +143,6 @@ var RPC = /** @class */ (function (_super) {
|
|
|
143
143
|
return this.request(types_1.RPCMethod.QueryDB, params);
|
|
144
144
|
};
|
|
145
145
|
return RPC;
|
|
146
|
-
}(
|
|
146
|
+
}(http_1.HttpRPC));
|
|
147
147
|
exports.RPC = RPC;
|
|
148
148
|
exports["default"] = RPC;
|
|
@@ -16,7 +16,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
16
16
|
})();
|
|
17
17
|
exports.__esModule = true;
|
|
18
18
|
exports.WS = exports.WalletMethods = void 0;
|
|
19
|
-
var websocket_1 = require("../
|
|
19
|
+
var websocket_1 = require("../rpc/websocket");
|
|
20
20
|
var types_1 = require("./types");
|
|
21
21
|
var WalletMethods = /** @class */ (function () {
|
|
22
22
|
function WalletMethods(ws, prefix) {
|
|
@@ -177,6 +177,6 @@ var WS = /** @class */ (function (_super) {
|
|
|
177
177
|
return _this;
|
|
178
178
|
}
|
|
179
179
|
return WS;
|
|
180
|
-
}(websocket_1.
|
|
180
|
+
}(websocket_1.WSRPC));
|
|
181
181
|
exports.WS = WS;
|
|
182
182
|
exports["default"] = WS;
|
|
@@ -16,7 +16,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
16
16
|
})();
|
|
17
17
|
exports.__esModule = true;
|
|
18
18
|
exports.WS = void 0;
|
|
19
|
-
var websocket_1 = require("../
|
|
19
|
+
var websocket_1 = require("../rpc/websocket");
|
|
20
20
|
var websocket_2 = require("../daemon/websocket");
|
|
21
21
|
var websocket_3 = require("../wallet/websocket");
|
|
22
22
|
var WS = /** @class */ (function (_super) {
|
|
@@ -30,9 +30,9 @@ var WS = /** @class */ (function (_super) {
|
|
|
30
30
|
}
|
|
31
31
|
WS.prototype.authorize = function (app) {
|
|
32
32
|
var data = JSON.stringify(app);
|
|
33
|
-
return this.
|
|
33
|
+
return this.rawCall(0, data);
|
|
34
34
|
};
|
|
35
35
|
return WS;
|
|
36
|
-
}(websocket_1.
|
|
36
|
+
}(websocket_1.WSRPC));
|
|
37
37
|
exports.WS = WS;
|
|
38
38
|
exports["default"] = WS;
|
package/dist/esm/daemon/rpc.js
CHANGED
|
@@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
16
|
import { RPCMethod } from './types.js';
|
|
17
|
-
import {
|
|
17
|
+
import { HttpRPC } from '../rpc/http.js';
|
|
18
18
|
var RPC = /** @class */ (function (_super) {
|
|
19
19
|
__extends(RPC, _super);
|
|
20
20
|
function RPC() {
|
|
@@ -216,6 +216,6 @@ var RPC = /** @class */ (function (_super) {
|
|
|
216
216
|
return this.request(RPCMethod.SubmitBlock, params);
|
|
217
217
|
};
|
|
218
218
|
return RPC;
|
|
219
|
-
}(
|
|
219
|
+
}(HttpRPC));
|
|
220
220
|
export { RPC };
|
|
221
221
|
export default RPC;
|
|
@@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
16
|
import { RPCMethod, RPCEvent } from './types.js';
|
|
17
|
-
import {
|
|
17
|
+
import { WSRPC } from '../rpc/websocket.js';
|
|
18
18
|
var DaemonMethods = /** @class */ (function () {
|
|
19
19
|
function DaemonMethods(ws, prefix) {
|
|
20
20
|
if (prefix === void 0) { prefix = ""; }
|
|
@@ -282,6 +282,6 @@ var WS = /** @class */ (function (_super) {
|
|
|
282
282
|
return _this;
|
|
283
283
|
}
|
|
284
284
|
return WS;
|
|
285
|
-
}(
|
|
285
|
+
}(WSRPC));
|
|
286
286
|
export { WS };
|
|
287
287
|
export default WS;
|
|
@@ -35,22 +35,27 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import { parseJSON } from './parse_json/parse_json.js';
|
|
38
|
-
var
|
|
39
|
-
function
|
|
38
|
+
var HttpRPC = /** @class */ (function () {
|
|
39
|
+
function HttpRPC(endpoint) {
|
|
40
40
|
this.endpoint = endpoint;
|
|
41
41
|
this.timeout = 3000;
|
|
42
42
|
this.headers = new Headers();
|
|
43
43
|
this.headers.set("Content-Type", "application/json");
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
HttpRPC.prototype.batchRequest = function (requests) {
|
|
46
46
|
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
var controller_1, body, timeoutId, res, jsonString, data, err_1;
|
|
47
|
+
var controller_1, id_1, body, timeoutId, res, jsonString, items_1, data, err_1;
|
|
48
48
|
return __generator(this, function (_a) {
|
|
49
49
|
switch (_a.label) {
|
|
50
50
|
case 0:
|
|
51
51
|
_a.trys.push([0, 5, , 6]);
|
|
52
52
|
controller_1 = new AbortController();
|
|
53
|
-
|
|
53
|
+
id_1 = 0;
|
|
54
|
+
requests.forEach(function (request) {
|
|
55
|
+
request.id = ++id_1;
|
|
56
|
+
request.jsonrpc = "2.0";
|
|
57
|
+
});
|
|
58
|
+
body = JSON.stringify(requests);
|
|
54
59
|
timeoutId = setTimeout(function () {
|
|
55
60
|
controller_1.abort();
|
|
56
61
|
}, this.timeout);
|
|
@@ -65,6 +70,52 @@ var RPC = /** @class */ (function () {
|
|
|
65
70
|
clearTimeout(timeoutId);
|
|
66
71
|
if (!res.ok) return [3 /*break*/, 3];
|
|
67
72
|
return [4 /*yield*/, res.text()];
|
|
73
|
+
case 2:
|
|
74
|
+
jsonString = _a.sent();
|
|
75
|
+
items_1 = [];
|
|
76
|
+
data = parseJSON(jsonString);
|
|
77
|
+
data.forEach(function (item) {
|
|
78
|
+
if (item.error) {
|
|
79
|
+
items_1.push(new Error(item.error.message));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
items_1.push(item.result);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return [2 /*return*/, Promise.resolve(items_1)];
|
|
86
|
+
case 3: return [2 /*return*/, Promise.reject(new Error("".concat(res.status, " - ").concat(res.statusText)))];
|
|
87
|
+
case 4: return [3 /*break*/, 6];
|
|
88
|
+
case 5:
|
|
89
|
+
err_1 = _a.sent();
|
|
90
|
+
return [2 /*return*/, Promise.reject(err_1)];
|
|
91
|
+
case 6: return [2 /*return*/];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
HttpRPC.prototype.request = function (method, params) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
98
|
+
var controller_2, body, timeoutId, res, jsonString, data, err_2;
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
_a.trys.push([0, 5, , 6]);
|
|
103
|
+
controller_2 = new AbortController();
|
|
104
|
+
body = JSON.stringify({ id: 1, jsonrpc: '2.0', method: method, params: params });
|
|
105
|
+
timeoutId = setTimeout(function () {
|
|
106
|
+
controller_2.abort();
|
|
107
|
+
}, this.timeout);
|
|
108
|
+
return [4 /*yield*/, fetch(this.endpoint, {
|
|
109
|
+
headers: this.headers,
|
|
110
|
+
method: "POST",
|
|
111
|
+
body: body,
|
|
112
|
+
signal: controller_2.signal
|
|
113
|
+
})];
|
|
114
|
+
case 1:
|
|
115
|
+
res = _a.sent();
|
|
116
|
+
clearTimeout(timeoutId);
|
|
117
|
+
if (!res.ok) return [3 /*break*/, 3];
|
|
118
|
+
return [4 /*yield*/, res.text()];
|
|
68
119
|
case 2:
|
|
69
120
|
jsonString = _a.sent();
|
|
70
121
|
data = parseJSON(jsonString);
|
|
@@ -75,13 +126,13 @@ var RPC = /** @class */ (function () {
|
|
|
75
126
|
case 3: return [2 /*return*/, Promise.reject(new Error("".concat(res.status, " - ").concat(res.statusText)))];
|
|
76
127
|
case 4: return [3 /*break*/, 6];
|
|
77
128
|
case 5:
|
|
78
|
-
|
|
79
|
-
return [2 /*return*/, Promise.reject(
|
|
129
|
+
err_2 = _a.sent();
|
|
130
|
+
return [2 /*return*/, Promise.reject(err_2)];
|
|
80
131
|
case 6: return [2 /*return*/];
|
|
81
132
|
}
|
|
82
133
|
});
|
|
83
134
|
});
|
|
84
135
|
};
|
|
85
|
-
return
|
|
136
|
+
return HttpRPC;
|
|
86
137
|
}());
|
|
87
|
-
export {
|
|
138
|
+
export { HttpRPC };
|
|
@@ -37,8 +37,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
import WebSocket from 'isomorphic-ws';
|
|
38
38
|
import { to } from 'await-to-js';
|
|
39
39
|
import { parseJSON } from './parse_json/parse_json.js';
|
|
40
|
-
var
|
|
41
|
-
function
|
|
40
|
+
var WSRPC = /** @class */ (function () {
|
|
41
|
+
function WSRPC(options) {
|
|
42
42
|
this.connectionTries = 0;
|
|
43
43
|
this.methodIdIncrement = 0;
|
|
44
44
|
this.endpoint = "";
|
|
@@ -49,7 +49,7 @@ var WS = /** @class */ (function () {
|
|
|
49
49
|
this.reconnectOnConnectionLoss = true;
|
|
50
50
|
this.options = options;
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
WSRPC.prototype.connect = function (endpoint) {
|
|
53
53
|
var _this = this;
|
|
54
54
|
// force disconnect if already connected
|
|
55
55
|
if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
@@ -77,7 +77,7 @@ var WS = /** @class */ (function () {
|
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
WSRPC.prototype.tryReconnect = function () {
|
|
81
81
|
var _this = this;
|
|
82
82
|
this.connectionTries++;
|
|
83
83
|
if (this.connectionTries > this.maxConnectionTries) {
|
|
@@ -91,12 +91,12 @@ var WS = /** @class */ (function () {
|
|
|
91
91
|
_this.tryReconnect();
|
|
92
92
|
});
|
|
93
93
|
};
|
|
94
|
-
|
|
94
|
+
WSRPC.prototype.close = function () {
|
|
95
95
|
if (!this.socket)
|
|
96
96
|
return;
|
|
97
97
|
this.socket.close();
|
|
98
98
|
};
|
|
99
|
-
|
|
99
|
+
WSRPC.prototype.clearEvent = function (event) {
|
|
100
100
|
var _this = this;
|
|
101
101
|
var eventData = this.events.get(event);
|
|
102
102
|
if (eventData) {
|
|
@@ -106,14 +106,14 @@ var WS = /** @class */ (function () {
|
|
|
106
106
|
this.events["delete"](event);
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
|
-
|
|
109
|
+
WSRPC.prototype.closeAllListens = function (event) {
|
|
110
110
|
return __awaiter(this, void 0, void 0, function () {
|
|
111
111
|
var _a, err, _;
|
|
112
112
|
return __generator(this, function (_b) {
|
|
113
113
|
switch (_b.label) {
|
|
114
114
|
case 0:
|
|
115
115
|
if (!this.events.has(event)) return [3 /*break*/, 2];
|
|
116
|
-
return [4 /*yield*/, to(this.
|
|
116
|
+
return [4 /*yield*/, to(this.dataCall("unsubscribe", { notify: event }))];
|
|
117
117
|
case 1:
|
|
118
118
|
_a = _b.sent(), err = _a[0], _ = _a[1];
|
|
119
119
|
if (err)
|
|
@@ -125,31 +125,29 @@ var WS = /** @class */ (function () {
|
|
|
125
125
|
});
|
|
126
126
|
});
|
|
127
127
|
};
|
|
128
|
-
|
|
128
|
+
WSRPC.prototype.listenEvent = function (event, onData) {
|
|
129
129
|
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
-
var onMessage, eventData, _a, err,
|
|
130
|
+
var onMessage, eventData, idRefObject, _a, err, _, closeListen;
|
|
131
131
|
var _this = this;
|
|
132
132
|
return __generator(this, function (_b) {
|
|
133
133
|
switch (_b.label) {
|
|
134
134
|
case 0:
|
|
135
135
|
onMessage = function (msgEvent) {
|
|
136
136
|
var eventData = _this.events.get(event);
|
|
137
|
-
if (eventData) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (data.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
onData(msgEvent, data.result, undefined);
|
|
147
|
-
}
|
|
137
|
+
if (eventData && typeof msgEvent.data === "string") {
|
|
138
|
+
try {
|
|
139
|
+
var data = parseJSON(msgEvent.data);
|
|
140
|
+
if (data.id === eventData.id) {
|
|
141
|
+
if (data.error) {
|
|
142
|
+
onData(msgEvent, undefined, new Error(data.error.message));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
onData(msgEvent, data.result, undefined);
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
148
|
+
}
|
|
149
|
+
catch (_a) {
|
|
150
|
+
// can't parse json -- do nothing
|
|
153
151
|
}
|
|
154
152
|
}
|
|
155
153
|
};
|
|
@@ -162,14 +160,16 @@ var WS = /** @class */ (function () {
|
|
|
162
160
|
}
|
|
163
161
|
eventData.listeners.push(onMessage);
|
|
164
162
|
return [3 /*break*/, 3];
|
|
165
|
-
case 1:
|
|
163
|
+
case 1:
|
|
164
|
+
idRefObject = {};
|
|
165
|
+
return [4 /*yield*/, to(this.dataCall("subscribe", { notify: event }, idRefObject))];
|
|
166
166
|
case 2:
|
|
167
|
-
_a = _b.sent(), err = _a[0],
|
|
167
|
+
_a = _b.sent(), err = _a[0], _ = _a[1];
|
|
168
168
|
if (err) {
|
|
169
169
|
this.clearEvent(event);
|
|
170
170
|
return [2 /*return*/, Promise.reject(err)];
|
|
171
171
|
}
|
|
172
|
-
this.events.set(event, { listeners: [onMessage], id:
|
|
172
|
+
this.events.set(event, { listeners: [onMessage], id: idRefObject.id });
|
|
173
173
|
_b.label = 3;
|
|
174
174
|
case 3:
|
|
175
175
|
this.socket && this.socket.addEventListener("message", onMessage);
|
|
@@ -189,7 +189,7 @@ var WS = /** @class */ (function () {
|
|
|
189
189
|
// we use a grace period to unsubscribe (mostly because of react useEffect and avoid unecessary subscribe)
|
|
190
190
|
eventData.unsubscribeTimeoutId = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
191
191
|
return __generator(this, function (_a) {
|
|
192
|
-
this.
|
|
192
|
+
this.dataCall("unsubscribe", { notify: event });
|
|
193
193
|
this.events["delete"](event);
|
|
194
194
|
return [2 /*return*/];
|
|
195
195
|
});
|
|
@@ -209,70 +209,110 @@ var WS = /** @class */ (function () {
|
|
|
209
209
|
});
|
|
210
210
|
});
|
|
211
211
|
};
|
|
212
|
-
|
|
212
|
+
WSRPC.prototype.batchCall = function (requests) {
|
|
213
|
+
var _this = this;
|
|
214
|
+
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
215
|
+
var id, data, _a, err, res, items;
|
|
216
|
+
return __generator(this, function (_b) {
|
|
217
|
+
switch (_b.label) {
|
|
218
|
+
case 0:
|
|
219
|
+
id = this.methodIdIncrement++;
|
|
220
|
+
requests.forEach(function (request) {
|
|
221
|
+
request.id = id;
|
|
222
|
+
request.jsonrpc = "2.0";
|
|
223
|
+
});
|
|
224
|
+
data = JSON.stringify(requests);
|
|
225
|
+
return [4 /*yield*/, to(this.rawCall(id, data))];
|
|
226
|
+
case 1:
|
|
227
|
+
_a = _b.sent(), err = _a[0], res = _a[1];
|
|
228
|
+
if (err)
|
|
229
|
+
return [2 /*return*/, reject(err)];
|
|
230
|
+
items = [];
|
|
231
|
+
res.forEach(function (v) {
|
|
232
|
+
if (v.error) {
|
|
233
|
+
items.push(new Error(v.error.message));
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
items.push(v.result);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
return [2 /*return*/, resolve(items)];
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}); });
|
|
243
|
+
};
|
|
244
|
+
WSRPC.prototype.rawCall = function (id, body) {
|
|
213
245
|
var _this = this;
|
|
214
246
|
return new Promise(function (resolve, reject) {
|
|
215
247
|
if (!_this.socket)
|
|
216
248
|
return reject(new Error("Socket is not initialized."));
|
|
217
249
|
if (_this.socket.readyState !== WebSocket.OPEN)
|
|
218
250
|
return reject(new Error("Can't send msg. Socket is not opened."));
|
|
219
|
-
var requestMethod = _this.createRequestMethod(method, params);
|
|
220
|
-
// for XSWD we want to send the application data without request method wrapping
|
|
221
|
-
if (overwriteData) {
|
|
222
|
-
requestMethod.id = null;
|
|
223
|
-
requestMethod.data = overwriteData;
|
|
224
|
-
}
|
|
225
251
|
var timeoutId = null;
|
|
226
252
|
var onMessage = function (msgEvent) {
|
|
227
253
|
if (typeof msgEvent.data === "string") {
|
|
228
254
|
var data = parseJSON(msgEvent.data);
|
|
229
|
-
|
|
255
|
+
console.log(data);
|
|
256
|
+
var valid = false;
|
|
257
|
+
if (Array.isArray(data) && data.length > 0 && data[0].id === id) {
|
|
258
|
+
//@ts-ignore
|
|
259
|
+
resolve(data);
|
|
260
|
+
valid = true;
|
|
261
|
+
}
|
|
262
|
+
else if (data.id === id) {
|
|
263
|
+
resolve(data);
|
|
264
|
+
valid = true;
|
|
265
|
+
}
|
|
266
|
+
else if (data.id === null && id === 0) {
|
|
267
|
+
// special case with xswd sending first call will return null id
|
|
268
|
+
resolve(data);
|
|
269
|
+
valid = true;
|
|
270
|
+
}
|
|
271
|
+
if (valid) {
|
|
230
272
|
clearTimeout(timeoutId);
|
|
231
273
|
_this.socket && _this.socket.removeEventListener("message", onMessage);
|
|
232
|
-
if (data.error)
|
|
233
|
-
return reject(new Error(data.error.message));
|
|
234
|
-
else
|
|
235
|
-
resolve(data);
|
|
236
274
|
}
|
|
237
275
|
}
|
|
238
276
|
};
|
|
239
|
-
|
|
240
|
-
_this.socket && _this.socket.addEventListener("message", onMessage); // we don't use { once: true } option because of timeout feature
|
|
277
|
+
_this.socket.addEventListener("message", onMessage);
|
|
241
278
|
if (_this.timeout > 0) {
|
|
242
279
|
timeoutId = setTimeout(function () {
|
|
243
280
|
_this.socket && _this.socket.removeEventListener("message", onMessage);
|
|
244
281
|
reject(new Error("timeout"));
|
|
245
282
|
}, _this.timeout);
|
|
246
283
|
}
|
|
247
|
-
if (_this.socket
|
|
248
|
-
_this.socket.send(
|
|
284
|
+
if (_this.socket.readyState === WebSocket.OPEN) {
|
|
285
|
+
_this.socket.send(body);
|
|
249
286
|
}
|
|
250
287
|
});
|
|
251
288
|
};
|
|
252
|
-
|
|
289
|
+
WSRPC.prototype.dataCall = function (method, params, idRefObj) {
|
|
253
290
|
var _this = this;
|
|
254
291
|
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
255
|
-
var _a, err, res;
|
|
292
|
+
var id, request, data, _a, err, res;
|
|
256
293
|
return __generator(this, function (_b) {
|
|
257
294
|
switch (_b.label) {
|
|
258
|
-
case 0:
|
|
295
|
+
case 0:
|
|
296
|
+
id = this.methodIdIncrement++;
|
|
297
|
+
if (idRefObj)
|
|
298
|
+
idRefObj.id = id;
|
|
299
|
+
request = { id: id, jsonrpc: "2.0", method: method };
|
|
300
|
+
if (params)
|
|
301
|
+
request.params = params;
|
|
302
|
+
data = JSON.stringify(request);
|
|
303
|
+
return [4 /*yield*/, to(this.rawCall(id, data))];
|
|
259
304
|
case 1:
|
|
260
305
|
_a = _b.sent(), err = _a[0], res = _a[1];
|
|
261
306
|
if (err)
|
|
262
307
|
return [2 /*return*/, reject(err)];
|
|
308
|
+
if (res.error) {
|
|
309
|
+
return [2 /*return*/, reject(res.error.message)];
|
|
310
|
+
}
|
|
263
311
|
return [2 /*return*/, resolve(res.result)];
|
|
264
312
|
}
|
|
265
313
|
});
|
|
266
314
|
}); });
|
|
267
315
|
};
|
|
268
|
-
|
|
269
|
-
var id = this.methodIdIncrement++;
|
|
270
|
-
var request = { id: id, jsonrpc: "2.0", method: method };
|
|
271
|
-
if (params)
|
|
272
|
-
request.params = params;
|
|
273
|
-
var data = JSON.stringify(request);
|
|
274
|
-
return { data: data, id: id };
|
|
275
|
-
};
|
|
276
|
-
return WS;
|
|
316
|
+
return WSRPC;
|
|
277
317
|
}());
|
|
278
|
-
export {
|
|
318
|
+
export { WSRPC };
|
package/dist/esm/wallet/rpc.js
CHANGED
|
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
})();
|
|
16
16
|
import { Base64 } from 'js-base64';
|
|
17
17
|
import { RPCMethod } from './types.js';
|
|
18
|
-
import {
|
|
18
|
+
import { HttpRPC } from '../rpc/http.js';
|
|
19
19
|
var RPC = /** @class */ (function (_super) {
|
|
20
20
|
__extends(RPC, _super);
|
|
21
21
|
function RPC(endpoint, username, password) {
|
|
@@ -140,6 +140,6 @@ var RPC = /** @class */ (function (_super) {
|
|
|
140
140
|
return this.request(RPCMethod.QueryDB, params);
|
|
141
141
|
};
|
|
142
142
|
return RPC;
|
|
143
|
-
}(
|
|
143
|
+
}(HttpRPC));
|
|
144
144
|
export { RPC };
|
|
145
145
|
export default RPC;
|
|
@@ -13,7 +13,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
13
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
-
import {
|
|
16
|
+
import { WSRPC } from '../rpc/websocket.js';
|
|
17
17
|
import { RPCMethod, RPCEvent } from './types.js';
|
|
18
18
|
var WalletMethods = /** @class */ (function () {
|
|
19
19
|
function WalletMethods(ws, prefix) {
|
|
@@ -174,6 +174,6 @@ var WS = /** @class */ (function (_super) {
|
|
|
174
174
|
return _this;
|
|
175
175
|
}
|
|
176
176
|
return WS;
|
|
177
|
-
}(
|
|
177
|
+
}(WSRPC));
|
|
178
178
|
export { WS };
|
|
179
179
|
export default WS;
|
|
@@ -13,7 +13,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
13
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
-
import {
|
|
16
|
+
import { WSRPC } from '../rpc/websocket.js';
|
|
17
17
|
import { DaemonMethods } from '../daemon/websocket.js';
|
|
18
18
|
import { WalletMethods } from '../wallet/websocket.js';
|
|
19
19
|
var WS = /** @class */ (function (_super) {
|
|
@@ -27,9 +27,9 @@ var WS = /** @class */ (function (_super) {
|
|
|
27
27
|
}
|
|
28
28
|
WS.prototype.authorize = function (app) {
|
|
29
29
|
var data = JSON.stringify(app);
|
|
30
|
-
return this.
|
|
30
|
+
return this.rawCall(0, data);
|
|
31
31
|
};
|
|
32
32
|
return WS;
|
|
33
|
-
}(
|
|
33
|
+
}(WSRPC));
|
|
34
34
|
export { WS };
|
|
35
35
|
export default WS;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as types from './types';
|
|
2
|
-
import {
|
|
3
|
-
export declare class RPC extends
|
|
2
|
+
import { HttpRPC } from '../rpc/http';
|
|
3
|
+
export declare class RPC extends HttpRPC {
|
|
4
4
|
getVersion(): Promise<string>;
|
|
5
5
|
getHeight(): Promise<number>;
|
|
6
6
|
getTopoheight(): Promise<number>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MessageEvent } from 'ws';
|
|
2
2
|
import * as types from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { WSRPC } from '../rpc/websocket';
|
|
4
4
|
export declare class DaemonMethods {
|
|
5
|
-
ws:
|
|
5
|
+
ws: WSRPC;
|
|
6
6
|
prefix: string;
|
|
7
|
-
constructor(ws:
|
|
7
|
+
constructor(ws: WSRPC, prefix?: string);
|
|
8
8
|
dataCall<T>(method: string, params?: any): Promise<T>;
|
|
9
9
|
onNewBlock(onData: (msgEvent: MessageEvent, data?: types.Block & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
|
|
10
10
|
onBlockOrdered(onData: (msgEvent: MessageEvent, data?: types.BlockOrdered & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
|
|
@@ -89,7 +89,7 @@ export declare class DaemonMethods {
|
|
|
89
89
|
getMinerWork(params: types.GetMinerWorkParams): Promise<types.GetMinerWorkResult>;
|
|
90
90
|
submitBlock(params: types.SubmitBlockParams): Promise<boolean>;
|
|
91
91
|
}
|
|
92
|
-
export declare class WS extends
|
|
92
|
+
export declare class WS extends WSRPC {
|
|
93
93
|
methods: DaemonMethods;
|
|
94
94
|
constructor();
|
|
95
95
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { RPCRequest } from './types';
|
|
2
|
+
export declare class HttpRPC {
|
|
2
3
|
endpoint: string;
|
|
3
4
|
timeout: number;
|
|
4
5
|
headers: Headers;
|
|
5
6
|
constructor(endpoint: string);
|
|
7
|
+
batchRequest(requests: RPCRequest[]): Promise<any | Error[]>;
|
|
6
8
|
request<T>(method: string, params?: any): Promise<T>;
|
|
7
9
|
}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
import { ClientOptions, MessageEvent } from 'ws';
|
|
3
3
|
import WebSocket from 'isomorphic-ws';
|
|
4
4
|
import { ClientRequestArgs } from 'http';
|
|
5
|
-
import {
|
|
5
|
+
import { RPCRequest } from './types';
|
|
6
6
|
export type EventWithParams = {
|
|
7
7
|
[event: string]: {};
|
|
8
8
|
};
|
|
9
9
|
export type EventKey = string | EventWithParams;
|
|
10
|
-
export
|
|
10
|
+
export type IdRefObj = {
|
|
11
|
+
id?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare class WSRPC {
|
|
11
14
|
endpoint: string;
|
|
12
15
|
socket?: WebSocket;
|
|
13
16
|
timeout: number;
|
|
@@ -25,10 +28,7 @@ export declare class WS {
|
|
|
25
28
|
private clearEvent;
|
|
26
29
|
closeAllListens(event: EventKey): Promise<void>;
|
|
27
30
|
listenEvent<T>(event: EventKey, onData: (msgEvent: MessageEvent, data?: T, err?: Error) => void): Promise<() => Promise<void>>;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
data: string;
|
|
32
|
-
id: number | null;
|
|
33
|
-
};
|
|
31
|
+
batchCall(requests: RPCRequest[]): Promise<any[]>;
|
|
32
|
+
rawCall<T>(id: number, body: string): Promise<T>;
|
|
33
|
+
dataCall<T>(method: string, params?: any, idRefObj?: IdRefObj): Promise<T>;
|
|
34
34
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as daemonTypes from '../daemon/types';
|
|
2
2
|
import * as types from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { HttpRPC } from '../rpc/http';
|
|
4
4
|
import { Element } from '../data/element';
|
|
5
|
-
export declare class RPC extends
|
|
5
|
+
export declare class RPC extends HttpRPC {
|
|
6
6
|
constructor(endpoint: string, username: string, password: string);
|
|
7
7
|
getVersion(): Promise<string>;
|
|
8
8
|
getNetwork(): Promise<string>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WSRPC } from '../rpc/websocket';
|
|
2
2
|
import { MessageEvent } from 'ws';
|
|
3
3
|
import { RPCEventResult } from '../daemon/types';
|
|
4
4
|
import * as daemonTypes from '../daemon/types';
|
|
5
5
|
import * as types from './types';
|
|
6
6
|
import { Element } from '../data/element';
|
|
7
7
|
export declare class WalletMethods {
|
|
8
|
-
ws:
|
|
8
|
+
ws: WSRPC;
|
|
9
9
|
prefix: string;
|
|
10
|
-
constructor(ws:
|
|
10
|
+
constructor(ws: WSRPC, prefix?: string);
|
|
11
11
|
dataCall<T>(method: string, params?: any): Promise<T>;
|
|
12
12
|
onNewTopoheight(onData: (msgEvent: MessageEvent, data?: types.NewTopoheightResult & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
|
|
13
13
|
onNewAsset(onData: (msgEvent: MessageEvent, data?: daemonTypes.AssetWithData & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
|
|
@@ -58,7 +58,7 @@ export declare class WalletMethods {
|
|
|
58
58
|
hasKey(params: types.HasKeyParams): Promise<boolean>;
|
|
59
59
|
queryDB(params: types.QueryDBParams): Promise<types.QueryResult>;
|
|
60
60
|
}
|
|
61
|
-
export declare class WS extends
|
|
61
|
+
export declare class WS extends WSRPC {
|
|
62
62
|
methods: WalletMethods;
|
|
63
63
|
constructor(username: string, password: string);
|
|
64
64
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WSRPC } from '../rpc/websocket';
|
|
2
2
|
import { ApplicationData } from '../wallet/types';
|
|
3
3
|
import { DaemonMethods } from '../daemon/websocket';
|
|
4
4
|
import { WalletMethods } from '../wallet/websocket';
|
|
5
|
-
export declare class WS extends
|
|
5
|
+
export declare class WS extends WSRPC {
|
|
6
6
|
daemon: DaemonMethods;
|
|
7
7
|
wallet: WalletMethods;
|
|
8
8
|
constructor();
|
|
9
|
-
authorize(app: ApplicationData): Promise<
|
|
9
|
+
authorize(app: ApplicationData): Promise<unknown>;
|
|
10
10
|
}
|
|
11
11
|
export default WS;
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|