@leofcoin/chain 1.9.14 → 1.9.16

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,3 +1,3 @@
1
- export { N as default } from './node-browser-Oq89xLSU.js';
2
- import './identity-B8_RBemH-Dq17MYzU.js';
1
+ export { N as default } from './node-browser-y2adT6_R.js';
2
+ import 'crypto';
3
3
  import './constants-V2VjIc2r.js';
package/exports/chain.js CHANGED
@@ -2532,9 +2532,11 @@ class Chain extends VersionControl {
2532
2532
  });
2533
2533
  await globalThis.peernet.addRequestHandler("transactionPool", this.#transactionPoolHandler.bind(this));
2534
2534
  await globalThis.peernet.addRequestHandler("version", this.#versionHandler.bind(this));
2535
- await globalThis.peernet.addRequestHandler("stateInfo", () => {
2535
+ await globalThis.peernet.addRequestHandler("stateInfo", async () => {
2536
+ const lastblock = await this.lastBlock || { index: 0, hash: "0x0", previousHash: "0x0" };
2537
+ const values = this.machine?.states?.info || {};
2536
2538
  return new globalThis.peernet.protos["peernet-response"]({
2537
- response: new StateMessage(this.machine.states.info).encoded
2539
+ response: new StateMessage({ lastblock, values }).encoded
2538
2540
  });
2539
2541
  });
2540
2542
  globalThis.peernet.subscribe("add-block", this.#addBlock.bind(this));
@@ -2586,10 +2588,27 @@ class Chain extends VersionControl {
2586
2588
  try {
2587
2589
  let response = await peer.request(node.encoded);
2588
2590
  response = await new globalThis.peernet.protos["peernet-response"](response);
2589
- if (!(response.decoded.response instanceof Uint8Array)) {
2590
- console.warn(`Deprecated: ${response.decoded.response} is not an Uint8Array`);
2591
- }
2592
- return response.decoded.response;
2591
+ const decodeResponse = async (payload) => {
2592
+ if (!(payload instanceof Uint8Array)) return payload;
2593
+ for (let i = 0; i < 3; i++) {
2594
+ try {
2595
+ const nested = await new globalThis.peernet.protos["peernet-response"](payload);
2596
+ payload = nested?.decoded?.response;
2597
+ if (!(payload instanceof Uint8Array)) break;
2598
+ } catch {
2599
+ break;
2600
+ }
2601
+ }
2602
+ if (payload instanceof Uint8Array) {
2603
+ try {
2604
+ return JSON.parse(new TextDecoder().decode(payload));
2605
+ } catch {
2606
+ return payload;
2607
+ }
2608
+ }
2609
+ return payload;
2610
+ };
2611
+ return await decodeResponse(response.decoded.response);
2593
2612
  } catch (error) {
2594
2613
  const peerId = peer?.peerId || peer?.id || peer?.address || "unknown";
2595
2614
  debug(`peernet request failed: ${request} -> ${peerId}:`, error?.message ?? error);
@@ -2776,7 +2795,8 @@ class Chain extends VersionControl {
2776
2795
  try {
2777
2796
  let stateInfo = await this.#makeRequest(peer, "stateInfo");
2778
2797
  if (stateInfo instanceof Uint8Array) {
2779
- stateInfo = new StateMessage(stateInfo).decoded;
2798
+ const decodedStateInfo = new StateMessage(stateInfo).decoded;
2799
+ stateInfo = decodedStateInfo?.values ?? decodedStateInfo;
2780
2800
  }
2781
2801
  debug(
2782
2802
  `sync start with peer ${peerId}: local=${localBlock?.index ?? -1} remote=${lastBlock?.index ?? -1} hash=${lastBlock?.hash}`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/chain",
3
- "version": "1.9.14",
3
+ "version": "1.9.16",
4
4
  "description": "Official javascript implementation",
5
5
  "private": false,
6
6
  "exports": {
@@ -49,7 +49,7 @@
49
49
  "author": "",
50
50
  "license": "MIT",
51
51
  "devDependencies": {
52
- "@rollup/plugin-commonjs": "^29.0.2",
52
+ "@rollup/plugin-commonjs": "^29.0.3",
53
53
  "@rollup/plugin-json": "^6.1.0",
54
54
  "@rollup/plugin-node-resolve": "^16.0.3",
55
55
  "@rollup/plugin-typescript": "^12.3.0",
@@ -69,9 +69,9 @@
69
69
  "@leofcoin/errors": "^1.0.28",
70
70
  "@leofcoin/lib": "^1.2.77",
71
71
  "@leofcoin/messages": "^1.5.2",
72
- "@leofcoin/multi-wallet": "^3.1.8",
72
+ "@leofcoin/multi-wallet": "^3.1.9",
73
73
  "@leofcoin/networks": "^1.1.28",
74
- "@leofcoin/peernet": "^1.2.20",
74
+ "@leofcoin/peernet": "^1.2.21",
75
75
  "@leofcoin/storage": "^3.5.38",
76
76
  "@leofcoin/utils": "^1.1.42",
77
77
  "@leofcoin/workers": "^1.5.30",