@leofcoin/chain 1.4.47 → 1.4.49
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 +29 -8
- package/exports/browser/{client-bdab491d-5e9615c3.js → client-345f1d43-a7ba559a.js} +1 -1
- package/exports/browser/{index-116df6d1-d144f080.js → index-5ed49438-539fe0fa.js} +1 -1
- package/exports/browser/{messages-fab7583b-10480899.js → messages-c26f8e97-a3403983.js} +1 -1
- package/exports/browser/{node-browser-b64e2ed2.js → node-browser-8791470c.js} +12 -5
- package/exports/browser/node-browser.js +1 -1
- package/exports/chain.js +29 -8
- package/exports/typings/chain.d.ts +1 -0
- package/package.json +1 -1
package/exports/browser/chain.js
CHANGED
|
@@ -7860,6 +7860,7 @@ class Contract extends Transaction {
|
|
|
7860
7860
|
globalThis.BigNumber = BigNumber;
|
|
7861
7861
|
// check if browser or local
|
|
7862
7862
|
class Chain extends Contract {
|
|
7863
|
+
version;
|
|
7863
7864
|
#state;
|
|
7864
7865
|
#lastResolved;
|
|
7865
7866
|
#slotTime = 10000;
|
|
@@ -8024,7 +8025,7 @@ class Chain extends Contract {
|
|
|
8024
8025
|
let data = await new globalThis.peernet.protos['peernet-request']({ request: 'lastBlock' });
|
|
8025
8026
|
let node = await globalThis.peernet.prepareMessage(data);
|
|
8026
8027
|
for (const peer of globalThis.peernet?.connections) {
|
|
8027
|
-
if (peer.connected) {
|
|
8028
|
+
if (peer.connected && peer.version === this.version) {
|
|
8028
8029
|
promises.push(async () => {
|
|
8029
8030
|
try {
|
|
8030
8031
|
const result = await peer.request(node.encoded);
|
|
@@ -8035,11 +8036,6 @@ class Chain extends Contract {
|
|
|
8035
8036
|
}
|
|
8036
8037
|
});
|
|
8037
8038
|
}
|
|
8038
|
-
else if (!peer.connected) {
|
|
8039
|
-
globalThis.peernet.removePeer(peer);
|
|
8040
|
-
// todo: remove peer
|
|
8041
|
-
// reinitiate channel?
|
|
8042
|
-
}
|
|
8043
8039
|
}
|
|
8044
8040
|
promises = await this.promiseRequests(promises);
|
|
8045
8041
|
let latest = { index: 0, hash: '0x0', previousHash: '0x0' };
|
|
@@ -8056,7 +8052,7 @@ class Chain extends Contract {
|
|
|
8056
8052
|
let node = await globalThis.peernet.prepareMessage(data);
|
|
8057
8053
|
const peer = promises[0].peer;
|
|
8058
8054
|
latest = { ...message.decoded, hash };
|
|
8059
|
-
if (peer.connected && peer.
|
|
8055
|
+
if (peer.connected && peer.version === this.version) {
|
|
8060
8056
|
let message = await peer.request(node);
|
|
8061
8057
|
message = await new globalThis.peernet.protos['peernet-response'](message);
|
|
8062
8058
|
this.#knownBlocks = message.decoded.response;
|
|
@@ -8068,6 +8064,25 @@ class Chain extends Contract {
|
|
|
8068
8064
|
await globalThis.transactionPoolStore.clear();
|
|
8069
8065
|
}
|
|
8070
8066
|
async #init() {
|
|
8067
|
+
try {
|
|
8068
|
+
const version = await globalThis.chainStore.get('version');
|
|
8069
|
+
this.version = version;
|
|
8070
|
+
if (version !== '1.0.0') {
|
|
8071
|
+
this.version = '1.0.0';
|
|
8072
|
+
await globalThis.chainStore.clear();
|
|
8073
|
+
await globalThis.blockStore.clear();
|
|
8074
|
+
await globalThis.transactionPoolStore.clear();
|
|
8075
|
+
await globalThis.chainStore.put('version', this.version);
|
|
8076
|
+
}
|
|
8077
|
+
// if (version)
|
|
8078
|
+
}
|
|
8079
|
+
catch {
|
|
8080
|
+
this.version = '1.0.0';
|
|
8081
|
+
await globalThis.chainStore.clear();
|
|
8082
|
+
await globalThis.blockStore.clear();
|
|
8083
|
+
await globalThis.transactionPoolStore.clear();
|
|
8084
|
+
await globalThis.chainStore.put('version', this.version);
|
|
8085
|
+
}
|
|
8071
8086
|
await this.#clearPool();
|
|
8072
8087
|
// this.node = await new Node()
|
|
8073
8088
|
this.#participants = [];
|
|
@@ -8085,6 +8100,7 @@ class Chain extends Contract {
|
|
|
8085
8100
|
// globalThis.peernet.protos['peernet-response']({response: node.encoded})
|
|
8086
8101
|
// })
|
|
8087
8102
|
await globalThis.peernet.addRequestHandler('transactionPool', this.#transactionPoolHandler.bind(this));
|
|
8103
|
+
await globalThis.peernet.addRequestHandler('version', this.#versionHandler.bind(this));
|
|
8088
8104
|
await globalThis.peernet.addRequestHandler('lastBlock', this.#lastBlockHandler.bind(this));
|
|
8089
8105
|
await globalThis.peernet.addRequestHandler('knownBlocks', this.#knownBlocksHandler.bind(this));
|
|
8090
8106
|
globalThis.peernet.subscribe('add-block', this.#addBlock.bind(this));
|
|
@@ -8194,6 +8210,8 @@ class Chain extends Contract {
|
|
|
8194
8210
|
return response.decoded.response;
|
|
8195
8211
|
}
|
|
8196
8212
|
async #peerConnected(peer) {
|
|
8213
|
+
if (!peer.version || peer.version !== this.version)
|
|
8214
|
+
return;
|
|
8197
8215
|
const lastBlock = await this.#makeRequest(peer, 'lastBlock');
|
|
8198
8216
|
this.#knownBlocks = await this.#makeRequest(peer, 'knownBlocks');
|
|
8199
8217
|
let pool = await this.#makeRequest(peer, 'transactionPool');
|
|
@@ -8218,6 +8236,9 @@ class Chain extends Contract {
|
|
|
8218
8236
|
const pool = await globalThis.transactionPoolStore.keys();
|
|
8219
8237
|
return new globalThis.peernet.protos['peernet-response']({ response: pool });
|
|
8220
8238
|
}
|
|
8239
|
+
async #versionHandler() {
|
|
8240
|
+
return new globalThis.peernet.protos['peernet-response']({ response: { version: this.version } });
|
|
8241
|
+
}
|
|
8221
8242
|
async #lastBlockHandler() {
|
|
8222
8243
|
return new globalThis.peernet.protos['peernet-response']({ response: { hash: this.#lastBlock?.hash, index: this.#lastBlock?.index } });
|
|
8223
8244
|
}
|
|
@@ -8469,7 +8490,7 @@ class Chain extends Contract {
|
|
|
8469
8490
|
for (const validator of Object.keys(validators)) {
|
|
8470
8491
|
if (validators[validator].active) {
|
|
8471
8492
|
const peer = peers[validator];
|
|
8472
|
-
if (peer && peer.connected) {
|
|
8493
|
+
if (peer && peer.connected && peer.version === this.version) {
|
|
8473
8494
|
let data = await new BWRequestMessage();
|
|
8474
8495
|
const node = await globalThis.peernet.prepareMessage(validator, data.encoded);
|
|
8475
8496
|
try {
|
|
@@ -20267,7 +20267,7 @@ class Identity {
|
|
|
20267
20267
|
globalThis.peernet.selectedAccount = new TextDecoder().decode(selected);
|
|
20268
20268
|
}
|
|
20269
20269
|
else {
|
|
20270
|
-
const importee = await import(/* webpackChunkName: "generate-account" */ './index-
|
|
20270
|
+
const importee = await import(/* webpackChunkName: "generate-account" */ './index-5ed49438-539fe0fa.js');
|
|
20271
20271
|
const { identity, accounts } = await importee.default(password, this.network);
|
|
20272
20272
|
await globalThis.accountStore.put('public', JSON.stringify({ walletId: identity.walletId }));
|
|
20273
20273
|
await globalThis.walletStore.put('version', String(1));
|
|
@@ -20332,6 +20332,7 @@ class Peernet {
|
|
|
20332
20332
|
#starting = false;
|
|
20333
20333
|
#started = false;
|
|
20334
20334
|
#connections = {};
|
|
20335
|
+
requestProtos = {};
|
|
20335
20336
|
/**
|
|
20336
20337
|
* @access public
|
|
20337
20338
|
* @param {Object} options
|
|
@@ -20433,12 +20434,11 @@ class Peernet {
|
|
|
20433
20434
|
* @return {Promise} instance of Peernet
|
|
20434
20435
|
*/
|
|
20435
20436
|
async _init(options, password) {
|
|
20436
|
-
this.requestProtos = {};
|
|
20437
20437
|
this.storePrefix = options.storePrefix;
|
|
20438
20438
|
this.root = options.root;
|
|
20439
20439
|
const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile
|
|
20440
20440
|
// FolderMessageResponse
|
|
20441
|
-
} = await import(/* webpackChunkName: "messages" */ './messages-
|
|
20441
|
+
} = await import(/* webpackChunkName: "messages" */ './messages-c26f8e97-a3403983.js');
|
|
20442
20442
|
/**
|
|
20443
20443
|
* proto Object containing protos
|
|
20444
20444
|
* @type {Object}
|
|
@@ -20477,6 +20477,13 @@ class Peernet {
|
|
|
20477
20477
|
});
|
|
20478
20478
|
pubsub.subscribe('peer:discovered', async (peer) => {
|
|
20479
20479
|
// console.log(peer);
|
|
20480
|
+
if (this.requestProtos['version']) {
|
|
20481
|
+
let data = await new globalThis.peernet.protos['peernet-request']({ request: 'version' });
|
|
20482
|
+
let node = await globalThis.peernet.prepareMessage(data);
|
|
20483
|
+
let response = await peer.request(node.encoded);
|
|
20484
|
+
response = await new globalThis.peernet.protos['peernet-response'](new Uint8Array(Object.values(response)));
|
|
20485
|
+
peer.version = response.decoded.response.version;
|
|
20486
|
+
}
|
|
20480
20487
|
let data = await new globalThis.peernet.protos['peernet-request']({ request: 'handshake' });
|
|
20481
20488
|
let node = await globalThis.peernet.prepareMessage(data);
|
|
20482
20489
|
let response = await peer.request(node.encoded);
|
|
@@ -20510,7 +20517,7 @@ class Peernet {
|
|
|
20510
20517
|
if (this.#starting || this.#started)
|
|
20511
20518
|
return;
|
|
20512
20519
|
this.#starting = true;
|
|
20513
|
-
const importee = await import('./client-
|
|
20520
|
+
const importee = await import('./client-345f1d43-a7ba559a.js');
|
|
20514
20521
|
/**
|
|
20515
20522
|
* @access public
|
|
20516
20523
|
* @type {PeernetClient}
|
|
@@ -20695,7 +20702,7 @@ class Peernet {
|
|
|
20695
20702
|
throw nothingFoundError(hash);
|
|
20696
20703
|
debug(`found ${providers.size} provider(s) for ${hash}`);
|
|
20697
20704
|
// get closest peer on earth
|
|
20698
|
-
const closestPeer =
|
|
20705
|
+
const closestPeer = Array.from(providers)[0];
|
|
20699
20706
|
// get peer instance by id
|
|
20700
20707
|
if (!closestPeer || !closestPeer.id)
|
|
20701
20708
|
return this.requestData(hash, store?.name || store);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { N as default } from './node-browser-
|
|
1
|
+
export { N as default } from './node-browser-8791470c.js';
|
|
2
2
|
import './contract-f76383c3.js';
|
package/exports/chain.js
CHANGED
|
@@ -455,6 +455,7 @@ class Contract extends Transaction {
|
|
|
455
455
|
globalThis.BigNumber = BigNumber;
|
|
456
456
|
// check if browser or local
|
|
457
457
|
class Chain extends Contract {
|
|
458
|
+
version;
|
|
458
459
|
#state;
|
|
459
460
|
#lastResolved;
|
|
460
461
|
#slotTime = 10000;
|
|
@@ -619,7 +620,7 @@ class Chain extends Contract {
|
|
|
619
620
|
let data = await new globalThis.peernet.protos['peernet-request']({ request: 'lastBlock' });
|
|
620
621
|
let node = await globalThis.peernet.prepareMessage(data);
|
|
621
622
|
for (const peer of globalThis.peernet?.connections) {
|
|
622
|
-
if (peer.connected) {
|
|
623
|
+
if (peer.connected && peer.version === this.version) {
|
|
623
624
|
promises.push(async () => {
|
|
624
625
|
try {
|
|
625
626
|
const result = await peer.request(node.encoded);
|
|
@@ -630,11 +631,6 @@ class Chain extends Contract {
|
|
|
630
631
|
}
|
|
631
632
|
});
|
|
632
633
|
}
|
|
633
|
-
else if (!peer.connected) {
|
|
634
|
-
globalThis.peernet.removePeer(peer);
|
|
635
|
-
// todo: remove peer
|
|
636
|
-
// reinitiate channel?
|
|
637
|
-
}
|
|
638
634
|
}
|
|
639
635
|
promises = await this.promiseRequests(promises);
|
|
640
636
|
let latest = { index: 0, hash: '0x0', previousHash: '0x0' };
|
|
@@ -651,7 +647,7 @@ class Chain extends Contract {
|
|
|
651
647
|
let node = await globalThis.peernet.prepareMessage(data);
|
|
652
648
|
const peer = promises[0].peer;
|
|
653
649
|
latest = { ...message.decoded, hash };
|
|
654
|
-
if (peer.connected && peer.
|
|
650
|
+
if (peer.connected && peer.version === this.version) {
|
|
655
651
|
let message = await peer.request(node);
|
|
656
652
|
message = await new globalThis.peernet.protos['peernet-response'](message);
|
|
657
653
|
this.#knownBlocks = message.decoded.response;
|
|
@@ -663,6 +659,25 @@ class Chain extends Contract {
|
|
|
663
659
|
await globalThis.transactionPoolStore.clear();
|
|
664
660
|
}
|
|
665
661
|
async #init() {
|
|
662
|
+
try {
|
|
663
|
+
const version = await globalThis.chainStore.get('version');
|
|
664
|
+
this.version = version;
|
|
665
|
+
if (version !== '1.0.0') {
|
|
666
|
+
this.version = '1.0.0';
|
|
667
|
+
await globalThis.chainStore.clear();
|
|
668
|
+
await globalThis.blockStore.clear();
|
|
669
|
+
await globalThis.transactionPoolStore.clear();
|
|
670
|
+
await globalThis.chainStore.put('version', this.version);
|
|
671
|
+
}
|
|
672
|
+
// if (version)
|
|
673
|
+
}
|
|
674
|
+
catch {
|
|
675
|
+
this.version = '1.0.0';
|
|
676
|
+
await globalThis.chainStore.clear();
|
|
677
|
+
await globalThis.blockStore.clear();
|
|
678
|
+
await globalThis.transactionPoolStore.clear();
|
|
679
|
+
await globalThis.chainStore.put('version', this.version);
|
|
680
|
+
}
|
|
666
681
|
await this.#clearPool();
|
|
667
682
|
// this.node = await new Node()
|
|
668
683
|
this.#participants = [];
|
|
@@ -680,6 +695,7 @@ class Chain extends Contract {
|
|
|
680
695
|
// globalThis.peernet.protos['peernet-response']({response: node.encoded})
|
|
681
696
|
// })
|
|
682
697
|
await globalThis.peernet.addRequestHandler('transactionPool', this.#transactionPoolHandler.bind(this));
|
|
698
|
+
await globalThis.peernet.addRequestHandler('version', this.#versionHandler.bind(this));
|
|
683
699
|
await globalThis.peernet.addRequestHandler('lastBlock', this.#lastBlockHandler.bind(this));
|
|
684
700
|
await globalThis.peernet.addRequestHandler('knownBlocks', this.#knownBlocksHandler.bind(this));
|
|
685
701
|
globalThis.peernet.subscribe('add-block', this.#addBlock.bind(this));
|
|
@@ -789,6 +805,8 @@ class Chain extends Contract {
|
|
|
789
805
|
return response.decoded.response;
|
|
790
806
|
}
|
|
791
807
|
async #peerConnected(peer) {
|
|
808
|
+
if (!peer.version || peer.version !== this.version)
|
|
809
|
+
return;
|
|
792
810
|
const lastBlock = await this.#makeRequest(peer, 'lastBlock');
|
|
793
811
|
this.#knownBlocks = await this.#makeRequest(peer, 'knownBlocks');
|
|
794
812
|
let pool = await this.#makeRequest(peer, 'transactionPool');
|
|
@@ -813,6 +831,9 @@ class Chain extends Contract {
|
|
|
813
831
|
const pool = await globalThis.transactionPoolStore.keys();
|
|
814
832
|
return new globalThis.peernet.protos['peernet-response']({ response: pool });
|
|
815
833
|
}
|
|
834
|
+
async #versionHandler() {
|
|
835
|
+
return new globalThis.peernet.protos['peernet-response']({ response: { version: this.version } });
|
|
836
|
+
}
|
|
816
837
|
async #lastBlockHandler() {
|
|
817
838
|
return new globalThis.peernet.protos['peernet-response']({ response: { hash: this.#lastBlock?.hash, index: this.#lastBlock?.index } });
|
|
818
839
|
}
|
|
@@ -1064,7 +1085,7 @@ class Chain extends Contract {
|
|
|
1064
1085
|
for (const validator of Object.keys(validators)) {
|
|
1065
1086
|
if (validators[validator].active) {
|
|
1066
1087
|
const peer = peers[validator];
|
|
1067
|
-
if (peer && peer.connected) {
|
|
1088
|
+
if (peer && peer.connected && peer.version === this.version) {
|
|
1068
1089
|
let data = await new BWRequestMessage();
|
|
1069
1090
|
const node = await globalThis.peernet.prepareMessage(validator, data.encoded);
|
|
1070
1091
|
try {
|