@leofcoin/peernet 0.12.2 → 0.13.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/messages.js +54 -89
- package/dist/browser/peernet.js +701 -53
- package/dist/browser/protons.js +54 -11
- package/dist/browser/storage.js +1 -1
- package/dist/commonjs/dht-response.js +23 -3
- package/dist/commonjs/dht.js +34 -3
- package/dist/commonjs/{messages-bcb02ee9.js → messages-f46a3ca1.js} +63 -58
- package/dist/commonjs/peernet.js +85 -13
- package/dist/commonjs/peernet2.js +25 -3
- package/dist/commonjs/request.js +22 -3
- package/dist/commonjs/response.js +22 -3
- package/dist/module/{messages-421f88db.js → messages-bce1b91d.js} +56 -77
- package/dist/module/peernet.js +83 -12
- package/package.json +2 -2
- package/src/messages/file.js +21 -0
- package/src/messages.js +13 -11
- package/src/peernet.js +83 -11
- package/src/proto/file.proto.js +14 -0
- package/test.js +43 -31
- package/dist/commonjs/dht-6a1b6246.js +0 -45
- package/dist/commonjs/dht-response-e4a603ea.js +0 -34
- package/dist/commonjs/peernet-6eef77d5.js +0 -36
- package/dist/commonjs/request-95ed03ec.js +0 -33
- package/dist/commonjs/response-bae4e2a2.js +0 -33
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('@leofcoin/codec-format-interface');
|
|
3
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
5
|
+
var proto = `
|
|
6
|
+
// PeernetDHTMessageResponse
|
|
7
|
+
message PeernetDHTMessageResponse {
|
|
8
|
+
required string hash = 1;
|
|
9
|
+
required bool has = 2;
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
6
12
|
|
|
13
|
+
class DHTMessageResponse extends codecFormatInterface.FormatInterface {
|
|
14
|
+
get keys() {
|
|
15
|
+
return ['hash', 'has']
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get messageName() {
|
|
19
|
+
return 'PeernetDHTMessageResponse'
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
constructor(data) {
|
|
23
|
+
const name = 'peernet-dht-response';
|
|
24
|
+
super(data, proto, {name});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
7
27
|
|
|
8
|
-
module.exports =
|
|
28
|
+
module.exports = DHTMessageResponse;
|
package/dist/commonjs/dht.js
CHANGED
|
@@ -1,8 +1,39 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('@leofcoin/codec-format-interface');
|
|
3
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
5
|
+
var proto = `
|
|
6
|
+
// PeernetDHTMessage
|
|
7
|
+
message PeernetDHTMessage {
|
|
8
|
+
required string hash = 1;
|
|
9
|
+
optional string store = 2;
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
6
12
|
|
|
13
|
+
/**
|
|
14
|
+
* @example `
|
|
15
|
+
new DHTMessage(hash, store)
|
|
16
|
+
// store = optional if not set, peernet checks every store
|
|
17
|
+
let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
|
|
18
|
+
message = new DHTMessage('hashmvbs124xcfd...', 'block')
|
|
19
|
+
`
|
|
20
|
+
*/
|
|
21
|
+
class DHTMessage extends codecFormatInterface.FormatInterface {
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
get keys() {
|
|
26
|
+
return ['hash', 'store']
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
get messageName() {
|
|
30
|
+
return 'PeernetDHTMessage'
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
constructor(data) {
|
|
34
|
+
const name = 'peernet-dht';
|
|
35
|
+
super(data, proto, {name});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
7
38
|
|
|
8
|
-
module.exports =
|
|
39
|
+
module.exports = DHTMessage;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var peernet = require('./
|
|
4
|
-
var dht = require('./dht
|
|
5
|
-
var dhtResponse = require('./dht-response
|
|
3
|
+
var peernet = require('./peernet2.js');
|
|
4
|
+
var dht = require('./dht.js');
|
|
5
|
+
var dhtResponse = require('./dht-response.js');
|
|
6
6
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
7
|
-
var request = require('./request
|
|
8
|
-
var response = require('./response
|
|
7
|
+
var request = require('./request.js');
|
|
8
|
+
var response = require('./response.js');
|
|
9
9
|
|
|
10
|
-
var proto$
|
|
10
|
+
var proto$6 = `
|
|
11
11
|
// PeernetDataMessage
|
|
12
12
|
message PeernetDataMessage {
|
|
13
13
|
required string hash = 1;
|
|
@@ -30,16 +30,11 @@ class DataMessage extends codecFormatInterface.FormatInterface {
|
|
|
30
30
|
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
31
31
|
*/
|
|
32
32
|
constructor(data) {
|
|
33
|
-
super(data, proto$
|
|
33
|
+
super(data, proto$6, {name: 'peernet-data'});
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
var
|
|
38
|
-
__proto__: null,
|
|
39
|
-
'default': DataMessage
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
var proto$4 = `
|
|
37
|
+
var proto$5 = `
|
|
43
38
|
// PsMessage
|
|
44
39
|
message PsMessage {
|
|
45
40
|
required bytes data = 1;
|
|
@@ -57,16 +52,11 @@ class PsMessage extends codecFormatInterface.FormatInterface {
|
|
|
57
52
|
|
|
58
53
|
constructor(buffer) {
|
|
59
54
|
const name = 'peernet-ps';
|
|
60
|
-
super(buffer, proto$
|
|
55
|
+
super(buffer, proto$5, {name});
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
58
|
|
|
64
|
-
var
|
|
65
|
-
__proto__: null,
|
|
66
|
-
'default': PsMessage
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
var proto$3 = `
|
|
59
|
+
var proto$4 = `
|
|
70
60
|
// PeernetPeerMessage
|
|
71
61
|
message PeernetPeerMessage {
|
|
72
62
|
required string id = 1;
|
|
@@ -84,16 +74,11 @@ class PeerMessage extends codecFormatInterface.FormatInterface {
|
|
|
84
74
|
|
|
85
75
|
constructor(data) {
|
|
86
76
|
const name = 'peernet-peer';
|
|
87
|
-
super(data, proto$
|
|
77
|
+
super(data, proto$4, {name});
|
|
88
78
|
}
|
|
89
79
|
}
|
|
90
80
|
|
|
91
|
-
var
|
|
92
|
-
__proto__: null,
|
|
93
|
-
'default': PeerMessage
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
var proto$2 = `
|
|
81
|
+
var proto$3 = `
|
|
97
82
|
// PeernetPeerMessageResponse
|
|
98
83
|
message PeernetPeerMessageResponse {
|
|
99
84
|
required string id = 1;
|
|
@@ -111,16 +96,11 @@ class PeerMessageResponse extends codecFormatInterface.FormatInterface {
|
|
|
111
96
|
|
|
112
97
|
constructor(data) {
|
|
113
98
|
const name = 'peernet-peer-response';
|
|
114
|
-
super(data, proto$
|
|
99
|
+
super(data, proto$3, {name});
|
|
115
100
|
}
|
|
116
101
|
}
|
|
117
102
|
|
|
118
|
-
var
|
|
119
|
-
__proto__: null,
|
|
120
|
-
'default': PeerMessageResponse
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
var proto$1 = `
|
|
103
|
+
var proto$2 = `
|
|
124
104
|
// PeernetDataMessageResponse
|
|
125
105
|
message PeernetDataMessageResponse {
|
|
126
106
|
required string hash = 1;
|
|
@@ -139,16 +119,11 @@ class DataMessageResponse extends codecFormatInterface.FormatInterface {
|
|
|
139
119
|
|
|
140
120
|
constructor(data) {
|
|
141
121
|
const name = 'peernet-data-response';
|
|
142
|
-
super(data, proto$
|
|
122
|
+
super(data, proto$2, {name});
|
|
143
123
|
}
|
|
144
124
|
}
|
|
145
125
|
|
|
146
|
-
var
|
|
147
|
-
__proto__: null,
|
|
148
|
-
'default': DataMessageResponse
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
var proto = `
|
|
126
|
+
var proto$1 = `
|
|
152
127
|
message ChatMessage {
|
|
153
128
|
required string value = 1;
|
|
154
129
|
required string author = 2;
|
|
@@ -167,23 +142,53 @@ class ChatMessage extends codecFormatInterface.FormatInterface {
|
|
|
167
142
|
|
|
168
143
|
constructor(buffer) {
|
|
169
144
|
const name = 'chat-message';
|
|
170
|
-
super(buffer, proto, {name});
|
|
145
|
+
super(buffer, proto$1, {name});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
var proto = `
|
|
150
|
+
// PeernetFolder
|
|
151
|
+
message PeernetFileLink {
|
|
152
|
+
required string hash = 1;
|
|
153
|
+
required string path = 2;
|
|
154
|
+
optional string size = 3;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
message PeernetFile {
|
|
158
|
+
required string path = 1;
|
|
159
|
+
optional string content = 2;
|
|
160
|
+
repeated PeernetFileLink links = 3;
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @extends {CodecFormat}
|
|
166
|
+
*/
|
|
167
|
+
class PeernetFile extends codecFormatInterface.FormatInterface {
|
|
168
|
+
get keys() {
|
|
169
|
+
return ['path', 'content', 'links']
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
get messageName() {
|
|
173
|
+
return 'PeernetFile'
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
177
|
+
*/
|
|
178
|
+
constructor(data) {
|
|
179
|
+
super(data, proto, {name: 'peernet-file'});
|
|
171
180
|
}
|
|
172
181
|
}
|
|
173
182
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
exports.
|
|
180
|
-
exports.
|
|
181
|
-
exports.
|
|
182
|
-
exports.
|
|
183
|
-
exports.
|
|
184
|
-
exports.
|
|
185
|
-
exports.
|
|
186
|
-
exports.DataMessageResponse = dataResponse;
|
|
187
|
-
exports.PeerMessage = peer;
|
|
188
|
-
exports.PeerMessageResponse = peerResponse;
|
|
189
|
-
exports.PsMessage = ps;
|
|
183
|
+
exports.PeernetMessage = peernet;
|
|
184
|
+
exports.DHTMessage = dht;
|
|
185
|
+
exports.DHTMessageResponse = dhtResponse;
|
|
186
|
+
exports.RequestMessage = request;
|
|
187
|
+
exports.ResponseMessage = response;
|
|
188
|
+
exports.ChatMessage = ChatMessage;
|
|
189
|
+
exports.DataMessage = DataMessage;
|
|
190
|
+
exports.DataMessageResponse = DataMessageResponse;
|
|
191
|
+
exports.PeerMessage = PeerMessage;
|
|
192
|
+
exports.PeerMessageResponse = PeerMessageResponse;
|
|
193
|
+
exports.PeernetFile = PeernetFile;
|
|
194
|
+
exports.PsMessage = PsMessage;
|
package/dist/commonjs/peernet.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('@vandeurenglenn/debug');
|
|
4
|
+
var PubSub = require('@vandeurenglenn/little-pubsub');
|
|
4
5
|
var fetch = require('node-fetch');
|
|
5
6
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
6
7
|
var MultiWallet = require('@leofcoin/multi-wallet');
|
|
8
|
+
require('path');
|
|
7
9
|
|
|
8
10
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
11
|
|
|
@@ -25,6 +27,7 @@ function _interopNamespace(e) {
|
|
|
25
27
|
return Object.freeze(n);
|
|
26
28
|
}
|
|
27
29
|
|
|
30
|
+
var PubSub__default = /*#__PURE__*/_interopDefaultLegacy(PubSub);
|
|
28
31
|
var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch);
|
|
29
32
|
var MultiWallet__default = /*#__PURE__*/_interopDefaultLegacy(MultiWallet);
|
|
30
33
|
|
|
@@ -352,7 +355,8 @@ const nothingFoundError = (hash) => {
|
|
|
352
355
|
};
|
|
353
356
|
|
|
354
357
|
globalThis.leofcoin = globalThis.leofcoin || {};
|
|
355
|
-
globalThis.
|
|
358
|
+
globalThis.pubsub = globalThis.pubsub || new PubSub__default["default"]();
|
|
359
|
+
globalThis.globalSub = globalThis.globalSub || new PubSub__default["default"]({verbose: true});
|
|
356
360
|
|
|
357
361
|
/**
|
|
358
362
|
* @access public
|
|
@@ -398,16 +402,12 @@ class Peernet {
|
|
|
398
402
|
return ['account', 'wallet', 'block', 'transaction', 'chain', 'data', 'message']
|
|
399
403
|
}
|
|
400
404
|
|
|
401
|
-
get protos() {
|
|
402
|
-
return globalThis.peernet.protos
|
|
403
|
-
}
|
|
404
|
-
|
|
405
405
|
get codecs() {
|
|
406
406
|
return codecFormatInterface.codecs
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
addProto(name, proto) {
|
|
410
|
-
if (!
|
|
410
|
+
if (!globalThis.peernet.protos[name]) globalThis.peernet.protos[name] = proto;
|
|
411
411
|
}
|
|
412
412
|
|
|
413
413
|
addCodec(name, codec) {
|
|
@@ -502,8 +502,10 @@ class Peernet {
|
|
|
502
502
|
DataMessage,
|
|
503
503
|
DataMessageResponse,
|
|
504
504
|
PsMessage,
|
|
505
|
-
ChatMessage
|
|
506
|
-
|
|
505
|
+
ChatMessage,
|
|
506
|
+
PeernetFile
|
|
507
|
+
// FolderMessageResponse
|
|
508
|
+
} = await Promise.resolve().then(function () { return require(/* webpackChunkName: "messages" */ './messages-f46a3ca1.js'); });
|
|
507
509
|
|
|
508
510
|
/**
|
|
509
511
|
* proto Object containing protos
|
|
@@ -527,6 +529,7 @@ class Peernet {
|
|
|
527
529
|
'peernet-data-response': DataMessageResponse,
|
|
528
530
|
'peernet-ps': PsMessage,
|
|
529
531
|
'chat-message': ChatMessage,
|
|
532
|
+
'peernet-file': PeernetFile
|
|
530
533
|
};
|
|
531
534
|
|
|
532
535
|
this._messageHandler = new MessageHandler(this.network);
|
|
@@ -634,7 +637,7 @@ class Peernet {
|
|
|
634
637
|
if (store.private) has = false;
|
|
635
638
|
else has = await store.has(hash);
|
|
636
639
|
}
|
|
637
|
-
const data = await new
|
|
640
|
+
const data = await new globalThis.peernet.protos['peernet-dht-response']({hash, has});
|
|
638
641
|
const node = await this.prepareMessage(from, data.encoded);
|
|
639
642
|
|
|
640
643
|
this.sendMessage(peer, id, node.encoded);
|
|
@@ -650,7 +653,7 @@ class Peernet {
|
|
|
650
653
|
data = await store.get(hash);
|
|
651
654
|
|
|
652
655
|
if (data) {
|
|
653
|
-
data = await new
|
|
656
|
+
data = await new globalThis.peernet.protos['peernet-data-response']({hash, data});
|
|
654
657
|
|
|
655
658
|
const node = await this.prepareMessage(from, data.encoded);
|
|
656
659
|
this.sendMessage(peer, id, node.encoded);
|
|
@@ -677,7 +680,7 @@ class Peernet {
|
|
|
677
680
|
*/
|
|
678
681
|
async walk(hash) {
|
|
679
682
|
if (!hash) throw new Error('hash expected, received undefined')
|
|
680
|
-
const data = await new
|
|
683
|
+
const data = await new globalThis.peernet.protos['peernet-dht']({hash});
|
|
681
684
|
this.client.id;
|
|
682
685
|
const walk = async peer => {
|
|
683
686
|
const node = await this.prepareMessage(peer.peerId, data.encoded);
|
|
@@ -785,7 +788,7 @@ class Peernet {
|
|
|
785
788
|
if (peer.peerId === id) return peer
|
|
786
789
|
});
|
|
787
790
|
|
|
788
|
-
let data = await new
|
|
791
|
+
let data = await new globalThis.peernet.protos['peernet-data']({hash, store: store?.name ? store?.name : store});
|
|
789
792
|
|
|
790
793
|
const node = await this.prepareMessage(id, data.encoded);
|
|
791
794
|
if (closest[0]) data = await closest[0].request(node.encoded);
|
|
@@ -863,6 +866,75 @@ class Peernet {
|
|
|
863
866
|
}
|
|
864
867
|
}
|
|
865
868
|
|
|
869
|
+
get folder() {
|
|
870
|
+
return {
|
|
871
|
+
/**
|
|
872
|
+
* Get content for given data hash
|
|
873
|
+
*
|
|
874
|
+
* @param {String} hash
|
|
875
|
+
*/
|
|
876
|
+
get: async (hash) => {
|
|
877
|
+
debug(`get data ${hash}`);
|
|
878
|
+
const data = await dataStore.has(hash);
|
|
879
|
+
if (data) return await dataStore.get(hash)
|
|
880
|
+
return this.requestData(hash, 'data')
|
|
881
|
+
},
|
|
882
|
+
/**
|
|
883
|
+
* put data content
|
|
884
|
+
*
|
|
885
|
+
* @param {String} hash
|
|
886
|
+
* @param {Buffer} data
|
|
887
|
+
*/
|
|
888
|
+
put: async (hash, data) => await dataStore.put(hash, data),
|
|
889
|
+
/**
|
|
890
|
+
* @param {String} hash
|
|
891
|
+
* @return {Boolean}
|
|
892
|
+
*/
|
|
893
|
+
has: async (hash) => await dataStore.has(hash),
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
async addFolder(files) {
|
|
898
|
+
const links = [];
|
|
899
|
+
for (const file of files) {
|
|
900
|
+
const fileNode = await new globalThis.peernet.protos['peernet-file'](file);
|
|
901
|
+
const hash = await fileNode.hash;
|
|
902
|
+
await dataStore.put(hash, fileNode.encoded);
|
|
903
|
+
links.push({hash, path: file.path});
|
|
904
|
+
}
|
|
905
|
+
const node = await new globalThis.peernet.protos['peernet-file']({path: '/', links});
|
|
906
|
+
const hash = await node.hash;
|
|
907
|
+
await dataStore.put(hash, node.encoded);
|
|
908
|
+
|
|
909
|
+
return hash
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
async ls(hash) {
|
|
913
|
+
let data;
|
|
914
|
+
const has = await dataStore.has(hash);
|
|
915
|
+
if (has) data = await dataStore.get(hash);
|
|
916
|
+
else data = await this.requestData(hash, 'data');
|
|
917
|
+
|
|
918
|
+
const node = await new peernet.protos['peernet-file'](data);
|
|
919
|
+
const paths = [];
|
|
920
|
+
if (node.decoded?.links.length === 0) throw new Error(`${hash} is a file`)
|
|
921
|
+
for (const {path, hash} of node.decoded.links) {
|
|
922
|
+
paths.push({path, hash});
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
return paths
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
async cat(hash) {
|
|
929
|
+
let data;
|
|
930
|
+
const has = await dataStore.has(hash);
|
|
931
|
+
if (has) data = await dataStore.get(hash);
|
|
932
|
+
else data = await this.requestData(hash, 'data');
|
|
933
|
+
const node = await new peernet.protos['peernet-file'](data);
|
|
934
|
+
if (node.decoded?.links.length > 0) throw new Error(`${hash} is a directory`)
|
|
935
|
+
return node.decoded.content
|
|
936
|
+
}
|
|
937
|
+
|
|
866
938
|
/**
|
|
867
939
|
* goes trough given stores and tries to find data for given hash
|
|
868
940
|
* @param {Array} stores
|
|
@@ -930,7 +1002,7 @@ class Peernet {
|
|
|
930
1002
|
if (topic instanceof Uint8Array === false) topic = new TextEncoder().encode(topic);
|
|
931
1003
|
if (data instanceof Uint8Array === false) data = new TextEncoder().encode(JSON.stringify(data));
|
|
932
1004
|
const id = Math.random().toString(36).slice(-12);
|
|
933
|
-
data = await new
|
|
1005
|
+
data = await new globalThis.peernet.protos['peernet-ps']({data, topic});
|
|
934
1006
|
for (const peer of this.connections) {
|
|
935
1007
|
if (peer.peerId !== this.peerId) {
|
|
936
1008
|
const node = await this.prepareMessage(peer.peerId, data.encoded);
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('@leofcoin/codec-format-interface');
|
|
3
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
5
|
+
var proto = `
|
|
6
|
+
// PeernetMessage
|
|
7
|
+
message PeernetMessage {
|
|
8
|
+
required bytes data = 1;
|
|
9
|
+
required bytes signature = 2;
|
|
10
|
+
optional string from = 3;
|
|
11
|
+
optional string to = 4;
|
|
12
|
+
optional string id = 5;
|
|
13
|
+
}`;
|
|
6
14
|
|
|
15
|
+
class PeernetMessage extends codecFormatInterface.FormatInterface {
|
|
16
|
+
get keys() {
|
|
17
|
+
return ['data', 'signature', 'from', 'to', 'id']
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get messageName() {
|
|
21
|
+
return 'PeernetMessage'
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
constructor(buffer) {
|
|
25
|
+
const name = 'peernet-message';
|
|
26
|
+
super(buffer, proto, {name});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
7
29
|
|
|
8
|
-
module.exports =
|
|
30
|
+
module.exports = PeernetMessage;
|
package/dist/commonjs/request.js
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('@leofcoin/codec-format-interface');
|
|
3
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
5
|
+
var proto = `
|
|
6
|
+
// PeernetRequestMessage
|
|
7
|
+
message PeernetRequestMessage {
|
|
8
|
+
required string request = 1;
|
|
9
|
+
}
|
|
10
|
+
`;
|
|
6
11
|
|
|
12
|
+
class RequestMessage extends codecFormatInterface.FormatInterface {
|
|
13
|
+
get keys() {
|
|
14
|
+
return ['request']
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get messageName() {
|
|
18
|
+
return 'PeernetRequestMessage'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
constructor(data) {
|
|
22
|
+
const name = 'peernet-request';
|
|
23
|
+
super(data, proto, {name});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
7
26
|
|
|
8
|
-
module.exports =
|
|
27
|
+
module.exports = RequestMessage;
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('@leofcoin/codec-format-interface');
|
|
3
|
+
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
4
|
|
|
5
|
+
var proto = `
|
|
6
|
+
// PeernetResponseMessage
|
|
7
|
+
message PeernetResponseMessage {
|
|
8
|
+
required bytes response = 1;
|
|
9
|
+
}
|
|
10
|
+
`;
|
|
6
11
|
|
|
12
|
+
class ResponseMessage extends codecFormatInterface.FormatInterface {
|
|
13
|
+
get keys() {
|
|
14
|
+
return ['response']
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get messageName() {
|
|
18
|
+
return 'PeernetResponseMessage'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
constructor(data) {
|
|
22
|
+
const name = 'peernet-response';
|
|
23
|
+
super(data, proto, {name});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
7
26
|
|
|
8
|
-
module.exports =
|
|
27
|
+
module.exports = ResponseMessage;
|