Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency ipfs to ^0.50.0 #87

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Aug 6, 2019

This PR contains the following updates:

Package Type Update Change
ipfs dependencies minor ^0.36.4 -> ^0.50.0

Release Notes

ipfs/js-ipfs

v0.50.2

Compare Source

Note: Version bump only for package ipfs

v0.50.1

Compare Source

fix: Downgrade merge-options to restore node 12 compat when engine-strict is true #​3271

v0.50.0

Compare Source

Features

v0.49.1

Compare Source

Bug Fixes

v0.49.0

Compare Source

Bug Fixes
Features
BREAKING CHANGES
  • remove support for key.export over the http api

v0.48.2

Compare Source

Note: Version bump only for package ipfs

v0.48.1

Compare Source

Bug Fixes

v0.48.0

Compare Source

Bug Fixes
Features
Breaking Changes
  • ipfs.add only works on single items - a Uint8Array, a String, an AsyncIterable etc
  • ipfs.addAll works on multiple items
  • ipfs.dag.resolve returns Promise<{ cid, remainderPath } instead of AsyncIterator<{ value, remainderPath }>
    • Previously the core api returned an async iterator and the http client returned a simple promise
  • ipfs.bitswap.wantlist([peer], [options]) is split into:
    • ipfs.bitswap.wantlist([options])
    • ipfs.bitswap.wantlistForPeer(peer, [options])
  • ipfs.bootstrap.add([addr], [options]) is split into:
    • ipfs.bootstrap.add(addr, [options]) - add a bootstrap node
    • ipfs.bootstrap.reset() - restore the default list of bootstrap nodes
  • ipfs.bootstrap.rm([addr], [options]) is split into:
    • ipfs.bootstrap.rm(addr, [options]) - remove a bootstrap node
    • ipfs.bootstrap.clear([options]) - empty the bootstrap list
  • ipfs.dag.get(cid, [path], [options]) becomes ipfs.dag.get(cid, [options])
    • path is moved into the options object
  • ipfs.dag.tree(cid, [path], [options]) becomes ipfs.dag.tree(cid, [options])
    • path is moved into the options object
  • ipfs.dag.resolve(cid, [path], [options]) becomes ipfs.dag.resolve(cid, [options])
    • path is moved into the options object
  • ipfs.files.flush([path], [options]) becomes ipfs.files.flush(path, [options])
  • ipfs.files.ls([path], [options]) becomes ipfs.files.ls(path, [options])
  • ipfs.object.new([template], [options]) becomes ipfs.object.new([options])
    • template is moved into the options object
  • ipfs.pin.ls([paths], [options]) becomes ipfs.pin.ls([options])
    • paths is moved into the options object
  • ipfs.refs.local now returns a v1 CID with the raw codec for every block and not the original CID by which it was added to the blockstore

v0.47.0

Compare Source

Bug Fixes
Features

v0.46.1

Compare Source

Note: Version bump only for package ipfs

v0.46.0

Compare Source

