@leofcoin/peernet 1.1.28 → 1.1.30

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,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './peernet-54d061e3.js';
1
+ import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './peernet-8aded868.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  function commonjsRequire(path) {
@@ -41036,31 +41036,37 @@ class P2PTClient extends P2PT {
41036
41036
  this.peerId = peerId;
41037
41037
 
41038
41038
  this.on('trackerconnect', async (tracker, stats) => {
41039
- // const peers = await this.requestMorePeers()
41040
- // let promises = Object.entries(peers).map(async ([id, peer]) => {
41041
- // const hasPeer = this.#discovered[peer.id];
41042
- // if (!hasPeer) this.#discovered[peer.id] = await new P2PTPeer(peer, this);
41043
- // pubsub.publish('peer:discovered', this.#discovered[id]);
41044
- // })
41045
- // promises = await Promise.allSettled(promises)
41039
+ const peers = await this.requestMorePeers();
41040
+ let promises = Object.entries(peers).map(async ([id, peer]) => {
41041
+ const hasPeer = this.#discovered[id];
41042
+ if (!hasPeer) this.#discovered[id] = await new P2PTPeer(peer, this);
41043
+ if (this.#discovered[id].connected) pubsub.publish('peer:discovered', this.#discovered[id]);
41044
+ });
41045
+ promises = await Promise.allSettled(promises);
41046
41046
  pubsub.publish('star:connected', tracker);
41047
41047
  });
41048
41048
 
41049
41049
  this.on('peerconnect', async (peer) => {
41050
41050
  this.#discovered[peer.id] = await new P2PTPeer(peer, this);
41051
- pubsub.publish('peer:discovered', this.#discovered[peer.id]);
41051
+ if (this.#discovered[peer.id].connected) pubsub.publish('peer:discovered', this.#discovered[peer.id]);
41052
41052
  });
41053
41053
 
41054
41054
  this.on('peerclose', async (peer) => {
41055
- pubsub.publish('peer:left', this.#discovered[peer.id]);
41055
+ if (this.#discovered[peer.id]) {
41056
+ pubsub.publish('peer:left', this.#discovered[peer.id]);
41057
+ delete this.#discovered[peer.id];
41058
+ }
41056
41059
  });
41057
41060
 
41058
41061
  this.on('msg', async (peer, data, id, from) => {
41059
41062
  const hasPeer = this.#discovered[peer.id];
41060
41063
  if (!hasPeer) this.#discovered[peer.id] = await new P2PTPeer(peer, this);
41061
41064
 
41062
- this.#discovered[peer.id]?._handleMessage(new Uint8Array(Object.values(data)), id, from);
41063
- this.bw.down += data.length || data.byteLength;
41065
+ if (this.#discovered[peer.id].connected) {
41066
+ this.#discovered[peer.id]?._handleMessage(new Uint8Array(Object.values(data)), id, from);
41067
+ this.bw.down += data.length || data.byteLength;
41068
+ }
41069
+
41064
41070
  });
41065
41071
 
41066
41072
  this.on('data', async (peer, data) => {
@@ -1,4 +1,4 @@
1
- import { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-54d061e3.js';
1
+ import { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-8aded868.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { F as FormatInterface } from './peernet-54d061e3.js';
1
+ import { F as FormatInterface } from './peernet-8aded868.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  var proto$b = {
@@ -5417,188 +5417,195 @@ new Mutex();
5417
5417
 
5418
5418
  new Mutex();
5419
5419
 
5420
- const blockchainCodecs = [
5421
- {
5422
- name: 'leofcoin-block',
5423
- codec: '0x6c62',
5424
- hashAlg: 'dbl-keccak-512',
5425
- },
5426
- {
5427
- name: 'leofcoin-tx',
5428
- codec: '0x6c74',
5429
- hashAlg: 'dbl-keccak-512',
5430
- },
5431
- {
5432
- name: 'leofcoin-itx',
5433
- codec: '0x6c69',
5434
- hashAlg: 'keccak-512',
5435
- },
5436
- {
5437
- name: 'leofcoin-pr',
5438
- codec: '0x6c70',
5439
- hashAlg: 'keccak-256',
5440
- },
5441
- {
5442
- name: 'contract-message',
5443
- codec: '0x63636d',
5444
- hashAlg: 'keccak-256'
5445
- },
5446
- {
5447
- name: 'transaction-message',
5448
- codec: '0x746d',
5449
- hashAlg: 'keccak-256'
5450
- },
5451
- {
5452
- name: 'block-message',
5453
- codec: '0x626d',
5454
- hashAlg: 'keccak-256'
5455
- },
5456
- {
5457
- name: 'bw-message',
5458
- codec: '0x62776d',
5459
- hashAlg: 'keccak-256'
5460
- },
5461
- {
5462
- name: 'bw-request-message',
5463
- codec: '0x6277726d',
5464
- hashAlg: 'keccak-256'
5465
- },
5466
- {
5467
- name: 'validator-message',
5468
- codec: '0x766d',
5469
- hashAlg: 'keccak-256'
5470
- }
5420
+ const blockchainCodecs = [
5421
+ {
5422
+ name: 'leofcoin-block',
5423
+ codec: '0x6c62',
5424
+ hashAlg: 'dbl-keccak-512',
5425
+ },
5426
+ {
5427
+ name: 'leofcoin-tx',
5428
+ codec: '0x6c74',
5429
+ hashAlg: 'dbl-keccak-512',
5430
+ },
5431
+ {
5432
+ name: 'leofcoin-itx',
5433
+ codec: '0x6c69',
5434
+ hashAlg: 'keccak-512',
5435
+ },
5436
+ {
5437
+ name: 'leofcoin-pr',
5438
+ codec: '0x6c70',
5439
+ hashAlg: 'keccak-256',
5440
+ },
5441
+ {
5442
+ name: 'contract-message',
5443
+ codec: '0x63636d',
5444
+ hashAlg: 'keccak-256'
5445
+ },
5446
+ {
5447
+ name: 'transaction-message',
5448
+ codec: '0x746d',
5449
+ hashAlg: 'keccak-256'
5450
+ },
5451
+ {
5452
+ name: 'raw-transaction-message',
5453
+ codec: '0x772746d',
5454
+ hashAlg: 'keccak-256'
5455
+ },
5456
+ {
5457
+ name: 'block-message',
5458
+ codec: '0x626d',
5459
+ hashAlg: 'keccak-256'
5460
+ },
5461
+ {
5462
+ name: 'bw-message',
5463
+ codec: '0x62776d',
5464
+ hashAlg: 'keccak-256'
5465
+ },
5466
+ {
5467
+ name: 'bw-request-message',
5468
+ codec: '0x6277726d',
5469
+ hashAlg: 'keccak-256'
5470
+ },
5471
+ {
5472
+ name: 'validator-message',
5473
+ codec: '0x766d',
5474
+ hashAlg: 'keccak-256'
5475
+ }
5471
5476
  ];
5472
5477
 
5473
- const internalCodecs = [
5474
- {
5475
- name: 'disco-hash',
5476
- codec: '0x30',
5477
- hashAlg: 'dbl-keccak-256',
5478
- },
5479
- {
5480
- name: 'peernet-peer-response',
5481
- codec: '0x707072',
5482
- hashAlg: 'keccak-256',
5483
- },
5484
- {
5485
- name: 'peernet-peer',
5486
- codec: '0x7070',
5487
- hashAlg: 'keccak-256',
5488
- },
5489
- {
5490
- name: 'peernet-dht',
5491
- codec: '0x706468',
5492
- hashAlg: 'keccak-256',
5493
- },
5494
- {
5495
- name: 'peernet-dht-response',
5496
- codec: '0x706472',
5497
- hashAlg: 'keccak-256',
5498
- },
5499
- {
5500
- name: 'peernet-data',
5501
- codec: '0x706461',
5502
- hashAlg: 'keccak-256',
5503
- },
5504
- {
5505
- name: 'peernet-data-response',
5506
- codec: '0x70646172',
5507
- hashAlg: 'keccak-256',
5508
- },
5509
- {
5510
- name: 'peernet-message',
5511
- codec: '0x706d65',
5512
- hashAlg: 'keccak-256',
5513
- },
5514
- {
5515
- name: 'peernet-ps',
5516
- codec: '707073',
5517
- hashAlg: 'keccak-256',
5518
- },
5519
- {
5520
- name: 'peernet-response',
5521
- codec: '0x7072',
5522
- hashAlg: 'keccak-256',
5523
- },
5524
- {
5525
- name: 'peernet-request',
5526
- codec: '0x707271',
5527
- hashAlg: 'keccak-256',
5528
- },
5529
- {
5530
- name: 'peernet-file',
5531
- codec: '0x7066',
5532
- hashAlg: 'keccak-256',
5533
- },
5534
- {
5535
- name: 'peernet-file-response',
5536
- codec: '0x706672',
5537
- hashAlg: 'keccak-256',
5538
- }
5478
+ const internalCodecs = [
5479
+ {
5480
+ name: 'disco-hash',
5481
+ codec: '0x30',
5482
+ hashAlg: 'dbl-keccak-256',
5483
+ },
5484
+ {
5485
+ name: 'peernet-peer-response',
5486
+ codec: '0x707072',
5487
+ hashAlg: 'keccak-256',
5488
+ },
5489
+ {
5490
+ name: 'peernet-peer',
5491
+ codec: '0x7070',
5492
+ hashAlg: 'keccak-256',
5493
+ },
5494
+ {
5495
+ name: 'peernet-dht',
5496
+ codec: '0x706468',
5497
+ hashAlg: 'keccak-256',
5498
+ },
5499
+ {
5500
+ name: 'peernet-dht-response',
5501
+ codec: '0x706472',
5502
+ hashAlg: 'keccak-256',
5503
+ },
5504
+ {
5505
+ name: 'peernet-data',
5506
+ codec: '0x706461',
5507
+ hashAlg: 'keccak-256',
5508
+ },
5509
+ {
5510
+ name: 'peernet-data-response',
5511
+ codec: '0x70646172',
5512
+ hashAlg: 'keccak-256',
5513
+ },
5514
+ {
5515
+ name: 'peernet-message',
5516
+ codec: '0x706d65',
5517
+ hashAlg: 'keccak-256',
5518
+ },
5519
+ {
5520
+ name: 'peernet-ps',
5521
+ codec: '707073',
5522
+ hashAlg: 'keccak-256',
5523
+ },
5524
+ {
5525
+ name: 'peernet-response',
5526
+ codec: '0x7072',
5527
+ hashAlg: 'keccak-256',
5528
+ },
5529
+ {
5530
+ name: 'peernet-request',
5531
+ codec: '0x707271',
5532
+ hashAlg: 'keccak-256',
5533
+ },
5534
+ {
5535
+ name: 'peernet-file',
5536
+ codec: '0x7066',
5537
+ hashAlg: 'keccak-256',
5538
+ },
5539
+ {
5540
+ name: 'peernet-file-response',
5541
+ codec: '0x706672',
5542
+ hashAlg: 'keccak-256',
5543
+ }
5539
5544
  ];
5540
5545
 
5541
- const codecs = [
5542
- ...internalCodecs,
5543
- ...blockchainCodecs,
5544
- {
5545
- name: 'chat-message',
5546
- codec: '0x70636d',
5547
- hashAlg: 'dbl-keccak-256',
5548
- }
5546
+ var social = [{
5547
+ name: 'chat-message',
5548
+ codec: '0x70636d',
5549
+ hashAlg: 'dbl-keccak-256',
5550
+ }];
5551
+
5552
+ const codecs = [
5553
+ ...internalCodecs,
5554
+ ...blockchainCodecs,
5555
+ ...social
5549
5556
  ];
5550
5557
 
5551
- globalThis.peernetCodecs = globalThis.peernetCodecs || {};
5552
- const addCodec = (codecInput) => {
5553
- let { hashAlg, codec, name } = codecInput;
5554
- if (!globalThis.peernetCodecs[name])
5555
- globalThis.peernetCodecs[name] = {
5556
- hashAlg,
5557
- codec: typeof codec === 'string' ? parseInt(codec, 16) : codec
5558
- };
5559
- };
5560
- const getCodec = (name) => {
5561
- if (typeof name === 'number')
5562
- return name;
5563
- return getCodecByName(name).codec;
5564
- };
5565
- const getCodecName = (codec) => {
5566
- return Object.keys(globalThis.peernetCodecs).reduce((p, c) => {
5567
- const item = globalThis.peernetCodecs[c];
5568
- if (item.codec === codec)
5569
- return c;
5570
- else
5571
- return p;
5572
- }, undefined);
5573
- };
5574
- const getCodecByName = (name) => globalThis.peernetCodecs[name];
5575
- const getHashAlg = (name) => {
5576
- if (typeof name === 'number')
5577
- return getCodecByName(getCodecName(name)).hashAlg;
5578
- return getCodecByName(name).hashAlg;
5579
- };
5580
- const isCodec = (codec) => {
5581
- if (codec.codec !== undefined && codec.hashAlg)
5582
- return true;
5583
- return false;
5584
- };
5585
- const validateCodec = (codec) => {
5586
- if (codec.codec === undefined ||
5587
- codec.hashAlg === undefined ||
5588
- codec.name === undefined)
5589
- throw new Error(`invalid codecInput: ${codec}`);
5590
- };
5591
- for (const codec of codecs) {
5592
- addCodec(codec);
5593
- }
5594
- var utils$p = {
5595
- isCodec,
5596
- addCodec,
5597
- getCodec,
5598
- getHashAlg,
5599
- getCodecName,
5600
- validateCodec,
5601
- codecs: globalThis.peernetCodecs
5558
+ globalThis.peernetCodecs = globalThis.peernetCodecs || {};
5559
+ const addCodec = (codecInput) => {
5560
+ let { hashAlg, codec, name } = codecInput;
5561
+ if (!globalThis.peernetCodecs[name])
5562
+ globalThis.peernetCodecs[name] = {
5563
+ hashAlg,
5564
+ codec: typeof codec === 'string' ? parseInt(codec, 16) : codec
5565
+ };
5566
+ };
5567
+ const getCodec = (name) => {
5568
+ if (typeof name === 'number')
5569
+ return name;
5570
+ return getCodecByName(name).codec;
5571
+ };
5572
+ const getCodecName = (codec) => {
5573
+ return Object.keys(globalThis.peernetCodecs).reduce((p, c) => {
5574
+ const item = globalThis.peernetCodecs[c];
5575
+ if (item.codec === codec)
5576
+ return c;
5577
+ else
5578
+ return p;
5579
+ }, undefined);
5580
+ };
5581
+ const getCodecByName = (name) => globalThis.peernetCodecs[name];
5582
+ const getHashAlg = (name) => {
5583
+ if (typeof name === 'number')
5584
+ return getCodecByName(getCodecName(name)).hashAlg;
5585
+ return getCodecByName(name).hashAlg;
5586
+ };
5587
+ const isCodec = (codec) => {
5588
+ if (codec.codec !== undefined && codec.hashAlg)
5589
+ return true;
5590
+ return false;
5591
+ };
5592
+ const validateCodec = (codec) => {
5593
+ if (codec.codec === undefined ||
5594
+ codec.hashAlg === undefined ||
5595
+ codec.name === undefined)
5596
+ throw new Error(`invalid codecInput: ${codec}`);
5597
+ };
5598
+ for (const codec of codecs) {
5599
+ addCodec(codec);
5600
+ }
5601
+ var utils$p = {
5602
+ isCodec,
5603
+ addCodec,
5604
+ getCodec,
5605
+ getHashAlg,
5606
+ getCodecName,
5607
+ validateCodec,
5608
+ codecs: globalThis.peernetCodecs
5602
5609
  };
5603
5610
 
5604
5611
  /**
@@ -5630,11 +5637,11 @@ let BasicInterface$1 = class BasicInterface {
5630
5637
  // get Codec(): Codec {}
5631
5638
  protoEncode(data) {
5632
5639
  // check schema
5633
- return index$1.encode(this.proto, data);
5640
+ return index$1.encode(this.proto, data, false);
5634
5641
  }
5635
5642
  protoDecode(data) {
5636
5643
  // check schema
5637
- return index$1.decode(this.proto, data);
5644
+ return index$1.decode(this.proto, data, false);
5638
5645
  }
5639
5646
  isHex(string) {
5640
5647
  return isHex(string);
@@ -6031,14 +6038,7 @@ let FormatInterface$1 = class FormatInterface extends BasicInterface$1 {
6031
6038
  const decoded = {};
6032
6039
  if (this.keys?.length > 0) {
6033
6040
  for (const key of this.keys) {
6034
- Object.defineProperties(decoded, {
6035
- [key]: {
6036
- enumerable: true,
6037
- configurable: true,
6038
- set: (value) => data[key],
6039
- get: () => data[key]
6040
- }
6041
- });
6041
+ decoded[key] = data[key];
6042
6042
  }
6043
6043
  this.decoded = decoded;
6044
6044
  return this.encode(decoded);
@@ -20184,7 +20184,7 @@ class Identity {
20184
20184
  globalThis.peernet.selectedAccount = new TextDecoder().decode(selected);
20185
20185
  }
20186
20186
  else {
20187
- const importee = await import(/* webpackChunkName: "generate-account" */ './index-5ed49438.js');
20187
+ const importee = await import(/* webpackChunkName: "generate-account" */ './index-437bf7cd.js');
20188
20188
  const { identity, accounts } = await importee.default(password, this.network);
20189
20189
  await globalThis.accountStore.put('public', JSON.stringify({ walletId: identity.walletId }));
20190
20190
  await globalThis.walletStore.put('version', String(1));
@@ -20355,7 +20355,7 @@ class Peernet {
20355
20355
  this.root = options.root;
20356
20356
  const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile
20357
20357
  // FolderMessageResponse
20358
- } = await import(/* webpackChunkName: "messages" */ './messages-c26f8e97.js');
20358
+ } = await import(/* webpackChunkName: "messages" */ './messages-ccc03e41.js');
20359
20359
  /**
20360
20360
  * proto Object containing protos
20361
20361
  * @type {Object}
@@ -20434,7 +20434,7 @@ class Peernet {
20434
20434
  if (this.#starting || this.#started)
20435
20435
  return;
20436
20436
  this.#starting = true;
20437
- const importee = await import('./client-345f1d43.js');
20437
+ const importee = await import('./client-a56e0aac.js');
20438
20438
  /**
20439
20439
  * @access public
20440
20440
  * @type {PeernetClient}
@@ -20445,7 +20445,7 @@ class Peernet {
20445
20445
  }
20446
20446
  #peerLeft(peer) {
20447
20447
  for (const [id, _peer] of Object.entries(this.#connections)) {
20448
- if (_peer.id === peer.id) {
20448
+ if (_peer.id === peer.id && this.#connections[id] && !this.#connections[id].connected) {
20449
20449
  delete this.#connections[id];
20450
20450
  this.removePeer(_peer);
20451
20451
  }
@@ -1,2 +1,2 @@
1
- export { P as default } from './peernet-54d061e3.js';
1
+ export { P as default } from './peernet-8aded868.js';
2
2
  import './value-157ab062.js';
@@ -603,7 +603,7 @@ class Peernet {
603
603
  }
604
604
  #peerLeft(peer) {
605
605
  for (const [id, _peer] of Object.entries(this.#connections)) {
606
- if (_peer.id === peer.id) {
606
+ if (_peer.id === peer.id && this.#connections[id] && !this.#connections[id].connected) {
607
607
  delete this.#connections[id];
608
608
  this.removePeer(_peer);
609
609
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/peernet",
3
- "version": "1.1.28",
3
+ "version": "1.1.30",
4
4
  "description": "",
5
5
  "main": "src/peernet.js",
6
6
  "exports": {
package/src/peernet.ts CHANGED
@@ -288,7 +288,7 @@ export default class Peernet {
288
288
 
289
289
  #peerLeft(peer) {
290
290
  for (const [id, _peer] of Object.entries(this.#connections)) {
291
- if (_peer.id === peer.id) {
291
+ if (_peer.id === peer.id && this.#connections[id] && !this.#connections[id].connected) {
292
292
  delete this.#connections[id]
293
293
  this.removePeer(_peer)
294
294
  }
package/test.js CHANGED
@@ -6,12 +6,21 @@ import Client from './exports/peernet.js'
6
6
  network: 'leofcoin:peach', networkVersion: 'peach', stars: ['wss://peach.leofcoin.org']
7
7
  })
8
8
  console.log(pubsub.subscribers);
9
+ pubsub.subscribe('peer:discovered', (data) => {
10
+ // console.log(data);
11
+ console.log(`discovered: ${Object.keys(peernet.client.discovered).length}`);
12
+ console.log(Object.keys(peernet.client.discovered));
13
+ })
9
14
  pubsub.subscribe('peer:connected', (data) => {
10
- console.log(data);
15
+ // console.log(data);
16
+ console.log(`connections: ${peernet.connections.length}`);
11
17
  })
12
- pubsub.subscribe('peer:data', (data) => {
13
- console.log(data);
18
+ pubsub.subscribe('peer:left', (data) => {
19
+ console.log(`connections: ${peernet.connections.length}`);
20
+ console.log(`discovered: ${Object.keys(peernet.client.discovered).length}`);
21
+ // console.log(data);
14
22
  })
23
+
15
24
  // peernet.addFolder([{
16
25
  // path: 'assets/asset.png',
17
26
  // content: Buffer.from('png')