@libp2p/peer-id 1.1.5 → 1.1.8
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/src/index.d.ts +7 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -29
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +32 -40
package/dist/src/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
2
|
import { symbol } from '@libp2p/interfaces/peer-id';
|
|
3
|
-
import type { MultibaseDecoder
|
|
3
|
+
import type { MultibaseDecoder } from 'multiformats/bases/interface';
|
|
4
4
|
import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
5
5
|
import type { PeerId } from '@libp2p/interfaces/peer-id';
|
|
6
|
-
interface
|
|
6
|
+
interface PeerIdInit {
|
|
7
7
|
type: 'RSA' | 'Ed25519' | 'secp256k1';
|
|
8
8
|
multihash: MultihashDigest;
|
|
9
9
|
privateKey?: Uint8Array;
|
|
@@ -13,19 +13,19 @@ declare class PeerIdImpl {
|
|
|
13
13
|
readonly multihash: MultihashDigest;
|
|
14
14
|
readonly privateKey?: Uint8Array;
|
|
15
15
|
readonly publicKey?: Uint8Array;
|
|
16
|
-
private
|
|
17
|
-
constructor(
|
|
16
|
+
private string?;
|
|
17
|
+
constructor(init: PeerIdInit);
|
|
18
18
|
get [Symbol.toStringTag](): string;
|
|
19
19
|
get [symbol](): boolean;
|
|
20
|
-
toString(
|
|
20
|
+
toString(): string;
|
|
21
21
|
toCID(): CID;
|
|
22
22
|
toBytes(): Uint8Array;
|
|
23
23
|
/**
|
|
24
24
|
* Checks the equality of `this` peer against a given PeerId
|
|
25
25
|
*/
|
|
26
|
-
equals(id:
|
|
26
|
+
equals(id: PeerId | Uint8Array | string): boolean;
|
|
27
27
|
}
|
|
28
|
-
export declare function createPeerId(
|
|
28
|
+
export declare function createPeerId(init: PeerIdInit): PeerIdImpl;
|
|
29
29
|
export declare function peerIdFromPeerId(other: any): PeerId;
|
|
30
30
|
export declare function peerIdFromString(str: string, decoder?: MultibaseDecoder<any>): PeerId;
|
|
31
31
|
export declare function peerIdFromBytes(buf: Uint8Array): PeerId;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,EAA6C,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,EAA6C,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAcxD,UAAU,UAAU;IAClB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IACrC,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAkBD,cAAM,UAAU;IACP,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IAC5C,SAAgB,SAAS,EAAE,eAAe,CAAA;IAC1C,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvC,SAAgB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtC,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,IAAI,EAAE,UAAU;IAY7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,YAEX;IAED,QAAQ;IAUR,KAAK;IAIL,OAAO;IAIP;;OAEG;IACH,MAAM,CAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO;CAWnD;AAmCD,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,cAE7C;AAED,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAgBpD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAkBtF;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,UAoB/C;AAED,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB/C;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrG"}
|
package/dist/src/index.js
CHANGED
|
@@ -17,14 +17,14 @@ const LIBP2P_KEY_CODE = 0x72;
|
|
|
17
17
|
const MARSHALLED_ED225519_PUBLIC_KEY_LENGTH = 36;
|
|
18
18
|
const MARSHALLED_SECP258K1_PUBLIC_KEY_LENGTH = 37;
|
|
19
19
|
class PeerIdImpl {
|
|
20
|
-
constructor(
|
|
21
|
-
this.type =
|
|
22
|
-
this.multihash =
|
|
23
|
-
this.privateKey =
|
|
24
|
-
// mark
|
|
25
|
-
this
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
constructor(init) {
|
|
21
|
+
this.type = init.type;
|
|
22
|
+
this.multihash = init.multihash;
|
|
23
|
+
this.privateKey = init.privateKey;
|
|
24
|
+
// mark string cache as non-enumerable
|
|
25
|
+
Object.defineProperty(this, 'string', {
|
|
26
|
+
enumerable: false,
|
|
27
|
+
writable: true
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
get [Symbol.toStringTag]() {
|
|
@@ -33,17 +33,11 @@ class PeerIdImpl {
|
|
|
33
33
|
get [symbol]() {
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
|
-
toString(
|
|
37
|
-
if (
|
|
38
|
-
|
|
36
|
+
toString() {
|
|
37
|
+
if (this.string == null) {
|
|
38
|
+
this.string = base58btc.encode(this.multihash.bytes).slice(1);
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
if (cached != null) {
|
|
42
|
-
return cached;
|
|
43
|
-
}
|
|
44
|
-
const encoded = codec.encode(this.multihash.bytes).slice(1);
|
|
45
|
-
this.strings.set(codec.name, encoded);
|
|
46
|
-
return encoded;
|
|
40
|
+
return this.string;
|
|
47
41
|
}
|
|
48
42
|
// return self-describing String representation
|
|
49
43
|
// in default format from RFC 0001: https://github.com/libp2p/specs/pull/209
|
|
@@ -60,6 +54,9 @@ class PeerIdImpl {
|
|
|
60
54
|
if (id instanceof Uint8Array) {
|
|
61
55
|
return uint8ArrayEquals(this.multihash.bytes, id);
|
|
62
56
|
}
|
|
57
|
+
else if (typeof id === 'string') {
|
|
58
|
+
return peerIdFromString(id).equals(this);
|
|
59
|
+
}
|
|
63
60
|
else if (id?.multihash?.bytes != null) {
|
|
64
61
|
return uint8ArrayEquals(this.multihash.bytes, id.multihash.bytes);
|
|
65
62
|
}
|
|
@@ -69,28 +66,28 @@ class PeerIdImpl {
|
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
class RSAPeerIdImpl extends PeerIdImpl {
|
|
72
|
-
constructor(
|
|
73
|
-
super({ ...
|
|
69
|
+
constructor(init) {
|
|
70
|
+
super({ ...init, type: 'RSA' });
|
|
74
71
|
this.type = 'RSA';
|
|
75
|
-
this.publicKey =
|
|
72
|
+
this.publicKey = init.publicKey;
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
class Ed25519PeerIdImpl extends PeerIdImpl {
|
|
79
|
-
constructor(
|
|
80
|
-
super({ ...
|
|
76
|
+
constructor(init) {
|
|
77
|
+
super({ ...init, type: 'Ed25519' });
|
|
81
78
|
this.type = 'Ed25519';
|
|
82
|
-
this.publicKey =
|
|
79
|
+
this.publicKey = init.multihash.digest;
|
|
83
80
|
}
|
|
84
81
|
}
|
|
85
82
|
class Secp256k1PeerIdImpl extends PeerIdImpl {
|
|
86
|
-
constructor(
|
|
87
|
-
super({ ...
|
|
83
|
+
constructor(init) {
|
|
84
|
+
super({ ...init, type: 'secp256k1' });
|
|
88
85
|
this.type = 'secp256k1';
|
|
89
|
-
this.publicKey =
|
|
86
|
+
this.publicKey = init.multihash.digest;
|
|
90
87
|
}
|
|
91
88
|
}
|
|
92
|
-
export function createPeerId(
|
|
93
|
-
return new PeerIdImpl(
|
|
89
|
+
export function createPeerId(init) {
|
|
90
|
+
return new PeerIdImpl(init);
|
|
94
91
|
}
|
|
95
92
|
export function peerIdFromPeerId(other) {
|
|
96
93
|
const err = errcode(new Error('Not a PeerId'), 'ERR_INVALID_PARAMETERS');
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAA6C,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAK9F,MAAM,WAAW,GAAG,MAAM;KACvB,MAAM,CAAC,KAAK,CAAC;KACb,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,8EAA8E;KAC7E,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE9D,yFAAyF;AACzF,MAAM,eAAe,GAAG,IAAI,CAAA;AAE5B,MAAM,qCAAqC,GAAG,EAAE,CAAA;AAChD,MAAM,sCAAsC,GAAG,EAAE,CAAA;AAwBjD,MAAM,UAAU;IAOd,YAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/peer-id",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "IPFS Peer Id implementation in Node.js",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-peer-id#readme",
|
|
@@ -132,9 +132,9 @@
|
|
|
132
132
|
"test:electron-main": "npm run test -- -t electron-main"
|
|
133
133
|
},
|
|
134
134
|
"dependencies": {
|
|
135
|
-
"@libp2p/interfaces": "^1.
|
|
135
|
+
"@libp2p/interfaces": "^1.3.0",
|
|
136
136
|
"err-code": "^3.0.1",
|
|
137
|
-
"multiformats": "^9.
|
|
137
|
+
"multiformats": "^9.6.3",
|
|
138
138
|
"uint8arrays": "^3.0.0"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
|
7
7
|
import { sha256 } from 'multiformats/hashes/sha2'
|
|
8
8
|
import errcode from 'err-code'
|
|
9
9
|
import { Ed25519PeerId, RSAPeerId, Secp256k1PeerId, symbol } from '@libp2p/interfaces/peer-id'
|
|
10
|
-
import type { MultibaseDecoder
|
|
10
|
+
import type { MultibaseDecoder } from 'multiformats/bases/interface'
|
|
11
11
|
import type { MultihashDigest } from 'multiformats/hashes/interface'
|
|
12
12
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
13
13
|
|
|
@@ -23,24 +23,24 @@ const LIBP2P_KEY_CODE = 0x72
|
|
|
23
23
|
const MARSHALLED_ED225519_PUBLIC_KEY_LENGTH = 36
|
|
24
24
|
const MARSHALLED_SECP258K1_PUBLIC_KEY_LENGTH = 37
|
|
25
25
|
|
|
26
|
-
interface
|
|
26
|
+
interface PeerIdInit {
|
|
27
27
|
type: 'RSA' | 'Ed25519' | 'secp256k1'
|
|
28
28
|
multihash: MultihashDigest
|
|
29
29
|
privateKey?: Uint8Array
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
interface
|
|
32
|
+
interface RSAPeerIdInit {
|
|
33
33
|
multihash: MultihashDigest
|
|
34
34
|
privateKey?: Uint8Array
|
|
35
35
|
publicKey?: Uint8Array
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
interface
|
|
38
|
+
interface Ed25519PeerIdInit {
|
|
39
39
|
multihash: MultihashDigest
|
|
40
40
|
privateKey?: Uint8Array
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
interface
|
|
43
|
+
interface Secp256k1PeerIdInit {
|
|
44
44
|
multihash: MultihashDigest
|
|
45
45
|
privateKey?: Uint8Array
|
|
46
46
|
}
|
|
@@ -50,17 +50,17 @@ class PeerIdImpl {
|
|
|
50
50
|
public readonly multihash: MultihashDigest
|
|
51
51
|
public readonly privateKey?: Uint8Array
|
|
52
52
|
public readonly publicKey?: Uint8Array
|
|
53
|
-
private
|
|
53
|
+
private string?: string
|
|
54
54
|
|
|
55
|
-
constructor (
|
|
56
|
-
this.type =
|
|
57
|
-
this.multihash =
|
|
58
|
-
this.privateKey =
|
|
55
|
+
constructor (init: PeerIdInit) {
|
|
56
|
+
this.type = init.type
|
|
57
|
+
this.multihash = init.multihash
|
|
58
|
+
this.privateKey = init.privateKey
|
|
59
59
|
|
|
60
|
-
// mark
|
|
61
|
-
this
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
// mark string cache as non-enumerable
|
|
61
|
+
Object.defineProperty(this, 'string', {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
writable: true
|
|
64
64
|
})
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -72,22 +72,12 @@ class PeerIdImpl {
|
|
|
72
72
|
return true
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
toString (
|
|
76
|
-
if (
|
|
77
|
-
|
|
75
|
+
toString () {
|
|
76
|
+
if (this.string == null) {
|
|
77
|
+
this.string = base58btc.encode(this.multihash.bytes).slice(1)
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (cached != null) {
|
|
83
|
-
return cached
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const encoded = codec.encode(this.multihash.bytes).slice(1)
|
|
87
|
-
|
|
88
|
-
this.strings.set(codec.name, encoded)
|
|
89
|
-
|
|
90
|
-
return encoded
|
|
80
|
+
return this.string
|
|
91
81
|
}
|
|
92
82
|
|
|
93
83
|
// return self-describing String representation
|
|
@@ -103,9 +93,11 @@ class PeerIdImpl {
|
|
|
103
93
|
/**
|
|
104
94
|
* Checks the equality of `this` peer against a given PeerId
|
|
105
95
|
*/
|
|
106
|
-
equals (id:
|
|
96
|
+
equals (id: PeerId | Uint8Array | string): boolean {
|
|
107
97
|
if (id instanceof Uint8Array) {
|
|
108
98
|
return uint8ArrayEquals(this.multihash.bytes, id)
|
|
99
|
+
} else if (typeof id === 'string') {
|
|
100
|
+
return peerIdFromString(id).equals(this as PeerId)
|
|
109
101
|
} else if (id?.multihash?.bytes != null) {
|
|
110
102
|
return uint8ArrayEquals(this.multihash.bytes, id.multihash.bytes)
|
|
111
103
|
} else {
|
|
@@ -118,10 +110,10 @@ class RSAPeerIdImpl extends PeerIdImpl implements RSAPeerId {
|
|
|
118
110
|
public readonly type = 'RSA'
|
|
119
111
|
public readonly publicKey?: Uint8Array
|
|
120
112
|
|
|
121
|
-
constructor (
|
|
122
|
-
super({ ...
|
|
113
|
+
constructor (init: RSAPeerIdInit) {
|
|
114
|
+
super({ ...init, type: 'RSA' })
|
|
123
115
|
|
|
124
|
-
this.publicKey =
|
|
116
|
+
this.publicKey = init.publicKey
|
|
125
117
|
}
|
|
126
118
|
}
|
|
127
119
|
|
|
@@ -129,10 +121,10 @@ class Ed25519PeerIdImpl extends PeerIdImpl implements Ed25519PeerId {
|
|
|
129
121
|
public readonly type = 'Ed25519'
|
|
130
122
|
public readonly publicKey: Uint8Array
|
|
131
123
|
|
|
132
|
-
constructor (
|
|
133
|
-
super({ ...
|
|
124
|
+
constructor (init: Ed25519PeerIdInit) {
|
|
125
|
+
super({ ...init, type: 'Ed25519' })
|
|
134
126
|
|
|
135
|
-
this.publicKey =
|
|
127
|
+
this.publicKey = init.multihash.digest
|
|
136
128
|
}
|
|
137
129
|
}
|
|
138
130
|
|
|
@@ -140,15 +132,15 @@ class Secp256k1PeerIdImpl extends PeerIdImpl implements Secp256k1PeerId {
|
|
|
140
132
|
public readonly type = 'secp256k1'
|
|
141
133
|
public readonly publicKey: Uint8Array
|
|
142
134
|
|
|
143
|
-
constructor (
|
|
144
|
-
super({ ...
|
|
135
|
+
constructor (init: Secp256k1PeerIdInit) {
|
|
136
|
+
super({ ...init, type: 'secp256k1' })
|
|
145
137
|
|
|
146
|
-
this.publicKey =
|
|
138
|
+
this.publicKey = init.multihash.digest
|
|
147
139
|
}
|
|
148
140
|
}
|
|
149
141
|
|
|
150
|
-
export function createPeerId (
|
|
151
|
-
return new PeerIdImpl(
|
|
142
|
+
export function createPeerId (init: PeerIdInit) {
|
|
143
|
+
return new PeerIdImpl(init)
|
|
152
144
|
}
|
|
153
145
|
|
|
154
146
|
export function peerIdFromPeerId (other: any): PeerId {
|