@leofcoin/chain 1.8.7 → 1.8.9
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/exports/browser/chain.js +42 -23
- package/exports/browser/{index-DUfUgiQY.js → constants-ByuwyBVy.js} +773 -81
- package/exports/browser/node-browser.js +84 -4
- package/exports/chain.js +38 -17
- package/exports/constants-eo0U5-D_.js +12 -0
- package/exports/constants.d.ts +2 -0
- package/exports/node.js +2 -8
- package/package.json +4 -4
- package/exports/browser/browser-CfYI-6aD-DHRKebpJ.js +0 -132
- package/exports/browser/browser-Qcpp3EKK-DOtgsScX.js +0 -38
- package/exports/browser/client-CWkdUcxK-Cki9t2ip.js +0 -989
- package/exports/browser/identity-nIyW_Xm8-BU8xakCv.js +0 -17199
- package/exports/browser/index-ChRjMyiM-EjbBu23l.js +0 -36
- package/exports/browser/index-DTbjK0sK-BK_5FT46.js +0 -7580
- package/exports/browser/messages-C507MMRx-DCBd2pRi.js +0 -207
- package/exports/browser/networks-BdMfU1ag.js +0 -25
- package/exports/browser/node-browser-CRH9Pg7V.js +0 -9132
- package/exports/browser/password-oDixGC8h.js +0 -3
- package/exports/browser/qr-scanner-worker.min-Dy0qkKA4-Dy0qkKA4.js +0 -100
- package/exports/flags.d.ts +0 -2
package/exports/browser/chain.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as toBase58, T as TransactionMessage, C as ContractMessage, R as RawTransactionMessage, B as BlockMessage, a as
|
|
1
|
+
import { t as toBase58, T as TransactionMessage, C as ContractMessage, R as RawTransactionMessage, B as BlockMessage, P as PROTOCOL_VERSION, a as REACHED_ONE_ZERO_ZERO, b as BWMessage, c as BWRequestMessage } from './constants-ByuwyBVy.js';
|
|
2
2
|
import { log } from 'console';
|
|
3
3
|
import { log as log$1 } from 'node:console';
|
|
4
4
|
|
|
@@ -1201,8 +1201,8 @@ function requireRe () {
|
|
|
1201
1201
|
|
|
1202
1202
|
// ## Pre-release Version Identifier
|
|
1203
1203
|
// A numeric identifier, or a non-numeric identifier.
|
|
1204
|
-
// Non-
|
|
1205
|
-
// Therefore non-
|
|
1204
|
+
// Non-numeric identifiers include numeric identifiers but can be longer.
|
|
1205
|
+
// Therefore non-numeric identifiers must go first.
|
|
1206
1206
|
|
|
1207
1207
|
createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]
|
|
1208
1208
|
}|${src[t.NUMERICIDENTIFIER]})`);
|
|
@@ -1898,7 +1898,7 @@ function requireDiff () {
|
|
|
1898
1898
|
return prefix + 'patch'
|
|
1899
1899
|
}
|
|
1900
1900
|
|
|
1901
|
-
// high and low are
|
|
1901
|
+
// high and low are prereleases
|
|
1902
1902
|
return 'prerelease'
|
|
1903
1903
|
};
|
|
1904
1904
|
|
|
@@ -3457,7 +3457,7 @@ function requireSubset () {
|
|
|
3457
3457
|
// - If LT
|
|
3458
3458
|
// - If LT.semver is greater than any < or <= comp in C, return false
|
|
3459
3459
|
// - If LT is <=, and LT.semver does not satisfy every C, return false
|
|
3460
|
-
// - If
|
|
3460
|
+
// - If LT.semver has a prerelease, and not in prerelease mode
|
|
3461
3461
|
// - If no C has a prerelease and the LT.semver tuple, return false
|
|
3462
3462
|
// - Else return true
|
|
3463
3463
|
|
|
@@ -5270,14 +5270,20 @@ class State extends Contract {
|
|
|
5270
5270
|
}
|
|
5271
5271
|
try {
|
|
5272
5272
|
const block = await this.getAndPutBlock(hash);
|
|
5273
|
-
await Promise.all(block.decoded.transactions
|
|
5273
|
+
await Promise.all(block.decoded.transactions
|
|
5274
|
+
.filter((hash) => Boolean(hash))
|
|
5275
|
+
.map(async (hash) => {
|
|
5274
5276
|
// should be in a transaction store already
|
|
5275
|
-
|
|
5277
|
+
const exists = await transactionStore.has(hash);
|
|
5278
|
+
if (!exists) {
|
|
5276
5279
|
const data = await peernet.get(hash, 'transaction');
|
|
5280
|
+
if (!data)
|
|
5281
|
+
throw new Error(`missing transaction data for ${hash}`);
|
|
5277
5282
|
await transactionStore.put(hash, data);
|
|
5278
5283
|
}
|
|
5279
|
-
;
|
|
5280
|
-
|
|
5284
|
+
const inPool = await transactionPoolStore.has(hash);
|
|
5285
|
+
if (inPool)
|
|
5286
|
+
await transactionPoolStore.delete(hash);
|
|
5281
5287
|
}));
|
|
5282
5288
|
index = block.decoded.index;
|
|
5283
5289
|
const size = block.encoded.length > 0 ? block.encoded.length : block.encoded.byteLength;
|
|
@@ -5693,14 +5699,12 @@ class State extends Contract {
|
|
|
5693
5699
|
}
|
|
5694
5700
|
}
|
|
5695
5701
|
|
|
5696
|
-
const currentVersion = '0.1.1';
|
|
5697
|
-
|
|
5698
5702
|
class VersionControl extends State {
|
|
5699
5703
|
constructor(config) {
|
|
5700
5704
|
super(config);
|
|
5701
5705
|
}
|
|
5702
|
-
#currentVersion =
|
|
5703
|
-
#reachedOneZeroZero =
|
|
5706
|
+
#currentVersion = PROTOCOL_VERSION;
|
|
5707
|
+
#reachedOneZeroZero = REACHED_ONE_ZERO_ZERO;
|
|
5704
5708
|
async #setCurrentVersion() {
|
|
5705
5709
|
this.version = this.#currentVersion;
|
|
5706
5710
|
await globalThis.chainStore.put('version', this.version);
|
|
@@ -5709,8 +5713,10 @@ class VersionControl extends State {
|
|
|
5709
5713
|
super.init && (await super.init());
|
|
5710
5714
|
try {
|
|
5711
5715
|
const version = await globalThis.chainStore.get('version');
|
|
5712
|
-
|
|
5713
|
-
console.log(
|
|
5716
|
+
const storedVersion = new TextDecoder().decode(version);
|
|
5717
|
+
console.log(storedVersion, this.#currentVersion);
|
|
5718
|
+
// Always use current version, update store if different
|
|
5719
|
+
this.version = this.#currentVersion;
|
|
5714
5720
|
/**
|
|
5715
5721
|
* protocol version control!
|
|
5716
5722
|
* Note that before v1.2.2 everything gets deleted because of big changes,
|
|
@@ -5726,12 +5732,13 @@ class VersionControl extends State {
|
|
|
5726
5732
|
// if so, clear all data
|
|
5727
5733
|
// once v1.0.0 is reached this will not run and we can remove this check once every node is above v1.0.0
|
|
5728
5734
|
console.warn('the reachedZeroZero flag is set to false, this will clear all data on every start if above v1.0.0');
|
|
5729
|
-
if (semver.compare(
|
|
5735
|
+
if (semver.compare(storedVersion, '1.0.0') === 1 && !this.#reachedOneZeroZero) {
|
|
5730
5736
|
console.warn('clearing all data because we are below v1.0.0');
|
|
5731
5737
|
await this.clearAll();
|
|
5732
5738
|
}
|
|
5733
|
-
if (
|
|
5734
|
-
|
|
5739
|
+
if (storedVersion !== this.#currentVersion) {
|
|
5740
|
+
console.log(`Version mismatch: stored=${storedVersion}, current=${this.#currentVersion}. Updating...`);
|
|
5741
|
+
await globalThis.chainStore.put('version', this.version);
|
|
5735
5742
|
}
|
|
5736
5743
|
// if (version)
|
|
5737
5744
|
}
|
|
@@ -5765,7 +5772,13 @@ class ConnectionMonitor {
|
|
|
5765
5772
|
return Object.values(globalThis.peernet?.connections || {}).filter((peer) => peer.connected);
|
|
5766
5773
|
}
|
|
5767
5774
|
get compatiblePeers() {
|
|
5768
|
-
return this.connectedPeers.filter((peer) =>
|
|
5775
|
+
return this.connectedPeers.filter((peer) => {
|
|
5776
|
+
if (!peer.version || !this.#version)
|
|
5777
|
+
return false;
|
|
5778
|
+
const [peerMajor, peerMinor] = peer.version.split('.');
|
|
5779
|
+
const [localMajor, localMinor] = this.#version.split('.');
|
|
5780
|
+
return peerMajor === localMajor && peerMinor === localMinor;
|
|
5781
|
+
});
|
|
5769
5782
|
}
|
|
5770
5783
|
get disconnectedPeers() {
|
|
5771
5784
|
return Object.values(globalThis.peernet?.connections || {}).filter((peer) => !peer.connected);
|
|
@@ -5983,7 +5996,7 @@ class ConnectionMonitor {
|
|
|
5983
5996
|
const networkName = globalThis.peernet?.network;
|
|
5984
5997
|
if (networkName && typeof networkName === 'string') {
|
|
5985
5998
|
// Try to import network config
|
|
5986
|
-
const { default: networks } = await import('./
|
|
5999
|
+
const { default: networks } = await import('./constants-ByuwyBVy.js').then(function (n) { return n.n; });
|
|
5987
6000
|
const [mainKey, subKey] = networkName.split(':');
|
|
5988
6001
|
const networkConfig = networks?.[mainKey]?.[subKey];
|
|
5989
6002
|
if (networkConfig?.stars && Array.isArray(networkConfig.stars)) {
|
|
@@ -6291,11 +6304,17 @@ class Chain extends VersionControl {
|
|
|
6291
6304
|
// todo handle version changes
|
|
6292
6305
|
// for now just do nothing if version doesn't match
|
|
6293
6306
|
debug(`peer connected with version ${peer.version}`);
|
|
6294
|
-
|
|
6307
|
+
const compatibleVersion = () => {
|
|
6308
|
+
if (!peer.version || !this.version)
|
|
6309
|
+
return false;
|
|
6310
|
+
const [peerMajor, peerMinor] = peer.version.split('.');
|
|
6311
|
+
const [localMajor, localMinor] = this.version.split('.');
|
|
6312
|
+
return peerMajor === localMajor && peerMinor === localMinor;
|
|
6313
|
+
};
|
|
6314
|
+
if (!compatibleVersion()) {
|
|
6295
6315
|
debug(`versions don't match`);
|
|
6296
|
-
}
|
|
6297
|
-
if (!peer.version || peer.version !== this.version)
|
|
6298
6316
|
return;
|
|
6317
|
+
}
|
|
6299
6318
|
const lastBlock = await this.#makeRequest(peer, 'lastBlock');
|
|
6300
6319
|
const localBlock = await this.lastBlock;
|
|
6301
6320
|
if (lastBlock.hash === '0x0')
|