@leofcoin/chain 1.4.26 → 1.4.28

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.
Files changed (2) hide show
  1. package/exports/chain.js +14 -8
  2. package/package.json +1 -1
package/exports/chain.js CHANGED
@@ -590,12 +590,17 @@ class Chain extends Contract {
590
590
  promises = await Promise.allSettled(promises);
591
591
  promises = promises.filter(({ status }) => status === 'fulfilled');
592
592
  clearTimeout(timeout);
593
- promises = promises.map(async ({ value }) => {
594
- const node = await new peernet.protos['peernet-response'](value.result);
595
- return { value: node.decoded.response, peer: value.peer };
596
- });
597
- promises = await Promise.all(promises);
598
- resolve(promises);
593
+ if (promises.length > 0) {
594
+ promises = promises.map(async ({ value }) => {
595
+ const node = await new peernet.protos['peernet-response'](value.result);
596
+ return { value: node.decoded.response, peer: value.peer };
597
+ });
598
+ promises = await Promise.all(promises);
599
+ resolve(promises);
600
+ }
601
+ else {
602
+ resolve([]);
603
+ }
599
604
  });
600
605
  }
601
606
  getLatestBlock() {
@@ -622,7 +627,8 @@ class Chain extends Contract {
622
627
  promises = await this.promiseRequests(promises);
623
628
  let latest = { index: 0, hash: '0x0', previousHash: '0x0' };
624
629
  promises = promises.sort((a, b) => b.index - a.index);
625
- latest = promises[0].value;
630
+ if (promises.length > 0)
631
+ latest = promises[0].value;
626
632
  if (latest.hash && latest.hash !== '0x0') {
627
633
  let message = await peernet.get(latest.hash, 'block');
628
634
  message = await new BlockMessage(message);
@@ -632,12 +638,12 @@ class Chain extends Contract {
632
638
  let data = await new peernet.protos['peernet-request']({ request: 'knownBlocks' });
633
639
  let node = await peernet.prepareMessage(data);
634
640
  const peer = promises[0].peer;
641
+ latest = { ...message.decoded, hash };
635
642
  if (peer.connected && peer.readyState === 'open' && peer.peerId !== this.id) {
636
643
  let message = await peer.request(node);
637
644
  message = await new peernet.protos['peernet-response'](message);
638
645
  this.#knownBlocks = message.decoded.response;
639
646
  }
640
- latest = { ...message.decoded, hash };
641
647
  }
642
648
  return latest;
643
649
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/chain",
3
- "version": "1.4.26",
3
+ "version": "1.4.28",
4
4
  "description": "Official javascript implementation",
5
5
  "exports": {
6
6
  "./node": "./exports/node.js",