- feat: return all messages seen in a ghost thread on getPost
- feat: add filters to ghost threads
- fix: issue with window being referenced in node.js
- fix: disconnect from pinning-room when finished
IdentityWallet v0.2.0 has support for a JSON-RPC provider interface. This release makes use of this interface, which allows wallets to connect to 3box in more ways.
- feat: added support for 3ID JSON-RPC Provider
This release contains a feature called Ghost Threads. These threads are not persisted by in any way except in memory between users. Ghost Threads uses ipfs pubsub to send messages between peers, so in addition we have added a websocket signaling server to make peers discover each other easier. Ghost Threads includes a backlog for users that just joined, this is sent by already connected users that have a copy of recent messages.
- feat: added Ghost Threads
- feat: enabled websocket signaling server
- fix: small docs and dependency improvements
-
feat: 3box instance can now be created with an instance of the IdentityWallet
-
feat: smarter data syncing logic
-
feat: support erc1271 address links (your contract wallet can now have a 3Box!)
-
feat: verify link proofs added by the
linkAddress
method -
fix: sync rootstore before resolving promise from openBox
To wait for the data to be fully synced from the network you can now simply await these publicly exposed promises:
await box.syncDone
- for the main data storageawait space.syncDone
- for data in the given space
- feat: add method to get ipfs instance without openBox
- fix: allow multiple tab connections (support)
- fix: ensureConnected consume db adddress, reconnect
- fix: listAddressLinks now returns all links correctly
- fix: linkAddress now sends link to address-server
- fix: Correctly encode DIDs on api calls
- fix: made onSyncDone logic more robust
- fix: solved issue with joining multiple threads
- fix: resolves issue with portis and fortmatic web3 providers
- feat: allow
consentSignature
to be passed as an option toopenBox
- fix: support usage of multiple tabs without data loss
- feat: added ability to link multiple ethereum addresses to a 3Box
- feat: added ability to add a link proof manually
- feat: address links are now stored in the rootstore instead of the public profile
- feat: added getter for DID
- fix: support web3 1.0 providers
- feat: allow joinThread, addModerator, addMember to take both ethereum addresses or DIDs as function argument
- ref: await linkProfile, throw error if not completed
- ref: linkAccount -> linkAdress and isAccountLinked -> isAddressLinked (orignal functions deprecated)
- feat: add support for moderated and members threads
- feat: update to latest orbitdb and ipfs
- feat: add 3ID
Along with support for moderated and members threads, this replaces experimental threads seen in prior releases. Look for API changes to use new version of threads.
Also with the upgrade of OrbitDB, an upgrade of this library is required for everything to continue working as expected. More details here - https://medium.com/3box/3box-js-1-9-soft-fork-upgrade-bcd79bb5f29c
- Fix: Return promise in public set/remove methods of spaces
- Fix: Actually link profile when opening space and haven't used public store (fix bug from v1.8.2)
- Fix: functions in the api module now work without an opts object being passed
- Fix: Link profile when opening space and haven't used public store
- Feat: Add the ability to manually check and add account linking
- Fix: Resolved issue with
getVerifiedAccounts
returning an empty objec
- Feature: Add
setMultiple
method, enables multiple fields to be set at once.
Special thanks to @Schwartz10 for contributing this feature!
- Fix: Don't allow setting values wihtout a 'key'
- Fix: Ensure that linkProfile only happens once
- Fix: Import keys in correct format
- Fix: Throw error on openSpace if user denies consent
- Fix: Return correct timestamp format in metadata
- Docs: Updated documentation for idUtils, and added better general api description
- Feature: Add ability to get metadata for entries
- Feature: Add idUtils helper functions
- Feature: Send along DID when opening db with pinning node
- Fix: Use correct key when subscribing to thread in a space.
- Fix: Add elliptic library to dependencies
- Feature: Experimental support for threads
- Feature: Add support for DIDs in getProfile and getSpace
- Fix: Handle errors in getProfile correctly
- Fix: Better logic for linking profile to ethereum address
- Fix for profiles/stores in Trustwallet, now expected stores will be created and loaded
- Add support for getting public space data
- Add support for listing spaces of a user
- Properly format ETH-RPC calls
- New functions for adding a verified email credential
- Spaces feature, allows dapps to request access to compartments of the users 3Box which only dapps which the user has given explicit permission to can read/write
- 3Box is now able to run completely offline
- Added a more lightweight module for accessing getProfile and related api methods
- Updates to network logic for stability
- Fixes a bug where more entries locally compared to the pinning node would result in onSyncDone not getting called.
- Fixes bug in getVerifiedAccounts to work with earlier accounts #258
- Fix to allow openBox to be called with no options
- Replace bip39 dependency with more lightweight ethers.js dependency
- Removes stale lib files during build
- Modify example to work in additional environments including github pages
- Implemented new "verified" api that checks and verifies various claims
- Reconnects to pinning node if connection is lost
- Disabled local cache iframe because it caused inconsistent behaviour
- Simplified syncing logic
- Fixed bug in getProfile #248
- Local cache using an iframe IPFS and OrbitDB data is now shared between dapps. The data is now stored in an iframe instead of being replicated between each dapp.
- Network cache When syncing public profiles of users a centralized caching service is now used by default. This speeds up the process of getting multiple public profiles at once. This feature can be disabled in favor for the decentralized approach.
- GraphQL queries It's now possible to encode GraphQL queries for public profiles. This allows for queries of only the relevant information of profiles.
- Ethereum address proof The proof that links users ethereum address to their 3Box profile is now stored in their 3Box.
Improve error handling Publish DID in public profile Doc fixes and cleanup
Bug fixes:
- running getProfile in node
- libp2p bootstrap config errors
Added example for getProfile Some bug fixes:
- getProfile can now handle mixed case addresses
- getProfile now connects to the pinning node directly
Fixed dependency bug build
Fixed bug in getProfile
Fixed bug where private data was disappearing after being added.
Change dist name output ThreeBox -> Box to match export name
The first official release of 3box!