Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

Update ipld formats async await mfs and unixfs and base32 cids #2068

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions examples/traverse-ipld-graphs/get-path-accross-formats.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,20 @@ createNode((err, ipfs) => {
series([
(cb) => {
const someData = Buffer.from('capoeira')
let node

dagPB.DAGNode.create(someData, (err, node) => {
try {
node = dagPB.DAGNode.create(someData)
} catch (err) {
return cb(err)
}

ipfs.dag.put(node, { format: 'dag-pb', hashAlg: 'sha2-256' }, (err, cid) => {
if (err) {
cb(err)
}

ipfs.dag.put(node, { format: 'dag-pb', hashAlg: 'sha2-256' }, (err, cid) => {
if (err) {
cb(err)
}
cidPBNode = cid
cb()
})
cidPBNode = cid
cb()
})
},
(cb) => {
Expand Down
19 changes: 10 additions & 9 deletions examples/traverse-ipld-graphs/tree.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,20 @@ createNode((err, ipfs) => {
series([
(cb) => {
const someData = Buffer.from('capoeira')
let node

dagPB.DAGNode.create(someData, (err, node) => {
try {
dagPB.DAGNode.create(someData)
} catch (err) {
return cb(err)
}

ipfs.dag.put(node, { format: 'dag-pb', hashAlg: 'sha2-256' }, (err, cid) => {
if (err) {
cb(err)
}

ipfs.dag.put(node, { format: 'dag-pb', hashAlg: 'sha2-256' }, (err, cid) => {
if (err) {
cb(err)
}
cidPBNode = cid
cb()
})
cidPBNode = cid
cb()
})
},
(cb) => {
Expand Down
53 changes: 29 additions & 24 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@
"execa": "^1.0.0",
"form-data": "^2.3.3",
"hat": "0.0.3",
"interface-ipfs-core": "~0.103.0",
"ipfsd-ctl": "~0.42.0",
"libp2p-websocket-star": "~0.10.2",
"ncp": "^2.0.0",
"qs": "^6.5.2",
"rimraf": "^2.6.2",
"interface-ipfs-core": "~0.102.0",
"sinon": "^7.3.1",
"stream-to-promise": "^2.2.0"
},
Expand All @@ -86,6 +86,9 @@
"@hapi/hapi": "^18.3.1",
"@hapi/joi": "^15.0.1",
"async": "^2.6.1",
"async-iterator-all": "0.0.2",
"async-iterator-to-pull-stream": "^1.1.0",
"async-iterator-to-stream": "^1.1.0",
"base32.js": "~0.1.0",
"bignumber.js": "^8.0.2",
"binary-querystring": "~0.1.2",
Expand All @@ -94,8 +97,9 @@
"bs58": "^4.0.1",
"buffer-peek-stream": "^1.0.1",
"byteman": "^1.3.5",
"cid-tool": "~0.2.0",
"cids": "~0.5.8",
"callbackify": "^1.1.0",
"cid-tool": "~0.3.0",
"cids": "~0.7.1",
"class-is": "^1.1.0",
"datastore-core": "~0.6.0",
"datastore-pubsub": "~0.1.1",
Expand All @@ -109,39 +113,39 @@
"glob": "^7.1.3",
"hapi-pino": "^6.0.0",
"human-to-milliseconds": "^1.0.0",
"interface-datastore": "~0.7.0",
"ipfs-bitswap": "~0.23.0",
"ipfs-block": "~0.8.0",
"interface-datastore": "~0.6.0",
"ipfs-bitswap": "~0.24.0",
"ipfs-block": "~0.8.1",
"ipfs-block-service": "~0.15.1",
"ipfs-http-client": "^31.1.0",
"ipfs-http-response": "~0.2.1",
"ipfs-mfs": "~0.10.2",
"ipfs-http-client": "^32.0.0",
"ipfs-http-response": "~0.3.0",
"ipfs-mfs": "~0.11.2",
"ipfs-multipart": "~0.1.0",
"ipfs-repo": "~0.26.5",
"ipfs-repo": "~0.26.6",
"ipfs-unixfs": "~0.1.16",
"ipfs-unixfs-exporter": "~0.36.1",
"ipfs-unixfs-importer": "~0.38.5",
"ipld": "~0.21.1",
"ipld-bitcoin": "~0.1.8",
"ipld-dag-cbor": "~0.13.1",
"ipld-dag-pb": "~0.15.3",
"ipld-ethereum": "^2.0.1",
"ipld-git": "~0.3.0",
"ipld-raw": "^2.0.1",
"ipld-zcash": "~0.1.6",
"ipfs-unixfs-exporter": "~0.37.4",
"ipfs-unixfs-importer": "~0.39.6",
"ipfs-utils": "~0.0.3",
"ipld": "~0.24.1",
"ipld-bitcoin": "~0.3.0",
"ipld-dag-cbor": "~0.15.0",
"ipld-dag-pb": "~0.17.3",
"ipld-ethereum": "^4.0.0",
"ipld-git": "~0.5.0",
"ipld-raw": "^4.0.0",
"ipld-zcash": "~0.3.0",
"ipns": "~0.5.0",
"is-ipfs": "~0.6.0",
"is-ipfs": "~0.6.1",
"is-pull-stream": "~0.0.0",
"is-stream": "^2.0.0",
"iso-url": "~0.4.6",
"ipfs-utils": "~0.0.3",
"just-flatten-it": "^2.1.0",
"just-safe-set": "^2.1.0",
"kind-of": "^6.0.2",
"libp2p": "~0.25.3",
"libp2p-bootstrap": "~0.9.3",
"libp2p-crypto": "~0.16.0",
"libp2p-kad-dht": "~0.14.12",
"libp2p-kad-dht": "~0.15.0",
"libp2p-keychain": "~0.4.1",
"libp2p-mdns": "~0.12.0",
"libp2p-record": "~0.6.1",
Expand All @@ -158,7 +162,7 @@
"multiaddr": "^6.0.5",
"multiaddr-to-uri": "^4.0.1",
"multibase": "~0.6.0",
"multicodec": "~0.5.0",
"multicodec": "~0.5.1",
"multihashes": "~0.4.14",
"multihashing-async": "~0.6.0",
"node-fetch": "^2.3.0",
Expand All @@ -177,6 +181,7 @@
"pull-pushable": "^2.2.0",
"pull-sort": "^1.0.1",
"pull-stream": "^3.6.9",
"pull-stream-to-async-iterator": "^1.0.1",
"pull-stream-to-stream": "^1.3.4",
"pull-traverse": "^1.0.3",
"readable-stream": "^3.1.1",
Expand Down
14 changes: 13 additions & 1 deletion src/cli/bin.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

'use strict'

process.on('uncaughtException', (err) => {
console.info(err)

throw err
})

process.on('unhandledRejection', (err) => {
console.info(err)

throw err
})

const YargsPromise = require('yargs-promise')
const updateNotifier = require('update-notifier')
const utils = require('./utils')
Expand Down Expand Up @@ -35,7 +47,7 @@ async function main (args) {
}
})
.catch(({ error, argv }) => {
getIpfs = argv.getIpfs
getIpfs = argv && argv.getIpfs
debug(error)
// the argument can have a different shape depending on where the error came from
if (error.message || (error.error && error.error.message)) {
Expand Down
2 changes: 1 addition & 1 deletion src/cli/commands/dag/get.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module.exports = {
try {
result = await ipfs.dag.get(cid, path, options)
} catch (err) {
return print(`dag get failed: ${err.message}`)
return print(`dag get failed: ${err}`)
}

if (options.localResolve) {
Expand Down
14 changes: 7 additions & 7 deletions src/cli/commands/object/get.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ module.exports = {
resolve((async () => {
const ipfs = await getIpfs()
const node = await ipfs.object.get(key, { enc: 'base58' })
let data = node.data
let data = node.Data || ''

if (Buffer.isBuffer(data)) {
data = node.data.toString(dataEncoding || undefined)
data = node.Data.toString(dataEncoding || undefined)
}

const answer = {
Data: data,
Hash: cidToString(key, { base: cidBase, upgrade: false }),
Size: node.size,
Links: node.links.map((l) => {
Size: node.Size,
Links: node.Links.map((l) => {
return {
Name: l.name,
Size: l.size,
Hash: cidToString(l.cid, { base: cidBase, upgrade: false })
Name: l.Name,
Size: l.Tsize,
Hash: cidToString(l.Hash, { base: cidBase, upgrade: false })
}
})
}
Expand Down
4 changes: 2 additions & 2 deletions src/cli/commands/object/links.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ module.exports = {
const links = await ipfs.object.links(key, { enc: 'base58' })

links.forEach((link) => {
const cidStr = cidToString(link.cid, { base: cidBase, upgrade: false })
print(`${cidStr} ${link.size} ${link.name}`)
const cidStr = cidToString(link.Hash, { base: cidBase, upgrade: false })
print(`${cidStr} ${link.Tsize} ${link.Name}`)
})
})())
}
Expand Down
12 changes: 9 additions & 3 deletions src/cli/commands/object/patch/add-link.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
const dagPB = require('ipld-dag-pb')
const DAGLink = dagPB.DAGLink
const multibase = require('multibase')
const promisify = require('promisify-es6')
const { print } = require('../../../utils')
const { cidToString } = require('../../../../utils/cid')

Expand All @@ -17,14 +16,21 @@ module.exports = {
describe: 'Number base to display CIDs in. Note: specifying a CID base for v0 CIDs will have no effect.',
type: 'string',
choices: multibase.names
},
'cid-version': {
describe: 'The CID version of the DAGNode to link to',
type: 'number',
default: 0
}
},

handler ({ getIpfs, root, name, ref, cidBase, resolve }) {
handler ({ getIpfs, root, name, ref, cidBase, cidVersion, resolve }) {
resolve((async () => {
const ipfs = await getIpfs()
const nodeA = await ipfs.object.get(ref, { enc: 'base58' })
const result = await promisify(dagPB.util.cid)(nodeA)
const result = await dagPB.util.cid(dagPB.util.serialize(nodeA), {
cidVersion
})
const link = new DAGLink(name, nodeA.size, result)
const cid = await ipfs.object.patch.addLink(root, link, { enc: 'base58' })
print(cidToString(cid, { base: cidBase, upgrade: false }))
Expand Down
2 changes: 1 addition & 1 deletion src/core/components/bitswap.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const PeerId = require('peer-id')
const errCode = require('err-code')

function formatWantlist (list, cidBase) {
return Array.from(list).map((e) => ({ '/': e[1].cid.toBaseEncodedString() }))
return Array.from(list).map((e) => ({ '/': e[1].cid.toBaseEncodedString(cidBase) }))
}

module.exports = function bitswap (self) {
Expand Down
Loading