@libp2p/peer-store 1.0.6 → 1.0.9

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 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAM7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,GAAG,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IAE9B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;KACrC,CAAA;CACF;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAC9B,IAAI,EAAE,GAAG,CAAA;gBAEH,SAAS,EAAE,SAAS;IAQjC,qBAAqB,CAAE,MAAM,EAAE,MAAM;IAU/B,GAAG,CAAE,MAAM,EAAE,MAAM;IAInB,MAAM,CAAE,MAAM,EAAE,MAAM;IAItB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBpC,IAAI,CAAE,IAAI,EAAE,IAAI;IAsChB,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAQvD,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAiBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAuCrD,GAAG;CAWZ"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAM7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,GAAG,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IAE9B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;KACrC,CAAA;CACF;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAC9B,IAAI,EAAE,GAAG,CAAA;gBAEH,SAAS,EAAE,SAAS;IAQjC,qBAAqB,CAAE,MAAM,EAAE,MAAM;IAU/B,GAAG,CAAE,MAAM,EAAE,MAAM;IAInB,MAAM,CAAE,MAAM,EAAE,MAAM;IAItB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpC,IAAI,CAAE,IAAI,EAAE,IAAI;IAgDhB,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAQvD,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAiBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAuCrD,GAAG;CAWZ"}
package/dist/src/store.js CHANGED
@@ -23,7 +23,7 @@ export class PersistentStore {
23
23
  log.error('peerId must be an instance of peer-id to store data');
24
24
  throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS);
25
25
  }
26
- const b32key = base32.encode(peerId.toBytes());
26
+ const b32key = peerId.toCID().toString();
27
27
  return new Key(`${NAMESPACE_COMMON}${b32key}`);
28
28
  }
29
29
  async has(peerId) {
@@ -42,10 +42,12 @@ export class PersistentStore {
42
42
  return {
43
43
  ...peer,
44
44
  id: peerId,
45
- addresses: peer.addresses.map(({ multiaddr, isCertified }) => ({
46
- multiaddr: new Multiaddr(multiaddr),
47
- isCertified: isCertified ?? false
48
- })),
45
+ addresses: peer.addresses.map(({ multiaddr, isCertified }) => {
46
+ return {
47
+ multiaddr: new Multiaddr(multiaddr),
48
+ isCertified: isCertified ?? false
49
+ };
50
+ }),
49
51
  metadata,
50
52
  pubKey: peer.pubKey ?? undefined,
51
53
  peerRecordEnvelope: peer.peerRecordEnvelope ?? undefined
@@ -73,13 +75,20 @@ export class PersistentStore {
73
75
  multiaddr: multiaddr.bytes,
74
76
  isCertified
75
77
  }));
78
+ const metadata = [];
79
+ [...peer.metadata.keys()].sort().forEach(key => {
80
+ const value = peer.metadata.get(key);
81
+ if (value != null) {
82
+ metadata.push({ key, value });
83
+ }
84
+ });
76
85
  const buf = PeerPB.encode({
77
86
  addresses,
78
87
  protocols: peer.protocols.sort(),
79
88
  pubKey: peer.pubKey,
80
- metadata: [...peer.metadata.keys()].sort().map(key => ({ key, value: peer.metadata.get(key) })),
89
+ metadata,
81
90
  peerRecordEnvelope: peer.peerRecordEnvelope
82
- }).finish();
91
+ });
83
92
  await this.datastore.put(this._peerIdToDatastoreKey(peer.id), buf);
84
93
  return await this.load(peer.id);
85
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-store",
3
- "version": "1.0.6",
3
+ "version": "1.0.9",
4
4
  "description": "Stores information about peers libp2p knows on the network",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-peer-store#readme",
@@ -123,21 +123,18 @@
123
123
  ]
124
124
  },
