@leofcoin/peernet 1.0.2 → 1.0.5
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/.esdoc.json +10 -10
- package/.eslintrc.json +24 -24
- package/.travis.yml +27 -25
- package/LICENSE +21 -21
- package/README.md +64 -64
- package/deploy.js +8 -8
- package/exports/browser/browser-10ffabe1.js +56 -0
- package/exports/browser/{browser-2f0b2829.js → browser-e1cd4e67.js} +46 -38
- package/exports/browser/{client-95423644.js → client-d63a0806.js} +4 -3
- package/exports/browser/dht/dht.d.ts +30 -30
- package/exports/browser/discovery/peer-discovery.d.ts +7 -7
- package/exports/browser/errors/errors.d.ts +3 -3
- package/exports/browser/handlers/data.d.ts +2 -2
- package/exports/browser/handlers/message.d.ts +30 -30
- package/exports/browser/{index-3699fac4.js → index-ae8a0f11.js} +33 -29
- package/exports/browser/messages/chat.d.ts +6 -6
- package/exports/browser/messages/data-response.d.ts +6 -6
- package/exports/browser/messages/data.d.ts +10 -10
- package/exports/browser/messages/dht-response.d.ts +6 -6
- package/exports/browser/messages/dht.d.ts +14 -14
- package/exports/browser/messages/file-link.d.ts +10 -10
- package/exports/browser/messages/file.d.ts +10 -10
- package/exports/browser/messages/peer-response.d.ts +6 -6
- package/exports/browser/messages/peer.d.ts +6 -6
- package/exports/browser/messages/peernet.d.ts +6 -6
- package/exports/browser/messages/ps.d.ts +6 -6
- package/exports/browser/messages/request.d.ts +6 -6
- package/exports/browser/messages/response.d.ts +6 -6
- package/exports/browser/{messages-2214fcbb.js → messages-b724fbb6.js} +155 -154
- package/exports/browser/messages.d.ts +12 -12
- package/exports/browser/peer-info.d.ts +4 -4
- package/exports/browser/{peernet-e74b2091.js → peernet-76472a7f.js} +13594 -10531
- package/exports/browser/peernet.js +2 -1
- package/exports/browser/prompts/password/browser.d.ts +2 -2
- package/exports/browser/prompts/password/node.d.ts +2 -2
- package/exports/browser/proto/chat-message.proto.d.ts +7 -7
- package/exports/browser/proto/data-response.proto.d.ts +5 -5
- package/exports/browser/proto/data.proto.d.ts +5 -5
- package/exports/browser/proto/dht-response.proto.d.ts +5 -5
- package/exports/browser/proto/dht.proto.d.ts +5 -5
- package/exports/browser/proto/file-link.proto.d.ts +6 -6
- package/exports/browser/proto/file.proto.d.ts +6 -6
- package/exports/browser/proto/peer-response.proto.d.ts +4 -4
- package/exports/browser/proto/peer.proto.d.ts +4 -4
- package/exports/browser/proto/peernet.proto.d.ts +8 -8
- package/exports/browser/proto/ps.proto.d.ts +5 -5
- package/exports/browser/proto/request.proto.d.ts +4 -4
- package/exports/browser/proto/response.proto.d.ts +4 -4
- package/exports/browser/qr-scanner-worker.min-c002e984.js +100 -0
- package/exports/browser/utils/utils.d.ts +7 -7
- package/exports/dht/dht.d.ts +30 -30
- package/exports/discovery/peer-discovery.d.ts +7 -7
- package/exports/errors/errors.d.ts +3 -3
- package/exports/handlers/data.d.ts +2 -2
- package/exports/handlers/message.d.ts +30 -30
- package/exports/messages/chat.d.ts +6 -6
- package/exports/messages/data-response.d.ts +6 -6
- package/exports/messages/data.d.ts +10 -10
- package/exports/messages/dht-response.d.ts +6 -6
- package/exports/messages/dht.d.ts +14 -14
- package/exports/messages/file-link.d.ts +10 -10
- package/exports/messages/file.d.ts +10 -10
- package/exports/messages/peer-response.d.ts +6 -6
- package/exports/messages/peer.d.ts +6 -6
- package/exports/messages/peernet.d.ts +6 -6
- package/exports/messages/ps.d.ts +6 -6
- package/exports/messages/request.d.ts +6 -6
- package/exports/messages/response.d.ts +6 -6
- package/exports/{messages-75fe56a4.js → messages-65501ef9.js} +152 -152
- package/exports/messages.d.ts +12 -12
- package/exports/peer-info.d.ts +4 -4
- package/exports/peernet.js +972 -968
- package/exports/prompts/password/browser.d.ts +2 -2
- package/exports/prompts/password/node.d.ts +2 -2
- package/exports/proto/chat-message.proto.d.ts +7 -7
- package/exports/proto/data-response.proto.d.ts +5 -5
- package/exports/proto/data.proto.d.ts +5 -5
- package/exports/proto/dht-response.proto.d.ts +5 -5
- package/exports/proto/dht.proto.d.ts +5 -5
- package/exports/proto/file-link.proto.d.ts +6 -6
- package/exports/proto/file.proto.d.ts +6 -6
- package/exports/proto/peer-response.proto.d.ts +4 -4
- package/exports/proto/peer.proto.d.ts +4 -4
- package/exports/proto/peernet.proto.d.ts +8 -8
- package/exports/proto/ps.proto.d.ts +5 -5
- package/exports/proto/request.proto.d.ts +4 -4
- package/exports/proto/response.proto.d.ts +4 -4
- package/exports/src/prompts/password.js +3 -3
- package/exports/utils/utils.d.ts +7 -7
- package/index.html +19 -19
- package/package.json +59 -55
- package/rollup.config.js +53 -53
- package/src/dht/dht.js +119 -119
- package/src/discovery/peer-discovery.js +75 -75
- package/src/handlers/data.js +12 -12
- package/src/handlers/message.js +34 -34
- package/src/identity.ts +83 -80
- package/src/messages/chat.js +14 -14
- package/src/messages/data-response.js +14 -14
- package/src/messages/data.js +18 -18
- package/src/messages/dht-response.js +14 -14
- package/src/messages/dht.js +22 -22
- package/src/messages/file-link.js +18 -18
- package/src/messages/file.js +18 -18
- package/src/messages/peer-response.js +14 -14
- package/src/messages/peer.js +13 -13
- package/src/messages/peernet.js +14 -14
- package/src/messages/ps.js +13 -13
- package/src/messages/request.js +14 -14
- package/src/messages/response.js +14 -14
- package/src/messages.js +13 -13
- package/src/peer-info.js +9 -9
- package/src/peernet.ts +699 -699
- package/src/prompts/password/node.js +5 -5
- package/src/proto/chat-message.proto.js +6 -6
- package/src/utils/utils.js +78 -78
- package/test/client.js +6 -6
- package/test/codec.js +56 -56
- package/test/hash.js +13 -13
- package/test/index.js +3 -3
- package/test/lastBlock.js +7 -7
- package/test/messages.js +26 -26
- package/test/peernet.js +17 -17
- package/test.js +47 -47
- package/test2.js +9 -9
- package/test3.js +15 -15
- package/test4.js +7 -7
- package/tsconfig.json +12 -12
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/codec-format-interface.js.html +0 -637
- package/coverage/lcov-report/dht-response.js.html +0 -193
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -199
- package/exports/browser/browser-3c1d0477.js +0 -73
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import inquirer from 'inquirer'
|
|
2
|
-
|
|
3
|
-
export default async () => {
|
|
4
|
-
const answers = await inquirer.prompt({type: 'password', name: 'password', message: 'Enter password'})
|
|
5
|
-
return answers.password
|
|
1
|
+
import inquirer from 'inquirer'
|
|
2
|
+
|
|
3
|
+
export default async () => {
|
|
4
|
+
const answers = await inquirer.prompt({type: 'password', name: 'password', message: 'Enter password'})
|
|
5
|
+
return answers.password
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
value: String(),
|
|
3
|
-
author: String(),
|
|
4
|
-
timestamp: Number(),
|
|
5
|
-
files: [String()],
|
|
6
|
-
}
|
|
1
|
+
export default {
|
|
2
|
+
value: String(),
|
|
3
|
+
author: String(),
|
|
4
|
+
timestamp: Number(),
|
|
5
|
+
files: [String()],
|
|
6
|
+
}
|
package/src/utils/utils.js
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import { Codec } from '@leofcoin/codec-format-interface'
|
|
2
|
-
|
|
3
|
-
export const BufferToUint8Array = data => {
|
|
4
|
-
if (data.type === 'Buffer') {
|
|
5
|
-
data = new Uint8Array(data.data)
|
|
6
|
-
}
|
|
7
|
-
return data
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const expected = (expected, actual) => {
|
|
11
|
-
const rule = (entry) => {
|
|
12
|
-
return !entry ? `: undefined - ${entry} ` :`: ${typeof entry} - `
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const entries = Object.entries(actual)
|
|
16
|
-
.map((entry) => entry.join(rule(entry[1])));
|
|
17
|
-
|
|
18
|
-
return `\nExpected:
|
|
19
|
-
${expected.join('\n\t')}
|
|
20
|
-
|
|
21
|
-
actual:
|
|
22
|
-
${entries.join('\n\t')}`;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const protoFor = (message) => {
|
|
26
|
-
const codec = new Codec(message)
|
|
27
|
-
if (!codec.name) throw new Error('proto not found')
|
|
28
|
-
const Proto = globalThis.peernet.protos[codec.name]
|
|
29
|
-
if (!Proto) throw (new Error(`No proto defined for ${codec.name}`))
|
|
30
|
-
return new Proto(message)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* wether or not a peernet daemon is active
|
|
35
|
-
* @return {Boolean}
|
|
36
|
-
*/
|
|
37
|
-
export const hasDaemon = async () => {
|
|
38
|
-
try {
|
|
39
|
-
let response = await fetch('http://127.0.0.1:1000/api/version')
|
|
40
|
-
response = await response.json()
|
|
41
|
-
return Boolean(response.client === '@peernet/api/http')
|
|
42
|
-
} catch (e) {
|
|
43
|
-
return false
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export const https = () => {
|
|
48
|
-
if (!globalThis.location) return false;
|
|
49
|
-
return Boolean(globalThis.location.protocol === 'https:')
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Get current environment
|
|
54
|
-
* @return {String} current environment [node, electron, browser]
|
|
55
|
-
*/
|
|
56
|
-
export const environment = () => {
|
|
57
|
-
const _navigator = globalThis.navigator
|
|
58
|
-
if (!_navigator) {
|
|
59
|
-
return 'node'
|
|
60
|
-
} else if (_navigator && /electron/i.test(_navigator.userAgent)) {
|
|
61
|
-
return 'electron'
|
|
62
|
-
} else {
|
|
63
|
-
return 'browser'
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* * Get current environment
|
|
69
|
-
* @return {Object} result
|
|
70
|
-
* @property {Boolean} reult.daemon whether or not daemon is running
|
|
71
|
-
* @property {Boolean} reult.environment Current environment
|
|
72
|
-
*/
|
|
73
|
-
export const target = async () => {
|
|
74
|
-
let daemon = false
|
|
75
|
-
if (!https()) daemon = await hasDaemon()
|
|
76
|
-
|
|
77
|
-
return {daemon, environment: environment()}
|
|
78
|
-
}
|
|
1
|
+
import { Codec } from '@leofcoin/codec-format-interface'
|
|
2
|
+
|
|
3
|
+
export const BufferToUint8Array = data => {
|
|
4
|
+
if (data.type === 'Buffer') {
|
|
5
|
+
data = new Uint8Array(data.data)
|
|
6
|
+
}
|
|
7
|
+
return data
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const expected = (expected, actual) => {
|
|
11
|
+
const rule = (entry) => {
|
|
12
|
+
return !entry ? `: undefined - ${entry} ` :`: ${typeof entry} - `
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const entries = Object.entries(actual)
|
|
16
|
+
.map((entry) => entry.join(rule(entry[1])));
|
|
17
|
+
|
|
18
|
+
return `\nExpected:
|
|
19
|
+
${expected.join('\n\t')}
|
|
20
|
+
|
|
21
|
+
actual:
|
|
22
|
+
${entries.join('\n\t')}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const protoFor = (message) => {
|
|
26
|
+
const codec = new Codec(message)
|
|
27
|
+
if (!codec.name) throw new Error('proto not found')
|
|
28
|
+
const Proto = globalThis.peernet.protos[codec.name]
|
|
29
|
+
if (!Proto) throw (new Error(`No proto defined for ${codec.name}`))
|
|
30
|
+
return new Proto(message)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* wether or not a peernet daemon is active
|
|
35
|
+
* @return {Boolean}
|
|
36
|
+
*/
|
|
37
|
+
export const hasDaemon = async () => {
|
|
38
|
+
try {
|
|
39
|
+
let response = await fetch('http://127.0.0.1:1000/api/version')
|
|
40
|
+
response = await response.json()
|
|
41
|
+
return Boolean(response.client === '@peernet/api/http')
|
|
42
|
+
} catch (e) {
|
|
43
|
+
return false
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const https = () => {
|
|
48
|
+
if (!globalThis.location) return false;
|
|
49
|
+
return Boolean(globalThis.location.protocol === 'https:')
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get current environment
|
|
54
|
+
* @return {String} current environment [node, electron, browser]
|
|
55
|
+
*/
|
|
56
|
+
export const environment = () => {
|
|
57
|
+
const _navigator = globalThis.navigator
|
|
58
|
+
if (!_navigator) {
|
|
59
|
+
return 'node'
|
|
60
|
+
} else if (_navigator && /electron/i.test(_navigator.userAgent)) {
|
|
61
|
+
return 'electron'
|
|
62
|
+
} else {
|
|
63
|
+
return 'browser'
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* * Get current environment
|
|
69
|
+
* @return {Object} result
|
|
70
|
+
* @property {Boolean} reult.daemon whether or not daemon is running
|
|
71
|
+
* @property {Boolean} reult.environment Current environment
|
|
72
|
+
*/
|
|
73
|
+
export const target = async () => {
|
|
74
|
+
let daemon = false
|
|
75
|
+
if (!https()) daemon = await hasDaemon()
|
|
76
|
+
|
|
77
|
+
return {daemon, environment: environment()}
|
|
78
|
+
}
|
package/test/client.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const Client = require('./../client.js')
|
|
2
|
-
|
|
3
|
-
const client = new Client({id: Buffer.from('testtesttesttesttesttesttesttest')})
|
|
4
|
-
|
|
5
|
-
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
6
|
-
console.log(await peer.request({type: 'block', index: 0}));
|
|
1
|
+
const Client = require('./../client.js')
|
|
2
|
+
|
|
3
|
+
const client = new Client({id: Buffer.from('testtesttesttesttesttesttesttest')})
|
|
4
|
+
|
|
5
|
+
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
6
|
+
console.log(await peer.request({type: 'block', index: 0}));
|
|
7
7
|
}, 5000))
|
package/test/codec.js
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import test from 'tape'
|
|
2
|
-
import Codec from './../src/commonjs/codec.js'
|
|
3
|
-
|
|
4
|
-
const block = '4lmacqas6kpnmvehxpmlvsndgydw5i46mf2pgnaub72eug63dozkw4oqxhk3fazbhkguvlhslcaeqm5jtwghxdk5nvmuakrs7yi2gl6xqmmmw';
|
|
5
|
-
const itx = '5hmacqb6ao252jmbhkhu5isr4yua3jnkhgb5ejjbiomrlzglwarlb777wq7aw5nfz5m4pubx5uffaxp2cqc4ckrh4xirss4nkujvcjbnmomtm';
|
|
6
|
-
const dht = 'b4wiyebqbigjfvm5mizik7ke3v6lyhoahecqiwergnl3cytarf5bd2qvqase'
|
|
7
|
-
const message = '4xnmcay'
|
|
8
|
-
const data = '4hemcay'
|
|
9
|
-
globalThis.peernet = {};
|
|
10
|
-
console.log(parseInt('706468', 16));
|
|
11
|
-
|
|
12
|
-
test('peernet dht codec', tape => {
|
|
13
|
-
tape.plan(2)
|
|
14
|
-
|
|
15
|
-
const codec = new Codec(dht)
|
|
16
|
-
const codec2 = new Codec(codec.encoded)
|
|
17
|
-
tape.equal(codec.name, 'peernet-dht-response', `name from encoded is valid ${codec.name}`)
|
|
18
|
-
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
test('peernet message codec', tape => {
|
|
22
|
-
tape.plan(2)
|
|
23
|
-
|
|
24
|
-
const codec = new Codec(message)
|
|
25
|
-
const codec2 = new Codec(codec.encoded)
|
|
26
|
-
tape.equal(codec.name, 'peernet-message', `name from encoded is valid ${codec.name}`)
|
|
27
|
-
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
test('peernet data codec', tape => {
|
|
31
|
-
tape.plan(2)
|
|
32
|
-
|
|
33
|
-
const codec = new Codec(data)
|
|
34
|
-
const codec2 = new Codec(codec.encoded)
|
|
35
|
-
tape.equal(codec.name, 'peernet-data', `name from encoded is valid ${codec.name}`)
|
|
36
|
-
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
test('leofcoin block codec', tape => {
|
|
40
|
-
tape.plan(2)
|
|
41
|
-
|
|
42
|
-
const codec = new Codec(block)
|
|
43
|
-
const codec2 = new Codec(codec.encoded)
|
|
44
|
-
tape.equal(codec.name, 'leofcoin-block', `name from encoded is valid ${codec.name}`)
|
|
45
|
-
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
test('leofcoin itx codec', tape => {
|
|
49
|
-
tape.plan(2)
|
|
50
|
-
|
|
51
|
-
const codec = new Codec(itx)
|
|
52
|
-
|
|
53
|
-
const codec2 = new Codec(codec.encoded)
|
|
54
|
-
tape.equal(codec.name, 'leofcoin-itx', `name from encoded is valid ${codec.name}`)
|
|
55
|
-
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
56
|
-
})
|
|
1
|
+
import test from 'tape'
|
|
2
|
+
import Codec from './../src/commonjs/codec.js'
|
|
3
|
+
|
|
4
|
+
const block = '4lmacqas6kpnmvehxpmlvsndgydw5i46mf2pgnaub72eug63dozkw4oqxhk3fazbhkguvlhslcaeqm5jtwghxdk5nvmuakrs7yi2gl6xqmmmw';
|
|
5
|
+
const itx = '5hmacqb6ao252jmbhkhu5isr4yua3jnkhgb5ejjbiomrlzglwarlb777wq7aw5nfz5m4pubx5uffaxp2cqc4ckrh4xirss4nkujvcjbnmomtm';
|
|
6
|
+
const dht = 'b4wiyebqbigjfvm5mizik7ke3v6lyhoahecqiwergnl3cytarf5bd2qvqase'
|
|
7
|
+
const message = '4xnmcay'
|
|
8
|
+
const data = '4hemcay'
|
|
9
|
+
globalThis.peernet = {};
|
|
10
|
+
console.log(parseInt('706468', 16));
|
|
11
|
+
|
|
12
|
+
test('peernet dht codec', tape => {
|
|
13
|
+
tape.plan(2)
|
|
14
|
+
|
|
15
|
+
const codec = new Codec(dht)
|
|
16
|
+
const codec2 = new Codec(codec.encoded)
|
|
17
|
+
tape.equal(codec.name, 'peernet-dht-response', `name from encoded is valid ${codec.name}`)
|
|
18
|
+
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
test('peernet message codec', tape => {
|
|
22
|
+
tape.plan(2)
|
|
23
|
+
|
|
24
|
+
const codec = new Codec(message)
|
|
25
|
+
const codec2 = new Codec(codec.encoded)
|
|
26
|
+
tape.equal(codec.name, 'peernet-message', `name from encoded is valid ${codec.name}`)
|
|
27
|
+
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
test('peernet data codec', tape => {
|
|
31
|
+
tape.plan(2)
|
|
32
|
+
|
|
33
|
+
const codec = new Codec(data)
|
|
34
|
+
const codec2 = new Codec(codec.encoded)
|
|
35
|
+
tape.equal(codec.name, 'peernet-data', `name from encoded is valid ${codec.name}`)
|
|
36
|
+
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
test('leofcoin block codec', tape => {
|
|
40
|
+
tape.plan(2)
|
|
41
|
+
|
|
42
|
+
const codec = new Codec(block)
|
|
43
|
+
const codec2 = new Codec(codec.encoded)
|
|
44
|
+
tape.equal(codec.name, 'leofcoin-block', `name from encoded is valid ${codec.name}`)
|
|
45
|
+
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
test('leofcoin itx codec', tape => {
|
|
49
|
+
tape.plan(2)
|
|
50
|
+
|
|
51
|
+
const codec = new Codec(itx)
|
|
52
|
+
|
|
53
|
+
const codec2 = new Codec(codec.encoded)
|
|
54
|
+
tape.equal(codec.name, 'leofcoin-itx', `name from encoded is valid ${codec.name}`)
|
|
55
|
+
tape.equal(codec.name, codec2.name, `decoded name is valid ${codec.name}`)
|
|
56
|
+
})
|
package/test/hash.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const test = require('tape')
|
|
2
|
-
const Node = require('./../dist/hash/hash.js')
|
|
3
|
-
|
|
4
|
-
const message = '4xnmcay'
|
|
5
|
-
|
|
6
|
-
test('peernet message dht-response', tape => {
|
|
7
|
-
tape.plan(2)
|
|
8
|
-
|
|
9
|
-
const node = new Node(response)
|
|
10
|
-
const node2 = new Node(node.encoded)
|
|
11
|
-
console.log(node2.decoded.has);
|
|
12
|
-
tape.equal(node.name, 'peernet-dht-response', `name from encoded is valid ${node.name}`)
|
|
13
|
-
tape.equal(node.name, node2.name, `decoded name is valid ${node.name}`)
|
|
1
|
+
const test = require('tape')
|
|
2
|
+
const Node = require('./../dist/hash/hash.js')
|
|
3
|
+
|
|
4
|
+
const message = '4xnmcay'
|
|
5
|
+
|
|
6
|
+
test('peernet message dht-response', tape => {
|
|
7
|
+
tape.plan(2)
|
|
8
|
+
|
|
9
|
+
const node = new Node(response)
|
|
10
|
+
const node2 = new Node(node.encoded)
|
|
11
|
+
console.log(node2.decoded.has);
|
|
12
|
+
tape.equal(node.name, 'peernet-dht-response', `name from encoded is valid ${node.name}`)
|
|
13
|
+
tape.equal(node.name, node2.name, `decoded name is valid ${node.name}`)
|
|
14
14
|
})
|
package/test/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import './messages.js'
|
|
2
|
-
// require('./peernet')
|
|
3
|
-
// require('./hash')
|
|
1
|
+
import './messages.js'
|
|
2
|
+
// require('./peernet')
|
|
3
|
+
// require('./hash')
|
package/test/lastBlock.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
peernet.addRequestHandler('lastBlock', () => {
|
|
2
|
-
let response;
|
|
3
|
-
const height = await chainStore.get('localIndex')
|
|
4
|
-
const hash = await chainStore.get('localBlock')
|
|
5
|
-
response = JSON.stringify({ height: height.toString(), hash: hash.toString() })
|
|
6
|
-
return new peernet.protos['peernet-response']({ response })
|
|
7
|
-
})
|
|
1
|
+
peernet.addRequestHandler('lastBlock', () => {
|
|
2
|
+
let response;
|
|
3
|
+
const height = await chainStore.get('localIndex')
|
|
4
|
+
const hash = await chainStore.get('localBlock')
|
|
5
|
+
response = JSON.stringify({ height: height.toString(), hash: hash.toString() })
|
|
6
|
+
return new peernet.protos['peernet-response']({ response })
|
|
7
|
+
})
|
package/test/messages.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import test from 'tape'
|
|
2
|
-
import Node from './../dist/commonjs/dht-response.js'
|
|
3
|
-
|
|
4
|
-
const responseHash = 'cqbigjfvm5mizik7ke3v6lyhoahecqiwergnl3cytarf5bd2qvqase'
|
|
5
|
-
|
|
6
|
-
const block = '4lmacqas6kpnmvehxpmlvsndgydw5i46mf2pgnaub72eug63dozkw4oqxhk3fazbhkguvlhslcaeqm5jtwghxdk5nvmuakrs7yi2gl6xqmmmw';
|
|
7
|
-
const itx = '5hmacqb6ao252jmbhkhu5isr4yua3jnkhgb5ejjbiomrlzglwarlb777wq7aw5nfz5m4pubx5uffaxp2cqc4ckrh4xirss4nkujvcjbnmomtm';
|
|
8
|
-
const dht = '5demcay'
|
|
9
|
-
|
|
10
|
-
const message = '4xnmcay'
|
|
11
|
-
const data = '4hemcay'
|
|
12
|
-
globalThis.peernet = {
|
|
13
|
-
codecs: {}
|
|
14
|
-
}
|
|
15
|
-
test('peernet message dht-response', tape => {
|
|
16
|
-
tape.plan(4)
|
|
17
|
-
const n = new Node({ hash: 'hello', has: true })
|
|
18
|
-
console.log(n.hash);
|
|
19
|
-
const node = new Node(n.encoded)
|
|
20
|
-
const node2 = new Node(node.encoded)
|
|
21
|
-
|
|
22
|
-
tape.equal(node.name, 'peernet-dht-response', `name from encoded is valid ${node.name}`)
|
|
23
|
-
tape.equal(node.name, node2.name, `decoded name is valid ${node.name}`)
|
|
24
|
-
tape.equal(node.hash, responseHash, `hash from encoded is valid ${node.hash}`)
|
|
25
|
-
tape.equal(node.hash, node2.hash, `decoded hash is valid ${node.hash}`)
|
|
26
|
-
})
|
|
1
|
+
import test from 'tape'
|
|
2
|
+
import Node from './../dist/commonjs/dht-response.js'
|
|
3
|
+
|
|
4
|
+
const responseHash = 'cqbigjfvm5mizik7ke3v6lyhoahecqiwergnl3cytarf5bd2qvqase'
|
|
5
|
+
|
|
6
|
+
const block = '4lmacqas6kpnmvehxpmlvsndgydw5i46mf2pgnaub72eug63dozkw4oqxhk3fazbhkguvlhslcaeqm5jtwghxdk5nvmuakrs7yi2gl6xqmmmw';
|
|
7
|
+
const itx = '5hmacqb6ao252jmbhkhu5isr4yua3jnkhgb5ejjbiomrlzglwarlb777wq7aw5nfz5m4pubx5uffaxp2cqc4ckrh4xirss4nkujvcjbnmomtm';
|
|
8
|
+
const dht = '5demcay'
|
|
9
|
+
|
|
10
|
+
const message = '4xnmcay'
|
|
11
|
+
const data = '4hemcay'
|
|
12
|
+
globalThis.peernet = {
|
|
13
|
+
codecs: {}
|
|
14
|
+
}
|
|
15
|
+
test('peernet message dht-response', tape => {
|
|
16
|
+
tape.plan(4)
|
|
17
|
+
const n = new Node({ hash: 'hello', has: true })
|
|
18
|
+
console.log(n.hash);
|
|
19
|
+
const node = new Node(n.encoded)
|
|
20
|
+
const node2 = new Node(node.encoded)
|
|
21
|
+
|
|
22
|
+
tape.equal(node.name, 'peernet-dht-response', `name from encoded is valid ${node.name}`)
|
|
23
|
+
tape.equal(node.name, node2.name, `decoded name is valid ${node.name}`)
|
|
24
|
+
tape.equal(node.hash, responseHash, `hash from encoded is valid ${node.hash}`)
|
|
25
|
+
tape.equal(node.hash, node2.hash, `decoded hash is valid ${node.hash}`)
|
|
26
|
+
})
|
package/test/peernet.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
const Client = require('./../dist/commonjs/peernet.js')
|
|
2
|
-
|
|
3
|
-
globalThis.DEBUG = true;
|
|
4
|
-
(async () => {
|
|
5
|
-
const peernet = await new Client({root: '.peernet/test3'})
|
|
6
|
-
|
|
7
|
-
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
8
|
-
// const dhtMessage = new DHTMessage({hash: 'hello'})
|
|
9
|
-
// console.log(dhtMessage.encoded);
|
|
10
|
-
// const message = new PeernetMessage({ from: client.id, to: peer.id, data: dhtMessage.encoded, signature: Buffer.from('pnsig') })
|
|
11
|
-
// console.log(message.encoded);
|
|
12
|
-
// console.log(await peer.request(message.encoded));
|
|
13
|
-
const hello = await peernet.get('hello')
|
|
14
|
-
console.log({hello: hello.toString()});
|
|
15
|
-
process.exit()
|
|
16
|
-
}, 5000))
|
|
17
|
-
})()
|
|
1
|
+
const Client = require('./../dist/commonjs/peernet.js')
|
|
2
|
+
|
|
3
|
+
globalThis.DEBUG = true;
|
|
4
|
+
(async () => {
|
|
5
|
+
const peernet = await new Client({root: '.peernet/test3'})
|
|
6
|
+
|
|
7
|
+
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
8
|
+
// const dhtMessage = new DHTMessage({hash: 'hello'})
|
|
9
|
+
// console.log(dhtMessage.encoded);
|
|
10
|
+
// const message = new PeernetMessage({ from: client.id, to: peer.id, data: dhtMessage.encoded, signature: Buffer.from('pnsig') })
|
|
11
|
+
// console.log(message.encoded);
|
|
12
|
+
// console.log(await peer.request(message.encoded));
|
|
13
|
+
const hello = await peernet.get('hello')
|
|
14
|
+
console.log({hello: hello.toString()});
|
|
15
|
+
process.exit()
|
|
16
|
+
}, 5000))
|
|
17
|
+
})()
|
package/test.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import Client from './exports/peernet.js'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const client = await new Client({root: '.peernet/test', network: 'leofcoin:peach', networkVersion: 'peach', stars: ['wss://peach.leofcoin.org']})
|
|
6
|
-
|
|
7
|
-
// peernet.addFolder([{
|
|
8
|
-
// path: 'assets/asset.png',
|
|
9
|
-
// content: Buffer.from('png')
|
|
10
|
-
// }, {
|
|
11
|
-
// path: 'index.html',
|
|
12
|
-
// content: Buffer.from('html')
|
|
13
|
-
// }]).then(hash => peernet.ls(hash).then(paths => peernet.cat(paths[0].hash).then(content => console.log(content))))
|
|
14
|
-
|
|
15
|
-
pubsub.subscribe('peer:connected', async peer => {
|
|
16
|
-
chainStore.put('localBlock', '00000')
|
|
17
|
-
const request = await new globalThis.peernet.protos['peernet-request']({
|
|
18
|
-
request:'lastBlock'
|
|
19
|
-
})
|
|
20
|
-
const to = peer.id
|
|
21
|
-
await peernet.data.put('hello', 'hi')
|
|
22
|
-
console.log({request});
|
|
23
|
-
const node = await peernet.prepareMessage(request)
|
|
24
|
-
console.log({node});
|
|
25
|
-
let response = await peer.request(node.encoded)
|
|
26
|
-
console.log({response});
|
|
27
|
-
const keys = Object.keys(response)
|
|
28
|
-
const uint8Array = new Uint8Array(keys.length)
|
|
29
|
-
for (const key of keys) {
|
|
30
|
-
uint8Array[Number(key)] = response[key]
|
|
31
|
-
}
|
|
32
|
-
// const proto = await new globalThis.peernet.protos['peernet-message'](uint8Array)
|
|
33
|
-
// console.log(proto.decoded.data);
|
|
34
|
-
response = await new globalThis.peernet.protos['peernet-response'](uint8Array)
|
|
35
|
-
console.log({response});
|
|
36
|
-
|
|
37
|
-
const block = new TextDecoder().decode(response.decoded.response)
|
|
38
|
-
console.log(block);
|
|
39
|
-
const task = () => setTimeout(() => {
|
|
40
|
-
console.log(peernet.connections[0]?.connected);
|
|
41
|
-
console.log(pubsub.subscribers);
|
|
42
|
-
task()
|
|
43
|
-
}, 5000);
|
|
44
|
-
task()
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import Client from './exports/peernet.js'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const client = await new Client({root: '.peernet/test', network: 'leofcoin:peach', networkVersion: 'peach', stars: ['wss://peach.leofcoin.org']})
|
|
6
|
+
|
|
7
|
+
// peernet.addFolder([{
|
|
8
|
+
// path: 'assets/asset.png',
|
|
9
|
+
// content: Buffer.from('png')
|
|
10
|
+
// }, {
|
|
11
|
+
// path: 'index.html',
|
|
12
|
+
// content: Buffer.from('html')
|
|
13
|
+
// }]).then(hash => peernet.ls(hash).then(paths => peernet.cat(paths[0].hash).then(content => console.log(content))))
|
|
14
|
+
|
|
15
|
+
pubsub.subscribe('peer:connected', async peer => {
|
|
16
|
+
chainStore.put('localBlock', '00000')
|
|
17
|
+
const request = await new globalThis.peernet.protos['peernet-request']({
|
|
18
|
+
request:'lastBlock'
|
|
19
|
+
})
|
|
20
|
+
const to = peer.id
|
|
21
|
+
await peernet.data.put('hello', 'hi')
|
|
22
|
+
console.log({request});
|
|
23
|
+
const node = await peernet.prepareMessage(request)
|
|
24
|
+
console.log({node});
|
|
25
|
+
let response = await peer.request(node.encoded)
|
|
26
|
+
console.log({response});
|
|
27
|
+
const keys = Object.keys(response)
|
|
28
|
+
const uint8Array = new Uint8Array(keys.length)
|
|
29
|
+
for (const key of keys) {
|
|
30
|
+
uint8Array[Number(key)] = response[key]
|
|
31
|
+
}
|
|
32
|
+
// const proto = await new globalThis.peernet.protos['peernet-message'](uint8Array)
|
|
33
|
+
// console.log(proto.decoded.data);
|
|
34
|
+
response = await new globalThis.peernet.protos['peernet-response'](uint8Array)
|
|
35
|
+
console.log({response});
|
|
36
|
+
|
|
37
|
+
const block = new TextDecoder().decode(response.decoded.response)
|
|
38
|
+
console.log(block);
|
|
39
|
+
const task = () => setTimeout(() => {
|
|
40
|
+
console.log(peernet.connections[0]?.connected);
|
|
41
|
+
console.log(pubsub.subscribers);
|
|
42
|
+
task()
|
|
43
|
+
}, 5000);
|
|
44
|
+
task()
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
|
package/test2.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const Client = require('./dist/commonjs/peernet.js');
|
|
2
|
-
|
|
3
|
-
(async () => {
|
|
4
|
-
const client = await new Client({root: '.peernet/test2', network: 'leofcoin:peach', networkVersion: 'peach'})
|
|
5
|
-
const job = () => client.publish('socket-data', 'hello')
|
|
6
|
-
setTimeout(async () => {
|
|
7
|
-
job()
|
|
8
|
-
}, 10000)
|
|
9
|
-
})()
|
|
1
|
+
const Client = require('./dist/commonjs/peernet.js');
|
|
2
|
+
|
|
3
|
+
(async () => {
|
|
4
|
+
const client = await new Client({root: '.peernet/test2', network: 'leofcoin:peach', networkVersion: 'peach'})
|
|
5
|
+
const job = () => client.publish('socket-data', 'hello')
|
|
6
|
+
setTimeout(async () => {
|
|
7
|
+
job()
|
|
8
|
+
}, 10000)
|
|
9
|
+
})()
|
package/test3.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
const Client = require('./dist/commonjs/peernet.js')
|
|
2
|
-
const PeernetMessage = require('./dist/messages/peernet.js');
|
|
3
|
-
const DHTMessage = require('./dist/messages/dht.js');
|
|
4
|
-
|
|
5
|
-
globalThis.DEBUG = true;
|
|
6
|
-
const client = new Client({root: '.peernet/test3'})
|
|
7
|
-
|
|
8
|
-
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
9
|
-
// const dhtMessage = new DHTMessage({hash: 'hello'})
|
|
10
|
-
// console.log(dhtMessage.encoded);
|
|
11
|
-
// const message = new PeernetMessage({ from: client.id, to: peer.id, data: dhtMessage.encoded, signature: Buffer.from('pnsig') })
|
|
12
|
-
// console.log(message.encoded);
|
|
13
|
-
// console.log(await peer.request(message.encoded));
|
|
14
|
-
const data = await client.get('hello')
|
|
15
|
-
console.log(data.toString())
|
|
1
|
+
const Client = require('./dist/commonjs/peernet.js')
|
|
2
|
+
const PeernetMessage = require('./dist/messages/peernet.js');
|
|
3
|
+
const DHTMessage = require('./dist/messages/dht.js');
|
|
4
|
+
|
|
5
|
+
globalThis.DEBUG = true;
|
|
6
|
+
const client = new Client({root: '.peernet/test3'})
|
|
7
|
+
|
|
8
|
+
pubsub.subscribe('peer:connected', async peer => setInterval(async () => {
|
|
9
|
+
// const dhtMessage = new DHTMessage({hash: 'hello'})
|
|
10
|
+
// console.log(dhtMessage.encoded);
|
|
11
|
+
// const message = new PeernetMessage({ from: client.id, to: peer.id, data: dhtMessage.encoded, signature: Buffer.from('pnsig') })
|
|
12
|
+
// console.log(message.encoded);
|
|
13
|
+
// console.log(await peer.request(message.encoded));
|
|
14
|
+
const data = await client.get('hello')
|
|
15
|
+
console.log(data.toString())
|
|
16
16
|
}, 5000))
|
package/test4.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const Client = require('./dist/commonjs/peernet.js')
|
|
2
|
-
|
|
3
|
-
const client = new Client({root: '.peernet/test4'})
|
|
4
|
-
|
|
5
|
-
pubsub.subscribe('peer:connected', async peer => {
|
|
6
|
-
await peernet.get("ba5xcadcnub27naa7zrcvtmyruviahaiwvupatfgjkvdgcehuif7clissf")
|
|
7
|
-
})
|
|
1
|
+
const Client = require('./dist/commonjs/peernet.js')
|
|
2
|
+
|
|
3
|
+
const client = new Client({root: '.peernet/test4'})
|
|
4
|
+
|
|
5
|
+
pubsub.subscribe('peer:connected', async peer => {
|
|
6
|
+
await peernet.get("ba5xcadcnub27naa7zrcvtmyruviahaiwvupatfgjkvdgcehuif7clissf")
|
|
7
|
+
})
|
package/tsconfig.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "ES2022",
|
|
4
|
-
"target": "es2022",
|
|
5
|
-
"declaration": true,
|
|
6
|
-
"moduleResolution":"NodeNext",
|
|
7
|
-
"allowJs": true
|
|
8
|
-
},
|
|
9
|
-
"include": [
|
|
10
|
-
"./src/**/*"
|
|
11
|
-
],
|
|
12
|
-
"exclude": ["node_modules"]
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "ES2022",
|
|
4
|
+
"target": "es2022",
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"moduleResolution":"NodeNext",
|
|
7
|
+
"allowJs": true
|
|
8
|
+
},
|
|
9
|
+
"include": [
|
|
10
|
+
"./src/**/*"
|
|
11
|
+
],
|
|
12
|
+
"exclude": ["node_modules"]
|
|
13
13
|
}
|