@pioneer-platform/maya-network 8.13.2 → 8.13.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @pioneer-platform/maya-network
2
2
 
3
+ ## 8.13.5
4
+
5
+ ### Patch Changes
6
+
7
+ - fix(mayachain): implement consensus-based account sequence from all nodes
8
+
9
+ ## 8.13.4
10
+
11
+ ### Patch Changes
12
+
13
+ - Fix MayaChain balance endpoint returning 0
14
+
15
+ - Fixed Maya node balance fetching by adding separate call to /cosmos/bank/v1beta1/balances/
16
+ - Fixed CACAO balance extraction to search for coin with denom='cacao' instead of coins[0]
17
+ - Both Unchained API and Maya node endpoints now return correct balances
18
+
19
+ ## 8.13.3
20
+
21
+ ### Patch Changes
22
+
23
+ - fix(mayachain): implement consensus-based account sequence from all nodes
24
+
3
25
  ## 8.13.2
4
26
 
5
27
  ### Patch Changes
package/lib/index.d.ts CHANGED
@@ -31,7 +31,7 @@ declare const get_account_info: (address: string) => Promise<{
31
31
  declare const get_balance: (address: string) => Promise<number>;
32
32
  declare const get_balances: (address: string) => Promise<any[]>;
33
33
  declare const get_txs_by_address: (address: string, cursor?: string, pageSize?: number) => Promise<any>;
34
- declare const get_transaction: (txid: string) => Promise<never>;
34
+ declare const get_transaction: (txid: string) => Promise<any>;
35
35
  declare const broadcast_transaction: (tx: string) => Promise<any>;
36
36
  declare const get_pool: (poolId: string) => Promise<any>;
37
37
  declare const get_pools: () => Promise<any>;
package/lib/index.js CHANGED
@@ -180,11 +180,10 @@ 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;
183
+ var tag, allEndpoints, results, successfulResults, mostRecentAccount, cacaoCoin, cacaoBalance;
184
184
  var _this = this;
185
- var _a, _b;
186
- return __generator(this, function (_c) {
187
- switch (_c.label) {
185
+ return __generator(this, function (_a) {
186
+ switch (_a.label) {
188
187
  case 0:
189
188
  tag = TAG + " | get_account_info | ";
190
189
  allEndpoints = __spreadArray([
@@ -217,7 +216,7 @@ var get_account_info = function (address) {
217
216
  ], MAYA_NODES.map(function (nodeUrl) { return ({
218
217
  name: nodeUrl,
219
218
  fetch: function () { return __awaiter(_this, void 0, void 0, function () {
220
- var result, accountData;
219
+ var accountResult, accountData, coins, balanceResult, e_2;
221
220
  return __generator(this, function (_a) {
222
221
  switch (_a.label) {
223
222
  case 0: return [4 /*yield*/, axiosInstance({
@@ -226,16 +225,33 @@ var get_account_info = function (address) {
226
225
  timeout: 8000
227
226
  })];
228
227
  case 1:
229
- result = _a.sent();
230
- accountData = result.data.account || result.data;
231
- return [2 /*return*/, {
232
- account_number: String(accountData.account_number || '0'),
233
- sequence: parseInt(accountData.sequence || '0'),
234
- address: accountData.address || address,
235
- coins: accountData.coins || [],
236
- public_key: accountData.pub_key || null,
237
- source: nodeUrl
238
- }];
228
+ accountResult = _a.sent();
229
+ accountData = accountResult.data.account || accountResult.data;
230
+ coins = [];
231
+ _a.label = 2;
232
+ case 2:
233
+ _a.trys.push([2, 4, , 5]);
234
+ return [4 /*yield*/, axiosInstance({
235
+ method: 'GET',
236
+ url: "".concat(nodeUrl, "/cosmos/bank/v1beta1/balances/").concat(address),
237
+ timeout: 8000
238
+ })];
239
+ case 3:
240
+ balanceResult = _a.sent();
241
+ coins = balanceResult.data.balances || [];
242
+ return [3 /*break*/, 5];
243
+ case 4:
244
+ e_2 = _a.sent();
245
+ log.warn(tag, "Failed to fetch balances from ".concat(nodeUrl, ": ").concat(e_2.message));
246
+ return [3 /*break*/, 5];
247
+ case 5: return [2 /*return*/, {
248
+ account_number: String(accountData.account_number || '0'),
249
+ sequence: parseInt(accountData.sequence || '0'),
250
+ address: accountData.address || address,
251
+ coins: coins,
252
+ public_key: accountData.pub_key || null,
253
+ source: nodeUrl
254
+ }];
239
255
  }
240
256
  });
241
257
  }); }
@@ -246,7 +262,7 @@ var get_account_info = function (address) {
246
262
  // Extract successful responses
247
263
  ];
248
264
  case 1:
249
- results = _c.sent();
265
+ results = _a.sent();
250
266
  successfulResults = results
251
267
  .filter(function (result) { return result.status === 'fulfilled'; })
252
268
  .map(function (result) { return result.value; });
@@ -260,6 +276,8 @@ var get_account_info = function (address) {
260
276
  return current.sequence > max.sequence ? current : max;
261
277
  });
262
278
  log.info(tag, "Using account info from ".concat(mostRecentAccount.source, " with sequence ").concat(mostRecentAccount.sequence));
279
+ cacaoCoin = mostRecentAccount.coins.find(function (coin) { return coin.denom === 'cacao'; });
280
+ cacaoBalance = (cacaoCoin === null || cacaoCoin === void 0 ? void 0 : cacaoCoin.amount) || '0';
263
281
  // Return in expected format
264
282
  return [2 /*return*/, {
265
283
  result: {
@@ -273,7 +291,7 @@ var get_account_info = function (address) {
273
291
  },
274
292
  accountNumber: mostRecentAccount.account_number,
275
293
  sequence: String(mostRecentAccount.sequence),
276
- balance: ((_b = (_a = mostRecentAccount.coins) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.amount) || '0',
294
+ balance: cacaoBalance,
277
295
  assets: mostRecentAccount.coins || []
278
296
  }];
279
297
  }
@@ -282,7 +300,7 @@ var get_account_info = function (address) {
282
300
  };
283
301
  var get_balance = function (address) {
284
302
  return __awaiter(this, void 0, void 0, function () {
285
- var tag, accountInfo, balance, e_2;
303
+ var tag, accountInfo, balance, e_3;
286
304
  return __generator(this, function (_a) {
287
305
  switch (_a.label) {
288
306
  case 0:
@@ -299,9 +317,9 @@ var get_balance = function (address) {
299
317
  // Convert from base units to CACAO
300
318
  return [2 /*return*/, balance / BASE_MAYA];
301
319
  case 3:
302
- e_2 = _a.sent();
303
- log.error(tag, "Error:", e_2.message);
304
- throw e_2;
320
+ e_3 = _a.sent();
321
+ log.error(tag, "Error:", e_3.message);
322
+ throw e_3;
305
323
  case 4: return [2 /*return*/];
306
324
  }
307
325
  });
@@ -309,7 +327,7 @@ var get_balance = function (address) {
309
327
  };
310
328
  var get_balances = function (address) {
311
329
  return __awaiter(this, void 0, void 0, function () {
312
- var tag, accountInfo, output, cacaoBalance, _i, _a, asset, e_3;
330
+ var tag, accountInfo, output, cacaoBalance, _i, _a, asset, e_4;
313
331
  return __generator(this, function (_b) {
314
332
  switch (_b.label) {
315
333
  case 0:
@@ -358,9 +376,9 @@ var get_balances = function (address) {
358
376
  }
359
377
  return [2 /*return*/, output];
360
378
  case 3:
361
- e_3 = _b.sent();
362
- log.error(tag, "Error:", e_3.message);
363
- throw e_3;
379
+ e_4 = _b.sent();
380
+ log.error(tag, "Error:", e_4.message);
381
+ throw e_4;
364
382
  case 4: return [2 /*return*/];
365
383
  }
366
384
  });
@@ -368,7 +386,7 @@ var get_balances = function (address) {
368
386
  };
369
387
  var get_txs_by_address = function (address_1, cursor_1) {
370
388
  return __awaiter(this, arguments, void 0, function (address, cursor, pageSize) {
371
- var tag, params, result, e_4;
389
+ var tag, params, result, e_5;
372
390
  if (pageSize === void 0) { pageSize = 50; }
373
391
  return __generator(this, function (_a) {
374
392
  switch (_a.label) {
@@ -390,9 +408,9 @@ var get_txs_by_address = function (address_1, cursor_1) {
390
408
  result = _a.sent();
391
409
  return [2 /*return*/, result.data];
392
410
  case 3:
393
- e_4 = _a.sent();
394
- log.error(tag, "Error:", e_4.message);
395
- throw e_4;
411
+ e_5 = _a.sent();
412
+ log.error(tag, "Error:", e_5.message);
413
+ throw e_5;
396
414
  case 4: return [2 /*return*/];
397
415
  }
398
416
  });
@@ -400,26 +418,47 @@ var get_txs_by_address = function (address_1, cursor_1) {
400
418
  };
401
419
  var get_transaction = function (txid) {
402
420
  return __awaiter(this, void 0, void 0, function () {
403
- var tag;
421
+ var tag, _i, MAYA_NODES_1, nodeUrl, result, e_6, errorMsg;
404
422
  return __generator(this, function (_a) {
405
- tag = TAG + " | get_transaction | ";
406
- try {
407
- // Unchained doesn't have a direct tx lookup endpoint
408
- // Would need to implement via account txs or use Midgard/node fallback
409
- log.warn(tag, "Transaction lookup not implemented in Unchained API, use Midgard or node directly");
410
- throw new Error("Transaction lookup not available in Unchained API");
411
- }
412
- catch (e) {
413
- log.error(tag, "Error:", e.message);
414
- throw e;
423
+ switch (_a.label) {
424
+ case 0:
425
+ tag = TAG + " | get_transaction | ";
426
+ _i = 0, MAYA_NODES_1 = MAYA_NODES;
427
+ _a.label = 1;
428
+ case 1:
429
+ if (!(_i < MAYA_NODES_1.length)) return [3 /*break*/, 6];
430
+ nodeUrl = MAYA_NODES_1[_i];
431
+ _a.label = 2;
432
+ case 2:
433
+ _a.trys.push([2, 4, , 5]);
434
+ log.info(tag, "Trying to fetch tx from: ".concat(nodeUrl));
435
+ return [4 /*yield*/, axiosInstance({
436
+ method: 'GET',
437
+ url: "".concat(nodeUrl, "/cosmos/tx/v1beta1/txs/").concat(txid),
438
+ timeout: 8000
439
+ })];
440
+ case 3:
441
+ result = _a.sent();
442
+ log.info(tag, "Successfully fetched tx from ".concat(nodeUrl));
443
+ return [2 /*return*/, result.data];
444
+ case 4:
445
+ e_6 = _a.sent();
446
+ log.warn(tag, "Failed to fetch tx from ".concat(nodeUrl, ": ").concat(e_6.message));
447
+ return [3 /*break*/, 5];
448
+ case 5:
449
+ _i++;
450
+ return [3 /*break*/, 1];
451
+ case 6:
452
+ errorMsg = "Transaction lookup failed on all Maya nodes";
453
+ log.error(tag, errorMsg);
454
+ throw new Error(errorMsg);
415
455
  }
416
- return [2 /*return*/];
417
456
  });
418
457
  });
419
458
  };
420
459
  var broadcast_transaction = function (tx) {
421
460
  return __awaiter(this, void 0, void 0, function () {
422
- var tag, output, payload, result, unchainedError_1, nodeErrors, _i, MAYA_NODES_1, nodeUrl, nodeResult, txResponse, nodeError, nodeError_1, errorTxResponse, nodeErrorMsg;
461
+ var tag, output, payload, result, unchainedError_1, nodeErrors, _i, MAYA_NODES_2, nodeUrl, nodeResult, txResponse, nodeError, nodeError_1, errorTxResponse, nodeErrorMsg;
423
462
  var _a, _b, _c, _d, _e, _f;
424
463
  return __generator(this, function (_g) {
425
464
  switch (_g.label) {
@@ -477,11 +516,11 @@ var broadcast_transaction = function (tx) {
477
516
  return [3 /*break*/, 4];
478
517
  case 4:
479
518
  nodeErrors = [];
480
- _i = 0, MAYA_NODES_1 = MAYA_NODES;
519
+ _i = 0, MAYA_NODES_2 = MAYA_NODES;
481
520
  _g.label = 5;
482
521
  case 5:
483
- if (!(_i < MAYA_NODES_1.length)) return [3 /*break*/, 10];
484
- nodeUrl = MAYA_NODES_1[_i];
522
+ if (!(_i < MAYA_NODES_2.length)) return [3 /*break*/, 10];
523
+ nodeUrl = MAYA_NODES_2[_i];
485
524
  _g.label = 6;
486
525
  case 6:
487
526
  _g.trys.push([6, 8, , 9]);
@@ -554,7 +593,7 @@ var broadcast_transaction = function (tx) {
554
593
  // Pool endpoints use Midgard (not available in Unchained)
555
594
  var get_pool = function (poolId) {
556
595
  return __awaiter(this, void 0, void 0, function () {
557
- var tag, params, result, e_5;
596
+ var tag, params, result, e_7;
558
597
  return __generator(this, function (_a) {
559
598
  switch (_a.label) {
560
599
  case 0:
@@ -576,9 +615,9 @@ var get_pool = function (poolId) {
576
615
  result = _a.sent();
577
616
  return [2 /*return*/, result.data];
578
617
  case 3:
579
- e_5 = _a.sent();
580
- log.error(tag, "Error:", e_5.message);
581
- throw e_5;
618
+ e_7 = _a.sent();
619
+ log.error(tag, "Error:", e_7.message);
620
+ throw e_7;
582
621
  case 4: return [2 /*return*/];
583
622
  }
584
623
  });
@@ -586,7 +625,7 @@ var get_pool = function (poolId) {
586
625
  };
587
626
  var get_pools = function () {
588
627
  return __awaiter(this, void 0, void 0, function () {
589
- var tag, result, e_6;
628
+ var tag, result, e_8;
590
629
  return __generator(this, function (_a) {
591
630
  switch (_a.label) {
592
631
  case 0:
@@ -603,9 +642,9 @@ var get_pools = function () {
603
642
  result = _a.sent();
604
643
  return [2 /*return*/, result.data];
605
644
  case 3:
606
- e_6 = _a.sent();
607
- log.error(tag, "Error:", e_6.message);
608
- throw e_6;
645
+ e_8 = _a.sent();
646
+ log.error(tag, "Error:", e_8.message);
647
+ throw e_8;
609
648
  case 4: return [2 /*return*/];
610
649
  }
611
650
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pioneer-platform/maya-network",
3
- "version": "8.13.2",
3
+ "version": "8.13.5",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "scripts": {