@libp2p/peer-record 7.0.25-dd7b329c4 → 7.0.25-e1ca9cced
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/README.md +9 -6
- package/dist/index.min.js +2 -3
- package/dist/src/envelope/envelope.d.ts +2 -2
- package/dist/src/envelope/envelope.d.ts.map +1 -1
- package/dist/src/envelope/envelope.js +19 -13
- package/dist/src/envelope/envelope.js.map +1 -1
- package/dist/src/envelope/errors.d.ts +7 -0
- package/dist/src/envelope/errors.d.ts.map +1 -0
- package/dist/src/envelope/errors.js +10 -0
- package/dist/src/envelope/errors.js.map +1 -0
- package/dist/src/envelope/index.d.ts +4 -4
- package/dist/src/envelope/index.d.ts.map +1 -1
- package/dist/src/envelope/index.js +14 -24
- package/dist/src/envelope/index.js.map +1 -1
- package/dist/src/index.d.ts +9 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/peer-record/index.d.ts.map +1 -1
- package/dist/src/peer-record/index.js +4 -3
- package/dist/src/peer-record/index.js.map +1 -1
- package/dist/src/peer-record/peer-record.d.ts +3 -3
- package/dist/src/peer-record/peer-record.d.ts.map +1 -1
- package/dist/src/peer-record/peer-record.js +28 -16
- package/dist/src/peer-record/peer-record.js.map +1 -1
- package/package.json +6 -6
- package/src/envelope/envelope.ts +19 -14
- package/src/envelope/errors.ts +9 -0
- package/src/envelope/index.ts +16 -29
- package/src/index.ts +9 -6
- package/src/peer-record/index.ts +4 -3
- package/src/peer-record/peer-record.ts +29 -17
- package/dist/src/errors.d.ts +0 -4
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -4
- package/dist/src/errors.js.map +0 -1
- package/src/errors.ts +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Codec, type DecodeOptions } from 'protons-runtime';
|
|
2
2
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
3
3
|
export interface Envelope {
|
|
4
4
|
publicKey: Uint8Array;
|
|
@@ -9,6 +9,6 @@ export interface Envelope {
|
|
|
9
9
|
export declare namespace Envelope {
|
|
10
10
|
const codec: () => Codec<Envelope>;
|
|
11
11
|
const encode: (obj: Partial<Envelope>) => Uint8Array;
|
|
12
|
-
const decode: (buf: Uint8Array | Uint8ArrayList) => Envelope;
|
|
12
|
+
const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<Envelope>) => Envelope;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/envelope/envelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/envelope/envelope.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,aAAa,EAA0B,MAAM,iBAAiB,CAAA;AAEvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,OAAO,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,yBAAiB,QAAQ,CAAC;IAGjB,MAAM,KAAK,QAAO,MAAM,QAAQ,CAwEtC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,QAAQ,CAAC,KAAG,UAE/C,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,cAAc,QAAQ,CAAC,KAAG,QAEzF,CAAA;CACF"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
6
|
-
import {
|
|
6
|
+
import { decodeMessage, encodeMessage, message } from 'protons-runtime';
|
|
7
|
+
import { alloc as uint8ArrayAlloc } from 'uint8arrays/alloc';
|
|
7
8
|
export var Envelope;
|
|
8
9
|
(function (Envelope) {
|
|
9
10
|
let _codec;
|
|
@@ -32,32 +33,37 @@ export var Envelope;
|
|
|
32
33
|
if (opts.lengthDelimited !== false) {
|
|
33
34
|
w.ldelim();
|
|
34
35
|
}
|
|
35
|
-
}, (reader, length) => {
|
|
36
|
+
}, (reader, length, opts = {}) => {
|
|
36
37
|
const obj = {
|
|
37
|
-
publicKey:
|
|
38
|
-
payloadType:
|
|
39
|
-
payload:
|
|
40
|
-
signature:
|
|
38
|
+
publicKey: uint8ArrayAlloc(0),
|
|
39
|
+
payloadType: uint8ArrayAlloc(0),
|
|
40
|
+
payload: uint8ArrayAlloc(0),
|
|
41
|
+
signature: uint8ArrayAlloc(0)
|
|
41
42
|
};
|
|
42
43
|
const end = length == null ? reader.len : reader.pos + length;
|
|
43
44
|
while (reader.pos < end) {
|
|
44
45
|
const tag = reader.uint32();
|
|
45
46
|
switch (tag >>> 3) {
|
|
46
|
-
case 1:
|
|
47
|
+
case 1: {
|
|
47
48
|
obj.publicKey = reader.bytes();
|
|
48
49
|
break;
|
|
49
|
-
|
|
50
|
+
}
|
|
51
|
+
case 2: {
|
|
50
52
|
obj.payloadType = reader.bytes();
|
|
51
53
|
break;
|
|
52
|
-
|
|
54
|
+
}
|
|
55
|
+
case 3: {
|
|
53
56
|
obj.payload = reader.bytes();
|
|
54
57
|
break;
|
|
55
|
-
|
|
58
|
+
}
|
|
59
|
+
case 5: {
|
|
56
60
|
obj.signature = reader.bytes();
|
|
57
61
|
break;
|
|
58
|
-
|
|
62
|
+
}
|
|
63
|
+
default: {
|
|
59
64
|
reader.skipType(tag & 7);
|
|
60
65
|
break;
|
|
66
|
+
}
|
|
61
67
|
}
|
|
62
68
|
}
|
|
63
69
|
return obj;
|
|
@@ -68,8 +74,8 @@ export var Envelope;
|
|
|
68
74
|
Envelope.encode = (obj) => {
|
|
69
75
|
return encodeMessage(obj, Envelope.codec());
|
|
70
76
|
};
|
|
71
|
-
Envelope.decode = (buf) => {
|
|
72
|
-
return decodeMessage(buf, Envelope.codec());
|
|
77
|
+
Envelope.decode = (buf, opts) => {
|
|
78
|
+
return decodeMessage(buf, Envelope.codec(), opts);
|
|
73
79
|
};
|
|
74
80
|
})(Envelope || (Envelope = {}));
|
|
75
81
|
//# sourceMappingURL=envelope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/envelope/envelope.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,+BAA+B;AAC/B,oDAAoD;AACpD,8EAA8E;AAC9E,0DAA0D;AAE1D,OAAO,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/envelope/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/envelope/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBACjC,OAAO,SAAsB;CAI3C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The key in the record is not valid for the domain
|
|
3
|
+
*/
|
|
4
|
+
export class InvalidSignatureError extends Error {
|
|
5
|
+
constructor(message = 'Invalid signature') {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'InvalidSignatureError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/envelope/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAa,OAAO,GAAG,mBAAmB;QACxC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Record, Envelope, PrivateKey, PublicKey } from '@libp2p/interface';
|
|
3
3
|
export interface RecordEnvelopeInit {
|
|
4
|
-
|
|
4
|
+
publicKey: PublicKey;
|
|
5
5
|
payloadType: Uint8Array;
|
|
6
6
|
payload: Uint8Array;
|
|
7
7
|
signature: Uint8Array;
|
|
@@ -15,13 +15,13 @@ export declare class RecordEnvelope implements Envelope {
|
|
|
15
15
|
* Seal marshals the given Record, places the marshaled bytes inside an Envelope
|
|
16
16
|
* and signs it with the given peerId's private key
|
|
17
17
|
*/
|
|
18
|
-
static seal: (record: Record,
|
|
18
|
+
static seal: (record: Record, privateKey: PrivateKey) => Promise<RecordEnvelope>;
|
|
19
19
|
/**
|
|
20
20
|
* Open and certify a given marshalled envelope.
|
|
21
21
|
* Data is unmarshalled and the signature validated for the given domain.
|
|
22
22
|
*/
|
|
23
23
|
static openAndCertify: (data: Uint8Array | Uint8ArrayList, domain: string) => Promise<RecordEnvelope>;
|
|
24
|
-
|
|
24
|
+
publicKey: PublicKey;
|
|
25
25
|
payloadType: Uint8Array;
|
|
26
26
|
payload: Uint8Array;
|
|
27
27
|
signature: Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAK/C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEhF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,UAAU,CAAA;IACvB,OAAO,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C;;OAEG;IACH,MAAM,CAAC,kBAAkB,SAAgB,UAAU,GAAG,cAAc,KAAG,QAAQ,cAAc,CAAC,CAU7F;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,WAAkB,MAAM,cAAc,UAAU,KAAG,QAAQ,cAAc,CAAC,CAiBpF;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,SAAgB,UAAU,GAAG,cAAc,UAAU,MAAM,KAAG,QAAQ,cAAc,CAAC,CASzG;IAEM,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,UAAU,CAAA;IACvB,OAAO,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,UAAU,CAAA;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IAE7B;;;OAGG;gBACU,IAAI,EAAE,kBAAkB;IASrC;;OAEG;IACH,OAAO,IAAK,UAAU;IAatB;;OAEG;IACH,MAAM,CAAE,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIjC;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKlD"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CodeError } from '@libp2p/interface';
|
|
3
|
-
import { peerIdFromKeys } from '@libp2p/peer-id';
|
|
1
|
+
import { publicKeyFromProtobuf, publicKeyToProtobuf } from '@libp2p/crypto/keys';
|
|
4
2
|
import * as varint from 'uint8-varint';
|
|
5
3
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
6
4
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
7
5
|
import { fromString as uint8arraysFromString } from 'uint8arrays/from-string';
|
|
8
|
-
import { codes } from '../errors.js';
|
|
9
6
|
import { Envelope as Protobuf } from './envelope.js';
|
|
7
|
+
import { InvalidSignatureError } from './errors.js';
|
|
10
8
|
export class RecordEnvelope {
|
|
11
9
|
/**
|
|
12
10
|
* Unmarshal a serialized Envelope protobuf message
|
|
13
11
|
*/
|
|
14
12
|
static createFromProtobuf = async (data) => {
|
|
15
13
|
const envelopeData = Protobuf.decode(data);
|
|
16
|
-
const
|
|
14
|
+
const publicKey = publicKeyFromProtobuf(envelopeData.publicKey);
|
|
17
15
|
return new RecordEnvelope({
|
|
18
|
-
|
|
16
|
+
publicKey,
|
|
19
17
|
payloadType: envelopeData.payloadType,
|
|
20
18
|
payload: envelopeData.payload,
|
|
21
19
|
signature: envelopeData.signature
|
|
@@ -25,18 +23,17 @@ export class RecordEnvelope {
|
|
|
25
23
|
* Seal marshals the given Record, places the marshaled bytes inside an Envelope
|
|
26
24
|
* and signs it with the given peerId's private key
|
|
27
25
|
*/
|
|
28
|
-
static seal = async (record,
|
|
29
|
-
if (
|
|
26
|
+
static seal = async (record, privateKey) => {
|
|
27
|
+
if (privateKey == null) {
|
|
30
28
|
throw new Error('Missing private key');
|
|
31
29
|
}
|
|
32
30
|
const domain = record.domain;
|
|
33
31
|
const payloadType = record.codec;
|
|
34
32
|
const payload = record.marshal();
|
|
35
33
|
const signData = formatSignaturePayload(domain, payloadType, payload);
|
|
36
|
-
const
|
|
37
|
-
const signature = await key.sign(signData.subarray());
|
|
34
|
+
const signature = await privateKey.sign(signData.subarray());
|
|
38
35
|
return new RecordEnvelope({
|
|
39
|
-
|
|
36
|
+
publicKey: privateKey.publicKey,
|
|
40
37
|
payloadType,
|
|
41
38
|
payload,
|
|
42
39
|
signature
|
|
@@ -50,11 +47,11 @@ export class RecordEnvelope {
|
|
|
50
47
|
const envelope = await RecordEnvelope.createFromProtobuf(data);
|
|
51
48
|
const valid = await envelope.validate(domain);
|
|
52
49
|
if (!valid) {
|
|
53
|
-
throw new
|
|
50
|
+
throw new InvalidSignatureError('Envelope signature is not valid for the given domain');
|
|
54
51
|
}
|
|
55
52
|
return envelope;
|
|
56
53
|
};
|
|
57
|
-
|
|
54
|
+
publicKey;
|
|
58
55
|
payloadType;
|
|
59
56
|
payload;
|
|
60
57
|
signature;
|
|
@@ -64,8 +61,8 @@ export class RecordEnvelope {
|
|
|
64
61
|
* by a libp2p peer.
|
|
65
62
|
*/
|
|
66
63
|
constructor(init) {
|
|
67
|
-
const {
|
|
68
|
-
this.
|
|
64
|
+
const { publicKey, payloadType, payload, signature } = init;
|
|
65
|
+
this.publicKey = publicKey;
|
|
69
66
|
this.payloadType = payloadType;
|
|
70
67
|
this.payload = payload;
|
|
71
68
|
this.signature = signature;
|
|
@@ -74,12 +71,9 @@ export class RecordEnvelope {
|
|
|
74
71
|
* Marshal the envelope content
|
|
75
72
|
*/
|
|
76
73
|
marshal() {
|
|
77
|
-
if (this.peerId.publicKey == null) {
|
|
78
|
-
throw new Error('Missing public key');
|
|
79
|
-
}
|
|
80
74
|
if (this.marshaled == null) {
|
|
81
75
|
this.marshaled = Protobuf.encode({
|
|
82
|
-
publicKey: this.
|
|
76
|
+
publicKey: publicKeyToProtobuf(this.publicKey),
|
|
83
77
|
payloadType: this.payloadType,
|
|
84
78
|
payload: this.payload.subarray(),
|
|
85
79
|
signature: this.signature
|
|
@@ -98,11 +92,7 @@ export class RecordEnvelope {
|
|
|
98
92
|
*/
|
|
99
93
|
async validate(domain) {
|
|
100
94
|
const signData = formatSignaturePayload(domain, this.payloadType, this.payload);
|
|
101
|
-
|
|
102
|
-
throw new Error('Missing public key');
|
|
103
|
-
}
|
|
104
|
-
const key = unmarshalPublicKey(this.peerId.publicKey);
|
|
105
|
-
return key.verify(signData.subarray(), this.signature);
|
|
95
|
+
return this.publicKey.verify(signData.subarray(), this.signature);
|
|
106
96
|
}
|
|
107
97
|
}
|
|
108
98
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -17,16 +17,18 @@
|
|
|
17
17
|
*
|
|
18
18
|
* ```TypeScript
|
|
19
19
|
* import { PeerRecord, RecordEnvelope } from '@libp2p/peer-record'
|
|
20
|
-
* import {
|
|
20
|
+
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
21
|
+
* import { peerIdFromPrivateKey } from '@libp2p/peer-id'
|
|
21
22
|
*
|
|
22
|
-
* const
|
|
23
|
+
* const privateKey = await generateKeyPair('Ed25519')
|
|
24
|
+
* const peerId = peerIdFromPrivateKey(privateKey)
|
|
23
25
|
*
|
|
24
26
|
* const record = new PeerRecord({
|
|
25
|
-
*
|
|
27
|
+
* peerId,
|
|
26
28
|
* // ...other data
|
|
27
29
|
* })
|
|
28
30
|
*
|
|
29
|
-
* const envelope = await RecordEnvelope.seal(record,
|
|
31
|
+
* const envelope = await RecordEnvelope.seal(record, privateKey)
|
|
30
32
|
* const wireData = envelope.marshal()
|
|
31
33
|
* ```
|
|
32
34
|
*
|
|
@@ -59,10 +61,11 @@
|
|
|
59
61
|
*
|
|
60
62
|
* ```TypeScript
|
|
61
63
|
* import { PeerRecord } from '@libp2p/peer-record'
|
|
62
|
-
* import {
|
|
64
|
+
* import { peerIdFromPrivateKey } from '@libp2p/peer-id'
|
|
65
|
+
import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
63
66
|
* import { multiaddr } from '@multiformats/multiaddr'
|
|
64
67
|
*
|
|
65
|
-
* const peerId = await
|
|
68
|
+
* const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))
|
|
66
69
|
*
|
|
67
70
|
* const record = new PeerRecord({
|
|
68
71
|
* peerId: 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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -17,16 +17,18 @@
|
|
|
17
17
|
*
|
|
18
18
|
* ```TypeScript
|
|
19
19
|
* import { PeerRecord, RecordEnvelope } from '@libp2p/peer-record'
|
|
20
|
-
* import {
|
|
20
|
+
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
21
|
+
* import { peerIdFromPrivateKey } from '@libp2p/peer-id'
|
|
21
22
|
*
|
|
22
|
-
* const
|
|
23
|
+
* const privateKey = await generateKeyPair('Ed25519')
|
|
24
|
+
* const peerId = peerIdFromPrivateKey(privateKey)
|
|
23
25
|
*
|
|
24
26
|
* const record = new PeerRecord({
|
|
25
|
-
*
|
|
27
|
+
* peerId,
|
|
26
28
|
* // ...other data
|
|
27
29
|
* })
|
|
28
30
|
*
|
|
29
|
-
* const envelope = await RecordEnvelope.seal(record,
|
|
31
|
+
* const envelope = await RecordEnvelope.seal(record, privateKey)
|
|
30
32
|
* const wireData = envelope.marshal()
|
|
31
33
|
* ```
|
|
32
34
|
*
|
|
@@ -59,10 +61,11 @@
|
|
|
59
61
|
*
|
|
60
62
|
* ```TypeScript
|
|
61
63
|
* import { PeerRecord } from '@libp2p/peer-record'
|
|
62
|
-
* import {
|
|
64
|
+
* import { peerIdFromPrivateKey } from '@libp2p/peer-id'
|
|
65
|
+
import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
63
66
|
* import { multiaddr } from '@multiformats/multiaddr'
|
|
64
67
|
*
|
|
65
|
-
* const peerId = await
|
|
68
|
+
* const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))
|
|
66
69
|
*
|
|
67
70
|
* const record = new PeerRecord({
|
|
68
71
|
* peerId: peerId,
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,kBAAkB,QAAS,UAAU,GAAG,cAAc,KAAG,UAAU,CAOzE;IAED,MAAM,CAAC,MAAM,SAA8B;IAC3C,MAAM,CAAC,KAAK,aAAoC;IAEzC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,SAAoB;IAC1B,KAAK,aAAmB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;gBAEjB,IAAI,EAAE,cAAc;IAQjC;;OAEG;IACH,OAAO,IAAK,UAAU;IActB;;OAEG;IACH,MAAM,CAAE,KAAK,EAAE,OAAO,GAAG,OAAO;CAsBjC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { peerIdFromMultihash } from '@libp2p/peer-id';
|
|
2
2
|
import { arrayEquals } from '@libp2p/utils/array-equals';
|
|
3
3
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
import * as Digest from 'multiformats/hashes/digest';
|
|
4
5
|
import { ENVELOPE_DOMAIN_PEER_RECORD, ENVELOPE_PAYLOAD_TYPE_PEER_RECORD } from './consts.js';
|
|
5
6
|
import { PeerRecord as Protobuf } from './peer-record.js';
|
|
6
7
|
/**
|
|
@@ -13,7 +14,7 @@ export class PeerRecord {
|
|
|
13
14
|
*/
|
|
14
15
|
static createFromProtobuf = (buf) => {
|
|
15
16
|
const peerRecord = Protobuf.decode(buf);
|
|
16
|
-
const peerId =
|
|
17
|
+
const peerId = peerIdFromMultihash(Digest.decode(peerRecord.peerId));
|
|
17
18
|
const multiaddrs = (peerRecord.addresses ?? []).map((a) => multiaddr(a.multiaddr));
|
|
18
19
|
const seqNumber = peerRecord.seq;
|
|
19
20
|
return new PeerRecord({ peerId, multiaddrs, seqNumber });
|
|
@@ -38,7 +39,7 @@ export class PeerRecord {
|
|
|
38
39
|
marshal() {
|
|
39
40
|
if (this.marshaled == null) {
|
|
40
41
|
this.marshaled = Protobuf.encode({
|
|
41
|
-
peerId: this.peerId.
|
|
42
|
+
peerId: this.peerId.toMultihash().bytes,
|
|
42
43
|
seq: BigInt(this.seqNumber),
|
|
43
44
|
addresses: this.multiaddrs.map((m) => ({
|
|
44
45
|
multiaddr: m.bytes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Codec, type DecodeOptions } from 'protons-runtime';
|
|
2
2
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
3
3
|
export interface PeerRecord {
|
|
4
4
|
peerId: Uint8Array;
|
|
@@ -12,10 +12,10 @@ export declare namespace PeerRecord {
|
|
|
12
12
|
namespace AddressInfo {
|
|
13
13
|
const codec: () => Codec<AddressInfo>;
|
|
14
14
|
const encode: (obj: Partial<AddressInfo>) => Uint8Array;
|
|
15
|
-
const decode: (buf: Uint8Array | Uint8ArrayList) => AddressInfo;
|
|
15
|
+
const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<AddressInfo>) => AddressInfo;
|
|
16
16
|
}
|
|
17
17
|
const codec: () => Codec<PeerRecord>;
|
|
18
18
|
const encode: (obj: Partial<PeerRecord>) => Uint8Array;
|
|
19
|
-
const decode: (buf: Uint8Array | Uint8ArrayList) => PeerRecord;
|
|
19
|
+
const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<PeerRecord>) => PeerRecord;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=peer-record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-record.d.ts","sourceRoot":"","sources":["../../../src/peer-record/peer-record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"peer-record.d.ts","sourceRoot":"","sources":["../../../src/peer-record/peer-record.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,aAAa,EAA0C,MAAM,iBAAiB,CAAA;AAEvH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,CAAA;CACpC;AAED,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,WAAW;QAC1B,SAAS,EAAE,UAAU,CAAA;KACtB;IAED,UAAiB,WAAW,CAAC;QAGpB,MAAM,KAAK,QAAO,MAAM,WAAW,CA0CzC,CAAA;QAEM,MAAM,MAAM,QAAS,QAAQ,WAAW,CAAC,KAAG,UAElD,CAAA;QAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,cAAc,WAAW,CAAC,KAAG,WAE5F,CAAA;KACF;IAIM,MAAM,KAAK,QAAO,MAAM,UAAU,CAsExC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,UAAU,CAAC,KAAG,UAEjD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,cAAc,UAAU,CAAC,KAAG,UAE3F,CAAA;CACF"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
6
|
-
import { encodeMessage,
|
|
6
|
+
import { decodeMessage, encodeMessage, MaxLengthError, message } from 'protons-runtime';
|
|
7
|
+
import { alloc as uint8ArrayAlloc } from 'uint8arrays/alloc';
|
|
7
8
|
export var PeerRecord;
|
|
8
9
|
(function (PeerRecord) {
|
|
9
10
|
let AddressInfo;
|
|
@@ -22,20 +23,22 @@ export var PeerRecord;
|
|
|
22
23
|
if (opts.lengthDelimited !== false) {
|
|
23
24
|
w.ldelim();
|
|
24
25
|
}
|
|
25
|
-
}, (reader, length) => {
|
|
26
|
+
}, (reader, length, opts = {}) => {
|
|
26
27
|
const obj = {
|
|
27
|
-
multiaddr:
|
|
28
|
+
multiaddr: uint8ArrayAlloc(0)
|
|
28
29
|
};
|
|
29
30
|
const end = length == null ? reader.len : reader.pos + length;
|
|
30
31
|
while (reader.pos < end) {
|
|
31
32
|
const tag = reader.uint32();
|
|
32
33
|
switch (tag >>> 3) {
|
|
33
|
-
case 1:
|
|
34
|
+
case 1: {
|
|
34
35
|
obj.multiaddr = reader.bytes();
|
|
35
36
|
break;
|
|
36
|
-
|
|
37
|
+
}
|
|
38
|
+
default: {
|
|
37
39
|
reader.skipType(tag & 7);
|
|
38
40
|
break;
|
|
41
|
+
}
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
return obj;
|
|
@@ -46,8 +49,8 @@ export var PeerRecord;
|
|
|
46
49
|
AddressInfo.encode = (obj) => {
|
|
47
50
|
return encodeMessage(obj, AddressInfo.codec());
|
|
48
51
|
};
|
|
49
|
-
AddressInfo.decode = (buf) => {
|
|
50
|
-
return decodeMessage(buf, AddressInfo.codec());
|
|
52
|
+
AddressInfo.decode = (buf, opts) => {
|
|
53
|
+
return decodeMessage(buf, AddressInfo.codec(), opts);
|
|
51
54
|
};
|
|
52
55
|
})(AddressInfo = PeerRecord.AddressInfo || (PeerRecord.AddressInfo = {}));
|
|
53
56
|
let _codec;
|
|
@@ -74,9 +77,9 @@ export var PeerRecord;
|
|
|
74
77
|
if (opts.lengthDelimited !== false) {
|
|
75
78
|
w.ldelim();
|
|
76
79
|
}
|
|
77
|
-
}, (reader, length) => {
|
|
80
|
+
}, (reader, length, opts = {}) => {
|
|
78
81
|
const obj = {
|
|
79
|
-
peerId:
|
|
82
|
+
peerId: uint8ArrayAlloc(0),
|
|
80
83
|
seq: 0n,
|
|
81
84
|
addresses: []
|
|
82
85
|
};
|
|
@@ -84,18 +87,27 @@ export var PeerRecord;
|
|
|
84
87
|
while (reader.pos < end) {
|
|
85
88
|
const tag = reader.uint32();
|
|
86
89
|
switch (tag >>> 3) {
|
|
87
|
-
case 1:
|
|
90
|
+
case 1: {
|
|
88
91
|
obj.peerId = reader.bytes();
|
|
89
92
|
break;
|
|
90
|
-
|
|
93
|
+
}
|
|
94
|
+
case 2: {
|
|
91
95
|
obj.seq = reader.uint64();
|
|
92
96
|
break;
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
}
|
|
98
|
+
case 3: {
|
|
99
|
+
if (opts.limits?.addresses != null && obj.addresses.length === opts.limits.addresses) {
|
|
100
|
+
throw new MaxLengthError('Decode error - map field "addresses" had too many elements');
|
|
101
|
+
}
|
|
102
|
+
obj.addresses.push(PeerRecord.AddressInfo.codec().decode(reader, reader.uint32(), {
|
|
103
|
+
limits: opts.limits?.addresses$
|
|
104
|
+
}));
|
|
95
105
|
break;
|
|
96
|
-
|
|
106
|
+
}
|
|
107
|
+
default: {
|
|
97
108
|
reader.skipType(tag & 7);
|
|
98
109
|
break;
|
|
110
|
+
}
|
|
99
111
|
}
|
|
100
112
|
}
|
|
101
113
|
return obj;
|
|
@@ -106,8 +118,8 @@ export var PeerRecord;
|
|
|
106
118
|
PeerRecord.encode = (obj) => {
|
|
107
119
|
return encodeMessage(obj, PeerRecord.codec());
|
|
108
120
|
};
|
|
109
|
-
PeerRecord.decode = (buf) => {
|
|
110
|
-
return decodeMessage(buf, PeerRecord.codec());
|
|
121
|
+
PeerRecord.decode = (buf, opts) => {
|
|
122
|
+
return decodeMessage(buf, PeerRecord.codec(), opts);
|
|
111
123
|
};
|
|
112
124
|
})(PeerRecord || (PeerRecord = {}));
|
|
113
125
|
//# sourceMappingURL=peer-record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-record.js","sourceRoot":"","sources":["../../../src/peer-record/peer-record.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,+BAA+B;AAC/B,oDAAoD;AACpD,8EAA8E;AAC9E,0DAA0D;AAE1D,OAAO,
|
|
1
|
+
{"version":3,"file":"peer-record.js","sourceRoot":"","sources":["../../../src/peer-record/peer-record.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/peer-record",
|
|
3
|
-
"version": "7.0.25-
|
|
3
|
+
"version": "7.0.25-e1ca9cced",
|
|
4
4
|
"description": "Used to transfer signed peer data across the network",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-record#readme",
|
|
@@ -61,18 +61,18 @@
|
|
|
61
61
|
"test:electron-main": "aegir test -t electron-main"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@libp2p/crypto": "4.1.9-
|
|
65
|
-
"@libp2p/interface": "1.7.0-
|
|
66
|
-
"@libp2p/peer-id": "4.2.4-
|
|
67
|
-
"@libp2p/utils": "5.4.9-
|
|
64
|
+
"@libp2p/crypto": "4.1.9-e1ca9cced",
|
|
65
|
+
"@libp2p/interface": "1.7.0-e1ca9cced",
|
|
66
|
+
"@libp2p/peer-id": "4.2.4-e1ca9cced",
|
|
67
|
+
"@libp2p/utils": "5.4.9-e1ca9cced",
|
|
68
68
|
"@multiformats/multiaddr": "^12.2.3",
|
|
69
|
+
"multiformats": "^13.2.2",
|
|
69
70
|
"protons-runtime": "^5.4.0",
|
|
70
71
|
"uint8-varint": "^2.0.4",
|
|
71
72
|
"uint8arraylist": "^2.4.8",
|
|
72
73
|
"uint8arrays": "^5.1.0"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
75
|
-
"@libp2p/peer-id-factory": "4.2.4-dd7b329c4",
|
|
76
76
|
"aegir": "^44.0.1",
|
|
77
77
|
"protons": "^7.5.0"
|
|
78
78
|
},
|