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

Binary resolver #90

Merged
merged 11 commits into from
Oct 7, 2017
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
docs
**/node_modules/
**/*.log
test/repo-tests*
Expand Down
37 changes: 19 additions & 18 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
"test"
],
"scripts": {
"lint": "aegir-lint",
"build": "aegir-build",
"test": "aegir-test",
"test:node": "aegir-test node",
"test:browser": "aegir-test browser",
"release": "aegir-release",
"release-minor": "aegir-release --type minor",
"release-major": "aegir-release --type major",
"coverage": "aegir-coverage",
"coverage-publish": "aegir-coverage publish"
"lint": "aegir lint",
"build": "aegir build",
"test": "aegir test",
"test:node": "aegir test --target node",
"test:browser": "aegir test --target browser",
"release": "aegir release",
"release-minor": "aegir release --type minor",
"release-major": "aegir release --type major",
"coverage": "aegir coverage",
"coverage-publish": "aegir coverage --provider coveralls"
},
"keywords": [
"IPFS"
Expand All @@ -32,35 +32,36 @@
"homepage": "https://github.com/ipld/js-ipld-resolver#readme",
"license": "MIT",
"devDependencies": {
"aegir": "^11.0.2",
"aegir": "^12.0.8",
"chai": "^4.1.2",
"dirty-chai": "^2.0.1",
"eth-hash-to-cid": "^0.1.0",
"ethereumjs-block": "^1.6.0",
"lodash": "^4.17.4",
"ncp": "^2.0.0",
"pre-commit": "^1.2.2",
"rimraf": "^2.6.1",
"rimraf": "^2.6.2",
"rlp": "^2.0.0"
},
"dependencies": {
"async": "^2.5.0",
"cids": "~0.5.1",
"interface-datastore": "^0.3.0",
"cids": "~0.5.2",
"interface-datastore": "^0.3.1",
"ipfs-block": "~0.6.0",
"ipfs-block-service": "~0.12.0",
"ipfs-repo": "~0.17.0",
"ipld-dag-cbor": "~0.11.1",
"ipld-dag-pb": "~0.11.2",
"ipld-ethereum": "^1.4.2",
"ipld-git": "^0.1.0",
"is-ipfs": "~0.3.0",
"ipld-raw": "^1.0.5",
"is-ipfs": "~0.3.2",
"lodash.flatten": "^4.4.0",
"lodash.includes": "^4.3.0",
"memdown": "^1.2.7",
"memdown": "^1.4.1",
"multihashes": "~0.4.9",
"pull-sort": "^1.0.1",
"pull-stream": "^3.6.0",
"pull-stream": "^3.6.1",
"pull-traverse": "^1.0.3"
},
"contributors": [
Expand All @@ -75,4 +76,4 @@
"wanderer <mjbecze@gmail.com>",
"Łukasz Magiera <magik6k@users.noreply.github.com>"
]
}
}
45 changes: 25 additions & 20 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const ipldEthStateTrie = require('ipld-ethereum').ethStateTrie
const ipldEthStorageTrie = require('ipld-ethereum').ethStorageTrie
const ipldEthTx = require('ipld-ethereum').ethTx
const ipldEthTxTrie = require('ipld-ethereum').ethTxTrie
const ipldRaw = require('ipld-raw')

function noop () {}

Expand Down Expand Up @@ -58,44 +59,48 @@ class IPLDResolver {

// Support by default dag-pb, dag-cbor, git, and eth-*
this.support.add(dagPB.resolver.multicodec,
dagPB.resolver,
dagPB.util)
dagPB.resolver,
dagPB.util)

this.support.add(dagCBOR.resolver.multicodec,
dagCBOR.resolver,
dagCBOR.util)
dagCBOR.resolver,
dagCBOR.util)

this.support.add(ipldGit.resolver.multicodec,
ipldGit.resolver,
ipldGit.util)
ipldGit.resolver,
ipldGit.util)

this.support.add(ipldEthAccountSnapshot.resolver.multicodec,
ipldEthAccountSnapshot.resolver,
ipldEthAccountSnapshot.util)
ipldEthAccountSnapshot.resolver,
ipldEthAccountSnapshot.util)

this.support.add(ipldEthBlock.resolver.multicodec,
ipldEthBlock.resolver,
ipldEthBlock.util)
ipldEthBlock.resolver,
ipldEthBlock.util)

this.support.add(ipldEthBlockList.resolver.multicodec,
ipldEthBlockList.resolver,
ipldEthBlockList.util)
ipldEthBlockList.resolver,
ipldEthBlockList.util)

this.support.add(ipldEthStateTrie.resolver.multicodec,
ipldEthStateTrie.resolver,
ipldEthStateTrie.util)
ipldEthStateTrie.resolver,
ipldEthStateTrie.util)

this.support.add(ipldEthStorageTrie.resolver.multicodec,
ipldEthStorageTrie.resolver,
ipldEthStorageTrie.util)
ipldEthStorageTrie.resolver,
ipldEthStorageTrie.util)

this.support.add(ipldEthTx.resolver.multicodec,
ipldEthTx.resolver,
ipldEthTx.util)
ipldEthTx.resolver,
ipldEthTx.util)

this.support.add(ipldEthTxTrie.resolver.multicodec,
ipldEthTxTrie.resolver,
ipldEthTxTrie.util)
ipldEthTxTrie.resolver,
ipldEthTxTrie.util)

this.support.add(ipldRaw.resolver.multicodec,
ipldRaw.resolver,
ipldRaw.util)
}

get (cid, path, options, callback) {
Expand Down
8 changes: 4 additions & 4 deletions test/basics.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ module.exports = (repo) => {
const bs = new BlockService(repo)
const r = new IPLDResolver(bs)
// choosing a format that is not supported
const cid = new CID(1, 'base1', multihash.encode(new Buffer('abcd', 'hex'), 'sha1'))
const cid = new CID(1, 'base1', multihash.encode(Buffer.from('abcd', 'hex'), 'sha1'))
r.get(cid, '/', {}, (err, result) => {
expect(err).to.exist()
expect(err.message).to.eql('No resolver found for codec "base1"')
Expand All @@ -48,7 +48,7 @@ module.exports = (repo) => {
const bs = new BlockService(repo)
const r = new IPLDResolver(bs)
// choosing a format that is not supported
const cid = new CID(1, 'base1', multihash.encode(new Buffer('abcd', 'hex'), 'sha1'))
const cid = new CID(1, 'base1', multihash.encode(Buffer.from('abcd', 'hex'), 'sha1'))
r.get(cid, (err, result) => {
expect(err).to.exist()
expect(err.message).to.eql('No resolver found for codec "base1"')
Expand All @@ -71,7 +71,7 @@ module.exports = (repo) => {
const bs = new BlockService(repo)
const r = new IPLDResolver(bs)
// choosing a format that is not supported
const cid = new CID(1, 'base1', multihash.encode(new Buffer('abcd', 'hex'), 'sha1'))
const cid = new CID(1, 'base1', multihash.encode(Buffer.from('abcd', 'hex'), 'sha1'))
r._put(cid, null, (err, result) => {
expect(err).to.exist()
expect(err.message).to.eql('No resolver found for codec "base1"')
Expand All @@ -83,7 +83,7 @@ module.exports = (repo) => {
const bs = new BlockService(repo)
const r = new IPLDResolver(bs)
// choosing a format that is not supported
const cid = new CID(1, 'base1', multihash.encode(new Buffer('abcd', 'hex'), 'sha1'))
const cid = new CID(1, 'base1', multihash.encode(Buffer.from('abcd', 'hex'), 'sha1'))
pull(
r.treeStream(cid, '/', {}),
pull.collect(function (err) {
Expand Down
4 changes: 2 additions & 2 deletions test/ipld-all.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe('IPLD Resolver for dag-cbor + dag-pb', () => {
(cb) => IPLDResolver.inMemory(cb),
(res, cb) => {
resolver = res
dagPB.DAGNode.create(new Buffer('I am inside a Protobuf'), cb)
dagPB.DAGNode.create(Buffer.from('I am inside a Protobuf'), cb)
},
(node, cb) => {
nodePb = node
Expand Down Expand Up @@ -62,7 +62,7 @@ describe('IPLD Resolver for dag-cbor + dag-pb', () => {
it('resolve through different formats', (done) => {
resolver.get(cidCbor, 'pb/Data', (err, result) => {
expect(err).to.not.exist()
expect(result.value).to.eql(new Buffer('I am inside a Protobuf'))
expect(result.value).to.eql(Buffer.from('I am inside a Protobuf'))
done()
})
})
Expand Down
12 changes: 6 additions & 6 deletions test/ipld-dag-pb.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,21 @@ module.exports = (repo) => {

series([
(cb) => {
dagPB.DAGNode.create(new Buffer('I am 1'), (err, node) => {
dagPB.DAGNode.create(Buffer.from('I am 1'), (err, node) => {
expect(err).to.not.exist()
node1 = node
cb()
})
},
(cb) => {
dagPB.DAGNode.create(new Buffer('I am 2'), (err, node) => {
dagPB.DAGNode.create(Buffer.from('I am 2'), (err, node) => {
expect(err).to.not.exist()
node2 = node
cb()
})
},
(cb) => {
dagPB.DAGNode.create(new Buffer('I am 3'), (err, node) => {
dagPB.DAGNode.create(Buffer.from('I am 3'), (err, node) => {
expect(err).to.not.exist()
node3 = node
cb()
Expand Down Expand Up @@ -190,23 +190,23 @@ module.exports = (repo) => {
it('resolver.get value within 1st node scope', (done) => {
resolver.get(cid1, 'Data', (err, result) => {
expect(err).to.not.exist()
expect(result.value).to.eql(new Buffer('I am 1'))
expect(result.value).to.eql(Buffer.from('I am 1'))
done()
})
})

it('resolver.get value within nested scope (1 level)', (done) => {
resolver.get(cid2, 'Links/0/Hash/Data', (err, result) => {
expect(err).to.not.exist()
expect(result.value).to.eql(new Buffer('I am 1'))
expect(result.value).to.eql(Buffer.from('I am 1'))
done()
})
})

it('resolver.get value within nested scope (2 levels)', (done) => {
resolver.get(cid3, 'Links/1/Hash/Links/0/Hash/Data', (err, result) => {
expect(err).to.not.exist()
expect(result.value).to.eql(new Buffer('I am 1'))
expect(result.value).to.eql(Buffer.from('I am 1'))
done()
})
})
Expand Down
2 changes: 1 addition & 1 deletion test/ipld-git.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ module.exports = (repo) => {

series([
(cb) => {
blobNode = new Buffer('626c6f62203800736f6d6564617461', 'hex') // blob 8\0somedata
blobNode = Buffer.from('626c6f62203800736f6d6564617461', 'hex') // blob 8\0somedata

ipldGit.util.cid(blobNode, (err, cid) => {
expect(err).to.not.exist()
Expand Down
2 changes: 1 addition & 1 deletion test/node.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const os = require('os')

describe('Node.js', () => {
const repoExample = process.cwd() + '/test/example-repo'
const repoTests = os.tmpDir() + '/t-r-' + Date.now()
const repoTests = os.tmpdir() + '/t-r-' + Date.now()
const repo = new IPFSRepo(repoTests)

before((done) => {
Expand Down