@@ -4,14 +4,14 @@ import {
4
4
DHTRequest ,
5
5
DHTResponse
6
6
} from '@libp2p/daemon-protocol'
7
- import { CodeError } from '@libp2p/interface'
7
+ import { InvalidMessageError , InvalidParametersError , ProtocolError } from '@libp2p/interface'
8
8
import { isPeerId , type PeerId , type PeerInfo } from '@libp2p/interface'
9
9
import { logger } from '@libp2p/logger'
10
10
import { peerIdFromMultihash } from '@libp2p/peer-id'
11
11
import { multiaddr } from '@multiformats/multiaddr'
12
12
import { CID } from 'multiformats/cid'
13
13
import * as Digest from 'multiformats/hashes/digest'
14
- import type { DaemonClient } from './index.js'
14
+ import { OperationFailedError , type DaemonClient } from './index.js'
15
15
16
16
const log = logger ( 'libp2p:daemon-client:dht' )
17
17
@@ -27,11 +27,11 @@ export class DHT {
27
27
*/
28
28
async put ( key : Uint8Array , value : Uint8Array ) : Promise < void > {
29
29
if ( ! ( key instanceof Uint8Array ) ) {
30
- throw new CodeError ( 'invalid key received' , 'ERR_INVALID_KEY ')
30
+ throw new InvalidParametersError ( 'invalid key received' )
31
31
}
32
32
33
33
if ( ! ( value instanceof Uint8Array ) ) {
34
- throw new CodeError ( 'value received is not a Uint8Array' , 'ERR_INVALID_VALUE ')
34
+ throw new InvalidParametersError ( 'value received is not a Uint8Array' )
35
35
}
36
36
37
37
const sh = await this . client . send ( {
@@ -50,7 +50,7 @@ export class DHT {
50
50
await sh . unwrap ( ) . close ( )
51
51
52
52
if ( response . type !== Response . Type . OK ) {
53
- throw new CodeError ( response . error ?. msg ?? 'DHT put failed' , 'ERR_DHT_PUT_FAILED ')
53
+ throw new ProtocolError ( response . error ?. msg ?? 'DHT put failed' )
54
54
}
55
55
}
56
56
@@ -59,7 +59,7 @@ export class DHT {
59
59
*/
60
60
async get ( key : Uint8Array ) : Promise < Uint8Array > {
61
61
if ( ! ( key instanceof Uint8Array ) ) {
62
- throw new CodeError ( 'invalid key received' , 'ERR_INVALID_KEY ')
62
+ throw new InvalidParametersError ( 'invalid key received' )
63
63
}
64
64
65
65
const sh = await this . client . send ( {
@@ -75,11 +75,11 @@ export class DHT {
75
75
await sh . unwrap ( ) . close ( )
76
76
77
77
if ( response . type !== Response . Type . OK ) {
78
- throw new CodeError ( response . error ?. msg ?? 'DHT get failed' , 'ERR_DHT_GET_FAILED ')
78
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT get failed' )
79
79
}
80
80
81
81
if ( response . dht ?. value == null ) {
82
- throw new CodeError ( 'Invalid DHT get response' , 'ERR_DHT_GET_FAILED ')
82
+ throw new OperationFailedError ( 'Invalid DHT get response' )
83
83
}
84
84
85
85
return response . dht . value
@@ -90,7 +90,7 @@ export class DHT {
90
90
*/
91
91
async findPeer ( peerId : PeerId ) : Promise < PeerInfo > {
92
92
if ( ! isPeerId ( peerId ) ) {
93
- throw new CodeError ( 'invalid peer id received' , 'ERR_INVALID_PEER_ID ')
93
+ throw new InvalidParametersError ( 'invalid peer id received' )
94
94
}
95
95
96
96
const sh = await this . client . send ( {
@@ -106,11 +106,11 @@ export class DHT {
106
106
await sh . unwrap ( ) . close ( )
107
107
108
108
if ( response . type !== Response . Type . OK ) {
109
- throw new CodeError ( response . error ?. msg ?? 'DHT find peer failed' , 'ERR_DHT_FIND_PEER_FAILED ')
109
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT find peer failed' )
110
110
}
111
111
112
112
if ( response . dht ?. peer ?. addrs == null ) {
113
- throw new CodeError ( 'Invalid response' , 'ERR_DHT_FIND_PEER_FAILED ')
113
+ throw new OperationFailedError ( 'Invalid response' )
114
114
}
115
115
116
116
return {
@@ -124,7 +124,7 @@ export class DHT {
124
124
*/
125
125
async provide ( cid : CID ) : Promise < void > {
126
126
if ( cid == null || CID . asCID ( cid ) == null ) {
127
- throw new CodeError ( 'invalid cid received' , 'ERR_INVALID_CID ')
127
+ throw new InvalidParametersError ( 'invalid cid received' )
128
128
}
129
129
130
130
const sh = await this . client . send ( {
@@ -140,7 +140,7 @@ export class DHT {
140
140
await sh . unwrap ( ) . close ( )
141
141
142
142
if ( response . type !== Response . Type . OK ) {
143
- throw new CodeError ( response . error ?. msg ?? 'DHT provide failed' , 'ERR_DHT_PROVIDE_FAILED ')
143
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT provide failed' )
144
144
}
145
145
}
146
146
@@ -149,7 +149,7 @@ export class DHT {
149
149
*/
150
150
async * findProviders ( cid : CID , count : number = 1 ) : AsyncIterable < PeerInfo > {
151
151
if ( cid == null || CID . asCID ( cid ) == null ) {
152
- throw new CodeError ( 'invalid cid received' , 'ERR_INVALID_CID ')
152
+ throw new InvalidParametersError ( 'invalid cid received' )
153
153
}
154
154
155
155
const sh = await this . client . send ( {
@@ -166,7 +166,7 @@ export class DHT {
166
166
167
167
if ( response . type !== Response . Type . OK ) {
168
168
await sh . unwrap ( ) . close ( )
169
- throw new CodeError ( response . error ?. msg ?? 'DHT find providers failed' , 'ERR_DHT_FIND_PROVIDERS_FAILED ')
169
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT find providers failed' )
170
170
}
171
171
172
172
while ( true ) {
@@ -187,7 +187,7 @@ export class DHT {
187
187
} else {
188
188
// Unexpected message received
189
189
await sh . unwrap ( ) . close ( )
190
- throw new CodeError ( 'unexpected message received' , 'ERR_UNEXPECTED_MESSAGE_RECEIVED ')
190
+ throw new ProtocolError ( 'unexpected message received' )
191
191
}
192
192
}
193
193
}
@@ -197,7 +197,7 @@ export class DHT {
197
197
*/
198
198
async * getClosestPeers ( key : Uint8Array ) : AsyncIterable < PeerInfo > {
199
199
if ( ! ( key instanceof Uint8Array ) ) {
200
- throw new CodeError ( 'invalid key received' , 'ERR_INVALID_KEY ')
200
+ throw new InvalidParametersError ( 'invalid key received' )
201
201
}
202
202
203
203
const sh = await this . client . send ( {
@@ -213,7 +213,7 @@ export class DHT {
213
213
214
214
if ( response . type !== Response . Type . OK ) {
215
215
await sh . unwrap ( ) . close ( )
216
- throw new CodeError ( response . error ?. msg ?? 'DHT find providers failed' , 'ERR_DHT_FIND_PROVIDERS_FAILED ')
216
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT find providers failed' )
217
217
}
218
218
219
219
while ( true ) {
@@ -236,7 +236,7 @@ export class DHT {
236
236
} else {
237
237
// Unexpected message received
238
238
await sh . unwrap ( ) . close ( )
239
- throw new CodeError ( 'unexpected message received' , 'ERR_UNEXPECTED_MESSAGE_RECEIVED ')
239
+ throw new InvalidMessageError ( 'unexpected message received' )
240
240
}
241
241
}
242
242
}
@@ -246,7 +246,7 @@ export class DHT {
246
246
*/
247
247
async getPublicKey ( peerId : PeerId ) : Promise < Uint8Array | undefined > {
248
248
if ( ! isPeerId ( peerId ) ) {
249
- throw new CodeError ( 'invalid peer id received' , 'ERR_INVALID_PEER_ID ')
249
+ throw new InvalidParametersError ( 'invalid peer id received' )
250
250
}
251
251
252
252
const sh = await this . client . send ( {
@@ -262,11 +262,11 @@ export class DHT {
262
262
await sh . unwrap ( ) . close ( )
263
263
264
264
if ( response . type !== Response . Type . OK ) {
265
- throw new CodeError ( response . error ?. msg ?? 'DHT get public key failed' , 'ERR_DHT_GET_PUBLIC_KEY_FAILED ')
265
+ throw new OperationFailedError ( response . error ?. msg ?? 'DHT get public key failed' )
266
266
}
267
267
268
268
if ( response . dht == null ) {
269
- throw new CodeError ( 'Invalid response' , 'ERR_DHT_GET_PUBLIC_KEY_FAILED ')
269
+ throw new InvalidMessageError ( 'Invalid response' )
270
270
}
271
271
272
272
return response . dht . value
0 commit comments