@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.
@@ -1 +1,2 @@
1
- $ tsc -p .
1
+
2
+ $ tsc -p .
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
- return __generator(this, function (_a) {
195
- switch (_a.label) {
196
- case 0: return [4 /*yield*/, axiosInstance({
197
- method: 'GET',
198
- url: "".concat(UNCHAINED_API, "/api/v1/account/").concat(address),
199
- timeout: 5000
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 = _a.sent();
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, e_2;
220
- return __generator(this, function (_a) {
221
- switch (_a.label) {
222
- case 0: return [4 /*yield*/, axiosInstance({
223
- method: 'GET',
224
- url: "".concat(nodeUrl, "/cosmos/auth/v1beta1/accounts/").concat(address),
225
- timeout: 8000
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 = _a.sent();
250
+ accountResult = _c.sent();
229
251
  accountData = accountResult.data.account || accountResult.data;
230
252
  coins = [];
231
- _a.label = 2;
253
+ _c.label = 2;
232
254
  case 2:
233
- _a.trys.push([2, 4, , 5]);
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 = _a.sent();
262
+ balanceResult = _c.sent();
241
263
  coins = balanceResult.data.balances || [];
242
264
  return [3 /*break*/, 5];
243
265
  case 4:
244
- e_2 = _a.sent();
245
- log.warn(tag, "Failed to fetch balances from ".concat(nodeUrl, ": ").concat(e_2.message));
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
- log.error(tag, "All endpoints failed");
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, e_3;
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
- e_3 = _a.sent();
340
- log.error(tag, "Error:", e_3.message);
341
- throw e_3;
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, e_4;
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
- e_4 = _b.sent();
411
- log.error(tag, "Error:", e_4.message);
412
- throw e_4;
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, e_5;
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
- e_5 = _a.sent();
443
- log.error(tag, "Error:", e_5.message);
444
- throw e_5;
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, e_6, errorMsg;
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
- e_6 = _a.sent();
477
- log.warn(tag, "Failed to fetch tx from ".concat(nodeUrl, ": ").concat(e_6.message));
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, e_7;
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
- e_7 = _a.sent();
650
- log.error(tag, "Error:", e_7.message);
651
- throw e_7;
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, e_8;
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
- e_8 = _a.sent();
677
- log.error(tag, "Error:", e_8.message);
678
- throw e_8;
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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pioneer-platform/maya-network",
3
- "version": "8.13.18",
3
+ "version": "8.13.20",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "scripts": {