This makes it easier to handle truffle arguments which we for example need to specify the network. So we ask the user for input instead on using the argv array which might change.
36 lines
883 B
JavaScript
36 lines
883 B
JavaScript
const 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)
|