libp2p 0.35.8 → 0.36.0

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.
Files changed (107) hide show
  1. package/dist/index.min.js +55 -0
  2. package/dist/src/circuit/auto-relay.d.ts +8 -10
  3. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  4. package/dist/src/config.d.ts +2 -0
  5. package/dist/src/config.d.ts.map +1 -1
  6. package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
  7. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  8. package/dist/src/connection-manager/index.d.ts +1 -2
  9. package/dist/src/connection-manager/index.d.ts.map +1 -1
  10. package/dist/src/content-routing/utils.d.ts +3 -3
  11. package/dist/src/content-routing/utils.d.ts.map +1 -1
  12. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  13. package/dist/src/dialer/index.d.ts +12 -7
  14. package/dist/src/dialer/index.d.ts.map +1 -1
  15. package/dist/src/errors.d.ts +2 -0
  16. package/dist/src/fetch/constants.d.ts +2 -0
  17. package/dist/src/fetch/constants.d.ts.map +1 -0
  18. package/dist/src/fetch/index.d.ts +76 -0
  19. package/dist/src/fetch/index.d.ts.map +1 -0
  20. package/dist/src/fetch/proto.d.ts +134 -0
  21. package/dist/src/identify/index.d.ts +4 -4
  22. package/dist/src/identify/index.d.ts.map +1 -1
  23. package/dist/src/index.d.ts +116 -7
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/metrics/index.d.ts +9 -4
  26. package/dist/src/metrics/index.d.ts.map +1 -1
  27. package/dist/src/metrics/tracked-map.d.ts +6 -1
  28. package/dist/src/metrics/tracked-map.d.ts.map +1 -1
  29. package/dist/src/peer-routing.d.ts +1 -1
  30. package/dist/src/peer-routing.d.ts.map +1 -1
  31. package/dist/src/peer-store/address-book.d.ts +30 -84
  32. package/dist/src/peer-store/address-book.d.ts.map +1 -1
  33. package/dist/src/peer-store/index.d.ts +28 -94
  34. package/dist/src/peer-store/index.d.ts.map +1 -1
  35. package/dist/src/peer-store/key-book.d.ts +31 -15
  36. package/dist/src/peer-store/key-book.d.ts.map +1 -1
  37. package/dist/src/peer-store/metadata-book.d.ts +33 -29
  38. package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
  39. package/dist/src/peer-store/pb/peer.d.ts +222 -0
  40. package/dist/src/peer-store/proto-book.d.ts +27 -28
  41. package/dist/src/peer-store/proto-book.d.ts.map +1 -1
  42. package/dist/src/peer-store/store.d.ts +73 -0
  43. package/dist/src/peer-store/store.d.ts.map +1 -0
  44. package/dist/src/peer-store/types.d.ts +202 -0
  45. package/dist/src/peer-store/types.d.ts.map +1 -0
  46. package/dist/src/ping/index.d.ts.map +1 -1
  47. package/dist/src/record/peer-record/index.d.ts +2 -2
  48. package/dist/src/record/peer-record/index.d.ts.map +1 -1
  49. package/dist/src/registrar.d.ts +5 -5
  50. package/dist/src/registrar.d.ts.map +1 -1
  51. package/dist/src/types.d.ts +90 -0
  52. package/dist/src/types.d.ts.map +1 -0
  53. package/dist/src/upgrader.d.ts +8 -2
  54. package/dist/src/upgrader.d.ts.map +1 -1
  55. package/package.json +23 -26
  56. package/src/circuit/auto-relay.js +52 -38
  57. package/src/config.js +2 -0
  58. package/src/connection-manager/auto-dialler.js +20 -8
  59. package/src/connection-manager/index.js +42 -22
  60. package/src/content-routing/utils.js +4 -4
  61. package/src/dialer/dial-request.js +4 -1
  62. package/src/dialer/index.js +38 -8
  63. package/src/errors.js +2 -0
  64. package/src/fetch/README.md +36 -0
  65. package/src/fetch/constants.js +6 -0
  66. package/src/fetch/index.js +159 -0
  67. package/src/fetch/proto.d.ts +134 -0
  68. package/src/fetch/proto.js +333 -0
  69. package/src/fetch/proto.proto +15 -0
  70. package/src/identify/index.js +47 -38
  71. package/src/index.js +72 -27
  72. package/src/metrics/index.js +15 -8
  73. package/src/metrics/tracked-map.js +40 -14
  74. package/src/peer-routing.js +4 -1
  75. package/src/peer-store/address-book.js +254 -226
  76. package/src/peer-store/index.js +79 -110
  77. package/src/peer-store/key-book.js +99 -54
  78. package/src/peer-store/metadata-book.js +171 -101
  79. package/src/peer-store/pb/peer.d.ts +222 -0
  80. package/src/peer-store/pb/peer.js +643 -0
  81. package/src/peer-store/pb/peer.proto +31 -0
  82. package/src/peer-store/proto-book.js +171 -105
  83. package/src/peer-store/store.js +263 -0
  84. package/src/peer-store/types.ts +245 -0
  85. package/src/ping/index.js +6 -0
  86. package/src/record/peer-record/index.js +1 -1
  87. package/src/record/utils.js +1 -1
  88. package/src/registrar.js +4 -4
  89. package/src/types.ts +98 -0
  90. package/src/upgrader.js +32 -2
  91. package/dist/src/peer-store/book.d.ts +0 -81
  92. package/dist/src/peer-store/book.d.ts.map +0 -1
  93. package/dist/src/peer-store/persistent/consts.d.ts +0 -6
  94. package/dist/src/peer-store/persistent/consts.d.ts.map +0 -1
  95. package/dist/src/peer-store/persistent/index.d.ts +0 -129
  96. package/dist/src/peer-store/persistent/index.d.ts.map +0 -1
  97. package/dist/src/peer-store/persistent/pb/address-book.d.ts +0 -198
  98. package/dist/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
  99. package/src/peer-store/book.js +0 -124
  100. package/src/peer-store/persistent/consts.js +0 -15
  101. package/src/peer-store/persistent/index.js +0 -408
  102. package/src/peer-store/persistent/pb/address-book.d.ts +0 -198
  103. package/src/peer-store/persistent/pb/address-book.js +0 -522
  104. package/src/peer-store/persistent/pb/address-book.proto +0 -27
  105. package/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
  106. package/src/peer-store/persistent/pb/proto-book.js +0 -157
  107. package/src/peer-store/persistent/pb/proto-book.proto +0 -5
