Skip to content
This repository was archived by the owner on Aug 24, 2021. It is now read-only.

Commit 5ef8fdc

Browse files
committed
feat: support identity hashes
1 parent 443a8eb commit 5ef8fdc

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/constants.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
'use strict'
44

55
exports.names = Object.freeze({
6-
'id': 0x0,
6+
'identity': 0x0,
77
'sha1': 0x11,
88
'sha2-256': 0x12,
99
'sha2-512': 0x13,
@@ -343,6 +343,9 @@ exports.names = Object.freeze({
343343
})
344344

345345
exports.codes = Object.freeze({
346+
0x0: 'identity',
347+
348+
// sha family
346349
0x11: 'sha1',
347350
0x12: 'sha2-256',
348351
0x13: 'sha2-512',
@@ -357,6 +360,7 @@ exports.codes = Object.freeze({
357360
0x1B: 'keccak-256',
358361
0x1C: 'keccak-384',
359362
0x1D: 'keccak-512',
363+
360364
0x22: 'murmur3-128',
361365
0x23: 'murmur3-32',
362366

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ exports.decode = function decode (buf) {
118118
* @returns {Buffer}
119119
*/
120120
exports.encode = function encode (digest, code, length) {
121-
if (!digest || !code) {
121+
if (!digest || code === undefined) {
122122
throw new Error('multihash encode requires at least two args: digest, code')
123123
}
124124

@@ -154,7 +154,7 @@ exports.coerceCode = function coerceCode (name) {
154154
let code = name
155155

156156
if (typeof name === 'string') {
157-
if (!cs.names[name]) {
157+
if (cs.names[name] === undefined) {
158158
throw new Error(`Unrecognized hash function named: ${name}`)
159159
}
160160
code = cs.names[name]
@@ -164,7 +164,7 @@ exports.coerceCode = function coerceCode (name) {
164164
throw new Error(`Hash function code should be a number. Got: ${code}`)
165165
}
166166

167-
if (!cs.codes[code] && !exports.isAppCode(code)) {
167+
if (cs.codes[code] === undefined && !exports.isAppCode(code)) {
168168
throw new Error(`Unrecognized function code: ${code}`)
169169
}
170170

test/fixtures/valid.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,11 @@ module.exports = [{
2828
},
2929
hex: '2c26b46b',
3030
size: 4
31+
}, {
32+
encoding: {
33+
code: 0x0,
34+
name: 'identity'
35+
},
36+
hex: '7465737420737472696e6720f09f918d',
37+
size: 16
3138
}]

0 commit comments

Comments
 (0)