@pioneer-platform/blockbook 8.1.52 → 8.1.53
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/lib/index.d.ts +6 -1
- package/lib/index.js +149 -75
- package/package.json +4 -2
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
declare const TAG = " | blockbook-client | ";
|
|
2
|
+
declare let pioneerApi: any;
|
|
3
|
+
declare const Blockbook: any;
|
|
2
4
|
declare const log: any;
|
|
3
5
|
declare const fakeUa: any;
|
|
4
6
|
declare const Axios: any;
|
|
@@ -6,6 +8,10 @@ declare const https: any;
|
|
|
6
8
|
declare const axios: any;
|
|
7
9
|
declare const axiosRetry: any;
|
|
8
10
|
declare let BLOCKBOOK_URLS: any;
|
|
11
|
+
declare let BLOCKBOOK_SOCKETS: any;
|
|
12
|
+
declare let spec: string;
|
|
13
|
+
declare let init_network: (servers?: any) => Promise<boolean>;
|
|
14
|
+
declare let get_fees: (coin: string) => Promise<any>;
|
|
9
15
|
declare let get_info_by_pubkey: (coin: string, pubkey: string, page?: string | undefined) => Promise<any>;
|
|
10
16
|
declare let get_txids_by_address: (coin: string, address: string, page?: number) => Promise<any>;
|
|
11
17
|
declare let get_info_by_address: (coin: string, address: string, filter?: string) => Promise<any>;
|
|
@@ -14,5 +20,4 @@ declare let broadcast_transaction: (coin: string, hex: string) => Promise<any>;
|
|
|
14
20
|
declare let get_transaction: (coin: string, txid: string) => Promise<any>;
|
|
15
21
|
declare let get_utxos_by_xpub: (coin: string, xpub: string) => Promise<any>;
|
|
16
22
|
declare let get_balance_by_xpub: (coin: string, xpub: any) => Promise<number | undefined>;
|
|
17
|
-
declare let init_network: (servers: any, runtime?: string) => boolean;
|
|
18
23
|
declare let get_node_info: () => Promise<true | undefined>;
|
package/lib/index.js
CHANGED
|
@@ -40,6 +40,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
var TAG = " | blockbook-client | ";
|
|
43
|
+
var pioneerApi = require("@pioneer-platform/pioneer-client").default;
|
|
44
|
+
var Blockbook = require('blockbook-client').Blockbook;
|
|
43
45
|
var log = require('@pioneer-platform/loggerdog')();
|
|
44
46
|
var fakeUa = require('fake-useragent');
|
|
45
47
|
var Axios = require('axios');
|
|
@@ -62,26 +64,25 @@ axiosRetry(axios, {
|
|
|
62
64
|
return error.response.status === 503;
|
|
63
65
|
},
|
|
64
66
|
});
|
|
65
|
-
var BLOCKBOOK_URLS = {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'BCH': process.env['BCH_BLOCKBOOK_URL'],
|
|
69
|
-
'DOGE': process.env['DOGE_BLOCKBOOK_URL'],
|
|
70
|
-
'LTC': process.env['DOGE_BLOCKBOOK_URL'],
|
|
71
|
-
'DASH': process.env['DASH_BLOCKBOOK_URL'],
|
|
72
|
-
'DGB': process.env['DGB_BLOCKBOOK_URL'],
|
|
73
|
-
'ETHW': process.env['ETHW_BLOCKBOOK_URL'],
|
|
74
|
-
'BSC': process.env['BSC_BLOCKBOOK_URL'],
|
|
75
|
-
'ADA': process.env['ADA_BLOCKBOOK_URL'],
|
|
76
|
-
'GRS': process.env['GRS_BLOCKBOOK_URL']
|
|
77
|
-
};
|
|
67
|
+
var BLOCKBOOK_URLS = {};
|
|
68
|
+
var BLOCKBOOK_SOCKETS = {};
|
|
69
|
+
var spec = process.env['PIONEER_SPEC'] || 'https://pioneers.dev/spec/swagger.json';
|
|
78
70
|
module.exports = {
|
|
79
|
-
init: function (servers
|
|
80
|
-
return init_network(servers
|
|
71
|
+
init: function (servers) {
|
|
72
|
+
return init_network(servers);
|
|
81
73
|
},
|
|
82
74
|
getInfo: function () {
|
|
83
75
|
return get_node_info();
|
|
84
76
|
},
|
|
77
|
+
getBlockbooks: function () {
|
|
78
|
+
return BLOCKBOOK_URLS;
|
|
79
|
+
},
|
|
80
|
+
getBlockbookSockets: function () {
|
|
81
|
+
return BLOCKBOOK_SOCKETS;
|
|
82
|
+
},
|
|
83
|
+
getFees: function (coin) {
|
|
84
|
+
return get_fees(coin);
|
|
85
|
+
},
|
|
85
86
|
getTransaction: function (coin, txid) {
|
|
86
87
|
return get_transaction(coin, txid);
|
|
87
88
|
},
|
|
@@ -107,9 +108,116 @@ module.exports = {
|
|
|
107
108
|
return broadcast_transaction(coin, hex);
|
|
108
109
|
},
|
|
109
110
|
};
|
|
111
|
+
var init_network = function (servers) {
|
|
112
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
113
|
+
var tag, blockbooks, config, pioneer, allBlockbooksRemote, e_1, i, blockbook, url, e_2;
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
switch (_a.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
tag = ' | get_txs_by_address | ';
|
|
118
|
+
_a.label = 1;
|
|
119
|
+
case 1:
|
|
120
|
+
_a.trys.push([1, 7, , 8]);
|
|
121
|
+
log.debug(tag, "checkpoint: ");
|
|
122
|
+
blockbooks = servers || [];
|
|
123
|
+
_a.label = 2;
|
|
124
|
+
case 2:
|
|
125
|
+
_a.trys.push([2, 5, , 6]);
|
|
126
|
+
config = {
|
|
127
|
+
queryKey: 'unchained:npm',
|
|
128
|
+
spec: spec
|
|
129
|
+
};
|
|
130
|
+
pioneer = new pioneerApi(spec, config);
|
|
131
|
+
return [4 /*yield*/, pioneer.init()];
|
|
132
|
+
case 3:
|
|
133
|
+
pioneer = _a.sent();
|
|
134
|
+
return [4 /*yield*/, pioneer.SearchNodesByType({ type: "blockbook" })];
|
|
135
|
+
case 4:
|
|
136
|
+
allBlockbooksRemote = _a.sent();
|
|
137
|
+
allBlockbooksRemote = allBlockbooksRemote.data;
|
|
138
|
+
log.info(tag, "allBlockbooksRemote: ", allBlockbooksRemote);
|
|
139
|
+
blockbooks.apply(void 0, allBlockbooksRemote);
|
|
140
|
+
return [3 /*break*/, 6];
|
|
141
|
+
case 5:
|
|
142
|
+
e_1 = _a.sent();
|
|
143
|
+
return [3 /*break*/, 6];
|
|
144
|
+
case 6:
|
|
145
|
+
if (blockbooks.length === 0)
|
|
146
|
+
throw Error("No blockblocks found!");
|
|
147
|
+
log.info(tag, "blockbooks: ", blockbooks.length);
|
|
148
|
+
for (i = 0; i < blockbooks.length; i++) {
|
|
149
|
+
blockbook = blockbooks[i];
|
|
150
|
+
//get swagger
|
|
151
|
+
if (blockbook) {
|
|
152
|
+
//log.info("unchainedInfo.swagger: ",unchainedInfo.swagger)
|
|
153
|
+
BLOCKBOOK_URLS[blockbook.symbol.toUpperCase()] = blockbook.service;
|
|
154
|
+
url = blockbook.websocket.replace("/websocket", "");
|
|
155
|
+
url = blockbook.websocket.replace("wss://", "https://");
|
|
156
|
+
console.log("url: ", url);
|
|
157
|
+
BLOCKBOOK_SOCKETS[blockbook.symbol.toUpperCase()] = new Blockbook({
|
|
158
|
+
nodes: [url],
|
|
159
|
+
disableTypeValidation: true,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
log.error(tag, "invalid unchained service: ", blockbook);
|
|
164
|
+
// throw Error("invalid unchained service!")
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
log.info(tag, "BLOCKBOOK_URLS: ", BLOCKBOOK_URLS);
|
|
168
|
+
log.info(tag, "BLOCKBOOK_SOCKETS: ", BLOCKBOOK_SOCKETS);
|
|
169
|
+
return [2 /*return*/, true];
|
|
170
|
+
case 7:
|
|
171
|
+
e_2 = _a.sent();
|
|
172
|
+
// console.error(tag, 'Error: ', e)
|
|
173
|
+
throw e_2;
|
|
174
|
+
case 8: return [2 /*return*/];
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
var get_fees = function (coin) {
|
|
180
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
181
|
+
var tag, url, body, resp, e_3;
|
|
182
|
+
return __generator(this, function (_a) {
|
|
183
|
+
switch (_a.label) {
|
|
184
|
+
case 0:
|
|
185
|
+
tag = TAG + " | get_fees | ";
|
|
186
|
+
_a.label = 1;
|
|
187
|
+
case 1:
|
|
188
|
+
_a.trys.push([1, 3, , 4]);
|
|
189
|
+
url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/fees";
|
|
190
|
+
log.info(tag, "url: ", url);
|
|
191
|
+
body = {
|
|
192
|
+
method: 'GET',
|
|
193
|
+
url: url,
|
|
194
|
+
headers: {
|
|
195
|
+
'api-key': process.env['NOW_NODES_API'],
|
|
196
|
+
'content-type': 'application/json',
|
|
197
|
+
'User-Agent': fakeUa()
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
return [4 /*yield*/, axios(body)
|
|
201
|
+
//log.info(tag,"resp: ",resp)
|
|
202
|
+
//TODO paginate?
|
|
203
|
+
];
|
|
204
|
+
case 2:
|
|
205
|
+
resp = _a.sent();
|
|
206
|
+
//log.info(tag,"resp: ",resp)
|
|
207
|
+
//TODO paginate?
|
|
208
|
+
return [2 /*return*/, resp.data];
|
|
209
|
+
case 3:
|
|
210
|
+
e_3 = _a.sent();
|
|
211
|
+
console.error(tag, e_3);
|
|
212
|
+
return [3 /*break*/, 4];
|
|
213
|
+
case 4: return [2 /*return*/];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
};
|
|
110
218
|
var get_info_by_pubkey = function (coin, pubkey, page) {
|
|
111
219
|
return __awaiter(this, void 0, void 0, function () {
|
|
112
|
-
var tag, url, body, resp,
|
|
220
|
+
var tag, url, body, resp, e_4;
|
|
113
221
|
return __generator(this, function (_a) {
|
|
114
222
|
switch (_a.label) {
|
|
115
223
|
case 0:
|
|
@@ -137,8 +245,8 @@ var get_info_by_pubkey = function (coin, pubkey, page) {
|
|
|
137
245
|
//TODO paginate?
|
|
138
246
|
return [2 /*return*/, resp.data];
|
|
139
247
|
case 3:
|
|
140
|
-
|
|
141
|
-
console.error(tag,
|
|
248
|
+
e_4 = _a.sent();
|
|
249
|
+
console.error(tag, e_4);
|
|
142
250
|
return [3 /*break*/, 4];
|
|
143
251
|
case 4: return [2 /*return*/];
|
|
144
252
|
}
|
|
@@ -147,7 +255,7 @@ var get_info_by_pubkey = function (coin, pubkey, page) {
|
|
|
147
255
|
};
|
|
148
256
|
var get_txids_by_address = function (coin, address, page) {
|
|
149
257
|
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
-
var tag, url, body, resp,
|
|
258
|
+
var tag, url, body, resp, e_5;
|
|
151
259
|
return __generator(this, function (_a) {
|
|
152
260
|
switch (_a.label) {
|
|
153
261
|
case 0:
|
|
@@ -176,8 +284,8 @@ var get_txids_by_address = function (coin, address, page) {
|
|
|
176
284
|
//TODO paginate?
|
|
177
285
|
return [2 /*return*/, resp.data];
|
|
178
286
|
case 3:
|
|
179
|
-
|
|
180
|
-
console.error(tag,
|
|
287
|
+
e_5 = _a.sent();
|
|
288
|
+
console.error(tag, e_5);
|
|
181
289
|
return [3 /*break*/, 4];
|
|
182
290
|
case 4: return [2 /*return*/];
|
|
183
291
|
}
|
|
@@ -186,7 +294,7 @@ var get_txids_by_address = function (coin, address, page) {
|
|
|
186
294
|
};
|
|
187
295
|
var get_info_by_address = function (coin, address, filter) {
|
|
188
296
|
return __awaiter(this, void 0, void 0, function () {
|
|
189
|
-
var tag, url, body, resp,
|
|
297
|
+
var tag, url, body, resp, e_6;
|
|
190
298
|
return __generator(this, function (_a) {
|
|
191
299
|
switch (_a.label) {
|
|
192
300
|
case 0:
|
|
@@ -214,8 +322,8 @@ var get_info_by_address = function (coin, address, filter) {
|
|
|
214
322
|
//TODO paginate?
|
|
215
323
|
return [2 /*return*/, resp.data];
|
|
216
324
|
case 3:
|
|
217
|
-
|
|
218
|
-
console.error(tag,
|
|
325
|
+
e_6 = _a.sent();
|
|
326
|
+
console.error(tag, e_6);
|
|
219
327
|
return [3 /*break*/, 4];
|
|
220
328
|
case 4: return [2 /*return*/];
|
|
221
329
|
}
|
|
@@ -224,7 +332,7 @@ var get_info_by_address = function (coin, address, filter) {
|
|
|
224
332
|
};
|
|
225
333
|
var get_txs_by_xpub = function (coin, xpub) {
|
|
226
334
|
return __awaiter(this, void 0, void 0, function () {
|
|
227
|
-
var tag, url, body, resp,
|
|
335
|
+
var tag, url, body, resp, e_7;
|
|
228
336
|
return __generator(this, function (_a) {
|
|
229
337
|
switch (_a.label) {
|
|
230
338
|
case 0:
|
|
@@ -248,8 +356,8 @@ var get_txs_by_xpub = function (coin, xpub) {
|
|
|
248
356
|
resp = _a.sent();
|
|
249
357
|
return [2 /*return*/, resp.data];
|
|
250
358
|
case 3:
|
|
251
|
-
|
|
252
|
-
console.error(tag,
|
|
359
|
+
e_7 = _a.sent();
|
|
360
|
+
console.error(tag, e_7);
|
|
253
361
|
return [3 /*break*/, 4];
|
|
254
362
|
case 4: return [2 /*return*/];
|
|
255
363
|
}
|
|
@@ -258,7 +366,7 @@ var get_txs_by_xpub = function (coin, xpub) {
|
|
|
258
366
|
};
|
|
259
367
|
var broadcast_transaction = function (coin, hex) {
|
|
260
368
|
return __awaiter(this, void 0, void 0, function () {
|
|
261
|
-
var tag, url, data, body, output, resp,
|
|
369
|
+
var tag, url, data, body, output, resp, e_8, e_9;
|
|
262
370
|
return __generator(this, function (_a) {
|
|
263
371
|
switch (_a.label) {
|
|
264
372
|
case 0:
|
|
@@ -293,14 +401,14 @@ var broadcast_transaction = function (coin, hex) {
|
|
|
293
401
|
output.success = true;
|
|
294
402
|
return [3 /*break*/, 5];
|
|
295
403
|
case 4:
|
|
296
|
-
|
|
297
|
-
log.error(tag, "error: ",
|
|
404
|
+
e_8 = _a.sent();
|
|
405
|
+
log.error(tag, "error: ", e_8);
|
|
298
406
|
return [3 /*break*/, 5];
|
|
299
407
|
case 5: return [2 /*return*/, output];
|
|
300
408
|
case 6:
|
|
301
|
-
|
|
409
|
+
e_9 = _a.sent();
|
|
302
410
|
//console.error(tag,e)
|
|
303
|
-
throw
|
|
411
|
+
throw e_9;
|
|
304
412
|
case 7: return [2 /*return*/];
|
|
305
413
|
}
|
|
306
414
|
});
|
|
@@ -308,7 +416,7 @@ var broadcast_transaction = function (coin, hex) {
|
|
|
308
416
|
};
|
|
309
417
|
var get_transaction = function (coin, txid) {
|
|
310
418
|
return __awaiter(this, void 0, void 0, function () {
|
|
311
|
-
var tag, url, body, resp,
|
|
419
|
+
var tag, url, body, resp, e_10;
|
|
312
420
|
return __generator(this, function (_a) {
|
|
313
421
|
switch (_a.label) {
|
|
314
422
|
case 0:
|
|
@@ -331,8 +439,8 @@ var get_transaction = function (coin, txid) {
|
|
|
331
439
|
resp = _a.sent();
|
|
332
440
|
return [2 /*return*/, resp.data];
|
|
333
441
|
case 3:
|
|
334
|
-
|
|
335
|
-
console.error(tag,
|
|
442
|
+
e_10 = _a.sent();
|
|
443
|
+
console.error(tag, e_10);
|
|
336
444
|
return [3 /*break*/, 4];
|
|
337
445
|
case 4: return [2 /*return*/];
|
|
338
446
|
}
|
|
@@ -341,7 +449,7 @@ var get_transaction = function (coin, txid) {
|
|
|
341
449
|
};
|
|
342
450
|
var get_utxos_by_xpub = function (coin, xpub) {
|
|
343
451
|
return __awaiter(this, void 0, void 0, function () {
|
|
344
|
-
var tag, url, body, resp,
|
|
452
|
+
var tag, url, body, resp, e_11;
|
|
345
453
|
return __generator(this, function (_a) {
|
|
346
454
|
switch (_a.label) {
|
|
347
455
|
case 0:
|
|
@@ -365,8 +473,8 @@ var get_utxos_by_xpub = function (coin, xpub) {
|
|
|
365
473
|
resp = _a.sent();
|
|
366
474
|
return [2 /*return*/, resp.data];
|
|
367
475
|
case 3:
|
|
368
|
-
|
|
369
|
-
console.error(tag,
|
|
476
|
+
e_11 = _a.sent();
|
|
477
|
+
console.error(tag, e_11);
|
|
370
478
|
return [3 /*break*/, 4];
|
|
371
479
|
case 4: return [2 /*return*/];
|
|
372
480
|
}
|
|
@@ -375,7 +483,7 @@ var get_utxos_by_xpub = function (coin, xpub) {
|
|
|
375
483
|
};
|
|
376
484
|
var get_balance_by_xpub = function (coin, xpub) {
|
|
377
485
|
return __awaiter(this, void 0, void 0, function () {
|
|
378
|
-
var tag, output, balance, i, uxto,
|
|
486
|
+
var tag, output, balance, i, uxto, e_12;
|
|
379
487
|
return __generator(this, function (_a) {
|
|
380
488
|
switch (_a.label) {
|
|
381
489
|
case 0:
|
|
@@ -397,48 +505,14 @@ var get_balance_by_xpub = function (coin, xpub) {
|
|
|
397
505
|
}
|
|
398
506
|
return [2 /*return*/, balance / 100000000];
|
|
399
507
|
case 3:
|
|
400
|
-
|
|
401
|
-
console.error(tag,
|
|
508
|
+
e_12 = _a.sent();
|
|
509
|
+
console.error(tag, e_12);
|
|
402
510
|
return [3 /*break*/, 4];
|
|
403
511
|
case 4: return [2 /*return*/];
|
|
404
512
|
}
|
|
405
513
|
});
|
|
406
514
|
});
|
|
407
515
|
};
|
|
408
|
-
var init_network = function (servers, runtime) {
|
|
409
|
-
var tag = ' | get_txs_by_address | ';
|
|
410
|
-
try {
|
|
411
|
-
log.debug(tag, "checkpoint: ");
|
|
412
|
-
var output = [];
|
|
413
|
-
//get networks from coins module
|
|
414
|
-
// let blockbooks = getBlockBooks()
|
|
415
|
-
// for(let i = 0; i < blockbooks.length; i++){
|
|
416
|
-
// let coinInfo = blockbooks[i]
|
|
417
|
-
// coinInfo.symbol = coinInfo.symbol.toUpperCase()
|
|
418
|
-
// log.debug("coinInfo: ",coinInfo)
|
|
419
|
-
// let blockbookurl = coinInfo.explorer.tx
|
|
420
|
-
// blockbookurl = blockbookurl.replace("/tx/","")
|
|
421
|
-
//
|
|
422
|
-
// if(servers && servers[coinInfo.symbol]){
|
|
423
|
-
// //use configured
|
|
424
|
-
// BLOCKBOOK_URLS[coinInfo.symbol] = servers[coinInfo.symbol]
|
|
425
|
-
// log.debug(coinInfo.symbol+ " blockbookurl: ",servers[coinInfo.symbol])
|
|
426
|
-
// }else{
|
|
427
|
-
// if(!runtime || runtime === 'public'){
|
|
428
|
-
// //use public
|
|
429
|
-
// BLOCKBOOK_URLS[coinInfo.symbol] = blockbookurl
|
|
430
|
-
// log.debug(coinInfo.symbol+ " blockbookurl: ",blockbookurl)
|
|
431
|
-
// }
|
|
432
|
-
// //TODO use pioneer's
|
|
433
|
-
// }
|
|
434
|
-
// }
|
|
435
|
-
return true;
|
|
436
|
-
}
|
|
437
|
-
catch (e) {
|
|
438
|
-
// console.error(tag, 'Error: ', e)
|
|
439
|
-
throw e;
|
|
440
|
-
}
|
|
441
|
-
};
|
|
442
516
|
var get_node_info = function () {
|
|
443
517
|
return __awaiter(this, void 0, void 0, function () {
|
|
444
518
|
var tag;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pioneer-platform/blockbook",
|
|
3
|
-
"version": "8.1.
|
|
3
|
+
"version": "8.1.53",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"types": "./lib/main.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -12,12 +12,14 @@
|
|
|
12
12
|
"refresh": "rm -rf ./node_modules ./package-lock.json && npm install"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
+
"@altangent/lib-blockbook": "^0.12.9",
|
|
15
16
|
"@pioneer-platform/loggerdog": "^8.1.29",
|
|
17
|
+
"@pioneer-platform/pioneer-client": "^9.0.11",
|
|
16
18
|
"@types/request-promise-native": "^1.0.17",
|
|
17
19
|
"@types/ws": "^7.4.2",
|
|
18
20
|
"axios": "^0.21.4",
|
|
19
21
|
"axios-retry": "^3.1.9",
|
|
20
|
-
"blockbook-client": "^0.
|
|
22
|
+
"blockbook-client": "^0.7.8",
|
|
21
23
|
"fake-useragent": "^1.0.1"
|
|
22
24
|
},
|
|
23
25
|
"devDependencies": {
|