125
125
  "scripts": {
126
+ "clean": "aegir clean",
126
127
  "lint": "aegir lint",
127
- "dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
128
- "build": "tsc && npm run build:copy-proto-files",
129
- "generate": "npm run generate:proto && npm run generate:proto-types && tsc",
130
- "generate:proto": "pbjs -t static-module -w es6 -r libp2p-peer-store --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/pb/peer.js ./src/pb/peer.proto",
131
- "generate:proto-types": "pbts -o src/pb/peer.d.ts src/pb/peer.js",
132
- "build:copy-proto-files": "mkdirp dist/src/pb && cp src/pb/*.js dist/src/pb && cp src/pb/*.d.ts dist/src/pb",
133
- "pretest": "npm run build",
134
- "test": "aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js",
135
- "test:chrome": "npm run test -- -t browser",
136
- "test:chrome-webworker": "npm run test -- -t webworker",
137
- "test:firefox": "npm run test -- -t browser -- --browser firefox",
138
- "test:firefox-webworker": "npm run test -- -t webworker -- --browser firefox",
139
- "test:node": "npm run test -- -t node --cov",
140
- "test:electron-main": "npm run test -- -t electron-main"
128
+ "dep-check": "aegir dep-check",
129
+ "build": "aegir build",
130
+ "test": "aegir test",
131
+ "test:chrome": "aegir test -t browser --cov",
132
+ "test:chrome-webworker": "aegir test -t webworker",
133
+ "test:firefox": "aegir test -t browser -- --browser firefox",
134
+ "test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
135
+ "test:node": "aegir test -t node --cov",
136
+ "test:electron-main": "aegir test -t electron-main",
137
+ "release": "aegir release"
141
138
  },
142
139
  "dependencies": {
143
140
  "@libp2p/interfaces": "^1.3.0",
@@ -152,18 +149,19 @@
152
149
  "it-pipe": "^2.0.3",
153
150
  "mortice": "^3.0.0",
154
151
  "multiformats": "^9.6.3",
155
- "protobufjs": "^6.11.2"
152
+ "protons-runtime": "^1.0.2"
156
153
  },
157
154
  "devDependencies": {
158
155
  "@libp2p/interface-compliance-tests": "^1.1.0",
159
156
  "@libp2p/peer-id": "^1.1.0",
160
157
  "@libp2p/peer-id-factory": "^1.0.0",
161
158
  "@libp2p/utils": "^1.0.9",
162
- "aegir": "^36.1.3",
159
+ "aegir": "^37.0.7",
163
160
  "datastore-core": "^7.0.1",
164
161
  "err-code": "^3.0.1",
165
162
  "p-defer": "^4.0.0",
166
163
  "p-wait-for": "^4.1.0",
164
+ "protons": "^3.0.2",
167
165
  "sinon": "^13.0.1",
168
166
  "uint8arrays": "^3.0.0"
169
167
  }
@@ -14,7 +14,7 @@ import type { AddressFilter, Peer, PeerMultiaddrsChangeData, PeerStore } from '@
14
14
  import type { Store } from './store.js'
15
15
  import type { Envelope } from '@libp2p/interfaces/record'
16
16
  import type { PeerId } from '@libp2p/interfaces/peer-id'
17
- import type { PeerData } from '@libp2p/interfaces/peer-data'
17
+ import type { PeerInfo } from '@libp2p/interfaces/peer-info'
18
18
 
19
19
  const log = logger('libp2p:peer-store:address-book')
20
20
  const EVENT_NAME = 'change:multiaddrs'
