@pioneer-platform/maya-network 8.13.18 → 8.13.20
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/.turbo/turbo-build.log +2 -1
- package/CHANGELOG.md +12 -0
- package/lib/index.js +101 -49
- package/package.json +1 -1
- package/lib/index.js.map +0 -107
package/.turbo/turbo-build.log
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
[0m[2m[35m$[0m [2m[1mtsc -p .[0m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @pioneer-platform/maya-network
|
|
2
2
|
|
|
3
|
+
## 8.13.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fix(pioneer-server): Fix Blockbook WebSocket event system initialization
|
|
8
|
+
|
|
9
|
+
## 8.13.19
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Fix account info selection to prefer sources with more coins (CACAO + MAYA)
|
|
14
|
+
|
|
3
15
|
## 8.13.18
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/lib/index.js
CHANGED
|
@@ -180,7 +180,7 @@ var get_info = function () {
|
|
|
180
180
|
};
|
|
181
181
|
var get_account_info = function (address) {
|
|
182
182
|
return __awaiter(this, void 0, void 0, function () {
|
|
183
|
-
var tag, allEndpoints, results, successfulResults, mostRecentAccount, cacaoCoin, cacaoBalance;
|
|
183
|
+
var tag, allEndpoints, results, successfulResults, errors, mostRecentAccount, cacaoCoin, cacaoBalance;
|
|
184
184
|
var _this = this;
|
|
185
185
|
return __generator(this, function (_a) {
|
|
186
186
|
switch (_a.label) {
|
|
@@ -190,16 +190,19 @@ var get_account_info = function (address) {
|
|
|
190
190
|
{
|
|
191
191
|
name: 'Unchained',
|
|
192
192
|
fetch: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
193
|
-
var result, data;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
193
|
+
var result, data, e_2;
|
|
194
|
+
var _a;
|
|
195
|
+
return __generator(this, function (_b) {
|
|
196
|
+
switch (_b.label) {
|
|
197
|
+
case 0:
|
|
198
|
+
_b.trys.push([0, 2, , 3]);
|
|
199
|
+
return [4 /*yield*/, axiosInstance({
|
|
200
|
+
method: 'GET',
|
|
201
|
+
url: "".concat(UNCHAINED_API, "/api/v1/account/").concat(address),
|
|
202
|
+
timeout: 5000
|
|
203
|
+
})];
|
|
201
204
|
case 1:
|
|
202
|
-
result =
|
|
205
|
+
result = _b.sent();
|
|
203
206
|
data = result.data;
|
|
204
207
|
return [2 /*return*/, {
|
|
205
208
|
account_number: String(data.accountNumber || '0'),
|
|
@@ -209,6 +212,22 @@ var get_account_info = function (address) {
|
|
|
209
212
|
public_key: null,
|
|
210
213
|
source: 'Unchained'
|
|
211
214
|
}];
|
|
215
|
+
case 2:
|
|
216
|
+
e_2 = _b.sent();
|
|
217
|
+
// 404 means account doesn't exist on chain yet (zero balance)
|
|
218
|
+
if (((_a = e_2.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
|
|
219
|
+
log.debug(tag, "Account not found on Unchained (404) - treating as zero balance");
|
|
220
|
+
return [2 /*return*/, {
|
|
221
|
+
account_number: '0',
|
|
222
|
+
sequence: 0,
|
|
223
|
+
address: address,
|
|
224
|
+
coins: [],
|
|
225
|
+
public_key: null,
|
|
226
|
+
source: 'Unchained'
|
|
227
|
+
}];
|
|
228
|
+
}
|
|
229
|
+
throw e_2;
|
|
230
|
+
case 3: return [2 /*return*/];
|
|
212
231
|
}
|
|
213
232
|
});
|
|
214
233
|
}); }
|
|
@@ -216,33 +235,39 @@ var get_account_info = function (address) {
|
|
|
216
235
|
], MAYA_NODES.map(function (nodeUrl) { return ({
|
|
217
236
|
name: nodeUrl,
|
|
218
237
|
fetch: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
219
|
-
var accountResult, accountData, coins, balanceResult,
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
238
|
+
var accountResult, accountData, coins, balanceResult, e_3, e_4;
|
|
239
|
+
var _a, _b;
|
|
240
|
+
return __generator(this, function (_c) {
|
|
241
|
+
switch (_c.label) {
|
|
242
|
+
case 0:
|
|
243
|
+
_c.trys.push([0, 6, , 7]);
|
|
244
|
+
return [4 /*yield*/, axiosInstance({
|
|
245
|
+
method: 'GET',
|
|
246
|
+
url: "".concat(nodeUrl, "/cosmos/auth/v1beta1/accounts/").concat(address),
|
|
247
|
+
timeout: 8000
|
|
248
|
+
})];
|
|
227
249
|
case 1:
|
|
228
|
-
accountResult =
|
|
250
|
+
accountResult = _c.sent();
|
|
229
251
|
accountData = accountResult.data.account || accountResult.data;
|
|
230
252
|
coins = [];
|
|
231
|
-
|
|
253
|
+
_c.label = 2;
|
|
232
254
|
case 2:
|
|
233
|
-
|
|
255
|
+
_c.trys.push([2, 4, , 5]);
|
|
234
256
|
return [4 /*yield*/, axiosInstance({
|
|
235
257
|
method: 'GET',
|
|
236
258
|
url: "".concat(nodeUrl, "/cosmos/bank/v1beta1/balances/").concat(address),
|
|
237
259
|
timeout: 8000
|
|
238
260
|
})];
|
|
239
261
|
case 3:
|
|
240
|
-
balanceResult =
|
|
262
|
+
balanceResult = _c.sent();
|
|
241
263
|
coins = balanceResult.data.balances || [];
|
|
242
264
|
return [3 /*break*/, 5];
|
|
243
265
|
case 4:
|
|
244
|
-
|
|
245
|
-
|
|
266
|
+
e_3 = _c.sent();
|
|
267
|
+
// 404 on balances is OK - means zero balance
|
|
268
|
+
if (((_a = e_3.response) === null || _a === void 0 ? void 0 : _a.status) !== 404) {
|
|
269
|
+
log.warn(tag, "Failed to fetch balances from ".concat(nodeUrl, ": ").concat(e_3.message));
|
|
270
|
+
}
|
|
246
271
|
return [3 /*break*/, 5];
|
|
247
272
|
case 5: return [2 /*return*/, {
|
|
248
273
|
account_number: String(accountData.account_number || '0'),
|
|
@@ -252,6 +277,22 @@ var get_account_info = function (address) {
|
|
|
252
277
|
public_key: accountData.pub_key || null,
|
|
253
278
|
source: nodeUrl
|
|
254
279
|
}];
|
|
280
|
+
case 6:
|
|
281
|
+
e_4 = _c.sent();
|
|
282
|
+
// 404 means account doesn't exist on chain yet (zero balance)
|
|
283
|
+
if (((_b = e_4.response) === null || _b === void 0 ? void 0 : _b.status) === 404) {
|
|
284
|
+
log.debug(tag, "Account not found on ".concat(nodeUrl, " (404) - treating as zero balance"));
|
|
285
|
+
return [2 /*return*/, {
|
|
286
|
+
account_number: '0',
|
|
287
|
+
sequence: 0,
|
|
288
|
+
address: address,
|
|
289
|
+
coins: [],
|
|
290
|
+
public_key: null,
|
|
291
|
+
source: nodeUrl
|
|
292
|
+
}];
|
|
293
|
+
}
|
|
294
|
+
throw e_4;
|
|
295
|
+
case 7: return [2 /*return*/];
|
|
255
296
|
}
|
|
256
297
|
});
|
|
257
298
|
}); }
|
|
@@ -259,7 +300,7 @@ var get_account_info = function (address) {
|
|
|
259
300
|
return [4 /*yield*/, Promise.allSettled(allEndpoints.map(function (endpoint) {
|
|
260
301
|
return endpoint.fetch().then(function (data) { return (__assign(__assign({}, data), { endpoint: endpoint.name })); });
|
|
261
302
|
}))
|
|
262
|
-
// Extract successful responses
|
|
303
|
+
// Extract successful responses (including 404s which we handle as zero balance)
|
|
263
304
|
];
|
|
264
305
|
case 1:
|
|
265
306
|
results = _a.sent();
|
|
@@ -267,7 +308,11 @@ var get_account_info = function (address) {
|
|
|
267
308
|
.filter(function (result) { return result.status === 'fulfilled'; })
|
|
268
309
|
.map(function (result) { return result.value; });
|
|
269
310
|
if (successfulResults.length === 0) {
|
|
270
|
-
|
|
311
|
+
errors = results
|
|
312
|
+
.filter(function (result) { return result.status === 'rejected'; })
|
|
313
|
+
.map(function (result) { var _a; return ((_a = result.reason) === null || _a === void 0 ? void 0 : _a.message) || String(result.reason); });
|
|
314
|
+
log.error(tag, "All endpoints failed:", errors.join(', '));
|
|
315
|
+
// If all endpoints failed with actual errors (not 404s), throw
|
|
271
316
|
throw new Error("All endpoints failed for account info");
|
|
272
317
|
}
|
|
273
318
|
// Log all results for debugging
|
|
@@ -283,6 +328,13 @@ var get_account_info = function (address) {
|
|
|
283
328
|
return current;
|
|
284
329
|
if (bestAcctNum > 0 && currentAcctNum === 0)
|
|
285
330
|
return best;
|
|
331
|
+
// CRITICAL: Prefer sources with MORE coins (to get both CACAO + MAYA)
|
|
332
|
+
var currentCoinCount = current.coins.length;
|
|
333
|
+
var bestCoinCount = best.coins.length;
|
|
334
|
+
if (currentCoinCount > bestCoinCount)
|
|
335
|
+
return current;
|
|
336
|
+
if (bestCoinCount > currentCoinCount)
|
|
337
|
+
return best;
|
|
286
338
|
// Check for balance (coins array)
|
|
287
339
|
var currentHasBalance = current.coins.length > 0;
|
|
288
340
|
var bestHasBalance = best.coins.length > 0;
|
|
@@ -319,7 +371,7 @@ var get_account_info = function (address) {
|
|
|
319
371
|
};
|
|
320
372
|
var get_balance = function (address) {
|
|
321
373
|
return __awaiter(this, void 0, void 0, function () {
|
|
322
|
-
var tag, accountInfo, balance,
|
|
374
|
+
var tag, accountInfo, balance, e_5;
|
|
323
375
|
return __generator(this, function (_a) {
|
|
324
376
|
switch (_a.label) {
|
|
325
377
|
case 0:
|
|
@@ -336,9 +388,9 @@ var get_balance = function (address) {
|
|
|
336
388
|
// Convert from base units to CACAO
|
|
337
389
|
return [2 /*return*/, balance / BASE_MAYA];
|
|
338
390
|
case 3:
|
|
339
|
-
|
|
340
|
-
log.error(tag, "Error:",
|
|
341
|
-
throw
|
|
391
|
+
e_5 = _a.sent();
|
|
392
|
+
log.error(tag, "Error:", e_5.message);
|
|
393
|
+
throw e_5;
|
|
342
394
|
case 4: return [2 /*return*/];
|
|
343
395
|
}
|
|
344
396
|
});
|
|
@@ -346,7 +398,7 @@ var get_balance = function (address) {
|
|
|
346
398
|
};
|
|
347
399
|
var get_balances = function (address) {
|
|
348
400
|
return __awaiter(this, void 0, void 0, function () {
|
|
349
|
-
var tag, accountInfo, output, addedDenoms, _i, _a, asset, cacaoBalance,
|
|
401
|
+
var tag, accountInfo, output, addedDenoms, _i, _a, asset, cacaoBalance, e_6;
|
|
350
402
|
return __generator(this, function (_b) {
|
|
351
403
|
switch (_b.label) {
|
|
352
404
|
case 0:
|
|
@@ -407,9 +459,9 @@ var get_balances = function (address) {
|
|
|
407
459
|
}
|
|
408
460
|
return [2 /*return*/, output];
|
|
409
461
|
case 3:
|
|
410
|
-
|
|
411
|
-
log.error(tag, "Error:",
|
|
412
|
-
throw
|
|
462
|
+
e_6 = _b.sent();
|
|
463
|
+
log.error(tag, "Error:", e_6.message);
|
|
464
|
+
throw e_6;
|
|
413
465
|
case 4: return [2 /*return*/];
|
|
414
466
|
}
|
|
415
467
|
});
|
|
@@ -417,7 +469,7 @@ var get_balances = function (address) {
|
|
|
417
469
|
};
|
|
418
470
|
var get_txs_by_address = function (address_1, cursor_1) {
|
|
419
471
|
return __awaiter(this, arguments, void 0, function (address, cursor, pageSize) {
|
|
420
|
-
var tag, params, result,
|
|
472
|
+
var tag, params, result, e_7;
|
|
421
473
|
if (pageSize === void 0) { pageSize = 50; }
|
|
422
474
|
return __generator(this, function (_a) {
|
|
423
475
|
switch (_a.label) {
|
|
@@ -439,9 +491,9 @@ var get_txs_by_address = function (address_1, cursor_1) {
|
|
|
439
491
|
result = _a.sent();
|
|
440
492
|
return [2 /*return*/, result.data];
|
|
441
493
|
case 3:
|
|
442
|
-
|
|
443
|
-
log.error(tag, "Error:",
|
|
444
|
-
throw
|
|
494
|
+
e_7 = _a.sent();
|
|
495
|
+
log.error(tag, "Error:", e_7.message);
|
|
496
|
+
throw e_7;
|
|
445
497
|
case 4: return [2 /*return*/];
|
|
446
498
|
}
|
|
447
499
|
});
|
|
@@ -449,7 +501,7 @@ var get_txs_by_address = function (address_1, cursor_1) {
|
|
|
449
501
|
};
|
|
450
502
|
var get_transaction = function (txid) {
|
|
451
503
|
return __awaiter(this, void 0, void 0, function () {
|
|
452
|
-
var tag, _i, MAYA_NODES_1, nodeUrl, result,
|
|
504
|
+
var tag, _i, MAYA_NODES_1, nodeUrl, result, e_8, errorMsg;
|
|
453
505
|
return __generator(this, function (_a) {
|
|
454
506
|
switch (_a.label) {
|
|
455
507
|
case 0:
|
|
@@ -473,8 +525,8 @@ var get_transaction = function (txid) {
|
|
|
473
525
|
log.info(tag, "Successfully fetched tx from ".concat(nodeUrl));
|
|
474
526
|
return [2 /*return*/, result.data];
|
|
475
527
|
case 4:
|
|
476
|
-
|
|
477
|
-
log.warn(tag, "Failed to fetch tx from ".concat(nodeUrl, ": ").concat(
|
|
528
|
+
e_8 = _a.sent();
|
|
529
|
+
log.warn(tag, "Failed to fetch tx from ".concat(nodeUrl, ": ").concat(e_8.message));
|
|
478
530
|
return [3 /*break*/, 5];
|
|
479
531
|
case 5:
|
|
480
532
|
_i++;
|
|
@@ -624,7 +676,7 @@ var broadcast_transaction = function (tx) {
|
|
|
624
676
|
// Pool endpoints use Midgard (not available in Unchained)
|
|
625
677
|
var get_pool = function (poolId) {
|
|
626
678
|
return __awaiter(this, void 0, void 0, function () {
|
|
627
|
-
var tag, params, result,
|
|
679
|
+
var tag, params, result, e_9;
|
|
628
680
|
return __generator(this, function (_a) {
|
|
629
681
|
switch (_a.label) {
|
|
630
682
|
case 0:
|
|
@@ -646,9 +698,9 @@ var get_pool = function (poolId) {
|
|
|
646
698
|
result = _a.sent();
|
|
647
699
|
return [2 /*return*/, result.data];
|
|
648
700
|
case 3:
|
|
649
|
-
|
|
650
|
-
log.error(tag, "Error:",
|
|
651
|
-
throw
|
|
701
|
+
e_9 = _a.sent();
|
|
702
|
+
log.error(tag, "Error:", e_9.message);
|
|
703
|
+
throw e_9;
|
|
652
704
|
case 4: return [2 /*return*/];
|
|
653
705
|
}
|
|
654
706
|
});
|
|
@@ -656,7 +708,7 @@ var get_pool = function (poolId) {
|
|
|
656
708
|
};
|
|
657
709
|
var get_pools = function () {
|
|
658
710
|
return __awaiter(this, void 0, void 0, function () {
|
|
659
|
-
var tag, result,
|
|
711
|
+
var tag, result, e_10;
|
|
660
712
|
return __generator(this, function (_a) {
|
|
661
713
|
switch (_a.label) {
|
|
662
714
|
case 0:
|
|
@@ -673,9 +725,9 @@ var get_pools = function () {
|
|
|
673
725
|
result = _a.sent();
|
|
674
726
|
return [2 /*return*/, result.data];
|
|
675
727
|
case 3:
|
|
676
|
-
|
|
677
|
-
log.error(tag, "Error:",
|
|
678
|
-
throw
|
|
728
|
+
e_10 = _a.sent();
|
|
729
|
+
log.error(tag, "Error:", e_10.message);
|
|
730
|
+
throw e_10;
|
|
679
731
|
case 4: return [2 /*return*/];
|
|
680
732
|
}
|
|
681
733
|
});
|