@leofcoin/chain 1.7.109 → 1.7.111
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/{client-UwSHOtRi-BsddY8I0.js → client-DgmVTCEc-WVRX01s7.js} +6 -6
- package/exports/browser/messages-Bx4w-Pqo-DSXPMvjy.js +206 -0
- package/exports/browser/{node-browser-DPfaEz6Y.js → node-browser-Dk2CzshW.js} +146 -147
- package/exports/browser/node-browser.js +1 -1
- package/package.json +4 -4
- package/exports/browser/messages-CFqwXbrQ-D0JHZ5TG.js +0 -216
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as LittlePubSub } from './node-browser-
|
|
1
|
+
import { L as LittlePubSub } from './node-browser-Dk2CzshW.js';
|
|
2
2
|
import './identity-Cn0iQbY3-CeW0giQS.js';
|
|
3
3
|
import './index-DUfUgiQY.js';
|
|
4
4
|
|
|
@@ -132,10 +132,9 @@ class Api {
|
|
|
132
132
|
throw e;
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
|
-
peers: async (
|
|
135
|
+
peers: async () => {
|
|
136
136
|
try {
|
|
137
|
-
params
|
|
138
|
-
const requested = { url: 'peernet', params };
|
|
137
|
+
const requested = { url: 'peernet', params: { peers: true } };
|
|
139
138
|
const { result, id, handler } = await this.request(client, requested);
|
|
140
139
|
this.unsubscribe(id, handler);
|
|
141
140
|
return result;
|
|
@@ -206,7 +205,7 @@ class SocketRequestClient {
|
|
|
206
205
|
clientConnection;
|
|
207
206
|
#tries = 0;
|
|
208
207
|
#retry = false;
|
|
209
|
-
#timeout =
|
|
208
|
+
#timeout = 10_000;
|
|
210
209
|
#times = 10;
|
|
211
210
|
#options;
|
|
212
211
|
#protocol;
|
|
@@ -673,7 +672,7 @@ class Client {
|
|
|
673
672
|
}
|
|
674
673
|
this.#createRTCPeerConnection(peerId, star, this.version, initiator);
|
|
675
674
|
}
|
|
676
|
-
reconnect(peerId, star, initiator =
|
|
675
|
+
reconnect(peerId, star, initiator = false) {
|
|
677
676
|
delete this.#connections[peerId];
|
|
678
677
|
debug(`reconnecting to peer ${peerId}`);
|
|
679
678
|
return this.connect(peerId, star, initiator);
|
|
@@ -728,6 +727,7 @@ class Client {
|
|
|
728
727
|
// // // Create a new peer connection with the correct configuration
|
|
729
728
|
// this.#createRTCPeerConnection(from, star, version, false)
|
|
730
729
|
// peer = this.#connections[from]
|
|
730
|
+
return;
|
|
731
731
|
}
|
|
732
732
|
peer.signal(signal);
|
|
733
733
|
};
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { F as FormatInterface } from './node-browser-Dk2CzshW.js';
|
|
2
|
+
import './identity-Cn0iQbY3-CeW0giQS.js';
|
|
3
|
+
import './index-DUfUgiQY.js';
|
|
4
|
+
|
|
5
|
+
var proto$b = {
|
|
6
|
+
data: new Uint8Array(),
|
|
7
|
+
signature: new Uint8Array(),
|
|
8
|
+
'from?': String(),
|
|
9
|
+
'to?': String(),
|
|
10
|
+
'id?': String()
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
class PeernetMessage extends FormatInterface {
|
|
14
|
+
get messageName() {
|
|
15
|
+
return 'PeernetMessage';
|
|
16
|
+
}
|
|
17
|
+
constructor(buffer) {
|
|
18
|
+
const name = 'peernet-message';
|
|
19
|
+
super(buffer, proto$b, { name });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var proto$a = {
|
|
24
|
+
hash: String(),
|
|
25
|
+
'store?': String()
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @example `
|
|
30
|
+
new DHTMessage(hash, store)
|
|
31
|
+
// store = optional if not set, peernet checks every store
|
|
32
|
+
let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
|
|
33
|
+
message = new DHTMessage('hashmvbs124xcfd...', 'block')
|
|
34
|
+
`
|
|
35
|
+
*/
|
|
36
|
+
class DHTMessage extends FormatInterface {
|
|
37
|
+
get messageName() {
|
|
38
|
+
return 'PeernetDHTMessage';
|
|
39
|
+
}
|
|
40
|
+
constructor(data) {
|
|
41
|
+
const name = 'peernet-dht';
|
|
42
|
+
super(data, proto$a, { name });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var proto$9 = {
|
|
47
|
+
hash: String(),
|
|
48
|
+
has: Boolean()
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
class DHTMessageResponse extends FormatInterface {
|
|
52
|
+
get messageName() {
|
|
53
|
+
return 'PeernetDHTMessageResponse';
|
|
54
|
+
}
|
|
55
|
+
constructor(data) {
|
|
56
|
+
const name = 'peernet-dht-response';
|
|
57
|
+
super(data, proto$9, { name });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var proto$8 = {
|
|
62
|
+
hash: String(),
|
|
63
|
+
'store?': String()
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @extends {CodecFormat}
|
|
68
|
+
*/
|
|
69
|
+
class DataMessage extends FormatInterface {
|
|
70
|
+
get messageName() {
|
|
71
|
+
return 'PeernetDataMessage';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
75
|
+
*/
|
|
76
|
+
constructor(data) {
|
|
77
|
+
super(data, proto$8, { name: 'peernet-data' });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var proto$7 = {
|
|
82
|
+
data: new Uint8Array(),
|
|
83
|
+
topic: new Uint8Array()
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
class PsMessage extends FormatInterface {
|
|
87
|
+
get messageName() {
|
|
88
|
+
return 'PsMessage';
|
|
89
|
+
}
|
|
90
|
+
constructor(buffer) {
|
|
91
|
+
const name = 'peernet-ps';
|
|
92
|
+
super(buffer, proto$7, { name });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var proto$6 = {
|
|
97
|
+
id: String()
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
class PeerMessage extends FormatInterface {
|
|
101
|
+
get messageName() {
|
|
102
|
+
return 'PeernetPeerMessage';
|
|
103
|
+
}
|
|
104
|
+
constructor(data) {
|
|
105
|
+
const name = 'peernet-peer';
|
|
106
|
+
super(data, proto$6, { name });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
var proto$5 = {
|
|
111
|
+
request: String(),
|
|
112
|
+
'requested?': new Uint8Array()
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
class RequestMessage extends FormatInterface {
|
|
116
|
+
get messageName() {
|
|
117
|
+
return 'PeernetRequestMessage';
|
|
118
|
+
}
|
|
119
|
+
constructor(data) {
|
|
120
|
+
const name = 'peernet-request';
|
|
121
|
+
super(data, proto$5, { name });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var proto$4 = {
|
|
126
|
+
response: {}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
class ResponseMessage extends FormatInterface {
|
|
130
|
+
get messageName() {
|
|
131
|
+
return 'PeernetResponseMessage';
|
|
132
|
+
}
|
|
133
|
+
constructor(data) {
|
|
134
|
+
const name = 'peernet-response';
|
|
135
|
+
super(data, proto$4, { name });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
var proto$3 = {
|
|
140
|
+
id: String()
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
class PeerMessageResponse extends FormatInterface {
|
|
144
|
+
get messageName() {
|
|
145
|
+
return 'PeernetPeerMessageResponse';
|
|
146
|
+
}
|
|
147
|
+
constructor(data) {
|
|
148
|
+
const name = 'peernet-peer-response';
|
|
149
|
+
super(data, proto$3, { name });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
var proto$2 = {
|
|
154
|
+
hash: String(),
|
|
155
|
+
data: new Uint8Array()
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
class DataMessageResponse extends FormatInterface {
|
|
159
|
+
get messageName() {
|
|
160
|
+
return 'PeernetDataMessageResponse';
|
|
161
|
+
}
|
|
162
|
+
constructor(data) {
|
|
163
|
+
const name = 'peernet-data-response';
|
|
164
|
+
super(data, proto$2, { name });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
var proto$1 = {
|
|
169
|
+
value: String(),
|
|
170
|
+
author: String(),
|
|
171
|
+
timestamp: Number(),
|
|
172
|
+
files: [String()]
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
class ChatMessage extends FormatInterface {
|
|
176
|
+
get messageName() {
|
|
177
|
+
return 'ChatMessage';
|
|
178
|
+
}
|
|
179
|
+
constructor(buffer) {
|
|
180
|
+
const name = 'chat-message';
|
|
181
|
+
super(buffer, proto$1, { name });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
var proto = {
|
|
186
|
+
path: String(),
|
|
187
|
+
'content?': '',
|
|
188
|
+
'links?': []
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @extends {CodecFormat}
|
|
193
|
+
*/
|
|
194
|
+
class PeernetFile extends FormatInterface {
|
|
195
|
+
get messageName() {
|
|
196
|
+
return 'PeernetFile';
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
200
|
+
*/
|
|
201
|
+
constructor(data) {
|
|
202
|
+
super(data, proto, { name: 'peernet-file' });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export { ChatMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PeerMessage, PeerMessageResponse, PeernetFile, PeernetMessage, PsMessage, RequestMessage, ResponseMessage };
|
|
@@ -7944,54 +7944,55 @@ const FormatInterface = FormatInterface$1;
|
|
|
7944
7944
|
const Codec = Codec$1;
|
|
7945
7945
|
|
|
7946
7946
|
const BufferToUint8Array = (data) => {
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7947
|
+
if (data.type === 'Buffer') {
|
|
7948
|
+
data = new Uint8Array(data.data);
|
|
7949
|
+
}
|
|
7950
|
+
return data;
|
|
7951
7951
|
};
|
|
7952
|
-
|
|
7953
7952
|
const protoFor = (message) => {
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7953
|
+
const codec = new Codec(message);
|
|
7954
|
+
if (!codec.name)
|
|
7955
|
+
throw new Error(`proto not found ${message}`);
|
|
7956
|
+
const Proto = globalThis.peernet.protos[codec.name];
|
|
7957
|
+
if (!Proto)
|
|
7958
|
+
throw new Error(`No proto defined for ${codec.name}`);
|
|
7959
|
+
return new Proto(message);
|
|
7959
7960
|
};
|
|
7960
|
-
|
|
7961
7961
|
/**
|
|
7962
7962
|
* wether or not a peernet daemon is active
|
|
7963
7963
|
* @return {Boolean}
|
|
7964
7964
|
*/
|
|
7965
7965
|
const hasDaemon = async () => {
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7966
|
+
try {
|
|
7967
|
+
let response = await fetch('http://127.0.0.1:1000/api/version');
|
|
7968
|
+
response = await response.json();
|
|
7969
|
+
return Boolean(response.client === '@peernet/api/http');
|
|
7970
|
+
}
|
|
7971
|
+
catch (e) {
|
|
7972
|
+
return false;
|
|
7973
|
+
}
|
|
7973
7974
|
};
|
|
7974
|
-
|
|
7975
7975
|
const https = () => {
|
|
7976
|
-
|
|
7977
|
-
|
|
7976
|
+
if (!globalThis.location)
|
|
7977
|
+
return false;
|
|
7978
|
+
return Boolean(globalThis.location.protocol === 'https:');
|
|
7978
7979
|
};
|
|
7979
|
-
|
|
7980
7980
|
/**
|
|
7981
7981
|
* Get current environment
|
|
7982
7982
|
* @return {String} current environment [node, electron, browser]
|
|
7983
7983
|
*/
|
|
7984
7984
|
const environment = () => {
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
|
|
7988
|
-
|
|
7989
|
-
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
7985
|
+
const _navigator = globalThis.navigator;
|
|
7986
|
+
if (!_navigator) {
|
|
7987
|
+
return 'node';
|
|
7988
|
+
}
|
|
7989
|
+
else if (_navigator && /electron/i.test(_navigator.userAgent)) {
|
|
7990
|
+
return 'electron';
|
|
7991
|
+
}
|
|
7992
|
+
else {
|
|
7993
|
+
return 'browser';
|
|
7994
|
+
}
|
|
7993
7995
|
};
|
|
7994
|
-
|
|
7995
7996
|
/**
|
|
7996
7997
|
* * Get current environment
|
|
7997
7998
|
* @return {Object} result
|
|
@@ -7999,84 +8000,84 @@ const environment = () => {
|
|
|
7999
8000
|
* @property {Boolean} reult.environment Current environment
|
|
8000
8001
|
*/
|
|
8001
8002
|
const target = async () => {
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8003
|
+
let daemon = false;
|
|
8004
|
+
if (!https())
|
|
8005
|
+
daemon = await hasDaemon();
|
|
8006
|
+
return { daemon, environment: environment() };
|
|
8006
8007
|
};
|
|
8007
8008
|
|
|
8008
8009
|
class PeerDiscovery {
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
}
|
|
8012
|
-
|
|
8013
|
-
_getPeerId(id) {
|
|
8014
|
-
if (!peernet.peerMap || (peernet.peerMap && peernet.peerMap.size === 0)) return false
|
|
8015
|
-
|
|
8016
|
-
for (const entry of [...peernet.peerMap.entries()]) {
|
|
8017
|
-
for (const _id of entry[1]) {
|
|
8018
|
-
if (_id === id) return entry[0]
|
|
8019
|
-
}
|
|
8010
|
+
constructor(id) {
|
|
8011
|
+
this.id = id;
|
|
8020
8012
|
}
|
|
8021
|
-
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
response = await protoFor(response);
|
|
8031
|
-
response = await new peernet.protos['peernet-peer-response'](response.decoded.data);
|
|
8032
|
-
|
|
8033
|
-
id = response.decoded.id;
|
|
8034
|
-
if (id === this.id) return
|
|
8035
|
-
|
|
8036
|
-
if (!peernet.peerMap.has(id)) peernet.peerMap.set(id, [peer.id]);
|
|
8037
|
-
else {
|
|
8038
|
-
const connections = peernet.peerMap.get(id);
|
|
8039
|
-
if (connections.indexOf(peer.id) === -1) {
|
|
8040
|
-
connections.push(peer.id);
|
|
8041
|
-
peernet.peerMap.set(peer.id, connections);
|
|
8042
|
-
}
|
|
8013
|
+
_getPeerId(id) {
|
|
8014
|
+
if (!peernet.peerMap || (peernet.peerMap && peernet.peerMap.size === 0))
|
|
8015
|
+
return false;
|
|
8016
|
+
for (const entry of [...peernet.peerMap.entries()]) {
|
|
8017
|
+
for (const _id of entry[1]) {
|
|
8018
|
+
if (_id === id)
|
|
8019
|
+
return entry[0];
|
|
8020
|
+
}
|
|
8021
|
+
}
|
|
8043
8022
|
}
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8023
|
+
async discover(peer) {
|
|
8024
|
+
let id = this._getPeerId(peer.id);
|
|
8025
|
+
if (id)
|
|
8026
|
+
return id;
|
|
8027
|
+
const data = await new peernet.protos['peernet-peer']({ id: this.id });
|
|
8028
|
+
const node = await peernet.prepareMessage(peer.id, data.encoded);
|
|
8029
|
+
let response = await peer.request(node.encoded);
|
|
8030
|
+
response = await protoFor(response);
|
|
8031
|
+
response = await new peernet.protos['peernet-peer-response'](response.decoded.data);
|
|
8032
|
+
id = response.decoded.id;
|
|
8033
|
+
if (id === this.id)
|
|
8034
|
+
return;
|
|
8035
|
+
if (!peernet.peerMap.has(id))
|
|
8036
|
+
peernet.peerMap.set(id, [peer.id]);
|
|
8037
|
+
else {
|
|
8038
|
+
const connections = peernet.peerMap.get(id);
|
|
8039
|
+
if (connections.indexOf(peer.id) === -1) {
|
|
8040
|
+
connections.push(peer.id);
|
|
8041
|
+
peernet.peerMap.set(peer.id, connections);
|
|
8042
|
+
}
|
|
8060
8043
|
}
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
|
|
8074
|
-
|
|
8075
|
-
|
|
8044
|
+
return id;
|
|
8045
|
+
}
|
|
8046
|
+
async discoverHandler(message, peer) {
|
|
8047
|
+
const { id, proto } = message;
|
|
8048
|
+
// if (typeof message.data === 'string') message.data = Buffer.from(message.data)
|
|
8049
|
+
if (proto.name === 'peernet-peer') {
|
|
8050
|
+
const from = proto.decoded.id;
|
|
8051
|
+
if (from === this.id)
|
|
8052
|
+
return;
|
|
8053
|
+
if (!peernet.peerMap.has(from))
|
|
8054
|
+
peernet.peerMap.set(from, [peer.id]);
|
|
8055
|
+
else {
|
|
8056
|
+
const connections = peernet.peerMap.get(from);
|
|
8057
|
+
if (connections.indexOf(peer.id) === -1) {
|
|
8058
|
+
connections.push(peer.id);
|
|
8059
|
+
peernet.peerMap.set(from, connections);
|
|
8060
|
+
}
|
|
8061
|
+
}
|
|
8062
|
+
const data = await new peernet.protos['peernet-peer-response']({ id: this.id });
|
|
8063
|
+
const node = await peernet.prepareMessage(from, data.encoded);
|
|
8064
|
+
peer.write(Buffer.from(JSON.stringify({ id, data: node.encoded })));
|
|
8065
|
+
}
|
|
8066
|
+
else if (proto.name === 'peernet-peer-response') {
|
|
8067
|
+
const from = proto.decoded.id;
|
|
8068
|
+
if (from === this.id)
|
|
8069
|
+
return;
|
|
8070
|
+
if (!peernet.peerMap.has(from))
|
|
8071
|
+
peernet.peerMap.set(from, [peer.id]);
|
|
8072
|
+
else {
|
|
8073
|
+
const connections = peernet.peerMap.get(from);
|
|
8074
|
+
if (connections.indexOf(peer.id) === -1) {
|
|
8075
|
+
connections.push(peer.id);
|
|
8076
|
+
peernet.peerMap.set(from, connections);
|
|
8077
|
+
}
|
|
8078
|
+
}
|
|
8076
8079
|
}
|
|
8077
|
-
}
|
|
8078
8080
|
}
|
|
8079
|
-
}
|
|
8080
8081
|
}
|
|
8081
8082
|
|
|
8082
8083
|
/**
|
|
@@ -8178,59 +8179,57 @@ class DhtEarth {
|
|
|
8178
8179
|
}
|
|
8179
8180
|
|
|
8180
8181
|
class MessageHandler {
|
|
8181
|
-
|
|
8182
|
-
|
|
8183
|
-
|
|
8184
|
-
|
|
8185
|
-
|
|
8186
|
-
|
|
8187
|
-
|
|
8188
|
-
|
|
8189
|
-
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8194
|
-
|
|
8195
|
-
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
|
|
8182
|
+
constructor(network) {
|
|
8183
|
+
this.network = network;
|
|
8184
|
+
}
|
|
8185
|
+
/**
|
|
8186
|
+
* hash and sign message
|
|
8187
|
+
*
|
|
8188
|
+
* @param {object} message
|
|
8189
|
+
* @param {Buffer} message.from peer id
|
|
8190
|
+
* @param {Buffer} message.to peer id
|
|
8191
|
+
* @param {string} message.data Peernet message
|
|
8192
|
+
* (PeernetMessage excluded) encoded as a string
|
|
8193
|
+
* @return message
|
|
8194
|
+
*/
|
|
8195
|
+
async hashAndSignMessage(message) {
|
|
8196
|
+
const hash = await message.peernetHash;
|
|
8197
|
+
message.decoded.signature = globalThis.identity.sign(hash.buffer);
|
|
8198
|
+
return message;
|
|
8199
|
+
}
|
|
8200
|
+
/**
|
|
8201
|
+
* @param {String} from - peer id
|
|
8202
|
+
* @param {String} to - peer id
|
|
8203
|
+
* @param {String|PeernetMessage} data - data encoded message string
|
|
8204
|
+
* or the messageNode itself
|
|
8205
|
+
*/
|
|
8206
|
+
async prepareMessage(message) {
|
|
8207
|
+
if (message.keys.includes('signature')) {
|
|
8208
|
+
message = await this.hashAndSignMessage(message);
|
|
8209
|
+
}
|
|
8210
|
+
return message;
|
|
8209
8211
|
}
|
|
8210
|
-
|
|
8211
|
-
return message
|
|
8212
|
-
}
|
|
8213
8212
|
}
|
|
8214
8213
|
|
|
8215
8214
|
const dataHandler = async (message) => {
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8219
|
-
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
|
|
8223
|
-
|
|
8224
|
-
|
|
8215
|
+
if (!message)
|
|
8216
|
+
return;
|
|
8217
|
+
try {
|
|
8218
|
+
const { data, id, from, peer } = message;
|
|
8219
|
+
const proto = await protoFor(data);
|
|
8220
|
+
peernet._protoHandler({ id, proto }, peernet.connections[from] || peer, from);
|
|
8221
|
+
}
|
|
8222
|
+
catch (error) {
|
|
8223
|
+
console.error(error);
|
|
8224
|
+
}
|
|
8225
8225
|
};
|
|
8226
8226
|
|
|
8227
8227
|
const dhtError = (proto) => {
|
|
8228
|
-
|
|
8229
|
-
|
|
8228
|
+
const text = `Received proto ${proto.name} expected peernet-dht-response`;
|
|
8229
|
+
return new Error(`Routing error: ${text}`);
|
|
8230
8230
|
};
|
|
8231
|
-
|
|
8232
8231
|
const nothingFoundError = (hash) => {
|
|
8233
|
-
|
|
8232
|
+
return new Error(`nothing found for ${hash}`);
|
|
8234
8233
|
};
|
|
8235
8234
|
|
|
8236
8235
|
const isBrowser = globalThis.process?.versions?.node ? false : true;
|
|
@@ -8491,7 +8490,7 @@ class Peernet {
|
|
|
8491
8490
|
this.root = options.root;
|
|
8492
8491
|
const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile
|
|
8493
8492
|
// FolderMessageResponse
|
|
8494
|
-
} = await import(/* webpackChunkName: "messages" */ './messages-
|
|
8493
|
+
} = await import(/* webpackChunkName: "messages" */ './messages-Bx4w-Pqo-DSXPMvjy.js');
|
|
8495
8494
|
/**
|
|
8496
8495
|
* proto Object containing protos
|
|
8497
8496
|
* @type {Object}
|
|
@@ -8585,7 +8584,7 @@ class Peernet {
|
|
|
8585
8584
|
if (this.#starting || this.#started)
|
|
8586
8585
|
return;
|
|
8587
8586
|
this.#starting = true;
|
|
8588
|
-
const importee = await import('./client-
|
|
8587
|
+
const importee = await import('./client-DgmVTCEc-WVRX01s7.js');
|
|
8589
8588
|
/**
|
|
8590
8589
|
* @access public
|
|
8591
8590
|
* @type {PeernetClient}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leofcoin/chain",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.111",
|
|
4
4
|
"description": "Official javascript implementation",
|
|
5
5
|
"private": false,
|
|
6
6
|
"exports": {
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"@rollup/plugin-commonjs": "^28.0.8",
|
|
53
53
|
"@rollup/plugin-json": "^6.1.0",
|
|
54
54
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
55
|
-
"@rollup/plugin-typescript": "^12.
|
|
55
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
56
56
|
"@types/semver": "^7.7.1",
|
|
57
57
|
"@vandeurenglenn/debug": "^1.2.6",
|
|
58
|
-
"rollup": "^4.52.
|
|
58
|
+
"rollup": "^4.52.5",
|
|
59
59
|
"rollup-plugin-modify": "^3.0.0",
|
|
60
60
|
"tape": "^5.9.0",
|
|
61
61
|
"tslib": "^2.8.1"
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@leofcoin/messages": "^1.4.40",
|
|
70
70
|
"@leofcoin/multi-wallet": "^3.1.8",
|
|
71
71
|
"@leofcoin/networks": "^1.1.25",
|
|
72
|
-
"@leofcoin/peernet": "^1.1.
|
|
72
|
+
"@leofcoin/peernet": "^1.1.100",
|
|
73
73
|
"@leofcoin/storage": "^3.5.38",
|
|
74
74
|
"@leofcoin/utils": "^1.1.40",
|
|
75
75
|
"@leofcoin/workers": "^1.5.27",
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { F as FormatInterface } from './node-browser-DPfaEz6Y.js';
|
|
2
|
-
import './identity-Cn0iQbY3-CeW0giQS.js';
|
|
3
|
-
import './index-DUfUgiQY.js';
|
|
4
|
-
|
|
5
|
-
var proto$b = {
|
|
6
|
-
data: new Uint8Array(),
|
|
7
|
-
signature: new Uint8Array(),
|
|
8
|
-
'from?': String(),
|
|
9
|
-
'to?': String(),
|
|
10
|
-
'id?': String()
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
class PeernetMessage extends FormatInterface {
|
|
14
|
-
get messageName() {
|
|
15
|
-
return 'PeernetMessage'
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(buffer) {
|
|
19
|
-
const name = 'peernet-message';
|
|
20
|
-
super(buffer, proto$b, { name });
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
var proto$a = {
|
|
25
|
-
hash: String(),
|
|
26
|
-
'store?': String()
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @example `
|
|
31
|
-
new DHTMessage(hash, store)
|
|
32
|
-
// store = optional if not set, peernet checks every store
|
|
33
|
-
let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
|
|
34
|
-
message = new DHTMessage('hashmvbs124xcfd...', 'block')
|
|
35
|
-
`
|
|
36
|
-
*/
|
|
37
|
-
class DHTMessage extends FormatInterface {
|
|
38
|
-
get messageName() {
|
|
39
|
-
return 'PeernetDHTMessage'
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
constructor(data) {
|
|
43
|
-
const name = 'peernet-dht';
|
|
44
|
-
super(data, proto$a, { name });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var proto$9 = {
|
|
49
|
-
hash: String(),
|
|
50
|
-
has: Boolean()
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
class DHTMessageResponse extends FormatInterface {
|
|
54
|
-
get messageName() {
|
|
55
|
-
return 'PeernetDHTMessageResponse'
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
constructor(data) {
|
|
59
|
-
const name = 'peernet-dht-response';
|
|
60
|
-
super(data, proto$9, { name });
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var proto$8 = {
|
|
65
|
-
hash: String(),
|
|
66
|
-
'store?': String()
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @extends {CodecFormat}
|
|
71
|
-
*/
|
|
72
|
-
class DataMessage extends FormatInterface {
|
|
73
|
-
get messageName() {
|
|
74
|
-
return 'PeernetDataMessage'
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
78
|
-
*/
|
|
79
|
-
constructor(data) {
|
|
80
|
-
super(data, proto$8, { name: 'peernet-data' });
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
var proto$7 = {
|
|
85
|
-
data: new Uint8Array(),
|
|
86
|
-
topic: new Uint8Array()
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
class PsMessage extends FormatInterface {
|
|
90
|
-
get messageName() {
|
|
91
|
-
return 'PsMessage'
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
constructor(buffer) {
|
|
95
|
-
const name = 'peernet-ps';
|
|
96
|
-
super(buffer, proto$7, { name });
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
var proto$6 = {
|
|
101
|
-
id: String()
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
class PeerMessage extends FormatInterface {
|
|
105
|
-
get messageName() {
|
|
106
|
-
return 'PeernetPeerMessage'
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
constructor(data) {
|
|
110
|
-
const name = 'peernet-peer';
|
|
111
|
-
super(data, proto$6, { name });
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
var proto$5 = {
|
|
116
|
-
request: String(),
|
|
117
|
-
'requested?': new Uint8Array()
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
class RequestMessage extends FormatInterface {
|
|
121
|
-
get messageName() {
|
|
122
|
-
return 'PeernetRequestMessage'
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
constructor(data) {
|
|
126
|
-
const name = 'peernet-request';
|
|
127
|
-
super(data, proto$5, { name });
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
var proto$4 = {
|
|
132
|
-
response: {}
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
class ResponseMessage extends FormatInterface {
|
|
136
|
-
get messageName() {
|
|
137
|
-
return 'PeernetResponseMessage'
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
constructor(data) {
|
|
141
|
-
const name = 'peernet-response';
|
|
142
|
-
super(data, proto$4, { name });
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
var proto$3 = {
|
|
147
|
-
id: String()
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
class PeerMessageResponse extends FormatInterface {
|
|
151
|
-
get messageName() {
|
|
152
|
-
return 'PeernetPeerMessageResponse'
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
constructor(data) {
|
|
156
|
-
const name = 'peernet-peer-response';
|
|
157
|
-
super(data, proto$3, { name });
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
var proto$2 = {
|
|
162
|
-
hash: String(),
|
|
163
|
-
data: new Uint8Array()
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
class DataMessageResponse extends FormatInterface {
|
|
167
|
-
get messageName() {
|
|
168
|
-
return 'PeernetDataMessageResponse'
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
constructor(data) {
|
|
172
|
-
const name = 'peernet-data-response';
|
|
173
|
-
super(data, proto$2, { name });
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
var proto$1 = {
|
|
178
|
-
value: String(),
|
|
179
|
-
author: String(),
|
|
180
|
-
timestamp: Number(),
|
|
181
|
-
files: [String()]
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
class ChatMessage extends FormatInterface {
|
|
185
|
-
get messageName() {
|
|
186
|
-
return 'ChatMessage'
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
constructor(buffer) {
|
|
190
|
-
const name = 'chat-message';
|
|
191
|
-
super(buffer, proto$1, { name });
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var proto = {
|
|
196
|
-
path: String(),
|
|
197
|
-
'content?': '',
|
|
198
|
-
'links?': []
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* @extends {CodecFormat}
|
|
203
|
-
*/
|
|
204
|
-
class PeernetFile extends FormatInterface {
|
|
205
|
-
get messageName() {
|
|
206
|
-
return 'PeernetFile'
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
210
|
-
*/
|
|
211
|
-
constructor(data) {
|
|
212
|
-
super(data, proto, { name: 'peernet-file' });
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export { ChatMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PeerMessage, PeerMessageResponse, PeernetFile, PeernetMessage, PsMessage, RequestMessage, ResponseMessage };
|