@leofcoin/peernet 0.11.30 → 0.12.1
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/dist/browser/160.peernet.js +3809 -0
- package/dist/browser/peernet.js +733 -4228
- package/dist/commonjs/dht-response.js +5 -6
- package/dist/commonjs/dht.js +5 -6
- package/dist/commonjs/peernet-message.js +5 -6
- package/dist/commonjs/peernet.js +56 -33
- package/dist/commonjs/request.js +5 -6
- package/dist/commonjs/response.js +5 -6
- package/dist/module/peernet.js +81 -37
- package/package.json +2 -3
- package/src/discovery/peer-discovery.js +4 -4
- package/src/handlers/data.js +2 -2
- package/src/handlers/message.js +1 -1
- package/src/messages/chat-message.js +5 -2
- package/src/messages/data-response.js +5 -2
- package/src/messages/data.js +5 -2
- package/src/messages/dht-response.js +5 -2
- package/src/messages/dht.js +5 -2
- package/src/messages/peer-response.js +5 -2
- package/src/messages/peer.js +5 -2
- package/src/messages/peernet-message.js +5 -2
- package/src/messages/ps.js +5 -2
- package/src/messages/request.js +5 -2
- package/src/messages/response.js +5 -2
- package/src/peernet.js +19 -18
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var protons = require('protons');
|
|
4
3
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
9
|
-
|
|
10
5
|
var proto = `
|
|
11
6
|
// PeernetDHTMessageResponse
|
|
12
7
|
message PeernetDHTMessageResponse {
|
|
@@ -20,9 +15,13 @@ class DHTMessageResponse extends codecFormatInterface.FormatInterface {
|
|
|
20
15
|
return ['hash', 'has']
|
|
21
16
|
}
|
|
22
17
|
|
|
18
|
+
get messageName() {
|
|
19
|
+
return 'PeernetDHTMessageResponse'
|
|
20
|
+
}
|
|
21
|
+
|
|
23
22
|
constructor(data) {
|
|
24
23
|
const name = 'peernet-dht-response';
|
|
25
|
-
super(data,
|
|
24
|
+
super(data, proto, {name});
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
|
package/dist/commonjs/dht.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var protons = require('protons');
|
|
4
3
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
9
|
-
|
|
10
5
|
var proto = `
|
|
11
6
|
// PeernetDHTMessage
|
|
12
7
|
message PeernetDHTMessage {
|
|
@@ -31,9 +26,13 @@ class DHTMessage extends codecFormatInterface.FormatInterface {
|
|
|
31
26
|
return ['hash', 'store']
|
|
32
27
|
}
|
|
33
28
|
|
|
29
|
+
get messageName() {
|
|
30
|
+
return 'PeernetDHTMessage'
|
|
31
|
+
}
|
|
32
|
+
|
|
34
33
|
constructor(data) {
|
|
35
34
|
const name = 'peernet-dht';
|
|
36
|
-
super(data,
|
|
35
|
+
super(data, proto, {name});
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var protons = require('protons');
|
|
4
3
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
9
|
-
|
|
10
5
|
var proto = `
|
|
11
6
|
// PeernetMessage
|
|
12
7
|
message PeernetMessage {
|
|
@@ -22,9 +17,13 @@ class PeernetMessage extends codecFormatInterface.FormatInterface {
|
|
|
22
17
|
return ['data', 'signature', 'from', 'to', 'id']
|
|
23
18
|
}
|
|
24
19
|
|
|
20
|
+
get messageName() {
|
|
21
|
+
return 'PeernetMessage'
|
|
22
|
+
}
|
|
23
|
+
|
|
25
24
|
constructor(buffer) {
|
|
26
25
|
const name = 'peernet-message';
|
|
27
|
-
super(buffer,
|
|
26
|
+
super(buffer, proto, {name});
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
29
|
|
package/dist/commonjs/peernet.js
CHANGED
|
@@ -6,7 +6,6 @@ var LeofcoinStorage = require('@leofcoin/storage');
|
|
|
6
6
|
var peernetMessage = require('./peernet-message.js');
|
|
7
7
|
var dht = require('./dht.js');
|
|
8
8
|
var dhtResponse = require('./dht-response.js');
|
|
9
|
-
var protons = require('protons');
|
|
10
9
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
11
10
|
var request = require('./request.js');
|
|
12
11
|
var response = require('./response.js');
|
|
@@ -43,7 +42,6 @@ function _interopNamespace(e) {
|
|
|
43
42
|
|
|
44
43
|
var pako__default = /*#__PURE__*/_interopDefaultLegacy(pako);
|
|
45
44
|
var LeofcoinStorage__default = /*#__PURE__*/_interopDefaultLegacy(LeofcoinStorage);
|
|
46
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
47
45
|
var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch);
|
|
48
46
|
var MultiWallet__default = /*#__PURE__*/_interopDefaultLegacy(MultiWallet$1);
|
|
49
47
|
var bs58check__default = /*#__PURE__*/_interopDefaultLegacy(bs58check);
|
|
@@ -742,11 +740,15 @@ class DataMessage extends codecFormatInterface.FormatInterface {
|
|
|
742
740
|
get keys() {
|
|
743
741
|
return ['hash', 'store']
|
|
744
742
|
}
|
|
743
|
+
|
|
744
|
+
get messageName() {
|
|
745
|
+
return 'PeernetDataMessage'
|
|
746
|
+
}
|
|
745
747
|
/**
|
|
746
748
|
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
747
749
|
*/
|
|
748
750
|
constructor(data) {
|
|
749
|
-
super(data,
|
|
751
|
+
super(data, proto$5, {name: 'peernet-data'});
|
|
750
752
|
}
|
|
751
753
|
}
|
|
752
754
|
|
|
@@ -762,9 +764,13 @@ class PsMessage extends codecFormatInterface.FormatInterface {
|
|
|
762
764
|
return ['data', 'topic']
|
|
763
765
|
}
|
|
764
766
|
|
|
767
|
+
get messageName() {
|
|
768
|
+
return 'PsMessage'
|
|
769
|
+
}
|
|
770
|
+
|
|
765
771
|
constructor(buffer) {
|
|
766
772
|
const name = 'peernet-ps';
|
|
767
|
-
super(buffer,
|
|
773
|
+
super(buffer, proto$4, {name});
|
|
768
774
|
}
|
|
769
775
|
}
|
|
770
776
|
|
|
@@ -780,9 +786,13 @@ class PeerMessage extends codecFormatInterface.FormatInterface {
|
|
|
780
786
|
return ['id']
|
|
781
787
|
}
|
|
782
788
|
|
|
789
|
+
get messageName() {
|
|
790
|
+
return 'PeernetPeerMessage'
|
|
791
|
+
}
|
|
792
|
+
|
|
783
793
|
constructor(data) {
|
|
784
794
|
const name = 'peernet-peer';
|
|
785
|
-
super(data,
|
|
795
|
+
super(data, proto$3, {name});
|
|
786
796
|
}
|
|
787
797
|
}
|
|
788
798
|
|
|
@@ -798,9 +808,13 @@ class PeerMessageResponse extends codecFormatInterface.FormatInterface {
|
|
|
798
808
|
return ['id']
|
|
799
809
|
}
|
|
800
810
|
|
|
811
|
+
get messageName() {
|
|
812
|
+
return 'PeernetPeerMessageResponse'
|
|
813
|
+
}
|
|
814
|
+
|
|
801
815
|
constructor(data) {
|
|
802
816
|
const name = 'peernet-peer-response';
|
|
803
|
-
super(data,
|
|
817
|
+
super(data, proto$2, {name});
|
|
804
818
|
}
|
|
805
819
|
}
|
|
806
820
|
|
|
@@ -817,9 +831,13 @@ class DataMessageResponse extends codecFormatInterface.FormatInterface {
|
|
|
817
831
|
return ['hash', 'data']
|
|
818
832
|
}
|
|
819
833
|
|
|
834
|
+
get messageName() {
|
|
835
|
+
return 'PeernetDataMessageResponse'
|
|
836
|
+
}
|
|
837
|
+
|
|
820
838
|
constructor(data) {
|
|
821
839
|
const name = 'peernet-data-response';
|
|
822
|
-
super(data,
|
|
840
|
+
super(data, proto$1, {name});
|
|
823
841
|
}
|
|
824
842
|
}
|
|
825
843
|
|
|
@@ -836,9 +854,13 @@ class ChatMessage extends codecFormatInterface.FormatInterface {
|
|
|
836
854
|
return ['author', 'value', 'timestamp', 'files']
|
|
837
855
|
}
|
|
838
856
|
|
|
857
|
+
get messageName() {
|
|
858
|
+
return 'ChatMessage'
|
|
859
|
+
}
|
|
860
|
+
|
|
839
861
|
constructor(buffer) {
|
|
840
862
|
const name = 'chat-message';
|
|
841
|
-
super(buffer,
|
|
863
|
+
super(buffer, proto, {name});
|
|
842
864
|
}
|
|
843
865
|
}
|
|
844
866
|
|
|
@@ -917,12 +939,12 @@ class PeerDiscovery {
|
|
|
917
939
|
async discover(peer) {
|
|
918
940
|
let id = this._getPeerId(peer.id);
|
|
919
941
|
if (id) return id
|
|
920
|
-
const data = new peernet.protos['peernet-peer']({id: this.id});
|
|
942
|
+
const data = await new peernet.protos['peernet-peer']({id: this.id});
|
|
921
943
|
const node = await peernet.prepareMessage(peer.id, data.encoded);
|
|
922
944
|
|
|
923
945
|
let response = await peer.request(node.encoded);
|
|
924
|
-
response = protoFor(response);
|
|
925
|
-
response = new peernet.protos['peernet-peer-response'](response.decoded.data);
|
|
946
|
+
response = await protoFor(response);
|
|
947
|
+
response = await new peernet.protos['peernet-peer-response'](response.decoded.data);
|
|
926
948
|
|
|
927
949
|
id = response.decoded.id;
|
|
928
950
|
if (id === this.id) return;
|
|
@@ -953,7 +975,7 @@ class PeerDiscovery {
|
|
|
953
975
|
peernet.peerMap.set(from, connections);
|
|
954
976
|
}
|
|
955
977
|
}
|
|
956
|
-
const data = new peernet.protos['peernet-peer-response']({id: this.id});
|
|
978
|
+
const data = await new peernet.protos['peernet-peer-response']({id: this.id});
|
|
957
979
|
const node = await peernet.prepareMessage(from, data.encoded);
|
|
958
980
|
|
|
959
981
|
peer.write(Buffer.from(JSON.stringify({id, data: node.encoded})));
|
|
@@ -1652,7 +1674,7 @@ class MessageHandler {
|
|
|
1652
1674
|
data,
|
|
1653
1675
|
};
|
|
1654
1676
|
const signature = await this.hashAndSignMessage(message);
|
|
1655
|
-
const node = new peernetMessage({
|
|
1677
|
+
const node = await new peernetMessage({
|
|
1656
1678
|
...message,
|
|
1657
1679
|
signature,
|
|
1658
1680
|
});
|
|
@@ -1666,8 +1688,8 @@ const dataHandler = async message => {
|
|
|
1666
1688
|
|
|
1667
1689
|
const {data, id} = message;
|
|
1668
1690
|
|
|
1669
|
-
message = protoFor(data);
|
|
1670
|
-
const proto = protoFor(message.decoded.data);
|
|
1691
|
+
message = await protoFor(data);
|
|
1692
|
+
const proto = await protoFor(message.decoded.data);
|
|
1671
1693
|
const from = message.decoded.from;
|
|
1672
1694
|
|
|
1673
1695
|
peernet._protoHandler({id, proto}, peernet.client.connections[from], from);
|
|
@@ -1733,6 +1755,14 @@ class Peernet {
|
|
|
1733
1755
|
return ['account', 'wallet', 'block', 'transaction', 'chain', 'data', 'message']
|
|
1734
1756
|
}
|
|
1735
1757
|
|
|
1758
|
+
get protos() {
|
|
1759
|
+
return globalThis.peernet.protos
|
|
1760
|
+
}
|
|
1761
|
+
|
|
1762
|
+
get codecs() {
|
|
1763
|
+
return codecFormatInterface.codecs
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1736
1766
|
addProto(name, proto) {
|
|
1737
1767
|
if (!this.protos[name]) this.protos[name] = proto;
|
|
1738
1768
|
}
|
|
@@ -1837,16 +1867,11 @@ class Peernet {
|
|
|
1837
1867
|
'chat-message': ChatMessage,
|
|
1838
1868
|
};
|
|
1839
1869
|
|
|
1840
|
-
this.protos = globalThis.peernet.protos;
|
|
1841
|
-
this.codecs = codecFormatInterface.codecs;
|
|
1842
|
-
|
|
1843
1870
|
this._messageHandler = new MessageHandler(this.network);
|
|
1844
1871
|
|
|
1845
1872
|
const {daemon, environment} = await target();
|
|
1846
1873
|
this.hasDaemon = daemon;
|
|
1847
1874
|
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
1875
|
for (const store of this.defaultStores) {
|
|
1851
1876
|
await this.addStore(store, options.storePrefix, options.root);
|
|
1852
1877
|
}
|
|
@@ -1860,12 +1885,10 @@ class Peernet {
|
|
|
1860
1885
|
// fixing account issue (string while needs to be a JSON)
|
|
1861
1886
|
// TODO: remove when on mainnet
|
|
1862
1887
|
try {
|
|
1863
|
-
accounts = JSON.parse(
|
|
1888
|
+
this.accounts = JSON.parse(account);
|
|
1864
1889
|
} catch (e) {
|
|
1865
|
-
accounts = [accounts.split(',')];
|
|
1890
|
+
this.accounts = [accounts.split(',')];
|
|
1866
1891
|
}
|
|
1867
|
-
|
|
1868
|
-
this.accounts = JSON.parse(new TextDecoder().decode(accounts));
|
|
1869
1892
|
} catch (e) {
|
|
1870
1893
|
if (e.code === 'ERR_NOT_FOUND') {
|
|
1871
1894
|
const {identity, accounts, config} = await generateAccount(this.network);
|
|
@@ -1944,7 +1967,7 @@ class Peernet {
|
|
|
1944
1967
|
if (store.private) has = false;
|
|
1945
1968
|
else has = await store.has(hash);
|
|
1946
1969
|
}
|
|
1947
|
-
const data = new dhtResponse({hash, has});
|
|
1970
|
+
const data = await new dhtResponse({hash, has});
|
|
1948
1971
|
const node = await this.prepareMessage(from, data.encoded);
|
|
1949
1972
|
|
|
1950
1973
|
this.sendMessage(peer, id, node.encoded);
|
|
@@ -1960,7 +1983,7 @@ class Peernet {
|
|
|
1960
1983
|
data = await store.get(hash);
|
|
1961
1984
|
|
|
1962
1985
|
if (data) {
|
|
1963
|
-
data = new DataMessageResponse({hash, data});
|
|
1986
|
+
data = await new DataMessageResponse({hash, data});
|
|
1964
1987
|
|
|
1965
1988
|
const node = await this.prepareMessage(from, data.encoded);
|
|
1966
1989
|
this.sendMessage(peer, id, node.encoded);
|
|
@@ -1987,16 +2010,16 @@ class Peernet {
|
|
|
1987
2010
|
*/
|
|
1988
2011
|
async walk(hash) {
|
|
1989
2012
|
if (!hash) throw new Error('hash expected, received undefined')
|
|
1990
|
-
const data = new dht({hash});
|
|
2013
|
+
const data = await new dht({hash});
|
|
1991
2014
|
this.client.id;
|
|
1992
2015
|
const walk = async peer => {
|
|
1993
2016
|
const node = await this.prepareMessage(peer.peerId, data.encoded);
|
|
1994
2017
|
let result = await peer.request(node.encoded);
|
|
1995
2018
|
result = new Uint8Array(Object.values(result));
|
|
1996
|
-
let proto = protoFor(result);
|
|
2019
|
+
let proto = await protoFor(result);
|
|
1997
2020
|
if (proto.name !== 'peernet-message') throw encapsulatedError()
|
|
1998
2021
|
const from = proto.decoded.from;
|
|
1999
|
-
proto = protoFor(proto.decoded.data);
|
|
2022
|
+
proto = await protoFor(proto.decoded.data);
|
|
2000
2023
|
if (proto.name !== 'peernet-dht-response') throw dhtError(proto.name)
|
|
2001
2024
|
|
|
2002
2025
|
// TODO: give ip and port (just used for location)
|
|
@@ -2095,7 +2118,7 @@ class Peernet {
|
|
|
2095
2118
|
if (peer.peerId === id) return peer
|
|
2096
2119
|
});
|
|
2097
2120
|
|
|
2098
|
-
let data = new DataMessage({hash, store: store?.name ? store?.name : store});
|
|
2121
|
+
let data = await new DataMessage({hash, store: store?.name ? store?.name : store});
|
|
2099
2122
|
|
|
2100
2123
|
const node = await this.prepareMessage(id, data.encoded);
|
|
2101
2124
|
if (closest[0]) data = await closest[0].request(node.encoded);
|
|
@@ -2106,8 +2129,8 @@ class Peernet {
|
|
|
2106
2129
|
if (closest[0]) data = await closest[0].request(node.encoded);
|
|
2107
2130
|
}
|
|
2108
2131
|
data = new Uint8Array(Object.values(data));
|
|
2109
|
-
let proto = protoFor(data);
|
|
2110
|
-
proto = protoFor(proto.decoded.data);
|
|
2132
|
+
let proto = await protoFor(data);
|
|
2133
|
+
proto = await protoFor(proto.decoded.data);
|
|
2111
2134
|
// TODO: store data automaticly or not
|
|
2112
2135
|
return proto.decoded.data
|
|
2113
2136
|
|
|
@@ -2240,7 +2263,7 @@ class Peernet {
|
|
|
2240
2263
|
if (topic instanceof Uint8Array === false) topic = new TextEncoder().encode(topic);
|
|
2241
2264
|
if (data instanceof Uint8Array === false) data = new TextEncoder().encode(JSON.stringify(data));
|
|
2242
2265
|
const id = Math.random().toString(36).slice(-12);
|
|
2243
|
-
data = new PsMessage({data, topic});
|
|
2266
|
+
data = await new PsMessage({data, topic});
|
|
2244
2267
|
for (const peer of this.connections) {
|
|
2245
2268
|
if (peer.peerId !== this.peerId) {
|
|
2246
2269
|
const node = await this.prepareMessage(peer.peerId, data.encoded);
|
package/dist/commonjs/request.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var protons = require('protons');
|
|
4
3
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
9
|
-
|
|
10
5
|
var proto = `
|
|
11
6
|
// PeernetRequestMessage
|
|
12
7
|
message PeernetRequestMessage {
|
|
@@ -19,9 +14,13 @@ class RequestMessage extends codecFormatInterface.FormatInterface {
|
|
|
19
14
|
return ['request']
|
|
20
15
|
}
|
|
21
16
|
|
|
17
|
+
get messageName() {
|
|
18
|
+
return 'PeernetRequestMessage'
|
|
19
|
+
}
|
|
20
|
+
|
|
22
21
|
constructor(data) {
|
|
23
22
|
const name = 'peernet-request';
|
|
24
|
-
super(data,
|
|
23
|
+
super(data, proto, {name});
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
26
|
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var protons = require('protons');
|
|
4
3
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
6
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var protons__default = /*#__PURE__*/_interopDefaultLegacy(protons);
|
|
9
|
-
|
|
10
5
|
var proto = `
|
|
11
6
|
// PeernetResponseMessage
|
|
12
7
|
message PeernetResponseMessage {
|
|
@@ -19,9 +14,13 @@ class ResponseMessage extends codecFormatInterface.FormatInterface {
|
|
|
19
14
|
return ['response']
|
|
20
15
|
}
|
|
21
16
|
|
|
17
|
+
get messageName() {
|
|
18
|
+
return 'PeernetResponseMessage'
|
|
19
|
+
}
|
|
20
|
+
|
|
22
21
|
constructor(data) {
|
|
23
22
|
const name = 'peernet-response';
|
|
24
|
-
super(data,
|
|
23
|
+
super(data, proto, {name});
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
26
|
|