@@ -1,408 +0,0 @@
1
- 'use strict'
2
-
3
- const debug = require('debug')
4
- const log = Object.assign(debug('libp2p:persistent-peer-store'), {
5
- error: debug('libp2p:persistent-peer-store:err')
6
- })
7
- const { Key } = require('interface-datastore/key')
8
- const { Multiaddr } = require('multiaddr')
9
- const PeerId = require('peer-id')
10
- const { base32 } = require('multiformats/bases/base32')
11
-
12
- const PeerStore = require('..')
13
-
14
- const {
15
- NAMESPACE_ADDRESS,
16
- NAMESPACE_COMMON,
17
- NAMESPACE_KEYS,
18
- NAMESPACE_METADATA,
19
- NAMESPACE_PROTOCOL
20
- } = require('./consts')
21
-
22
- const { Addresses } = require('./pb/address-book')
23
- const { Protocols } = require('./pb/proto-book')
24
-
25
- /**
26
- * @typedef {import('interface-datastore').Batch} Batch
27
- * @typedef {import('../address-book.js').Address} Address
28
- */
29
-
30
- /**
31
- * @typedef {Object} PersistentPeerStoreProperties
32
- * @property {PeerId} peerId
33
- * @property {import('interface-datastore').Datastore} datastore
34
- *
35
- * @typedef {Object} PersistentPeerStoreOptions
36
- * @property {number} [threshold = 5] - Number of dirty peers allowed before commit data.
37
- */
38
-
39
- /**
40
- * Responsible for managing the persistence of data in the PeerStore.
41
- */
42
- class PersistentPeerStore extends PeerStore {
43
- /**
44
- * @class
45
- * @param {PersistentPeerStoreProperties & PersistentPeerStoreOptions} properties
46
- */
47
- constructor ({ peerId, datastore, threshold = 5 }) {
48
- super({ peerId })
49
-
50
- /**
51
- * Backend datastore used to persist data.
52
- */
53
- this._datastore = datastore
54
-
55
- /**
56
- * Peers modified after the latest data persisted.
57
- */
58
- this._dirtyPeers = new Set()
59
-
60
- /**
61
- * Peers metadata changed mapping peer identifers to metadata changed.
62
- *
63
- * @type {Map<string, Set<string>>}
64
- */
65
- this._dirtyMetadata = new Map()
66
-
67
- this.threshold = threshold
68
- this._addDirtyPeer = this._addDirtyPeer.bind(this)
69
- }
70
-
71
- /**
72
- * Start Persistent PeerStore.
73
- *
74
- * @returns {Promise<void>}
75
- */
76
- async start () {
77
- log('PeerStore is starting')
78
-
79
- // Handlers for dirty peers
80
- this.on('change:protocols', this._addDirtyPeer)
81
- this.on('change:multiaddrs', this._addDirtyPeer)
82
- this.on('change:pubkey', this._addDirtyPeerKey)
83
- this.on('change:metadata', this._addDirtyPeerMetadata)
84
-
85
- // Load data
86
- for await (const entry of this._datastore.query({ prefix: NAMESPACE_COMMON })) {
87
- await this._processDatastoreEntry(entry)
88
- }
89
-
90
- log('PeerStore started')
91
- }
92
-
93
- /**
94
- * Stop Persistent PeerStore.
95
- *
96
- * @returns {Promise<void>}
97
- */
98
- async stop () {
99
- log('PeerStore is stopping')
100
- this.removeAllListeners()
101
- await this._commitData()
102
- log('PeerStore stopped')
103
- }
104
-
105
- /**
106
- * Add modified peer to the dirty set
107
- *
108
- * @private
109
- * @param {Object} params
110
- * @param {PeerId} params.peerId
111
- */
112
- _addDirtyPeer ({ peerId }) {
113
- const peerIdstr = peerId.toB58String()
114
-
115
- log('add dirty peer', peerIdstr)
116
- this._dirtyPeers.add(peerIdstr)
117
-
118
- if (this._dirtyPeers.size >= this.threshold) {
119
- // Commit current data
120
- this._commitData().catch(err => {
121
- log.error('error committing data', err)
122
- })
123
- }
124
- }
125
-
126
- /**
127
- * Add modified peer key to the dirty set
128
- *
129
- * @private
130
- * @param {Object} params
131
- * @param {PeerId} params.peerId
132
- */
133
- _addDirtyPeerKey ({ peerId }) {
134
- // Not add if inline key available
135
- if (peerId.hasInlinePublicKey()) {
136
- return
137
- }
138
-
139
- const peerIdstr = peerId.toB58String()
140
-
141
- log('add dirty peer key', peerIdstr)
142
- this._dirtyPeers.add(peerIdstr)
143
-
144
- if (this._dirtyPeers.size >= this.threshold) {
145
- // Commit current data
146
- this._commitData().catch(err => {
147
- log.error('error committing data', err)
148
- })
149
- }
150
- }
151
-
152
- /**
153
- * Add modified metadata peer to the set.
154
- *
155
- * @private
156
- * @param {Object} params
157
- * @param {PeerId} params.peerId
158
- * @param {string} params.metadata
159
- */
160
- _addDirtyPeerMetadata ({ peerId, metadata }) {
161
- const peerIdstr = peerId.toB58String()
162
-
163
- log('add dirty metadata peer', peerIdstr)
164
- this._dirtyPeers.add(peerIdstr)
165
-
166
- // Add dirty metadata key
167
- const mData = this._dirtyMetadata.get(peerIdstr) || new Set()
168
- mData.add(metadata)
169
- this._dirtyMetadata.set(peerIdstr, mData)
170
-
171
- if (this._dirtyPeers.size >= this.threshold) {
172
- // Commit current data
173
- this._commitData().catch(err => {
174
- log.error('error committing data', err)
175
- })
176
- }
177
- }
178
-
179
- /**
180
- * Add all the peers current data to a datastore batch and commit it.
181
- *
182
- * @private
183
- * @returns {Promise<void>}
184
- */
185
- async _commitData () {
186
- const commitPeers = Array.from(this._dirtyPeers)
187
-
188
- if (!commitPeers.length) {
189
- return
190
- }
191
-
192
- // Clear Dirty Peers set
193
- this._dirtyPeers.clear()
194
-
195
- log('create batch commit')
196
- const batch = this._datastore.batch()
197
- for (const peerIdStr of commitPeers) {
198
- // PeerId
199
- const peerId = this.keyBook.data.get(peerIdStr) || PeerId.createFromB58String(peerIdStr)
200
-
201
- // Address Book
202
- this._batchAddressBook(peerId, batch)
203
-
204
- // Key Book
205
- !peerId.hasInlinePublicKey() && this._batchKeyBook(peerId, batch)
206
-
207
- // Metadata Book
208
- this._batchMetadataBook(peerId, batch)
209
-
210
- // Proto Book
211
- this._batchProtoBook(peerId, batch)
212
- }
213
-
214
- await batch.commit()
215
- log('batch committed')
216
- }
217
-
218
- /**
219
- * Add address book data of the peer to the batch.
220
- *
221
- * @private
222
- * @param {PeerId} peerId
223
- * @param {Batch} batch
224
- */
225
- _batchAddressBook (peerId, batch) {
226
- const b32key = peerId.toString()
227
- const key = new Key(`${NAMESPACE_ADDRESS}${b32key}`)
228
-
229
- const entry = this.addressBook.data.get(peerId.toB58String())
230
-
231
- try {
232
- // Deleted from the book
233
- if (!entry) {
234
- batch.delete(key)
235
- return
236
- }
237
-
238
- const encodedData = Addresses.encode({
239
- addrs: entry.addresses.map((address) => ({
240
- multiaddr: address.multiaddr.bytes,
241
- isCertified: address.isCertified
242
- })),
243
- certifiedRecord: entry.record
244
- ? {
245
- seq: entry.record.seqNumber,
246
- raw: entry.record.raw
247
- }
248
- : undefined
249
- }).finish()
250
-
251
- batch.put(key, encodedData)
252
- } catch (/** @type {any} */ err) {
253
- log.error(err)
254
- }
255
- }
256
-
257
- /**
258
- * Add Key book data of the peer to the batch.
259
- *
260
- * @private
261
- * @param {PeerId} peerId
262
- * @param {Batch} batch
263
- */
264
- _batchKeyBook (peerId, batch) {
265
- const b32key = peerId.toString()
266
- const key = new Key(`${NAMESPACE_KEYS}${b32key}`)
267
-
268
- try {
269
- // Deleted from the book
270
- if (!peerId.pubKey) {
271
- batch.delete(key)
272
- return
273
- }
274
-
275
- const encodedData = peerId.marshalPubKey()
276
-
277
- batch.put(key, encodedData)
278
- } catch (/** @type {any} */ err) {
279
- log.error(err)
280
- }
281
- }
282
-
283
- /**
284
- * Add metadata book data of the peer to the batch.
285
- *
286
- * @private
287
- * @param {PeerId} peerId
288
- * @param {Batch} batch
289
- */
290
- _batchMetadataBook (peerId, batch) {
291
- const b32key = peerId.toString()
292
- const dirtyMetada = this._dirtyMetadata.get(peerId.toB58String()) || []
293
-
294
- try {
295
- dirtyMetada.forEach((/** @type {string} */ dirtyKey) => {
296
- const key = new Key(`${NAMESPACE_METADATA}${b32key}/${dirtyKey}`)
297
- const dirtyValue = this.metadataBook.getValue(peerId, dirtyKey)
298
-
299
- if (dirtyValue) {
300
- batch.put(key, dirtyValue)
301
- } else {
302
- batch.delete(key)
303
- }
304
- })
305
- } catch (/** @type {any} */ err) {
306
- log.error(err)
307
- }
308
- }
309
-
310
- /**
311
- * Add proto book data of the peer to the batch.
312
- *
313
- * @private
314
- * @param {PeerId} peerId
315
- * @param {Batch} batch
316
- */
317
- _batchProtoBook (peerId, batch) {
318
- const b32key = peerId.toString()
319
- const key = new Key(`${NAMESPACE_PROTOCOL}${b32key}`)
320
-
321
- const protocols = this.protoBook.get(peerId)
322
-
323
- try {
324
- // Deleted from the book
325
- if (!protocols) {
326
- batch.delete(key)
327
- return
328
- }
329
-
330
- const encodedData = Protocols.encode({ protocols }).finish()
331
-
332
- batch.put(key, encodedData)
333
- } catch (/** @type {any} */ err) {
334
- log.error(err)
335
- }
336
- }
337
-
338
- /**
339
- * Process datastore entry and add its data to the correct book.
340
- *
341
- * @private
342
- * @param {Object} params
343
- * @param {Key} params.key - datastore key
344
- * @param {Uint8Array} params.value - datastore value stored
345
- * @returns {Promise<void>}
346
- */
347
- async _processDatastoreEntry ({ key, value }) {
348
- try {
349
- const keyParts = key.toString().split('/')
350
- const peerId = PeerId.createFromBytes(base32.decode(keyParts[3]))
351
-
352
- let decoded
353
- switch (keyParts[2]) {
354
- case 'addrs':
355
- decoded = Addresses.decode(value)
356
-
357
- // @ts-ignore protected function
358
- this.addressBook._setData(
359
- peerId,
360
- {
361
- addresses: decoded.addrs.map((address) => ({
362
- multiaddr: new Multiaddr(address.multiaddr),
363
- isCertified: Boolean(address.isCertified)
364
- })),
365
- record: decoded.certifiedRecord
366
- ? {
367
- raw: decoded.certifiedRecord.raw,
368
- seqNumber: decoded.certifiedRecord.seq
369
- }
370
- : undefined
371
- },
372
- { emit: false })
373
- break
374
- case 'keys':
375
- decoded = await PeerId.createFromPubKey(value)
376
-
377
- // @ts-ignore protected function
378
- this.keyBook._setData(
379
- decoded,
380
- decoded,
381
- { emit: false })
382
- break
383
- case 'metadata':
384
- this.metadataBook._setValue(
385
- peerId,
386
- keyParts[4],
387
- value,
388
- { emit: false })
389
- break
390
- case 'protos':
391
- decoded = Protocols.decode(value)
392
-
393
- // @ts-ignore protected function
394
- this.protoBook._setData(
395
- peerId,
396
- new Set(decoded.protocols),
397
- { emit: false })
398
- break
399
- default:
400
- log('invalid data persisted for: ', key.toString())
401
- }
402
- } catch (/** @type {any} */ err) {
403
- log.error(err)
404
- }
405
- }
406
- }
407
-
408
- module.exports = PersistentPeerStore
@@ -1,198 +0,0 @@
1
- import * as $protobuf from "protobufjs";
2
- /** Properties of an Addresses. */
3
- export interface IAddresses {
4
-
5
- /** Addresses addrs */
6
- addrs?: (Addresses.IAddress[]|null);
7
-
8
- /** Addresses certifiedRecord */
9
- certifiedRecord?: (Addresses.ICertifiedRecord|null);
10
- }
11
-
12
- /** Represents an Addresses. */
13
- export class Addresses implements IAddresses {
14
-
15
- /**
16
- * Constructs a new Addresses.
17
- * @param [p] Properties to set
18
- */
19
- constructor(p?: IAddresses);
20
-
21
- /** Addresses addrs. */
22
- public addrs: Addresses.IAddress[];
23
-
24
- /** Addresses certifiedRecord. */
25
- public certifiedRecord?: (Addresses.ICertifiedRecord|null);
26
-
27
- /**
28
- * Encodes the specified Addresses message. Does not implicitly {@link Addresses.verify|verify} messages.
29
- * @param m Addresses message or plain object to encode
30
- * @param [w] Writer to encode to
31
- * @returns Writer
32
- */
33
- public static encode(m: IAddresses, w?: $protobuf.Writer): $protobuf.Writer;
34
-
35
- /**
36
- * Decodes an Addresses message from the specified reader or buffer.
37
- * @param r Reader or buffer to decode from
38
- * @param [l] Message length if known beforehand
39
- * @returns Addresses
40
- * @throws {Error} If the payload is not a reader or valid buffer
41
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
42
- */
43
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses;
44
-
45
- /**
46
- * Creates an Addresses message from a plain object. Also converts values to their respective internal types.
47
- * @param d Plain object
48
- * @returns Addresses
49
- */
50
- public static fromObject(d: { [k: string]: any }): Addresses;
51
-
52
- /**
53
- * Creates a plain object from an Addresses message. Also converts values to other types if specified.
54
- * @param m Addresses
55
- * @param [o] Conversion options
56
- * @returns Plain object
57
- */
58
- public static toObject(m: Addresses, o?: $protobuf.IConversionOptions): { [k: string]: any };
59
-
60
- /**
61
- * Converts this Addresses to JSON.
62
- * @returns JSON object
63
- */
64
- public toJSON(): { [k: string]: any };
65
- }
66
-
67
- export namespace Addresses {
68
-
69
- /** Properties of an Address. */
70
- interface IAddress {
71
-
72
- /** Address multiaddr */
73
- multiaddr?: (Uint8Array|null);
74
-
75
- /** Address isCertified */
76
- isCertified?: (boolean|null);
77
- }
78
-
79
- /** Represents an Address. */
80
- class Address implements IAddress {
81
-
82
- /**
83
- * Constructs a new Address.
84
- * @param [p] Properties to set
85
- */
86
- constructor(p?: Addresses.IAddress);
87
-
88
- /** Address multiaddr. */
89
- public multiaddr: Uint8Array;
90
-
91
- /** Address isCertified. */
92
- public isCertified: boolean;
93
-
94
- /**
95
- * Encodes the specified Address message. Does not implicitly {@link Addresses.Address.verify|verify} messages.
96
- * @param m Address message or plain object to encode
97
- * @param [w] Writer to encode to
98
- * @returns Writer
99
- */
100
- public static encode(m: Addresses.IAddress, w?: $protobuf.Writer): $protobuf.Writer;
101
-
102
- /**
103
- * Decodes an Address message from the specified reader or buffer.
104
- * @param r Reader or buffer to decode from
105
- * @param [l] Message length if known beforehand
106
- * @returns Address
107
- * @throws {Error} If the payload is not a reader or valid buffer
108
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
109
- */
110
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.Address;
111
-
112
- /**
113
- * Creates an Address message from a plain object. Also converts values to their respective internal types.
114
- * @param d Plain object
115
- * @returns Address
116
- */
117
- public static fromObject(d: { [k: string]: any }): Addresses.Address;
118
-
119
- /**
120
- * Creates a plain object from an Address message. Also converts values to other types if specified.
121
- * @param m Address
122
- * @param [o] Conversion options
123
- * @returns Plain object
124
- */
125
- public static toObject(m: Addresses.Address, o?: $protobuf.IConversionOptions): { [k: string]: any };
126
-
127
- /**
128
- * Converts this Address to JSON.
129
- * @returns JSON object
130
- */
131
- public toJSON(): { [k: string]: any };
132
- }
133
-
134
- /** Properties of a CertifiedRecord. */
135
- interface ICertifiedRecord {
136
-
137
- /** CertifiedRecord seq */
138
- seq?: (number|null);
139
-
140
- /** CertifiedRecord raw */
141
- raw?: (Uint8Array|null);
142
- }
143
-
144
- /** Represents a CertifiedRecord. */
145
- class CertifiedRecord implements ICertifiedRecord {
146
-
147
- /**
148
- * Constructs a new CertifiedRecord.
149
- * @param [p] Properties to set
150
- */
151
- constructor(p?: Addresses.ICertifiedRecord);
152
-
153
- /** CertifiedRecord seq. */
154
- public seq: number;
155
-
156
- /** CertifiedRecord raw. */
157
- public raw: Uint8Array;
158
-
159
- /**
160
- * Encodes the specified CertifiedRecord message. Does not implicitly {@link Addresses.CertifiedRecord.verify|verify} messages.
161
- * @param m CertifiedRecord message or plain object to encode
162
- * @param [w] Writer to encode to
163
- * @returns Writer
164
- */
165
- public static encode(m: Addresses.ICertifiedRecord, w?: $protobuf.Writer): $protobuf.Writer;
166
-
167
- /**
168
- * Decodes a CertifiedRecord message from the specified reader or buffer.
169
- * @param r Reader or buffer to decode from
170
- * @param [l] Message length if known beforehand
171
- * @returns CertifiedRecord
172
- * @throws {Error} If the payload is not a reader or valid buffer
173
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
174
- */
175
- public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.CertifiedRecord;
176
-
177
- /**
178
- * Creates a CertifiedRecord message from a plain object. Also converts values to their respective internal types.
179
- * @param d Plain object
180
- * @returns CertifiedRecord
181
- */
182
- public static fromObject(d: { [k: string]: any }): Addresses.CertifiedRecord;
183
-
184
- /**
185
- * Creates a plain object from a CertifiedRecord message. Also converts values to other types if specified.
186
- * @param m CertifiedRecord
187
- * @param [o] Conversion options
188
- * @returns Plain object
189
- */
190
- public static toObject(m: Addresses.CertifiedRecord, o?: $protobuf.IConversionOptions): { [k: string]: any };
191
-
192
- /**
193
- * Converts this CertifiedRecord to JSON.
194
- * @returns JSON object
195
- */
196
- public toJSON(): { [k: string]: any };
197
- }
198
- }