var bs58 = require('bs58'); function getBytes32FromMultiash(multihash) { const decoded = bs58.decode(multihash); return { digest: `0x${decoded.slice(2).toString('hex')}`, hashFunction: decoded[0], size: decoded[1], }; } function getMultihashFromBytes32(multihash) { const { digest, hashFunction, size } = multihash; if (size === 0) return null; // cut off leading "0x" const hashBytes = Buffer.from(digest.slice(2), 'hex'); // prepend hashFunction and digest size //const multihashBytes = new (hashBytes.constructor)(2 + hashBytes.length); const multihashBytes = new Buffer(2 + hashBytes.length); console.log(hashBytes.constructor); multihashBytes[0] = hashFunction; multihashBytes[1] = size; multihashBytes.set(hashBytes, 2); return bs58.encode(multihashBytes); } var m = getBytes32FromMultiash(process.argv[2]); console.log(m)