@pioneer-platform/blockbook 8.1.35 → 8.1.39
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.js +238 -336
- package/package.json +3 -3
- package/tsconfig.json +1 -1
- package/yarn-error.log +13068 -0
package/lib/index.js
CHANGED
|
@@ -1,72 +1,87 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
|
|
4
|
+
Blockbooks
|
|
5
|
+
|
|
6
|
+
https://documenter.getpostman.com/view/13630829/TVmFkLwy
|
|
7
|
+
|
|
8
|
+
ada.nownodes.io
|
|
9
|
+
algo.nownodes.io
|
|
10
|
+
bch.nownodes.io
|
|
11
|
+
bsc.nownodes.io
|
|
12
|
+
bsv.nownodes.io
|
|
13
|
+
btc.nownodes.io
|
|
14
|
+
btg.nownodes.io
|
|
15
|
+
clo.nownodes.io
|
|
16
|
+
dash.nownodes.io
|
|
17
|
+
dcr.nownodes.io
|
|
18
|
+
dgb.nownodes.io
|
|
19
|
+
doge.nownodes.io
|
|
20
|
+
dot.nownodes.io
|
|
21
|
+
eos.nownodes.io
|
|
22
|
+
eth.nownodes.io
|
|
23
|
+
grs.nownodes.io
|
|
24
|
+
kmd.nownodes.io
|
|
25
|
+
ltc.nownodes.io
|
|
26
|
+
nano.nownodes.io
|
|
27
|
+
ont.nownodes.io
|
|
28
|
+
rdd.nownodes.io
|
|
29
|
+
trx.nownodes.io
|
|
30
|
+
usdt-omni.nownodes.io
|
|
31
|
+
vet.nownodes.io
|
|
32
|
+
xem.nownodes.io
|
|
33
|
+
xmr.nownodes.io
|
|
34
|
+
xtz.nownodes.io
|
|
35
|
+
xvg.nownodes.io
|
|
36
|
+
xzc.nownodes.io
|
|
37
|
+
zec.nownodes.io
|
|
38
|
+
zen.nownodes.io
|
|
39
|
+
zil.nownodes.io
|
|
40
|
+
|
|
41
|
+
|
|
4
42
|
|
|
5
43
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
16
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
17
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
18
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
19
|
-
function step(op) {
|
|
20
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
21
|
-
while (_) try {
|
|
22
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
23
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
24
|
-
switch (op[0]) {
|
|
25
|
-
case 0: case 1: t = op; break;
|
|
26
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
27
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
28
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
29
|
-
default:
|
|
30
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
31
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
32
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
33
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
34
|
-
if (t[2]) _.ops.pop();
|
|
35
|
-
_.trys.pop(); continue;
|
|
36
|
-
}
|
|
37
|
-
op = body.call(thisArg, _);
|
|
38
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
39
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
var TAG = " | blockbook-client | ";
|
|
43
|
-
var log = require('@pioneer-platform/loggerdog')();
|
|
44
|
-
var fakeUa = require('fake-useragent');
|
|
45
|
-
var Axios = require('axios');
|
|
46
|
-
var https = require('https');
|
|
47
|
-
var axios = Axios.create({
|
|
44
|
+
const TAG = " | blockbook-client | ";
|
|
45
|
+
const log = require('@pioneer-platform/loggerdog')();
|
|
46
|
+
const fakeUa = require('fake-useragent');
|
|
47
|
+
const Axios = require('axios');
|
|
48
|
+
const https = require('https');
|
|
49
|
+
const axios = Axios.create({
|
|
48
50
|
httpsAgent: new https.Agent({
|
|
49
51
|
rejectUnauthorized: false
|
|
50
|
-
})
|
|
52
|
+
}),
|
|
53
|
+
headers: {
|
|
54
|
+
"api-key": process.env['NOW_NODES_API'] //the token is a variable which holds the token
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
|
-
|
|
57
|
+
// if(!process.env['NOW_NODES_API']) throw Error("invalid env missing NOW_NODES_API")
|
|
58
|
+
const axiosRetry = require('axios-retry');
|
|
59
|
+
//@ts-ignore
|
|
53
60
|
axiosRetry(axios, {
|
|
54
61
|
retries: 3,
|
|
55
|
-
retryDelay:
|
|
56
|
-
console.log(
|
|
62
|
+
retryDelay: (retryCount) => {
|
|
63
|
+
console.log(`retry attempt: ${retryCount}`);
|
|
57
64
|
return retryCount * 2000; // time interval between retries
|
|
58
65
|
},
|
|
59
|
-
retryCondition:
|
|
66
|
+
retryCondition: (error) => {
|
|
60
67
|
console.error(error);
|
|
61
68
|
// if retry condition is not specified, by default idempotent requests are retried
|
|
62
69
|
return error.response.status === 503;
|
|
63
70
|
},
|
|
64
71
|
});
|
|
65
|
-
|
|
72
|
+
let BLOCKBOOK_URLS = {
|
|
66
73
|
'BTC': process.env['BTC_BLOCKBOOK_URL'],
|
|
67
74
|
'ETH': process.env['ETH_BLOCKBOOK_URL'],
|
|
68
75
|
'BCH': process.env['BCH_BLOCKBOOK_URL'],
|
|
76
|
+
'LTC': process.env['LTC_BLOCKBOOK_URL'],
|
|
69
77
|
'DOGE': process.env['DOGE_BLOCKBOOK_URL'],
|
|
78
|
+
'DASH': process.env['DASH_BLOCKBOOK_URL'],
|
|
79
|
+
'DGB': process.env['DGB_BLOCKBOOK_URL'],
|
|
80
|
+
'KMD': process.env['KMD_BLOCKBOOK_URL'],
|
|
81
|
+
'RDD': process.env['RDD_BLOCKBOOK_URL'],
|
|
82
|
+
'BSV': process.env['BSV_BLOCKBOOK_URL'],
|
|
83
|
+
'BTG': process.env['BTG_BLOCKBOOK_URL'],
|
|
84
|
+
'ADA': process.env['ADA_BLOCKBOOK_URL'],
|
|
70
85
|
};
|
|
71
86
|
module.exports = {
|
|
72
87
|
init: function (servers, runtime) {
|
|
@@ -100,288 +115,181 @@ module.exports = {
|
|
|
100
115
|
return broadcast_transaction(coin, hex);
|
|
101
116
|
},
|
|
102
117
|
};
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
case 2:
|
|
127
|
-
resp = _a.sent();
|
|
128
|
-
log.info(tag, "resp: ", resp);
|
|
129
|
-
//TODO paginate?
|
|
130
|
-
return [2 /*return*/, resp.data];
|
|
131
|
-
case 3:
|
|
132
|
-
e_1 = _a.sent();
|
|
133
|
-
console.error(tag, e_1);
|
|
134
|
-
return [3 /*break*/, 4];
|
|
135
|
-
case 4: return [2 /*return*/];
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
});
|
|
118
|
+
let get_info_by_pubkey = async function (coin, pubkey, page) {
|
|
119
|
+
let tag = TAG + " | get_info_by_pubkey | ";
|
|
120
|
+
try {
|
|
121
|
+
if (!page)
|
|
122
|
+
page = "1";
|
|
123
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/xpub/" + pubkey;
|
|
124
|
+
log.debug(tag, "url: ", url);
|
|
125
|
+
let body = {
|
|
126
|
+
method: 'GET',
|
|
127
|
+
url,
|
|
128
|
+
headers: {
|
|
129
|
+
'content-type': 'application/json',
|
|
130
|
+
'User-Agent': fakeUa()
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
let resp = await axios(body);
|
|
134
|
+
log.debug(tag, "resp: ", resp);
|
|
135
|
+
//TODO paginate?
|
|
136
|
+
return resp.data;
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
console.error(tag, e);
|
|
140
|
+
}
|
|
139
141
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return [4 /*yield*/, axios(body)
|
|
163
|
-
//TODO paginate?
|
|
164
|
-
];
|
|
165
|
-
case 2:
|
|
166
|
-
resp = _a.sent();
|
|
167
|
-
//TODO paginate?
|
|
168
|
-
return [2 /*return*/, resp.data];
|
|
169
|
-
case 3:
|
|
170
|
-
e_2 = _a.sent();
|
|
171
|
-
console.error(tag, e_2);
|
|
172
|
-
return [3 /*break*/, 4];
|
|
173
|
-
case 4: return [2 /*return*/];
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
});
|
|
142
|
+
let get_txids_by_address = async function (coin, address, page) {
|
|
143
|
+
let tag = TAG + " | get_txids_by_address | ";
|
|
144
|
+
try {
|
|
145
|
+
if (!page)
|
|
146
|
+
page = 1;
|
|
147
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/address/" + address + "?page=" + page + "&details=all";
|
|
148
|
+
log.debug(tag, "url: ", url);
|
|
149
|
+
let body = {
|
|
150
|
+
method: 'GET',
|
|
151
|
+
url,
|
|
152
|
+
headers: {
|
|
153
|
+
'content-type': 'application/json',
|
|
154
|
+
'User-Agent': fakeUa()
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
let resp = await axios(body);
|
|
158
|
+
//TODO paginate?
|
|
159
|
+
return resp.data;
|
|
160
|
+
}
|
|
161
|
+
catch (e) {
|
|
162
|
+
console.error(tag, e);
|
|
163
|
+
}
|
|
177
164
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
//TODO paginate?
|
|
201
|
-
];
|
|
202
|
-
case 2:
|
|
203
|
-
resp = _a.sent();
|
|
204
|
-
//TODO paginate?
|
|
205
|
-
return [2 /*return*/, resp.data];
|
|
206
|
-
case 3:
|
|
207
|
-
e_3 = _a.sent();
|
|
208
|
-
console.error(tag, e_3);
|
|
209
|
-
return [3 /*break*/, 4];
|
|
210
|
-
case 4: return [2 /*return*/];
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
});
|
|
165
|
+
let get_info_by_address = async function (coin, address, filter) {
|
|
166
|
+
let tag = TAG + " | get_info_by_address | ";
|
|
167
|
+
try {
|
|
168
|
+
if (!filter)
|
|
169
|
+
filter = "all";
|
|
170
|
+
//let url = ETH_BLOCKBOOK_URL+"/api/v2/address/"+address+"?="+filter
|
|
171
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/address/" + address + "?details=all";
|
|
172
|
+
let body = {
|
|
173
|
+
method: 'GET',
|
|
174
|
+
url,
|
|
175
|
+
headers: {
|
|
176
|
+
'content-type': 'application/json',
|
|
177
|
+
'User-Agent': fakeUa()
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
let resp = await axios(body);
|
|
181
|
+
//TODO paginate?
|
|
182
|
+
return resp.data;
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
console.error(tag, e);
|
|
186
|
+
}
|
|
214
187
|
};
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
};
|
|
235
|
-
return [4 /*yield*/, axios(body)];
|
|
236
|
-
case 2:
|
|
237
|
-
resp = _a.sent();
|
|
238
|
-
return [2 /*return*/, resp.data];
|
|
239
|
-
case 3:
|
|
240
|
-
e_4 = _a.sent();
|
|
241
|
-
console.error(tag, e_4);
|
|
242
|
-
return [3 /*break*/, 4];
|
|
243
|
-
case 4: return [2 /*return*/];
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
});
|
|
188
|
+
let get_txs_by_xpub = async function (coin, xpub) {
|
|
189
|
+
let tag = TAG + " | FA get_txs_by_xpub | ";
|
|
190
|
+
try {
|
|
191
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/xpub/" + xpub + "?details=all";
|
|
192
|
+
console.log("url: ", url);
|
|
193
|
+
let body = {
|
|
194
|
+
method: 'GET',
|
|
195
|
+
url,
|
|
196
|
+
headers: {
|
|
197
|
+
'content-type': 'application/json',
|
|
198
|
+
'User-Agent': fakeUa()
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
let resp = await axios(body);
|
|
202
|
+
return resp.data;
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
console.error(tag, e);
|
|
206
|
+
}
|
|
247
207
|
};
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
};
|
|
270
|
-
return [4 /*yield*/, axios(body)];
|
|
271
|
-
case 2:
|
|
272
|
-
resp = _a.sent();
|
|
273
|
-
return [2 /*return*/, resp.data];
|
|
274
|
-
case 3:
|
|
275
|
-
e_5 = _a.sent();
|
|
276
|
-
console.error(tag, e_5);
|
|
277
|
-
return [3 /*break*/, 4];
|
|
278
|
-
case 4: return [2 /*return*/];
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
});
|
|
208
|
+
let broadcast_transaction = async function (coin, hex) {
|
|
209
|
+
let tag = TAG + " | broadcast_transaction | ";
|
|
210
|
+
try {
|
|
211
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/sendtx/";
|
|
212
|
+
let data = hex;
|
|
213
|
+
let body = {
|
|
214
|
+
url,
|
|
215
|
+
headers: {
|
|
216
|
+
'content-type': 'application/json',
|
|
217
|
+
'User-Agent': fakeUa()
|
|
218
|
+
},
|
|
219
|
+
method: 'POST',
|
|
220
|
+
json: false,
|
|
221
|
+
data,
|
|
222
|
+
};
|
|
223
|
+
let resp = await axios(body);
|
|
224
|
+
return resp.data;
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
console.error(tag, e);
|
|
228
|
+
}
|
|
282
229
|
};
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
};
|
|
302
|
-
return [4 /*yield*/, axios(body)];
|
|
303
|
-
case 2:
|
|
304
|
-
resp = _a.sent();
|
|
305
|
-
return [2 /*return*/, resp.data];
|
|
306
|
-
case 3:
|
|
307
|
-
e_6 = _a.sent();
|
|
308
|
-
console.error(tag, e_6);
|
|
309
|
-
return [3 /*break*/, 4];
|
|
310
|
-
case 4: return [2 /*return*/];
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
});
|
|
230
|
+
let get_transaction = async function (coin, txid) {
|
|
231
|
+
let tag = TAG + " | get_transaction | ";
|
|
232
|
+
try {
|
|
233
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/tx/" + txid;
|
|
234
|
+
let body = {
|
|
235
|
+
method: 'GET',
|
|
236
|
+
url,
|
|
237
|
+
headers: {
|
|
238
|
+
'content-type': 'application/json',
|
|
239
|
+
'User-Agent': fakeUa()
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
let resp = await axios(body);
|
|
243
|
+
return resp.data;
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
console.error(tag, e);
|
|
247
|
+
}
|
|
314
248
|
};
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
};
|
|
335
|
-
return [4 /*yield*/, axios(body)];
|
|
336
|
-
case 2:
|
|
337
|
-
resp = _a.sent();
|
|
338
|
-
return [2 /*return*/, resp.data];
|
|
339
|
-
case 3:
|
|
340
|
-
e_7 = _a.sent();
|
|
341
|
-
console.error(tag, e_7);
|
|
342
|
-
return [3 /*break*/, 4];
|
|
343
|
-
case 4: return [2 /*return*/];
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
});
|
|
249
|
+
let get_utxos_by_xpub = async function (coin, xpub) {
|
|
250
|
+
let tag = TAG + " | FA get_utxos_by_xpub | ";
|
|
251
|
+
try {
|
|
252
|
+
let url = BLOCKBOOK_URLS[coin.toUpperCase()] + "/api/v2/utxo/" + xpub + "?confirmed=false";
|
|
253
|
+
console.log("url: ", url);
|
|
254
|
+
let body = {
|
|
255
|
+
method: 'GET',
|
|
256
|
+
url,
|
|
257
|
+
headers: {
|
|
258
|
+
'content-type': 'application/json',
|
|
259
|
+
'User-Agent': fakeUa()
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
let resp = await axios(body);
|
|
263
|
+
return resp.data;
|
|
264
|
+
}
|
|
265
|
+
catch (e) {
|
|
266
|
+
console.error(tag, e);
|
|
267
|
+
}
|
|
347
268
|
};
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
for (i = 0; i < output.length; i++) {
|
|
367
|
-
uxto = output[i];
|
|
368
|
-
balance = balance + parseInt(uxto.value);
|
|
369
|
-
}
|
|
370
|
-
return [2 /*return*/, balance / 100000000];
|
|
371
|
-
case 3:
|
|
372
|
-
e_8 = _a.sent();
|
|
373
|
-
console.error(tag, e_8);
|
|
374
|
-
return [3 /*break*/, 4];
|
|
375
|
-
case 4: return [2 /*return*/];
|
|
376
|
-
}
|
|
377
|
-
});
|
|
378
|
-
});
|
|
269
|
+
let get_balance_by_xpub = async function (coin, xpub) {
|
|
270
|
+
let tag = TAG + " | get_balance_by_xpub | ";
|
|
271
|
+
try {
|
|
272
|
+
log.debug(tag, "coin: ", coin);
|
|
273
|
+
log.debug(tag, "xpub: ", xpub);
|
|
274
|
+
let output = await get_utxos_by_xpub(coin, xpub);
|
|
275
|
+
log.debug(tag, "output: ", output);
|
|
276
|
+
let balance = 0;
|
|
277
|
+
//tally
|
|
278
|
+
for (let i = 0; i < output.length; i++) {
|
|
279
|
+
let uxto = output[i];
|
|
280
|
+
balance = balance + parseInt(uxto.value);
|
|
281
|
+
}
|
|
282
|
+
return balance / 100000000;
|
|
283
|
+
}
|
|
284
|
+
catch (e) {
|
|
285
|
+
console.error(tag, e);
|
|
286
|
+
}
|
|
379
287
|
};
|
|
380
|
-
|
|
381
|
-
|
|
288
|
+
let init_network = function (servers, runtime) {
|
|
289
|
+
let tag = ' | get_txs_by_address | ';
|
|
382
290
|
try {
|
|
383
291
|
log.debug(tag, "checkpoint: ");
|
|
384
|
-
|
|
292
|
+
let output = [];
|
|
385
293
|
//get networks from coins module
|
|
386
294
|
// let blockbooks = getBlockBooks()
|
|
387
295
|
// for(let i = 0; i < blockbooks.length; i++){
|
|
@@ -394,12 +302,12 @@ var init_network = function (servers, runtime) {
|
|
|
394
302
|
// if(servers && servers[coinInfo.symbol]){
|
|
395
303
|
// //use configured
|
|
396
304
|
// BLOCKBOOK_URLS[coinInfo.symbol] = servers[coinInfo.symbol]
|
|
397
|
-
// log.
|
|
305
|
+
// log.debug(coinInfo.symbol+ " blockbookurl: ",servers[coinInfo.symbol])
|
|
398
306
|
// }else{
|
|
399
307
|
// if(!runtime || runtime === 'public'){
|
|
400
308
|
// //use public
|
|
401
309
|
// BLOCKBOOK_URLS[coinInfo.symbol] = blockbookurl
|
|
402
|
-
// log.
|
|
310
|
+
// log.debug(coinInfo.symbol+ " blockbookurl: ",blockbookurl)
|
|
403
311
|
// }
|
|
404
312
|
// //TODO use pioneer's
|
|
405
313
|
// }
|
|
@@ -411,18 +319,12 @@ var init_network = function (servers, runtime) {
|
|
|
411
319
|
throw e;
|
|
412
320
|
}
|
|
413
321
|
};
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
return
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
catch (e) {
|
|
423
|
-
console.error(tag, e);
|
|
424
|
-
}
|
|
425
|
-
return [2 /*return*/];
|
|
426
|
-
});
|
|
427
|
-
});
|
|
322
|
+
let get_node_info = async function () {
|
|
323
|
+
let tag = TAG + " | get_node_info | ";
|
|
324
|
+
try {
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
console.error(tag, e);
|
|
329
|
+
}
|
|
428
330
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pioneer-platform/blockbook",
|
|
3
|
-
"version": "8.1.
|
|
3
|
+
"version": "8.1.39",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"types": "./lib/main.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"refresh": "rm -rf ./node_modules ./package-lock.json && npm install"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@pioneer-platform/loggerdog": "^8.1.
|
|
15
|
+
"@pioneer-platform/loggerdog": "^8.1.17",
|
|
16
16
|
"@types/request-promise-native": "^1.0.17",
|
|
17
17
|
"@types/ws": "^7.4.2",
|
|
18
18
|
"axios": "^0.21.1",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"ts-node": "^8.8.2",
|
|
28
28
|
"typescript": "^3.9.5"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "d0e74ea447175d6d7e9697793093f9155f0dab38"
|
|
31
31
|
}
|