From 6e28d3e6f52d2d436cee81fbdfc8f1f58a2e1b12 Mon Sep 17 00:00:00 2001 From: Richard Schneider Date: Sat, 23 Jun 2018 00:27:45 +1200 Subject: [PATCH] feat: add defaultHashAlg (#17) See https://github.com/ipld/interface-ipld-format/issues/37 --- src/resolver.js | 1 + src/util.js | 4 +++- test/resolver.spec.js | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/resolver.js b/src/resolver.js index dd9e177..8470399 100644 --- a/src/resolver.js +++ b/src/resolver.js @@ -133,6 +133,7 @@ const resolveField = (dagNode, field) => { module.exports = { multicodec: 'bitcoin-block', + defaultHashAlg: 'dbl-sha2-256', resolve: resolve, tree: tree } diff --git a/src/util.js b/src/util.js index cd61c9c..d536357 100644 --- a/src/util.js +++ b/src/util.js @@ -87,7 +87,9 @@ const cid = (dagNode, callback) => { // Convert a Bitcoin hash (as Buffer) to a CID const hashToCid = (hash) => { - const multihash = multihashes.encode(hash, 'dbl-sha2-256') + // avoid deadly embrace between resolver and util + const defaultHashAlg = require('./resolver').defaultHashAlg + const multihash = multihashes.encode(hash, defaultHashAlg) const cidVersion = 1 const cid = new CID(cidVersion, 'bitcoin-block', multihash) return cid diff --git a/test/resolver.spec.js b/test/resolver.spec.js index 3e19020..75ac5b0 100644 --- a/test/resolver.spec.js +++ b/test/resolver.spec.js @@ -139,6 +139,11 @@ describe('IPLD format resolver API properties', () => { expect(IpldBitcoin.resolver.multicodec).to.equal('bitcoin-block') done() }) + + it('should have `defaultHashAlg` defined correctly', (done) => { + expect(IpldBitcoin.resolver.defaultHashAlg).to.equal('dbl-sha2-256') + done() + }) }) const verifyPath = (block, path, expected, done) => {