Skip to content
This repository was archived by the owner on Jul 21, 2023. It is now read-only.

Commit 7d058d6

Browse files
authored
fix: update deps to new versions (#363)
1 parent 759e505 commit 7d058d6

File tree

12 files changed

+278
-50
lines changed

12 files changed

+278
-50
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
"@libp2p/components": "^2.0.0",
141141
"@libp2p/crypto": "^1.0.0",
142142
"@libp2p/interface-address-manager": "^1.0.1",
143-
"@libp2p/interface-connection": "^2.0.0",
143+
"@libp2p/interface-connection": "^3.0.1",
144144
"@libp2p/interface-connection-manager": "^1.0.0",
145145
"@libp2p/interface-dht": "^1.0.0",
146146
"@libp2p/interface-peer-discovery": "^1.0.0",
@@ -176,14 +176,14 @@
176176
"p-defer": "^4.0.0",
177177
"p-queue": "^7.2.0",
178178
"private-ip": "^2.3.3",
179-
"protons-runtime": "^2.0.2",
179+
"protons-runtime": "^3.0.1",
180180
"timeout-abort-controller": "^3.0.0",
181181
"uint8arraylist": "^2.0.0",
182182
"uint8arrays": "^3.0.0",
183183
"varint": "^6.0.0"
184184
},
185185
"devDependencies": {
186-
"@libp2p/interface-mocks": "^3.0.1",
186+
"@libp2p/interface-mocks": "^4.0.1",
187187
"@libp2p/peer-id-factory": "^1.0.9",
188188
"@libp2p/peer-store": "^3.0.0",
189189
"@types/lodash.random": "^3.2.6",
@@ -200,7 +200,7 @@
200200
"lodash.random": "^3.2.0",
201201
"lodash.range": "^3.2.0",
202202
"p-retry": "^5.0.0",
203-
"protons": "^4.0.1",
203+
"protons": "^5.0.0",
204204
"sinon": "^14.0.0",
205205
"ts-sinon": "^2.0.2",
206206
"which": "^2.0.2"

src/content-fetching/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export class ContentFetching implements Initializable {
106106
try {
107107
const dsKey = bufferToRecordKey(key)
108108
this.log(`Storing corrected record for key ${dsKey.toString()}`)
109-
await this.components.getDatastore().put(dsKey, fixupRec)
109+
await this.components.getDatastore().put(dsKey, fixupRec.subarray())
110110
} catch (err: any) {
111111
this.log.error('Failed error correcting self', err)
112112
}
@@ -147,7 +147,7 @@ export class ContentFetching implements Initializable {
147147
// store the record locally
148148
const dsKey = bufferToRecordKey(key)
149149
this.log(`storing record for key ${dsKey.toString()}`)
150-
await this.components.getDatastore().put(dsKey, record)
150+
await this.components.getDatastore().put(dsKey, record.subarray())
151151

152152
// put record to the closest peers
153153
yield * pipe(

src/message/dht.ts

Lines changed: 244 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* eslint-disable import/export */
22
/* eslint-disable @typescript-eslint/no-namespace */
33

4-
import { encodeMessage, decodeMessage, message, bytes, string, enumeration, int32 } from 'protons-runtime'
5-
import type { Codec } from 'protons-runtime'
4+
import { encodeMessage, decodeMessage, message, enumeration } from 'protons-runtime'
65
import type { Uint8ArrayList } from 'uint8arraylist'
6+
import type { Codec } from 'protons-runtime'
77

88
export interface Record {
99
key?: Uint8Array
@@ -14,17 +14,81 @@ export interface Record {
1414
}
1515

1616
export namespace Record {
17+
let _codec: Codec<Record>
18+
1719
export const codec = (): Codec<Record> => {
18-
return message<Record>({
19-
1: { name: 'key', codec: bytes, optional: true },
20-
2: { name: 'value', codec: bytes, optional: true },
21-
3: { name: 'author', codec: bytes, optional: true },
22-
4: { name: 'signature', codec: bytes, optional: true },
23-
5: { name: 'timeReceived', codec: string, optional: true }
24-
})
20+
if (_codec == null) {
21+
_codec = message<Record>((obj, writer, opts = {}) => {
22+
if (opts.lengthDelimited !== false) {
23+
writer.fork()
24+
}
25+
26+
if (obj.key != null) {
27+
writer.uint32(10)
28+
writer.bytes(obj.key)
29+
}
30+
31+
if (obj.value != null) {
32+
writer.uint32(18)
33+
writer.bytes(obj.value)
34+
}
35+
36+
if (obj.author != null) {
37+
writer.uint32(26)
38+
writer.bytes(obj.author)
39+
}
40+
41+
if (obj.signature != null) {
42+
writer.uint32(34)
43+
writer.bytes(obj.signature)
44+
}
45+
46+
if (obj.timeReceived != null) {
47+
writer.uint32(42)
48+
writer.string(obj.timeReceived)
49+
}
50+
51+
if (opts.lengthDelimited !== false) {
52+
writer.ldelim()
53+
}
54+
}, (reader, length) => {
55+
const obj: any = {}
56+
57+
const end = length == null ? reader.len : reader.pos + length
58+
59+
while (reader.pos < end) {
60+
const tag = reader.uint32()
61+
62+
switch (tag >>> 3) {
63+
case 1:
64+
obj.key = reader.bytes()
65+
break
66+
case 2:
67+
obj.value = reader.bytes()
68+
break
69+
case 3:
70+
obj.author = reader.bytes()
71+
break
72+
case 4:
73+
obj.signature = reader.bytes()
74+
break
75+
case 5:
76+
obj.timeReceived = reader.string()
77+
break
78+
default:
79+
reader.skipType(tag & 7)
80+
break
81+
}
82+
}
83+
84+
return obj
85+
})
86+
}
87+
88+
return _codec
2589
}
2690

27-
export const encode = (obj: Record): Uint8ArrayList => {
91+
export const encode = (obj: Record): Uint8Array => {
2892
return encodeMessage(obj, Record.codec())
2993
}
3094

@@ -63,7 +127,7 @@ export namespace Message {
63127

64128
export namespace MessageType {
65129
export const codec = () => {
66-
return enumeration<typeof MessageType>(__MessageTypeValues)
130+
return enumeration<MessageType>(__MessageTypeValues)
67131
}
68132
}
69133

@@ -83,7 +147,7 @@ export namespace Message {
83147

84148
export namespace ConnectionType {
85149
export const codec = () => {
86-
return enumeration<typeof ConnectionType>(__ConnectionTypeValues)
150+
return enumeration<ConnectionType>(__ConnectionTypeValues)
87151
}
88152
}
89153

@@ -94,15 +158,76 @@ export namespace Message {
94158
}
95159

96160
export namespace Peer {
161+
let _codec: Codec<Peer>
162+
97163
export const codec = (): Codec<Peer> => {
98-
return message<Peer>({
99-
1: { name: 'id', codec: bytes, optional: true },
100-
2: { name: 'addrs', codec: bytes, repeats: true },
101-
3: { name: 'connection', codec: Message.ConnectionType.codec(), optional: true }
102-
})
164+
if (_codec == null) {
165+
_codec = message<Peer>((obj, writer, opts = {}) => {
166+
if (opts.lengthDelimited !== false) {
167+
writer.fork()
168+
}
169+
170+
if (obj.id != null) {
171+
writer.uint32(10)
172+
writer.bytes(obj.id)
173+
}
174+
175+
if (obj.addrs != null) {
176+
for (const value of obj.addrs) {
177+
writer.uint32(18)
178+
writer.bytes(value)
179+
}
180+
} else {
181+
throw new Error('Protocol error: required field "addrs" was not found in object')
182+
}
183+
184+
if (obj.connection != null) {
185+
writer.uint32(24)
186+
Message.ConnectionType.codec().encode(obj.connection, writer)
187+
}
188+
189+
if (opts.lengthDelimited !== false) {
190+
writer.ldelim()
191+
}
192+
}, (reader, length) => {
193+
const obj: any = {}
194+
195+
const end = length == null ? reader.len : reader.pos + length
196+
197+
while (reader.pos < end) {
198+
const tag = reader.uint32()
199+
200+
switch (tag >>> 3) {
201+
case 1:
202+
obj.id = reader.bytes()
203+
break
204+
case 2:
205+
obj.addrs = obj.addrs ?? []
206+
obj.addrs.push(reader.bytes())
207+
break
208+
case 3:
209+
obj.connection = Message.ConnectionType.codec().decode(reader)
210+
break
211+
default:
212+
reader.skipType(tag & 7)
213+
break
214+
}
215+
}
216+
217+
obj.addrs = obj.addrs ?? []
218+
219+
if (obj.addrs == null) {
220+
throw new Error('Protocol error: value for required field "addrs" was not found in protobuf')
221+
}
222+
223+
return obj
224+
})
225+
}
226+
227+
return _codec
103228
}
104229

105-
export const encode = (obj: Peer): Uint8ArrayList => {
230+
export const encode = (obj: Peer): Uint8Array => {
106231
return encodeMessage(obj, Peer.codec())
107232
}
108233

@@ -111,18 +236,110 @@ export namespace Message {
111236
}
112237
}
113238

239+
let _codec: Codec<Message>
240+
114241
export const codec = (): Codec<Message> => {
115-
return message<Message>({
116-
1: { name: 'type', codec: Message.MessageType.codec(), optional: true },
117-
10: { name: 'clusterLevelRaw', codec: int32, optional: true },
118-
2: { name: 'key', codec: bytes, optional: true },
119-
3: { name: 'record', codec: bytes, optional: true },
120-
8: { name: 'closerPeers', codec: Message.Peer.codec(), repeats: true },
121-
9: { name: 'providerPeers', codec: Message.Peer.codec(), repeats: true }
122-
})
242+
if (_codec == null) {
243+
_codec = message<Message>((obj, writer, opts = {}) => {
244+
if (opts.lengthDelimited !== false) {
245+
writer.fork()
246+
}
247+
248+
if (obj.type != null) {
249+
writer.uint32(8)
250+
Message.MessageType.codec().encode(obj.type, writer)
251+
}
252+
253+
if (obj.clusterLevelRaw != null) {
254+
writer.uint32(80)
255+
writer.int32(obj.clusterLevelRaw)
256+
}
257+
258+
if (obj.key != null) {
259+
writer.uint32(18)
260+
writer.bytes(obj.key)
261+
}
262+
263+
if (obj.record != null) {
264+
writer.uint32(26)
265+
writer.bytes(obj.record)
266+
}
267+
268+
if (obj.closerPeers != null) {
269+
for (const value of obj.closerPeers) {
270+
writer.uint32(66)
271+
Message.Peer.codec().encode(value, writer)
272+
}
273+
} else {
274+
throw new Error('Protocol error: required field "closerPeers" was not found in object')
275+
}
276+
277+
if (obj.providerPeers != null) {
278+
for (const value of obj.providerPeers) {
279+
writer.uint32(74)
280+
Message.Peer.codec().encode(value, writer)
281+
}
282+
} else {
283+
throw new Error('Protocol error: required field "providerPeers" was not found in object')
284+
}
285+
286+
if (opts.lengthDelimited !== false) {
287+
writer.ldelim()
288+
}
289+
}, (reader, length) => {
290+
const obj: any = {}
291+
292+
const end = length == null ? reader.len : reader.pos + length
293+
294+
while (reader.pos < end) {
295+
const tag = reader.uint32()
296+
297+
switch (tag >>> 3) {
298+
case 1:
299+
obj.type = Message.MessageType.codec().decode(reader)
300+
break
301+
case 10:
302+
obj.clusterLevelRaw = reader.int32()
303+
break
304+
case 2:
305+
obj.key = reader.bytes()
306+
break
307+
case 3:
308+
obj.record = reader.bytes()
309+
break
310+
case 8:
311+
obj.closerPeers = obj.closerPeers ?? []
312+
obj.closerPeers.push(Message.Peer.codec().decode(reader, reader.uint32()))
313+
break
314+
case 9:
315+
obj.providerPeers = obj.providerPeers ?? []
316+
obj.providerPeers.push(Message.Peer.codec().decode(reader, reader.uint32()))
317+
break
318+
default:
319+
reader.skipType(tag & 7)
320+
break
321+
}
322+
}
323+
324+
obj.closerPeers = obj.closerPeers ?? []
325+
obj.providerPeers = obj.providerPeers ?? []
326+
327+
if (obj.closerPeers == null) {
328+
throw new Error('Protocol error: value for required field "closerPeers" was not found in protobuf')
329+
}
330+
331+
if (obj.providerPeers == null) {
332+
throw new Error('Protocol error: value for required field "providerPeers" was not found in protobuf')
333+
}
334+
335+
return obj
336+
})
337+
}
338+
339+
return _codec
123340
}
124341

125-
export const encode = (obj: Message): Uint8ArrayList => {
342+
export const encode = (obj: Message): Uint8Array => {
126343
return encodeMessage(obj, Message.codec())
127344
}
128345

src/message/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export class Message {
6565
clusterLevelRaw: this.clusterLevelRaw,
6666
closerPeers: this.closerPeers.map(toPbPeer),
6767
providerPeers: this.providerPeers.map(toPbPeer),
68-
record: this.record == null ? undefined : this.record.serialize()
68+
record: this.record == null ? undefined : this.record.serialize().subarray()
6969
})
7070
}
7171

0 commit comments

Comments
 (0)