Bug Fixes
Features
  • Using an AbortSignal to cancel a request to get a block (via ipfs.dag.get for example) will now cause those blocks to be removed from your wantlist (ipfs/js-ipfs-bitswap#​214)
  • ipfs.dht.get(key, [options]) accepts a string or a buffer as key (#​3013) (0900bb9)
Breaking Changes
Core API
CLI
  • ipfs files ls no longer supports the -U (unsorted) flag (#​3013) (0900bb9)
HTTP API
  • POST /api/v0/pin/list no longer supports non-streaming responses (#​3013) (0900bb9)
HTTP API Client
  • ipfs.dht.get resolves to a Buffer in line with the core api (#​3013) (0900bb9)

v0.45.0

Compare Source

Features
  • upgrade bitswap to use 1.2.0 and better wantlist performance (18283dd)

v0.44.0

Compare Source

Bug Fixes
Features

v0.43.3

Compare Source

Note: Version bump only for package ipfs

v0.43.2

Compare Source

Bug Fixes

v0.43.1

Compare Source

Bug Fixes
Features

v0.43.0

Compare Source

Bug Fixes
BREAKING CHANGES
  • Where we used to accept all and any HTTP methods, now only POST is
    accepted. The API client will now only send POST requests too.

  • test: add tests to make sure we are post-only

  • chore: upgrade ipfs-utils

  • fix: return 405 instead of 404 for bad methods

  • fix: reject browsers that do not send an origin

Also fixes running interface tests over http in browsers against
js-ipfs

v0.42.1

Compare Source

Bug Fixes

v0.42.0

Compare Source

0.42.0 (2020-03-31)

Bug Fixes
chore
Features
BREAKING CHANGES
  • When the path passed to ipfs.files.stat(path) was a hamt sharded dir, the resovled
    value returned by js-ipfs previously had a type property of with a value of
    'hamt-sharded-directory'. To bring it in line with go-ipfs this value is now
    'directory'.
  • Files that fit into one block imported with either --cid-version=1
    or --raw-leaves=true previously returned a CID that resolved to
    a raw node (e.g. a buffer). Returned CIDs now resolve to a dag-pb
    node that contains a UnixFS entry. This is to allow setting metadata
    on small files with CIDv1.

v0.41.2

Compare Source

v0.41.1

Compare Source

Bug Fixes

v0.41.0

Compare Source

🔦 Highlights

One giant leap forward

🦁 Async Await and Async Iterables

🎶 In the jungle, the mighty jungle the lion sleeps tonight!
🎶 async await, async await, async await, async await...

We've completed a HUGE refactor to js-ipfs internals 🥳, switching to using Promises and async/await over Callbacks and using async iterables instead of Node.js Streams and Pull Streams. Ok, I tell a lie, it's actually not just js-ipfs internals, it's the whole stack, including libp2p, IPLD and multiformats, you might call it a ground up re-write, but, you know, we don't like to brag.

🚨 Oh, wait, serious note - this release brings big breaking changes to the core API so please consult the "API Changes" section below for all the information.

It's been a long and emotional voyage but this refactor brings a plethora of incredible immediate and future benefits to consumers, contributors and core developers that make all the work and effort worthwhile. To summarise, we've:

  • Switched to streaming APIs by default to reduce memory pressure
  • Reduced API surface area by removing buffering, Node.js and Pull Stream APIs
  • Reduced the amount of code in the code base and number of dependencies we depend on (for smaller browser bundles and faster install times)
  • Switched to using async iterables to stream data to help make streaming more approachable
  • Switched to using async/await so we’ll get better error stack traces and improved readability and maintainability

Using async/await in JavaScript is gaining a lot of traction in the ecosystem and is rapidly becoming the de facto way of writing idiomatic JS. We want js-ipfs to move with the times and continue to be attractive to contributors by using modern JS features, techniques and practices. The big idea with these changes is for the code to be easier to contribute to, easier to understand, easier to maintain, and be faster and smaller than ever.

This change is so big, and so significant, we wrote a whole blog post about it to explain the motivations behind the changes...in excruciating delightful depth 🤣!

We've also compiled some stats on this refactor for your viewing pleasure:

...and a lot of those stats are just for js-ipfs and js-ipfs-http-client - the tip of the iceberg! We saw changes similar to this for between 60-70 dependencies across IPFS, libp2p, IPLD and multiformats.

🌗 UnixFS v1.5

Turns out, it's really important for package managers to retain file metadata, particularly last modified time (mtime). File mtime allows them to selectively sync only data that has changed. Up until now if you wanted to host a large data set on IPFS, like a package manager's repository, it would be difficult to update.

"What about the permanent web?" I hear you cry. Well, this absolutely doesn't prevent a particular snapshot of a package manager's repository from being permanently available. Metadata just enables diffs to be imported, instead of the whole thing. So, when I say "difficult to update", like I did up there, I mean slow and/or impossible. When you have Terabytes (or more) of package data and someone publishes a new package, it's kinda inconvenient to import everything again, when only a little part changed. File mtime is a really good indicator of which things have changed, so you can use it in IPFS now! 🥳

For example, there's two new options to jsipfs add that allow mode and mtime to be preserved as the file is added to IPFS:

$ jsipfs add -r --preserve-mtime --preserve-mode ~/Desktop/gif
added QmT6WX9McZyx5ZoisRgpsjYKDBWnYpMnBLpfAgjW5kavBA gif/yesthisisdog.jpg
added QmXMrFfZ9zHLZKN7xP2dX76YFFhvBJsQkd4fLnTDkyR31Q gif

Ok, no big changes there aside from the new options, buuut, now when you list directory contents you get Mode and Mtime info:

$ jsipfs ls QmXMrFfZ9zHLZKN7xP2dX76YFFhvBJsQkd4fLnTDkyR31Q -v
Mode       Mtime                           Hash                                           Size  Name
-rw-r--r-- Apr 16, 2018, 12:20:33 PM GMT+1 QmT6WX9McZyx5ZoisRgpsjYKDBWnYpMnBLpfAgjW5kavBA 87779 yesthisisdog.jpg

Rad right!?

Persisting the file mode is also super rad, because it opens up NFS type use cases that weren't possible before. Imagine your node_modules directory is backed by IPFS and mounted on your file system - the file mode will allow everything in node_modules/.bin to be executable as you'd expect.

The coolest thing about all of this is that it's completely backwards compatible. The CID for a given file/directory only changes if you opt in to metadata, otherwise the CIDs remain the same. Hooray!

There's a bunch of changes that add metadata capability to the CLI, HTTP and core API both for inputs and outputs. There's also a couple of new MFS commands touch and chmod which allow you to change the metadata whenever you like! Magic 🧙‍♂️.

See the API Changes sections below for details of all the new UnixFS v1.5 stuffs.

🏗 API Changes

Core API

There are significant and breaking core API changes in this release. Please see the migration guide.

  • IPFS is not a class that can be instantiated - use IPFS.create. An IPFS node instance is not an event emitter.

  • The init option passed to IPFS.create will now not take any initialization steps if it is set to false. Previously, the repo would be initialized if it already existed. This is no longer the case. If you wish to initialize a node but only if the repo exists, pass init: { allowNew: false } to the constructor.

  • Instance .ready property has been removed. Please use IPFS.create instead.

  • IPFS.createNode has been removed, please use IPFS.create instead.

  • Callbacks are no longer supported on any API methods. Please use a utility such as callbackify on API methods that return Promises to emulate previous behaviour. See the migration guide for more info.

  • Delegated peer and content routing modules are no longer included as part of core (but are still available if starting a js-ipfs daemon from the command line). If you wish to use delegated routing and are creating your node programmatically in Node.js or the browser you must npm install libp2p-delegated-content-routing and/or npm install libp2p-delegated-peer-routing and provide configured instances of them in options.libp2p. See the module repos for further instructions:

  • add now returns an async iterable.

  • add now accepts mode and mtime options on inputs to allow setting mode and mtime metadata for added files. See the core interface docs for more info.

  • add results now contain a cid property (a CID instance) instead of a string hash property.

  • 🆕 add results now include mode and mtime properties if they were set.

  • addReadableStream, addPullStream have been removed. Please see the migration guide for more info.

  • addFromStream has been removed. Use add instead.

  • addFromFs has been removed. Please use the exported globSource utility and pass the result to add. See the glob source documentation for more details and an example.

  • addFromURL has been removed. Please use the exported urlSource utility and pass the result to add. See the URL source documentation for more details and an example.

  • bitswap.stat result has changed - wantlist and values are now an array of CID instances and peers is now a string[] of peer IDs.

  • bitswap.wantlist now returns an array of CID instances.

  • block.rm now returns an async iterable.

  • block.rm now yields objects of { cid: CID, error: Error }.

  • block.stat result now contains a cid property (whose value is a CID instance) instead of a key property.

  • dht.findProvs, dht.provide, dht.put and dht.query now all return an async iterable.

  • dht.findPeer, dht.findProvs, dht.provide, dht.put and dht.query now yield/return an object { id: string, addrs: Multiaddr[] } instead of a PeerInfo instance(s).

  • 🆕 files.chmod has been added. See the core interface docs for info.

  • 🆕 files.flush now returns the root CID for the path that was flushed (/ by default)

  • files.lsPullStream and files.lsReadableStream have been removed. Please see the migration guide for more info.

  • files.ls now returns an async iterable.

  • files.ls results now contain a cid property (whose value is a CID instance) instead of a hash property.

  • 🆕 files.ls results now include mode and mtime properties if they were set. See the core interface docs for more info.

  • files.ls no longer takes a long option (in core) - you will receive all data by default.

  • 🆕 files.mkdir now accepts mode and mtime options to allow setting mode and mtime metadata. See the core interface docs for more info.

  • files.readPullStream and files.readReadableStream have been removed. Please see the migration guide for more info.

  • files.read now returns an async iterable.

  • files.stat result now contains a cid property (whose value is a CID instance) instead of a hash property.

  • 🆕 files.stat result now includes mode and mtime properties if they were set. See the core interface docs for more info.

  • 🆕 files.touch has been added. See the core interface docs for info.

  • 🆕 files.write now accepts mode and mtime options to allow setting mode and mtime metadata. See the core interface docs for more info.

  • get now returns an async iterable. The content property value for objects yielded from the iterator is now an async iterable that yields BufferList objects.

  • id result has changed, the addresses property is now a Multiaddr[]

  • name.resolve now returns an async iterable. It yields increasingly more accurate resolved values as they are discovered until the best value is selected from the quorum of 16. The "best" resolved value is the last item yielded from the iterator. If you are interested only in this best value you could use it-last to extract it like so:

    const last = require('it-last')
    await last(ipfs.name.resolve('/ipns/QmHash'))
  • 🆕 object.get now accepts a timeout option. It will cause the method to throw with a TimeoutError if no data is received within the timeout window. It can be passed as a number or a string. If a number is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration.

  • ls now returns an async iterable.

  • ls results now contain a cid property (whose value is a CID instance) instead of a hash property.

  • 🆕 ls results now include mode and mtime properties if they were set. See the core interface docs for more info.

  • pin.add results now contain a cid property (a CID instance) instead of a string hash property.

  • 🆕 pin.add now accepts a timeout option. It will cause the method to throw with a TimeoutError if no data is received within the timeout window. It can be passed as a number or a string. If a number is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration.

  • pin.ls now returns an async iterable.

  • pin.ls results now contain a cid property (a CID instance) instead of a string hash property.

  • pin.rm results now contain a cid property (a CID instance) instead of a string hash property.

  • ping now returns an async iterable.

  • refs and refs.local now return an async iterable.

  • 🆕 refs now accepts a timeout option. It will cause the method to throw with a TimeoutError if no data is received within the timeout window. It can be passed as a number or a string. If a number is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration.

  • repo.gc now returns an async iterable.

  • stats.bw now returns an async iterable.

  • swarm.peers now returns an array of objects with a peer property that is a string, instead of a PeerId instance.

  • swarm.addrs now returns an array of objects { id: string, addrs: Multiaddr[] } instead of PeerInfo instances.

HTTP API

  • 🆕 /api/v0/add now supports the following additional multipart headers to allow mode and mtime metadata to be set on individual files:
    • mode file mode to apply to created UnixFS entries [string]
    • mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
    • mtime-nsecs modification time fraction in nanoseconds [number]
  • 🆕 /api/v0/add now returns file Mode, Mtime and MtimeNsecs if set.
  • /api/v0/file/ls has been removed, please use /api/v0/ls instead.
  • 🆕 /api/v0/files/chmod has been added and supports the following query string args:
    • arg path of file to apply mode to [string]
    • mode file mode to apply [string]
  • 🆕 /api/v0/files/ls now returns file Mode, Mtime and MtimeNsecs if set.
  • 🆕 /api/v0/files/mkdir now supports supports the following additional query string args:
    • mode file mode to apply [string]
    • mtime modification time in seconds before or since the Unix Epoch to apply [number]
  • 🆕 /api/v0/files/stat now returns file Mode, Mtime and MtimeNsecs if set.
  • 🆕 /api/v0/files/touch has been added and supports the following query string args:
    • arg path of file to apply mode to [string]
    • mtime modification time in seconds before or since the Unix Epoch to apply [number]
  • 🆕 /api/v0/files/write now supports the following additional multipart headers:
    • mode file mode to apply to created UnixFS entries [string]
    • mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
  • 🆕 /api/v0/ls now returns file Mode, Mtime and MtimeNsecs if set.

CLI

  • 🆕 jsipfs add [file...] now supports the following flags to respect and apply mode and mtime metadata of files added from the file system or explicitly set them:
    • --preserve-mode automatically apply permissions to created UnixFS entries from the file system [boolean] [default: false]
    • --preserve-mtime automatically apply modification time to created UnixFS entries from the file system [boolean] [default: false]
    • --mode file mode to apply to created UnixFS entries [string]
    • --mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
    • --mtime-nsecs modification time fraction in nanoseconds [number]
  • jsipfs file ls has been removed, please use jsipfs ls instead.
  • 🆕 jsipfs files chmod [mode] [path] has been added.
  • 🆕 jsipfs files ls now prints file mode and mtime.
  • 🆕 jsipfs files mkdir now supports the following flags:
    • --mode file mode to apply to created UnixFS entries [string]
    • --mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
  • 🆕 jsipfs files stat now prints file mode and mtime.
  • 🆕 jsipfs files touch [path] has been added and supports the following flags:
    • --mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
  • 🆕 jsipfs files write now supports the following flags:
    • --mode file mode to apply to created UnixFS entries [string]
    • --mtime modification time in seconds before or since the Unix Epoch to apply to created UnixFS entries [number]
  • 🆕 jsipfs ls now prints file mode and mtime.

Other changes

  • libp2p has been upgraded to 0.27, which also includes breaking changes to it's core API. Please see the release announcement post for more info:
  • The protocol name for peer IDs in multiaddrs has changed from 'ipfs' to 'p2p'. There's no changes to data on the wire but this change is seen when multiaddrs are converted to strings.

❤️ Huge thank you to everyone that made this release possible

🙌🏽 Want to contribute?

Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:

⁉️ Do you have questions?

The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs channel on Freenode.

v0.40.0

Compare Source

🔦 Highlights

Migrations are not just for ducks. We're paving the way for the dweb in the browser by laying foundations to switch to a hash format that can be used in URL origins 🛣

🦆 New repo migrations tool

Ever worked on an application where you've had to write a database migration? Yeah, us too. Up until now js-ipfs hasn't been able to migrate repo's to a new format. Well, that's not strictly true, you could have used the go-ipfs repo migration tool on a repo created when running js-ipfs in Node.js (yes, we have repo compatibility!), but in the browser you were stuck.

..and I mean really stuck, if we'd updated the format of a repo that ships with js-ipfs then your applications would just have to catch an error that the repo version was not compatible. You couldn't use it, and you couldn't upgrade. Bad news bears 🐻.

We had a cunning strategy to avoid this situation - do not change the repo 😂, but this is rapidly becoming unsustainable since we actually want to add a migration to achieve our dream of base32 encoded v1 (by default) CIDs.

Good news friends! The new version of js-ipfs now ships with a repo migration tool that'll automatically migrate repo's in the browser. So now all our ducks are in a line, stay tuned for a migration and a switch to v1 CIDs ✨!

🎻 base32 encoded CIDs in IPNS paths

My violin strings gently weep for being able to use Peer IDs in a domain, and let me tell you why.

Peer IDs currently cannot be used in a domain name because their string format is base58 - a case SENSITIVE encoding. In domain names the following are equivalent:

QmNib2c1qCVSbp9QPT81RmDSg3n8kFgPsMCdj4gpveJESE
qmnib2c1qcvsbp9qpt81rmdsg3n8kfgpsmcdj4gpvejese
QMNIB2C1QCVSBP9QPT81RMDSG3N8KFGPSMCDJ4GPVEJESE

So, bad times.

...but wait, Peer IDs ARE CIDs! I know, weird, but also rad because in theory we should be able to re-encode them as base32. Right now though, everything expects a base58 encoded string (a v0 CID) because they're actually just a multihash.

In this js-ipfs release we've made a small change to allow you to take your Peer ID (a v0 CID), convert it to a base32 encoded v1 CID and use it in an IPNS path like /ipns/bafybeidta3hkxk3ihxfsk765oswgsjhmvcnkeestyuov6r2t5tyts4xuoe. You can take advantage of cid.ipfs.io (base32 version is provided for your convenience at the very bottom of the page) or do the conversion with the command line tools:

jsipfs id | json id | jsipfs cid base32
bafybeidta3hkxk3ihxfsk765oswgsjhmvcnkeestyuov6r2t5tyts4xuoe

This is really, seriously cool, because now Peer IDs can be used in domain names and so an IPFS gateway operating at bafybeidta3hkxk3ihxfsk765oswgsjhmvcnkeestyuov6r2t5tyts4xuoe.ipns.dweb.link for example, will have origin isolation (hooray for security 🔒) AND IPNS enabled mutable data 🚀⚡️

To ease the transition we support CID v0 converted to v1 (with dag-pb multicodec). In the future, new Peer IDs will be v1 CIDs with self-describing libp2p-key codec that is base32 encoded by default...but that's a change for another day.

🌲 Implemented dag put and dag resolve CLI commands

These have been available in core for a while now and we finally got round to surfacing them in the CLI. e.g.

$ jsipfs dag put '""IPLD RULEZ""'
bafyreia5coklfzblgd3reqwaieafmpasdceqmcnjrowre3623mtb4nxlhm

$ jsipfs dag put '{"to": {"/": "bafyreia5coklfzblgd3reqwaieafmpasdceqmcnjrowre3623mtb4nxlhm"}}'
bafyreiequnkfflujkwhxk6wud5w64hmijdqdmx7p55fgrbiizw32kdrb7e

$ jsipfs dag put '{"path": {"/": "bafyreiequnkfflujkwhxk6wud5w64hmijdqdmx7p55fgrbiizw32kdrb7e"}}'
bafyreidgfdsoupe747qnjzkjk2yirgv76wr4drev3i7kv6dht4dkypusze

$ jsipfs dag resolve bafyreidgfdsoupe747qnjzkjk2yirgv76wr4drev3i7kv6dht4dkypusze/path/to
bafyreia5coklfzblgd3reqwaieafmpasdceqmcnjrowre3623mtb4nxlhm

$ jsipfs dag get bafyreia5coklfzblgd3reqwaieafmpasdceqmcnjrowre3623mtb4nxlhm
IPLD RULEZ

🏗 API Changes

  • dag.put got a pin option to save you from calling the pin API separately (and potentially losing your node if GC runs inbetween!)

❤️ Huge thank you to everyone that made this release possible


Renovate configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

@chmanie
Copy link
Member

chmanie commented Aug 15, 2019

Well, we should actually wait for orbit-db to confirm that it's working. See: orbitdb/orbitdb#663

@renovate
Copy link
Author

renovate bot commented Aug 23, 2019

PR has been edited

👷 This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.

If you think this comment is in error and the branch is not modified, try deleting this comment. If it comes back again the next time Renovate runs, please submit an issue or seek config help.

@CLAassistant
Copy link

CLAassistant commented Mar 5, 2020

CLA assistant check
All committers have signed the CLA.

@renovate renovate bot changed the title Update dependency ipfs to ^0.37.0 Update dependency ipfs to ^0.49.0 Aug 27, 2020
@renovate renovate bot changed the title Update dependency ipfs to ^0.49.0 Update dependency ipfs to ^0.50.0 Oct 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants