@libp2p/peer-record 5.0.3 → 5.0.4

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.
@@ -1,6 +1,6 @@
1
+ import { Uint8ArrayList } from 'uint8arraylist';
1
2
  import type { PeerId } from '@libp2p/interface-peer-id';
2
3
  import type { Record, Envelope } from '@libp2p/interface-record';
3
- import { Uint8ArrayList } from 'uint8arraylist';
4
4
  export interface RecordEnvelopeInit {
5
5
  peerId: PeerId;
6
6
  payloadType: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,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,UAAU,MAAM,KAAG,QAAQ,cAAc,CAAC,CAkB5E;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,SAAgB,UAAU,GAAG,cAAc,UAAU,MAAM,KAAG,QAAQ,cAAc,CAAC,CASzG;IAEM,MAAM,EAAE,MAAM,CAAA;IACd,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;IAiBtB;;OAEG;IACH,MAAM,CAAE,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIjC;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAWlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAK/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,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,UAAU,MAAM,KAAG,QAAQ,cAAc,CAAC,CAkB5E;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,SAAgB,UAAU,GAAG,cAAc,UAAU,MAAM,KAAG,QAAQ,cAAc,CAAC,CASzG;IAEM,MAAM,EAAE,MAAM,CAAA;IACd,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;IAiBtB;;OAEG;IACH,MAAM,CAAE,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIjC;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAWlD"}
@@ -1,14 +1,64 @@
1
- var _a;
1
+ import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys';
2
2
  import { CodeError } from '@libp2p/interfaces/errors';
3
- import { fromString as uint8arraysFromString } from 'uint8arrays/from-string';
3
+ import { peerIdFromKeys } from '@libp2p/peer-id';
4
+ import { unsigned } from 'uint8-varint';
5
+ import { Uint8ArrayList } from 'uint8arraylist';
4
6
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
5
- import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys';
7
+ import { fromString as uint8arraysFromString } from 'uint8arrays/from-string';
6
8
  import { codes } from '../errors.js';
7
9
  import { Envelope as Protobuf } from './envelope.js';
8
- import { peerIdFromKeys } from '@libp2p/peer-id';
9
- import { Uint8ArrayList } from 'uint8arraylist';
10
- import { unsigned } from 'uint8-varint';
11
10
  export class RecordEnvelope {
11
+ /**
12
+ * Unmarshal a serialized Envelope protobuf message
13
+ */
14
+ static createFromProtobuf = async (data) => {
15
+ const envelopeData = Protobuf.decode(data);
16
+ const peerId = await peerIdFromKeys(envelopeData.publicKey);
17
+ return new RecordEnvelope({
18
+ peerId,
19
+ payloadType: envelopeData.payloadType,
20
+ payload: envelopeData.payload,
21
+ signature: envelopeData.signature
22
+ });
23
+ };
24
+ /**
25
+ * Seal marshals the given Record, places the marshaled bytes inside an Envelope
26
+ * and signs it with the given peerId's private key
27
+ */
28
+ static seal = async (record, peerId) => {
29
+ if (peerId.privateKey == null) {
30
+ throw new Error('Missing private key');
31
+ }
32
+ const domain = record.domain;
33
+ const payloadType = record.codec;
34
+ const payload = record.marshal();
35
+ const signData = formatSignaturePayload(domain, payloadType, payload);
36
+ const key = await unmarshalPrivateKey(peerId.privateKey);
37
+ const signature = await key.sign(signData.subarray());
38
+ return new RecordEnvelope({
39
+ peerId,
40
+ payloadType,
41
+ payload,
42
+ signature
43
+ });
44
+ };
45
+ /**
46
+ * Open and certify a given marshalled envelope.
47
+ * Data is unmarshalled and the signature validated for the given domain.
48
+ */
49
+ static openAndCertify = async (data, domain) => {
50
+ const envelope = await RecordEnvelope.createFromProtobuf(data);
51
+ const valid = await envelope.validate(domain);
52
+ if (!valid) {
53
+ throw new CodeError('envelope signature is not valid for the given domain', codes.ERR_SIGNATURE_NOT_VALID);
54
+ }
55
+ return envelope;
56
+ };
57
+ peerId;
58
+ payloadType;
59
+ payload;
60
+ signature;
61
+ marshaled;
12
62
  /**
13
63
  * The Envelope is responsible for keeping an arbitrary signed record
14
64
  * by a libp2p peer.
@@ -52,56 +102,9 @@ export class RecordEnvelope {
52
102
  throw new Error('Missing public key');
53
103
  }
54
104
  const key = unmarshalPublicKey(this.peerId.publicKey);
55
- return await key.verify(signData.subarray(), this.signature);
105
+ return key.verify(signData.subarray(), this.signature);
56
106
  }
57
107
  }
58
- _a = RecordEnvelope;
59
- /**
60
- * Unmarshal a serialized Envelope protobuf message
61
- */
62
- RecordEnvelope.createFromProtobuf = async (data) => {
63
- const envelopeData = Protobuf.decode(data);
64
- const peerId = await peerIdFromKeys(envelopeData.publicKey);
65
- return new RecordEnvelope({
66
- peerId,
67
- payloadType: envelopeData.payloadType,
68
- payload: envelopeData.payload,
69
- signature: envelopeData.signature
70
- });
71
- };
72
- /**
73
- * Seal marshals the given Record, places the marshaled bytes inside an Envelope
74
- * and signs it with the given peerId's private key
75
- */
76
- RecordEnvelope.seal = async (record, peerId) => {
77
- if (peerId.privateKey == null) {
78
- throw new Error('Missing private key');
79
- }
80
- const domain = record.domain;
81
- const payloadType = record.codec;
82
- const payload = record.marshal();
83
- const signData = formatSignaturePayload(domain, payloadType, payload);
84
- const key = await unmarshalPrivateKey(peerId.privateKey);
85
- const signature = await key.sign(signData.subarray());
86
- return new RecordEnvelope({
87
- peerId,
88
- payloadType,
89
- payload,
90
- signature
91
- });
92
- };
93
- /**
94
- * Open and certify a given marshalled envelope.
95
- * Data is unmarshalled and the signature validated for the given domain.
96
- */
97
- RecordEnvelope.openAndCertify = async (data, domain) => {
98
- const envelope = await RecordEnvelope.createFromProtobuf(data);
99
- const valid = await envelope.validate(domain);
100
- if (!valid) {
101
- throw new CodeError('envelope signature is not valid for the given domain', codes.ERR_SIGNATURE_NOT_VALID);
102
- }
103
- return envelope;
104
- };
105
108
  /**
106
109
  * Helper function that prepares a Uint8Array to sign or verify a signature
107
110
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Multiaddr } from '@multiformats/multiaddr';
2
1
  import type { PeerId } from '@libp2p/interface-peer-id';
2
+ import type { Multiaddr } from '@multiformats/multiaddr';
3
3
  import type { Uint8ArrayList } from 'uint8arraylist';
4
4
  export interface PeerRecordInit {
5
5
  peerId: PeerId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AASvD,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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,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,16 +1,32 @@
1
- import { multiaddr } from '@multiformats/multiaddr';
2
- import { arrayEquals } from '@libp2p/utils/array-equals';
3
1
  import { peerIdFromBytes } from '@libp2p/peer-id';
4
- import { PeerRecord as Protobuf } from './peer-record.js';
2
+ import { arrayEquals } from '@libp2p/utils/array-equals';
3
+ import { multiaddr } from '@multiformats/multiaddr';
5
4
  import { ENVELOPE_DOMAIN_PEER_RECORD, ENVELOPE_PAYLOAD_TYPE_PEER_RECORD } from './consts.js';
5
+ import { PeerRecord as Protobuf } from './peer-record.js';
6
6
  /**
7
7
  * The PeerRecord is used for distributing peer routing records across the network.
8
8
  * It contains the peer's reachable listen addresses.
9
9
  */
10
10
  export class PeerRecord {
11
+ /**
12
+ * Unmarshal Peer Record Protobuf
13
+ */
14
+ static createFromProtobuf = (buf) => {
15
+ const peerRecord = Protobuf.decode(buf);
16
+ const peerId = peerIdFromBytes(peerRecord.peerId);
17
+ const multiaddrs = (peerRecord.addresses ?? []).map((a) => multiaddr(a.multiaddr));
18
+ const seqNumber = peerRecord.seq;
19
+ return new PeerRecord({ peerId, multiaddrs, seqNumber });
20
+ };
21
+ static DOMAIN = ENVELOPE_DOMAIN_PEER_RECORD;
22
+ static CODEC = ENVELOPE_PAYLOAD_TYPE_PEER_RECORD;
23
+ peerId;
24
+ multiaddrs;
25
+ seqNumber;
26
+ domain = PeerRecord.DOMAIN;
27
+ codec = PeerRecord.CODEC;
28
+ marshaled;
11
29
  constructor(init) {
12
- this.domain = PeerRecord.DOMAIN;
13
- this.codec = PeerRecord.CODEC;
14
30
  const { peerId, multiaddrs, seqNumber } = init;
15
31
  this.peerId = peerId;
16
32
  this.multiaddrs = multiaddrs ?? [];
@@ -53,16 +69,4 @@ export class PeerRecord {
53
69
  return true;
54
70
  }
55
71
  }
56
- /**
57
- * Unmarshal Peer Record Protobuf
58
- */
59
- PeerRecord.createFromProtobuf = (buf) => {
60
- const peerRecord = Protobuf.decode(buf);
61
- const peerId = peerIdFromBytes(peerRecord.peerId);
62
- const multiaddrs = (peerRecord.addresses ?? []).map((a) => multiaddr(a.multiaddr));
63
- const seqNumber = peerRecord.seq;
64
- return new PeerRecord({ peerId, multiaddrs, seqNumber });
65
- };
66
- PeerRecord.DOMAIN = ENVELOPE_DOMAIN_PEER_RECORD;
67
- PeerRecord.CODEC = ENVELOPE_PAYLOAD_TYPE_PEER_RECORD;
68
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EAClC,MAAM,aAAa,CAAA;AAiBpB;;;GAGG;AACH,MAAM,OAAO,UAAU;IAuBrB,YAAa,IAAoB;QAJ1B,WAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC1B,UAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QAI7B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBAC7B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,SAAS,EAAE,CAAC,CAAC,KAAK;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAA;SACH;QAED,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,MAAM,CAAE,KAAc;QACpB,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;YAClC,OAAO,KAAK,CAAA;SACb;QAED,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACrC,OAAO,KAAK,CAAA;SACb;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE;YACtC,OAAO,KAAK,CAAA;SACb;QAED,sBAAsB;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,KAAK,CAAA;SACb;QAED,OAAO,IAAI,CAAA;IACb,CAAC;;AAvED;;GAEG;AACI,6BAAkB,GAAG,CAAC,GAAgC,EAAc,EAAE;IAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAClF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;IAEhC,OAAO,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;AAC1D,CAAC,CAAA;AAEM,iBAAM,GAAG,2BAA2B,CAAA;AACpC,gBAAK,GAAG,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-record/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EAClC,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAmBzD;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAgC,EAAc,EAAE;QAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAClF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;QAEhC,OAAO,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,MAAM,CAAC,MAAM,GAAG,2BAA2B,CAAA;IAC3C,MAAM,CAAC,KAAK,GAAG,iCAAiC,CAAA;IAEzC,MAAM,CAAQ;IACd,UAAU,CAAa;IACvB,SAAS,CAAQ;IACjB,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAC1B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IACvB,SAAS,CAAa;IAE9B,YAAa,IAAoB;QAC/B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBAC7B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,SAAS,EAAE,CAAC,CAAC,KAAK;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAA;SACH;QAED,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,MAAM,CAAE,KAAc;QACpB,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;YAClC,OAAO,KAAK,CAAA;SACb;QAED,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACrC,OAAO,KAAK,CAAA;SACb;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE;YACtC,OAAO,KAAK,CAAA;SACb;QAED,sBAAsB;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,KAAK,CAAA;SACb;QAED,OAAO,IAAI,CAAA;IACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-record",
3
- "version": "5.0.3",
3
+ "version": "5.0.4",
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-peer-record#readme",
@@ -162,7 +162,7 @@
162
162
  "@libp2p/interface-record-compliance-tests": "^2.0.0",
163
163
  "@libp2p/peer-id-factory": "^2.0.0",
164
164
  "@types/varint": "^6.0.0",
165
- "aegir": "^38.1.2",
165
+ "aegir": "^39.0.10",
166
166
  "protons": "^7.0.2"
167
167
  }
168
168
  }
@@ -1,14 +1,14 @@
1
+ import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys'
1
2
  import { CodeError } from '@libp2p/interfaces/errors'
2
- import { fromString as uint8arraysFromString } from 'uint8arrays/from-string'
3
+ import { peerIdFromKeys } from '@libp2p/peer-id'
4
+ import { unsigned } from 'uint8-varint'
5
+ import { Uint8ArrayList } from 'uint8arraylist'
3
6
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
4
- import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys'
7
+ import { fromString as uint8arraysFromString } from 'uint8arrays/from-string'
5
8
  import { codes } from '../errors.js'
6
9
  import { Envelope as Protobuf } from './envelope.js'
7
- import { peerIdFromKeys } from '@libp2p/peer-id'
8
10
  import type { PeerId } from '@libp2p/interface-peer-id'
9
11
  import type { Record, Envelope } from '@libp2p/interface-record'
10
- import { Uint8ArrayList } from 'uint8arraylist'
11
- import { unsigned } from 'uint8-varint'
12
12
 
13
13
  export interface RecordEnvelopeInit {
14
14
  peerId: PeerId
@@ -130,7 +130,7 @@ export class RecordEnvelope implements Envelope {
130
130
 
131
131
  const key = unmarshalPublicKey(this.peerId.publicKey)
132
132
 
133
- return await key.verify(signData.subarray(), this.signature)
133
+ return key.verify(signData.subarray(), this.signature)
134
134
  }
135
135
  }
136
136
 
@@ -1,13 +1,13 @@
1
- import type { Multiaddr } from '@multiformats/multiaddr'
2
- import type { PeerId } from '@libp2p/interface-peer-id'
3
- import { multiaddr } from '@multiformats/multiaddr'
4
- import { arrayEquals } from '@libp2p/utils/array-equals'
5
1
  import { peerIdFromBytes } from '@libp2p/peer-id'
6
- import { PeerRecord as Protobuf } from './peer-record.js'
2
+ import { arrayEquals } from '@libp2p/utils/array-equals'
3
+ import { multiaddr } from '@multiformats/multiaddr'
7
4
  import {
8
5
  ENVELOPE_DOMAIN_PEER_RECORD,
9
6
  ENVELOPE_PAYLOAD_TYPE_PEER_RECORD
10
7
  } from './consts.js'
8
+ import { PeerRecord as Protobuf } from './peer-record.js'
9
+ import type { PeerId } from '@libp2p/interface-peer-id'
10
+ import type { Multiaddr } from '@multiformats/multiaddr'
11
11
  import type { Uint8ArrayList } from 'uint8arraylist'
12
12
 
13
13
  export interface PeerRecordInit {