1
- import errCode from 'err-code '
1
+ import { CodeError } from '@libp2p/interfaces/errors '
2
2
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
3
3
import type { Libp2pRecord } from './index.js'
4
4
import type { Validators } from '@libp2p/interface-dht'
@@ -25,7 +25,7 @@ export function verifyRecord (validators: Validators, record: Libp2pRecord) {
25
25
if ( validator == null ) {
26
26
const errMsg = 'Invalid record keytype'
27
27
28
- throw errCode ( new Error ( errMsg ) , 'ERR_INVALID_RECORD_KEY_TYPE' )
28
+ throw new CodeError ( errMsg , 'ERR_INVALID_RECORD_KEY_TYPE' )
29
29
}
30
30
31
31
return validator ( key , record . value )
@@ -42,25 +42,25 @@ export function verifyRecord (validators: Validators, record: Libp2pRecord) {
42
42
*/
43
43
const validatePublicKeyRecord = async ( key : Uint8Array , publicKey : Uint8Array ) => {
44
44
if ( ! ( key instanceof Uint8Array ) ) {
45
- throw errCode ( new Error ( '"key" must be a Uint8Array' ) , 'ERR_INVALID_RECORD_KEY_NOT_BUFFER' )
45
+ throw new CodeError ( '"key" must be a Uint8Array' , 'ERR_INVALID_RECORD_KEY_NOT_BUFFER' )
46
46
}
47
47
48
48
if ( key . byteLength < 5 ) {
49
- throw errCode ( new Error ( 'invalid public key record' ) , 'ERR_INVALID_RECORD_KEY_TOO_SHORT' )
49
+ throw new CodeError ( 'invalid public key record' , 'ERR_INVALID_RECORD_KEY_TOO_SHORT' )
50
50
}
51
51
52
52
const prefix = uint8ArrayToString ( key . subarray ( 0 , 4 ) )
53
53
54
54
if ( prefix !== '/pk/' ) {
55
- throw errCode ( new Error ( 'key was not prefixed with /pk/' ) , 'ERR_INVALID_RECORD_KEY_BAD_PREFIX' )
55
+ throw new CodeError ( 'key was not prefixed with /pk/' , 'ERR_INVALID_RECORD_KEY_BAD_PREFIX' )
56
56
}
57
57
58
58
const keyhash = key . slice ( 4 )
59
59
60
60
const publicKeyHash = await sha256 . digest ( publicKey )
61
61
62
62
if ( ! uint8ArrayEquals ( keyhash , publicKeyHash . bytes ) ) {
63
- throw errCode ( new Error ( 'public key does not match passed in key' ) , 'ERR_INVALID_RECORD_HASH_MISMATCH' )
63
+ throw new CodeError ( 'public key does not match passed in key' , 'ERR_INVALID_RECORD_HASH_MISMATCH' )
64
64
}
65
65
}
66
66
0 commit comments