@libp2p/peer-store 1.0.7 → 1.0.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/pb/peer.d.ts +25 -216
- package/dist/src/pb/peer.d.ts.map +1 -0
- package/dist/src/pb/peer.js +52 -641
- package/dist/src/pb/peer.js.map +1 -0
- package/dist/src/store.d.ts.map +1 -1
- package/dist/src/store.js +15 -6
- package/dist/src/store.js.map +1 -1
- package/package.json +15 -17
- package/src/pb/peer.ts +76 -0
- package/src/store.ts +19 -7
- package/src/pb/peer.d.ts +0 -222
- package/src/pb/peer.js +0 -641
package/dist/src/store.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
@@ -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
|
-
|
|
47
|
-
|
|
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
|
|
89
|
+
metadata,
|
|
81
90
|
peerRecordEnvelope: peer.peerRecordEnvelope
|
|
82
|
-
})
|
|
91
|
+
});
|
|
83
92
|
await this.datastore.put(this._peerIdToDatastoreKey(peer.id), buf);
|
|
84
93
|
return await this.load(peer.id);
|
|
85
94
|
}
|
package/dist/src/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,
|
|
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.
|
|
3
|
+
"version": "1.0.8",
|
|
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
|
|
128
|
-
"build": "
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"test": "aegir test -
|
|
135
|
-
"test:
|
|
136
|
-
"
|
|
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
|
-
"
|
|
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": "^
|
|
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
|
}
|
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'
|
|
@@ -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
|
-
|
|
80
|
-
|
|
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
|
|
129
|
+
metadata,
|
|
118
130
|
peerRecordEnvelope: peer.peerRecordEnvelope
|
|
119
|
-
})
|
|
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
|
-
}
|