@@ -228,7 +228,7 @@ export class PeerStoreAddressBook {
228
228
 
229
229
  // Notify the existence of a new peer
230
230
  if (!hasPeer) {
231
- this.dispatchEvent(new CustomEvent<PeerData>('peer', {
231
+ this.dispatchEvent(new CustomEvent<PeerInfo>('peer', {
232
232
  detail: {
233
233
  id: peerId,
234
234
  multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr),
@@ -296,7 +296,7 @@ export class PeerStoreAddressBook {
296
296
 
297
297
  // Notify the existence of a new peer
298
298
  if (hasPeer === true) {
299
- this.dispatchEvent(new CustomEvent<PeerData>('peer', {
299
+ this.dispatchEvent(new CustomEvent<PeerInfo>('peer', {
300
300
  detail: {
301
301
  id: peerId,
302
302
  multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr),
package/src/pb/peer.ts ADDED
@@ -0,0 +1,76 @@
1
+ /* eslint-disable import/export */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+
4
+ import { encodeMessage, decodeMessage, message, string, bytes, bool } from 'protons-runtime'
5
+
6
+ export interface Peer {
7
+ addresses: Address[]
8
+ protocols: string[]
9
+ metadata: Metadata[]
10
+ pubKey?: Uint8Array
11
+ peerRecordEnvelope?: Uint8Array
12
+ }
13
+
14
+ export namespace Peer {
15
+ export const codec = () => {
16
+ return message<Peer>({
17
+ 1: { name: 'addresses', codec: Address.codec(), repeats: true },
18
+ 2: { name: 'protocols', codec: string, repeats: true },
19
+ 3: { name: 'metadata', codec: Metadata.codec(), repeats: true },
20
+ 4: { name: 'pubKey', codec: bytes, optional: true },
21
+ 5: { name: 'peerRecordEnvelope', codec: bytes, optional: true }
22
+ })
23
+ }
24
+
25
+ export const encode = (obj: Peer): Uint8Array => {
26
+ return encodeMessage(obj, Peer.codec())
27
+ }
28
+
29
+ export const decode = (buf: Uint8Array): Peer => {
30
+ return decodeMessage(buf, Peer.codec())
31
+ }
32
+ }
33
+
34
+ export interface Address {
35
+ multiaddr: Uint8Array
36
+ isCertified?: boolean
37
+ }
38
+
39
+ export namespace Address {
40
+ export const codec = () => {
41
+ return message<Address>({
42
+ 1: { name: 'multiaddr', codec: bytes },
43
+ 2: { name: 'isCertified', codec: bool, optional: true }
44
+ })
45
+ }
46
+
47
+ export const encode = (obj: Address): Uint8Array => {
48
+ return encodeMessage(obj, Address.codec())
49
+ }
50
+
51
+ export const decode = (buf: Uint8Array): Address => {
52
+ return decodeMessage(buf, Address.codec())
53
+ }
54
+ }
55
+
56
+ export interface Metadata {
57
+ key: string
58
+ value: Uint8Array
59
+ }
60
+
61
+ export namespace Metadata {
62
+ export const codec = () => {
63
+ return message<Metadata>({
64
+ 1: { name: 'key', codec: string },
65
+ 2: { name: 'value', codec: bytes }
66
+ })
67
+ }
68
+
69
+ export const encode = (obj: Metadata): Uint8Array => {
70
+ return encodeMessage(obj, Metadata.codec())
71
+ }
72
+
73
+ export const decode = (buf: Uint8Array): Metadata => {
74
+ return decodeMessage(buf, Metadata.codec())
75
+ }
76
+ }
package/src/store.ts CHANGED
@@ -5,7 +5,7 @@ import { codes } from './errors.js'
5
5
  import { Key } from 'interface-datastore/key'
6
6
  import { base32 } from 'multiformats/bases/base32'
7
7
  import { Multiaddr } from '@multiformats/multiaddr'
8
- import { Peer as PeerPB } from './pb/peer.js'
8
+ import { Metadata, Peer as PeerPB } from './pb/peer.js'
9
9
  import mortice from 'mortice'
10
10
  import { equals as uint8arrayEquals } from 'uint8arrays/equals'
11
11
  import type { Peer } from '@libp2p/interfaces/peer-store'
@@ -51,7 +51,7 @@ export class PersistentStore {
51
51
  throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
52
52
  }
53
53
 
54
- const b32key = base32.encode(peerId.toBytes())
54
+ const b32key = peerId.toCID().toString()
55
55
  return new Key(`${NAMESPACE_COMMON}${b32key}`)
56
56
  }
57
57
 
@@ -75,10 +75,12 @@ export class PersistentStore {
75
75
  return {
76
76
  ...peer,
77
77
  id: peerId,
78
- addresses: peer.addresses.map(({ multiaddr, isCertified }) => ({
79
- multiaddr: new Multiaddr(multiaddr),
80
- isCertified: isCertified ?? false
81
- })),
78
+ addresses: peer.addresses.map(({ multiaddr, isCertified }) => {
79
+ return {
80
+ multiaddr: new Multiaddr(multiaddr),
81
+ isCertified: isCertified ?? false
82
+ }
83
+ }),
82
84
  metadata,
83
85
  pubKey: peer.pubKey ?? undefined,
84
86
  peerRecordEnvelope: peer.peerRecordEnvelope ?? undefined
@@ -110,13 +112,23 @@ export class PersistentStore {
110
112
  isCertified
111
113
  }))
112
114
 
115
+ const metadata: Metadata[] = []
116
+
117
+ ;[...peer.metadata.keys()].sort().forEach(key => {
118
+ const value = peer.metadata.get(key)
119
+
120
+ if (value != null) {
121
+ metadata.push({ key, value })
122
+ }
123
+ })
124
+
113
125
  const buf = PeerPB.encode({
114
126
  addresses,
115
127
  protocols: peer.protocols.sort(),
116
128
  pubKey: peer.pubKey,
117
- metadata: [...peer.metadata.keys()].sort().map(key => ({ key, value: peer.metadata.get(key) })),
129
+ metadata,
118
130
  peerRecordEnvelope: peer.peerRecordEnvelope
119
- }).finish()
131
+ })
120
132
 
121
133
  await this.datastore.put(this._peerIdToDatastoreKey(peer.id), buf)
122
134
 
package/src/pb/peer.d.ts DELETED
@@ -1,222 +0,0 @@
1
- import * as $protobuf from "protobufjs";
2
- /** Properties of a Peer. */
3
- export interface IPeer {
4
-
5
- /** Peer addresses */
6
- addresses?: (IAddress[]|null);
7
-
8
- /** Peer protocols */
9
- protocols?: (string[]|null);
10
-
11
- /** Peer metadata */
12
- metadata?: (IMetadata[]|null);
13
-
14
- /** Peer pubKey */
15
- pubKey?: (Uint8Array|null);
16
-
17
- /** Peer peerRecordEnvelope */
18
- peerRecordEnvelope?: (Uint8Array|null);
19
- }
20
-
21
- /** Represents a Peer. */
22
- export class Peer implements IPeer {
23
-
24
- /**
25
- * Constructs a new Peer.
26
- * @param [p] Properties to set
27
- */
28
- constructor(p?: IPeer);
29
-
30
- /** Peer addresses. */
31
- public addresses: IAddress[];
32
-
33
- /** Peer protocols. */
34
- public protocols: string[];
35
-
36
- /** Peer metadata. */
37
- public metadata: IMetadata[];
38
-
39
- /** Peer pubKey. */
40
- public pubKey?: (Uint8Array|null);
41
-
42
- /** Peer peerRecordEnvelope. */
43
- public peerRecordEnvelope?: (Uint8Array|null);
44
-
45
- /** Peer _pubKey. */
46
- public _pubKey?: "pubKey";
47
-
48
- /** Peer _peerRecordEnvelope. */
49
- public _peerRecordEnvelope?: "peerRecordEnvelope";
50
-
51
- /**
52
- * Encodes the specified Peer message. Does not implicitly {@link Peer.verify|verify} messages.
53
- * @param m Peer message or plain object to encode
54
- * @param [w] Writer to encode to
55
- * @returns Writer
56
- */
57
- public static encode(m: IPeer, w?: $protobuf.Writer): $protobuf.Writer;
58
-
59
- /**
60
- * Decodes a Peer message from the specified reader or buffer.
61
- * @param r Reader or buffer to decode from
62
- * @param [l] Message length if known beforehand
63
- * @returns Peer
64
- * @throws {Error} If the payload is not a reader or valid buffer
65
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
66
- */
67
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Peer;
68
-
69
- /**
70
- * Creates a Peer message from a plain object. Also converts values to their respective internal types.
71
- * @param d Plain object
72
- * @returns Peer
73
- */
74
- public static fromObject(d: { [k: string]: any }): Peer;
75
-
76
- /**
77
- * Creates a plain object from a Peer message. Also converts values to other types if specified.
78
- * @param m Peer
79
- * @param [o] Conversion options
80
- * @returns Plain object
81
- */
82
- public static toObject(m: Peer, o?: $protobuf.IConversionOptions): { [k: string]: any };
83
-
84
- /**
85
- * Converts this Peer to JSON.
86
- * @returns JSON object
87
- */
88
- public toJSON(): { [k: string]: any };
89
- }
90
-
91
- /** Properties of an Address. */
92
- export interface IAddress {
93
-
94
- /** Address multiaddr */
95
- multiaddr?: (Uint8Array|null);
96
-
97
- /** Address isCertified */
98
- isCertified?: (boolean|null);
99
- }
100
-
101
- /** Represents an Address. */
102
- export class Address implements IAddress {
103
-
104
- /**
105
- * Constructs a new Address.
106
- * @param [p] Properties to set
107
- */
108
- constructor(p?: IAddress);
109
-
110
- /** Address multiaddr. */
111
- public multiaddr: Uint8Array;
112
-
113
- /** Address isCertified. */
114
- public isCertified?: (boolean|null);
115
-
116
- /** Address _isCertified. */
117
- public _isCertified?: "isCertified";
118
-
119
- /**
120
- * Encodes the specified Address message. Does not implicitly {@link Address.verify|verify} messages.
121
- * @param m Address message or plain object to encode
122
- * @param [w] Writer to encode to
123
- * @returns Writer
124
- */
125
- public static encode(m: IAddress, w?: $protobuf.Writer): $protobuf.Writer;
126
-
127
- /**
128
- * Decodes an Address message from the specified reader or buffer.
129
- * @param r Reader or buffer to decode from
130
- * @param [l] Message length if known beforehand
131
- * @returns Address
132
- * @throws {Error} If the payload is not a reader or valid buffer
133
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
134
- */
135
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Address;
136
-
137
- /**
138
- * Creates an Address message from a plain object. Also converts values to their respective internal types.
139
- * @param d Plain object
140
- * @returns Address
141
- */
142
- public static fromObject(d: { [k: string]: any }): Address;
143
-
144
- /**
145
- * Creates a plain object from an Address message. Also converts values to other types if specified.
146
- * @param m Address
147
- * @param [o] Conversion options
148
- * @returns Plain object
149
- */
150
- public static toObject(m: Address, o?: $protobuf.IConversionOptions): { [k: string]: any };
151
-
152
- /**
153
- * Converts this Address to JSON.
154
- * @returns JSON object
155
- */
156
- public toJSON(): { [k: string]: any };
157
- }
158
-
159
- /** Properties of a Metadata. */
160
- export interface IMetadata {
161
-
162
- /** Metadata key */
163
- key?: (string|null);
164
-
165
- /** Metadata value */
166
- value?: (Uint8Array|null);
167
- }
168
-
169
- /** Represents a Metadata. */
170
- export class Metadata implements IMetadata {
171
-
172
- /**
173
- * Constructs a new Metadata.
174
- * @param [p] Properties to set
175
- */
176
- constructor(p?: IMetadata);
177
-
178
- /** Metadata key. */
179
- public key: string;
180
-
181
- /** Metadata value. */
182
- public value: Uint8Array;
183
-
184
- /**
185
- * Encodes the specified Metadata message. Does not implicitly {@link Metadata.verify|verify} messages.
186
- * @param m Metadata message or plain object to encode
187
- * @param [w] Writer to encode to
188
- * @returns Writer
189
- */
190
- public static encode(m: IMetadata, w?: $protobuf.Writer): $protobuf.Writer;
191
-
192
- /**
193
- * Decodes a Metadata message from the specified reader or buffer.
194
- * @param r Reader or buffer to decode from
195
- * @param [l] Message length if known beforehand
196
- * @returns Metadata
197
- * @throws {Error} If the payload is not a reader or valid buffer
198
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
199
- */
200
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Metadata;
201
-
202
- /**
203
- * Creates a Metadata message from a plain object. Also converts values to their respective internal types.
204
- * @param d Plain object
205
- * @returns Metadata
206
- */
207
- public static fromObject(d: { [k: string]: any }): Metadata;
208
-
209
- /**
210
- * Creates a plain object from a Metadata message. Also converts values to other types if specified.
211
- * @param m Metadata
212
- * @param [o] Conversion options
213
- * @returns Plain object
214
- */
215
- public static toObject(m: Metadata, o?: $protobuf.IConversionOptions): { [k: string]: any };
216
-
217
- /**
218
- * Converts this Metadata to JSON.
219
- * @returns JSON object
220
- */
221
- public toJSON(): { [k: string]: any };
222
- }